USB2.0协议标准描述符

  USB 设备第一次连接到主机时, 要接收主机枚举( Enumera tion) 和配置(Configuration) , 目的是让主机知道设备功能、是哪一类的USB 设备、占用多少资源、使用了哪些传输方式以及传输的数据量等等。只有主机完全确认了这些信息后, 设备才能真正开始工作。这些信息是通过存储在设备中的USB 描述符来体现的。因此, 这种USB 描述符也可以看作是USB 设备的身份证明。
  capter9.6

描述符(Descriptor )

  描述符(Descriptor )是一个完整的数据结构, 存储在USB 设备中, 用于描述一个USB 设备的所有属性。USB主机通过一系列命令要求设备发送这些信息。
  USB 设备的属性包括很多内容, 为了便于管理, USB2.0协议将这些信息做了分类, 定义了多种描述符,包括标准和HID类的描述符,下面是标准描述符描述。
标准描述符

标准描述符 bDescriptorType字段
设备描述符(Device Descriptor) 0x01
配置描述符(Configuration Descriptor) 0x02
字符串描述符(String Descriptor,可选) 0x03
接口描述符(Interface Descriptor) 0x04
端点描述符(Endpoint Descriptor) 0x05
设备限定描述符(DEVICE_QUALIFIER) 0x06
其他速率配置描述符(OTHER_SPEED_CONFIGURATION) 0x07
接口功率描述符(INTERFACE_POWER) 0x08

描述符间的关系

这里写图片描述
一个设备有且只能有一个设备描述符,之后的描述符都允许有多个不同的描述符。

字段格式

每个描述符都是由一系列字段( Field , 为了与组成包的域相区别, 这里叫做字段) 所组成的,每个字段开头小写字母表示了该字段使用的数据格式,

首位小写字母 意义
b。。 1 字节Byte
w。。 16 位的2 字节二进制(Word )
bm。。 位图(Bit Map )
bcd。。 BCD 码
i。。 索引( Index)
id。。 标识( Identifier )

标准描述符

设备描述符(Device Descriptor)

  • 每一个设备有且只有一个设备描述符
  • 默认控制管道的数据包的长度( 端点0长度)是在设备描述符中定义, 而不像其他端点在端点描述符中定义。
  • 14 个字段,18 Byte
偏移量 字段名称 长度(Byte) 字段值 意义
0 bLength 1 0x12 设备描述符的字节数大小
1 bDescriptorType 1 0x01 设备描述符类型编号
2 bcdUSB 2 协议版本2.31其值就是0x0231 USB版本号
4 bDeviceClass 1 USB分配设备类代码(1-FE)FF为厂商自定义
5 bDeviceSubClass 1 子类 USB分配子类代码
6 bDeviceProtocol 2
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值