HID设备的实现原理-HID描述符
2021-08-11
9497
17
USB设备的信息存储在USB设备的固件中,当USB设备接入PC机启动后,主机会通过USB的标准请求对存储在USB设备的固件信息进行读取分析。这些存储的信息主要包括各种USB描述符信息,如设备描述符,配置描述符,接口描述符、端点描述符和字符串描述符等。
USB设备的功能按接口来进行分类的,一个接口就代表着USB设备的一种功能,其接口下的端点用于实现该接口下的数据通讯功能。由于USB HID设备的功能比较单一,所以通过接口描述符的类型用于标识该“设备功能”设备类型。所以一个USB设备如果包括多个接口,这些多个接口可以实现多个设备功能。
USB设备的类型定义可见:http://www.usbzh.com/article/detail-221.html
说完了设备的功能,我们再说各个USB HID设备功能的实现。由于USB HID设备的接口中标识了设备类型,但同一种设备类型因为厂商或实现机制的原因,数据格式不统一,所以虽然是同一种设备,但固件上报的数据格式甚至长度可能五花八门,那么通过什么方式来实现使USB主机端识别并解析这些数据呢?答案就是报告描述符。
USB HID描述符包括两种报表描述符,分别为物理描述符集合和报告描术符,也叫报表描述符。
- 物理描述符集合是可选的描述符,提供用于激活设备控件的人体一个或多个部分的信息。
- 报告描述符用于描述符USB HID设备上报的数据信息格式。
报告描述符的内容:
- 确定将输入路由到何处,例如,将输入发送到鼠标或操纵杆API。
- 允许软件为输入分配功能,例如,使用操纵杆输入定位油箱
- 通过检查项目(统称为报告描述符),HID类驱动程序能够确定来自HID类设备的数据报告的大小和组成。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936