USB 设备请求和描述符整理
一.标准 USB 设备请求
请求名 请求号 功能
GetStatus 00H 读取设备、接口或端点的状态
ClearFeature 01H 清除或禁止设备、接口或端点的某些特性
SetFeature 03H 设置或使能设备、接口或端点的某些特性
SetAddress 05H 分配设备地址
GetDescriptor 06H 读取指定描述符
SetDescriptor 07H 更新已有的描述符或添加新的描述符
GetConfiguration 08H 读取 USB 设备当前的配置值
SetConfiguration 09H 为 USB 设备选择一个合适的配置
GetInterface 0AH 读取指定接口的当前可替换设置值
SetInterface 0BH 为指定接口选择一个合适的可替换设置
SynchFrame 0CH 读取同步端点所指定的帧序号
1. GetStatus 请求
bmRequestType bRequest wValue wIndex wLength 数据阶段
80H 0000H 设备状态
81H 接口号 接口状态
82H
00H 0000H
端点号
0002H
端点状态
bmRequestType 为请求属性,每位定义如下(以下每个请求不再重复说明):
D7:传输方向
0=主机至设备;1=设备至主机
D6..5:种类
0=标准;1=类;
2=厂商;3=保留
D4..0:接受者
0=设备;1=接口 ;
2=端点;3=其他
4..31 保留
bRequest 指明请求号,GetStatus 的请求号为 00H。
wValue 定义为 0。
wIndex 字段的“接口”和“端点”取值分别对应 USB 接口描述符的 bInterfaceNumber 字段值和端点
描述符的 bEndpointAddress 字段值。
wLength 指明返回数据包的长度。
数据阶段:
对于设备状态,返回两个字节中只有 D0 和 D1 位有效。D0 指明 USB 设备当前是否为自供电,0 表
示总线供电,1 表示自供电。D1 指明 USB 设备当前是否支持远程唤醒功能,0 表示该功能被禁止,1 表
示该功能已被使能,缺省值为 0。
对于接口状态,返回两个字节都为 0。
对于端点状态,返回两个字节只有 D0 位有效。D0 位指明端点停止特性,
1 表示端点已被停止,0
表示端点未被停止。