- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
USB描述符的分类与介绍
USB描述符的分类与介绍
USB的符述符分为几类?有人可能会答:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符等。但这里说的不是这样的。上面的几类描述符属于USB标准描述符。另外还有HID描述符和Hub描述符。所以分类是这样的: 1. 标准描述符
1) 设备描述符 2) 配置描述符 3) 字符串描述符 4) 接口描述符 5) 端点描述符 6) 设备限定描述符 7) 其他速率配置描述符 2. HID描述符 3. Hub描述符 1 标准描述符
标准描述符是指一组设备描述符,包括设备描述符、配置描述符、字符串描述符、接口描述符、端点描述符、设备限定描述符和其他速率配置描述符。这七种 描述符具有类似的格式,比如说它们的第一个字段都是bLength,第二个字段都是bDescriptorType。七种描述符在使用时以 bDescriptorType字段来区分。描述符类型与对应的bDescriptorType字段值对应关系为:
1.1 设备描述符
设备描述符描述的是设备的整体信息,与设备本身一一对应,一个设备只能有一个设备描述符。在主机对USB设备枚举的过程中,首先要做的就是获取设备描述符,以对设备有一个整体的了解。
设备描述符由14个字段组成,总长度18字节:
这些字段都有一个小写字母表示的前缀,它们所表示的意思如下: b 表一个字节,=8bits; w 表一个字,=16bits; bm 表按位寻址; bcd 用BCD码表示; i 表索引值 id 表标识码 各字段含义:
bLength: 表示描述符的长度,对于设备描述符来说,其值为18,即0x12。 bDescriptorType: 描述符类型,对应表1中的值,设备描述符为0x01。 bcdUSB:该设备遵循的USB版本号,以BCD码表示,USB1.1为0x0101,USB2.0为0x0200。
bDeviceProtocol:用于表示USB设备类所采用的设备类协议,其值和
bDeviceClass和bDeviceSubClass有关。当此 字段为0时,表示不使用任何设备类协议。如果该USB设备属于某个设备类和设备子类,则应该继续指明所采用的设备类协议。当该字段为0xFF时,表明设备 类协议由供应商自定义。 bMaxPacketSize0:用于表示在USB设备中,端点0所支持最大数据包的长度,它以字节为单位。对于低速USB设 备,bMaxPacketSize0为8;对于全速USB设备,bMaxPacketSize0为8、16、32、64;对于高速USB设 备,bMaxPacketSize0为64。
IdVendor:用于表示USB设备供应商的ID。USB组织中规定每种产品都必须包含一个供应商ID,这样可以使主机加载合适的驱动程序。
idProduct:用于表示USB产品的ID,由设备供应商提供。idProduct用于表示特定的USB设备,在USB设备上电的时候可以帮助USB主机选择合适的驱动程序。
bcdDevice:用于表示USB设备的版本号,它以BCD码的形式表示。一般来说bcdDevcie由设备供应商指定,在USB设备上电的时候可以帮助USB主机选择合适的驱动程序。
iManufacturer:用于表示供应商字符串描述符的索引值。具体字符串的内容在后面字符串描述符中定义。如果没有供应商字符串,可以置0。
iSerialNumber:用于表示设备序列号字符串描述符的索引值,如果没有,可以置为0。
bNumConfigurations:用于表示该USB设备所支持的配置数。 1.2 配置描述符
一个USB设备可以有多种配置,不同的配置使设备工作在不同的状态下,每个配置必须有一个配置描述符。其格式包括8个字段,共9字节。
各个字段含义:
bLength:用于表示配置描述符的长度,固定为9个字节,即0x09。 bDescriptorType:用于表示配置描述符的类型值,固定为0x02。 wTotalLength:用于表示配置信息的总长度,包括配置描述符、接口描述符、端点描述符长度的总和。
bNumInterfaces:用于表示配置所支持的接口数。一般来说,USB设备的接口至少有一个,因此其最小值为1。
bConfigurationValue:用于表示USB设备的配置值。
iConfig
文档评论(0)