USB命令(请求)及标准描述符等相关归纳介绍.pdf
文本预览下载声明
当USB 设备第一次连接到主机上时,要接收主机的枚举和配置,目的就是让主机知道该设备具有什么功能、是哪一类的USB 设备、需要占
用多少USB 的资源、使用了哪些传输方式以及传输的数据量多大等等。只有主机完全确认了这些信息后,设备才能真正开始工作。这些信息是
通过存储在设备中的USB 描述符来体现的。
USB 设备的属性包括很多内容,为了便于管理,USB 协议1.1 将这些信息做了分类,定义了很多种描述符,其中标准的描述符包括: 设备描
述符、配置描述符、接口描述符、端点描述符、字符串描述符。
这些描述符之间具有一定的关系,设备描述符是最高级的描述符,而端点描述符是最低级的描述符。每一个设备只有一个设备描述符,但
设备描述符可以包含多个配置描述符;而一个配置描述符又可包含多个接口描述符;一个接口使用了几个端点,就有几个端点描述符。字符串
描述符是可选的。
所有的命令虽然有不同的数据和使用目的,有的USB 命令结构是一样的。控制传输的“初始设置步骤”中包含了1 个8 字节的DATA0 数据包,
这8 字节的数据包是主机用来发送控制阶段中的请求命令的,而这些请求命令是主机配置USB 设备的关键。这里就来详细分析这8 字节请求命
令的结构和内容:
表1、USB命令的结构
偏移量 域 长度 (字节) 值 描述
请求特征:
D7:传输方向:0=主机至设备; 1=设备至主机
0 bmRequestType 1 位图 D6..5:种类:0=标准; 1=类; 2=厂商; 3=保留
D4..0:接受者:0=设备; 1=接口; 2=端点; 3=其他
4..31 保留
1 bRequest 1 值 命令类型编码值 (见表3)
2 wValue 2 值 根据不同的命令,含义也不同
4 wIndex 2 索引或偏移 根据不同的命令,含义也不同,主要用于传送索引或偏移
6 wLength 2 如有数据传送阶段,此为数据字节数。
表2、USB 的11种标准命令
bmRequestType bRequest wValue wIndex wLength Data
特性选择符 零 零 无
CLEAR_FEATURE 接口号
端点号
GET_CONFIGURATION 零 零 一 配置值
GET_DESCRIPTOR 描述表种类(高字节,见表4)和索引 (低字节) 零或语言标志 描述表长 描述表
GET_INTERFACE
显示全部