单片机配置描述符
扫描二维码
随时随地手机看文章
配置描述符具有9 b的长度,并且针对设备给予配置的信息。但应注意的是,对每个设各而言可能不止一种配置类型,其配置的数 目由上面的设各描述符的最后一个字段bnumconfigurations设置。当主机要求设备的配置时,它将会连续读取这些描述符,直到所有 的配置已经接收完毕为止。虽然大部分设各非常简单,并仅有一种配置方式,但usb设备能够具有几种不同配置方式。在配置描述符 中,设置了设各如何提供电源消耗、电源消耗量以及其具各的接口数目。因此,设各有可能具各2种配置方式,一种是设各是总线供 电,另一种是自我供电。 一旦所有的配置已经通过主机检查过后,主机就会送出非0数值的setconfigura-tlon命令,而此数值符合配置之一 bconfigurationvalue字段值。这个动作用来选择所要的配置方式。 以usb鼠标为例,利用view descriptors项目与device framework项目所测试的配置描述符如图1和图2所示。图1 view descriptors项目所测试的配置描述符图2 device framework项目所测试的配置描述符 以下,列出配置描述符的范例、数值以及各个字段的意义。 ;blength,长度大小(9字节) ;bdescriptortype,描述符类型,2代表配置(1字节) ,ooh ;wtatollength,描述符的总长度(34字节),(包括配置描述符9字节、接口描述符 ;9字节、端点描述符7字节与群组描述符9字节)。在这例子中,总长度为34字节 ;bnumlnterface,用来配置的接口的数目(1字节) ;bconfigurationvalue,配置值(1字节) ;iconfiguration,配置的字符串描述符的索引(1字节) ;bmattributes,配置的属性(具有总线供电与远程唤醒的特性)(1字节) 最大电源以2ma为单位,在这例子中,32h×2ma=100 ma(1字节) 其中,应注意的是bmattributes字段配置了这个设各的电源属性。bit-7表示总线供电,bit-6表示自我供电,bit-5表示具有远程唤 醒的功能,bit[4:0]则保留使用。例如,上面的数值0xa0,表示这个设备具有远程唤醒的功能,且是总线供电的。而maxpower字段 ,则说明以2 ma为单位的设各最大电源。此外,当通过控制传输来读取配置描述符时,它将会回传包含了相关的接口与端点描述符完 整的配置层,如图3所示。wtotallength字段即是放置了在这层图中所有的字节数目。图3 配置描述符中的wtotallenrth字段所存放的字节层图