标题:
USB描述符详解
[打印本页]
作者:
51黑er
时间:
2015-11-10 02:13
标题:
USB描述符详解
USB的描述符
其描述符主要分为:设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,设备限定描述符和其他速率配置描述符,如下:
描述符中的相关字段的含义:
bLength为第一个字段,bDescriptorType为第二字段,其中:
b表示一个字节
w表示一个字
bm表示按位寻址
i表示索引值
is表示标识码
bcd表示采用二进制码的10进制数
设备描述符
(14个字段长度,总固定长18字节)
其中:
1.idProduct,idVender这个在程序中随意改变对其无任何影响。
2.bDeviceClass表示该USB设备所属的标准设备类,字段值为1~FEH
00H各个接口互相独立,分属不同设备
03H表示HID设备类
FFH表示由供应商自定义该设备类
3.bMaxPackerSize0,表示端点0所支持在最大数据包的长度:
对于低速USb设备,bMaxPackerSize0=8
对于全速USB设备,bMaxPackerSize0=8,16,32,64
对于高速USB设备,bMaxPackerSize0=64
USb配置描述符
(8字段,总长固定9字节)
其中,bMaxPower因为所能获取的最大电流为500mA,所以此处的最大值为250
字符串描述符
(3个字段组成,长度可变)
其中:bString:UNICODE编码的字符串
接口描述符
(9个字段组成,长度固定9字节)
端点描述符
(6个字段组成,长度固定7个字节)
其中:
bEndpointAdress:表端点号及传输方向
第7位表示短点的数据传输方向,0:OUT数据传输,1:数据输入
第0~3位表示端点号,001B表示端点1
bmAttributes:表端点特性
第0~1为表示端点的传输类型,00B:控制传输,01B:同步传输,10B:块传输,11B:中断传输
如果是同步传输:
第2~3位表示同步类型,00B:非同步,01B:异步,10B:自适应,11B:同步
第4~5位表示端点的用法类型,00B:数据端点,01B:显示反馈端点,10:隐式反馈端点,11:保留
设备限定描述符
(9个字段组成,长度固定10字节)
其中:
bcdUSB:其值必须大于2.0
在高速USB系统中,如果USb设备既需要采用高速传输又需要全速传输,
则他必须支持设备限定描述符,设备限定描述符用以指出另一传输速率下该设备的总体信息
其他速率配置描述符
其中:
bmAttributes:配置特性,按位寻址。
第6位置1表示使用总线电源,第5位置1表示支持远程唤醒功能,其余保留,一般而言,0~4位置0,7位置1.
在高速USB系统中,如果USb设备既需要采用高速传输又需要全速传输,
则必须支持其他速率配置描述符,其他速率配置描述符指出了另一传输速率下该设备的配置信息
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1