设备描述符:
偏移值 | 字段名称 | 字段大小 | 说明 |
0 | blength | 1 | 描述符长度 = 12H |
1 | bDescriptorType | 1 | 设备描述符类型 = 01H |
2 | bcdUSB | 2 | USB规划发布号 |
4 | bDeviceClass | 1 | 类型代码(由USB指定) |
5 | bDeviceSubClass | 1 | 子类型代码(由USB分配) |
6 | bDeviceProtocol | 1 | 协议代码(由USB分配) |
7 | bMaxPackedSize0 | 1 | 端点0最大分组大小(只有8、16、32、64有效) |
8 | idVendor | 2 | 供应商ID(由USB分配) |
10 | idProduct | 2 | 产品ID(由厂商分配) |
12 | bcdDevice | 2 | 设备出厂编码 |
14 | iManufacturer | 1 | 厂商描述符字符串索引 |
15 | iProduct | 1 | 产品描述符字符串索引 |
16 | iSerialNumber | 1 | 设备序列号字符串索引 |
17 | bNumConfigurations | 1 | 可能的配置数 |
配置描述符:
偏移值 | 字段名称 | 字段大小 | 说明 |
0 | bLength | 1 | 描述符的长度 = 09H |
1 | bDescriptorType | 1 | 配置描述符的类型 = 02H |
2 | wTotalLength | 2 | 返回整个数据的长度,包括该配置所返回的所有描述符(配置、接口、端点以及类型或供应商)的联合长度 |
4 | bNumberInterfaces | 1 | 配置所支持的接口数 |
5 | bConfigurationValue | 1 | 作为Set Configuration的一个参数选择配置值 |
6 | iConfiguration | 1 | 用于描述该配置字符串描述符的索引 |
7 | bmAttributes | 1 | 配置特性: D7 总线供电 D6 自供电 D5 远程唤醒 D4~0 保留(复位为0) |
8 | MaxPower | 1 | 当设备完全可操作时,在这种特定配置下,总线供电的USB设备的最大消耗电流(以2mA为单位,即2mA x 50 = 100mA) |
接口描述符:
偏移值 | 字段名称 | 字段大小 | 说明 |
0 | bLength | 1 | 描述符长度 = 09H |
1 | bDescriptorType | 1 | 接口描述符类型 = 04H |
2 | bIngerfaceNumber | 1 | 接口的编号 |
3 | bAlternateSetting | 1 | 用于为上一个字段选择可供替换的设置 |
4 | bNumEndpoint | 1 | 使用的端点数目(端点0除外) |
5 | bInterfaceClass | 1 | 类型代码(由USB指定) |
6 | bInterfaceSubClass | 1 | 子类型代码(由USB分配) |
7 | bInterfaceProtocol | 1 | 协议代码(由USB分配) |
8 | iInterface | 1 | 字符串描述符的索引 |
端点描述符:
偏移值 | 字段名称 | 字段大小 | 说明 |
0 | bLength | 1 | 描述符长度 = 07H |
1 | bDescriptorType | 1 | 接口描述符类型 = 05H |
2 | bEndpointAddress | 1 | USB设备的端点地址 D7 方向,对于控制端点可忽略 0 OUT端点 1 IN端点 D6~4 保留,复位为0 D3~0 端点号 |
3 | bmAttributes | 1 | 端点属性,当进行配置是采用以下的配置值 D7~2 保留 D1~0 传输类型 00 控制 01 同步 02 批量 03 中断 |
4 | wMaxPackedSize | 2 | 本端点接受或发送最大信息包的大小。 对于同步传送,此值用于为每帧的数据净负荷预留时间。通道可能在实际运行时不需要预留带宽。实际带宽可由设备通过一种非USB定义的机制汇报给主机。 对于中断传送、批量传送和控制传送,端点可能发送较小的数据包。在结束传送后,既可能用间隙时间来重启,也有可能不需要这段时间。 |
6 | bInterval | 1 | 轮询数据传送端点的时间间隔。 此域值对于批量传送的端点及控制传送的端点忽略。对于同步传送的端点,此域值必须为1。对于中断传送的端点,此域值得范围为1~255。 |