USB获取描述符GetDescriptor
描述述包括设备描述符请求,配置描述符请求、字符串描述符请求和其它描述符请求。
ID | 请求码 | 说明 |
---|---|---|
6 | GET_DESCRIPTOR | 用于主机获取设备的特定描述符 |
USB的请求这里包括USB的标准请求和特定类请求,其包括以下几个字段:
bmRequestType(1) | bRequest(1) | wValue(2) | wIndex(2) | wLength(2) |
---|---|---|---|---|
80 | 06 | 类型(高字节)和索引(低字节) | 0或语言ID | 接收的描述符长度 |
- bmRequestType:x80表示从设备到主机,请求标准命令,接收者为设备。
- bRequest:0x06,表示读取描述符。
- wValue表示要获取描述符的索类型。(高字节为描述符类型,低字节为描述符索引)
描述符的类型有:
1——设备描述符
2——配置描述符
3——字符串描述符
4——接口描述符 //随配置描述符一并获取
5——端点描述符 //随配置描述符一并获取
- wIndex字段表示字符串描述符的语言ID,其它描述符为0
- wLength指定了描述符的字节数。
一个配置描述符的请求将在一个请求事务中返回设备描述符和所有的接口、端点描述符。
- 端点描述符:不能直接通过 SetDescriptor/GetDescriptor 请求访问;
- 接口描述符:不能直接通过 SetDescriptor/GetDescriptor 请求访问;
- 字符串描述符:wIndex 中包含语言 ID,支持多语言。