HID设备类特定的命令(请求)有6个,它们分别是Get_Report、Get_Idle、Get_Protocol、Set_Report、Set_Idle和Set_Protocol。
HID类请求(命令)数据包格式如表10所示:
表9、HID类请求(命令)包格式 | |||
偏移量 | 域 | 大小 | 说明 |
0 | bmRequestType | 1 |
HID设备类请求特性如下: 因而,针对HID的设备类请求,仅仅10100001和00100001有效 |
1 | bRequest | 1 | HID类请求(参考表9) |
2 | wValue | 2 | 高字节说明描述符的类型(参考表5),而低字节为非0值时被用来选定实体描述符。 |
4 | wIndex | 2 | 2字节数值,根据不同的bRequest有不同的意义 |
6 | wLength | 2 | 该请求的数据段长度 |
表10、HID类请求 | ||
数值 | HID类请求描述符 | 注释 |
0x01 | GET_REPORT | |
0x02 | GET_IDLE | |
0x03 | GET_PROTOCOL | 仅仅适应于支持启动功能的HID设备(Boot Device) |
0x09 | SET_REPORT | |
0x0A | SET_IDLE | |
0x0B | SET_PROTOCOL | 仅仅适应于支持启动功能的HID设备(Boot Device) |
USB主机在请求HID设备的配置描述符时,设备首先返回的描述符为:配置描述符、接口描述符、HID描述符、端点描述符。HID描述符里包含了其附属的描述的类型和长度(如报告描述符),然后主机再根据HID描述符的信息请求其相关的描述符。
HID常见设备类别: