打印
[文档下载]

USB描述符详解

[复制链接]
1107|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
李香兰|  楼主 | 2015-12-9 20:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
其描述符主要分为:设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,设备限定描述符和其他速率配置描述符,如下:


描述符中的相关字段的含义:
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编码的字符串

沙发
李香兰|  楼主 | 2015-12-9 20:41 | 只看该作者
接口描述符(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设备既需要采用高速传输又需要全速传输,
则他必须支持设备限定描述符,设备限定描述符用以指出另一传输速率下该设备的总体信息

使用特权

评论回复
板凳
李香兰|  楼主 | 2015-12-9 20:42 | 只看该作者
其他速率配置描述符

其中:
bmAttributes:配置特性,按位寻址。
第6位置1表示使用总线电源,第5位置1表示支持远程唤醒功能,其余保留,一般而言,0~4位置0,7位置1.
在高速USB系统中,如果USb设备既需要采用高速传输又需要全速传输,
则必须支持其他速率配置描述符,其他速率配置描述符指出了另一传输速率下该设备的配置信息

使用特权

评论回复
地板
跟屁虫| | 2015-12-10 20:51 | 只看该作者
今天看代码的时候看糊涂了, 多亏看了这个,了解了一些

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

248

帖子

0

粉丝