USB描述符的分类与介绍
更新时间:2023-11-08 05:03:01 阅读量: 教育文库 文档下载
- 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。
bDeviceClass:该设备所属的标准设备类,USB协议中对常见的设备进行了分类。该字段值为0x01~0xFE时,表示是USB协议中已定义的设备类,常用的HID设备类编号为0x03,其它设备类编号参:http://www.usb.org/developers/defined_class
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设备的配置值。
iConfiguration:用于指出配置字符串描述符的索引值。具体字符串的内容在后面字符串描述符中定义。如果没有配置字符串,可以置为0。
bmAttributes:用于表示USB设备特性。bmAttributes是接位寻址的,第6位置1表示使用总线电源;第5位置1表示支持远程唤醒功能;该字段其他位均保留,一般来说,第0~4位置0即可,第7位置1即可。
bMaxPower:用于表示USB设备运行时所需要消耗的总线电流,单位以2mA为基准。USB设备可以从USB总线上获得最大的电流为500mA,因此bMaxPower字段的最大值可以设置为250。
1.3 字符串描述符
在USB协议中字符串描述符是可选的。字符串描述符用于保存一些供应商名称、产品序列号等文本信息。它的长度是不固定的,随字符串的数量和信息的长度变化而变化。其格式如下:
各字段含义:
bLength:字符串描述符的长度,其值应为N+2。 bDescriptorType:字符串描述符的类型值,为0x03。 bString:UNICODE编码的字符串。
1.4 接口描述符
接口是端点的集合,负责完成USB的特定功能,例如数据的输入输出。接口描述符用于描述一个接口,包含了接口的特性,如端点个数,所属设备类和子类等。它有9个字段,共9字节。其格式如下:
2. HID描述符 3. Hub描述符 1.5 端点描述符
端点描述符用于指出USB端点的特性,包括其所支持的传输类型、传输方向等信息。USB中规定,端点0没有端点描述符,其余端点必须包含端点描述符。端点描述符由6个字段组成,共7个字节。其格式如下:
各字段含义:
bLength:用于表示端点描述符的长度,固定为7字节,即0x07。 bDescriptorType:用于表示接口描述符的类型值,固定为0x05。 bEndpointAddress:用于表示端点的端点号以及端点的数据传输方向。第七
正在阅读:
USB描述符的分类与介绍11-08
2014年4月19日二年级阅读与写作412-01
住宅工程质量分户验收记录表实例12-29
HX207型七管半导体收音机课程设计要点04-09
菊豆影评(精选6篇)正式版10-18
浅析内部审计中风险导向审计模式的构建02-29
仪器系 - PLC实验室计划开放实验项目申报表2010-10-2206-05
督导检查后的感想05-30
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 描述
- 介绍
- 分类
- USB
- 学前营养学教案内容1
- 汉英结合单词教学法的形式及运用-精选文档
- 北京新奥特集团有限公司与中国华融资产管理公司股权转让合同纠纷上诉案
- 液氨制冷原理
- 天大2016年12月《市场营销学》期末大作业考核要求
- MapCAD for MapInfo Professional--跨越CAD和GIS的鸿沟
- 最新的 Net面试题及答案
- 人工神经网络应用实例
- 江苏省轨道交通“十二五”及中长期发展规划 - 图文
- 气管插管(题)
- 突发性事件或不稳定因素应急处置工作预案
- 最新北师版小学语文六年级下册《我们上路了》第一课时优秀教案
- 初级理赔员考试题库 - - 专业类(车险理赔)
- 五年级奥数 第三章 简便运算
- 2011年工作总结及2012工作计划拆迁
- 什么是EDA技术
- 化工安全与环境保护试卷及答案
- 机械毕业设计936家用清扫机器人设计
- 初中数理化公式最全概念汇总
- 数字图像处理冈萨雷斯习题答案