人机交互设备(HID)是一个设备类型,为了使用通用USB接口支持HID设备来代替PS/2接口类型的设备,例如键盘、鼠标和游戏控制器等等。
在 HID 之前,设备只能使用规定好的鼠标或键盘协议。硬件创新需要在现有协议中重载数据,或者使用自己的设备驱动程序创建非标准硬件。HID 为这些"boot mode"设备提供了支持,同时通过可扩展、标准化和易于编程的接口为硬件创新提供支持。
boot mode:boot mode的意思为“启动方式”,有两种启动方式:UEFI和Legacy support。UEFI是新式的BIOS,legacy是传统BIOS。二者可以转换。
如今,HID 设备包括各种设备,如数字显示器、条形码读取器、扬声器/耳机的音量控制器、辅助显示器、传感器等。许多硬件供应商也使用 HID 作为其专有设备。
图:PS/2接口类型
HID 由两个基本概念组成,Report Descriptor(USB报告描述符)和 Report(报告),报告是设备和软件客户端之间交换的实际数据。报告描述符描述了设备支持的数据的格式和含义。
应用程序和 HID 设备通过报告交换数据。报告有三种类型:输入报告、输出报告和特征报告。
Report Type | Description |
Input Report | Data sent from the HID device to the application, typically when the state of a control changes. |
Output Report | Data sent from the application to the HID device, for example to the LEDs on a keyboard. |
Feature Report | Data that can be manually read and/or written, and are typically related to configuration information. |
在报表描述符中定义的每个顶级集合可以包含每个类型的零( 0 )个或多个报告。
USB-IF工作组发布 HID 使用表,这些表是报告描述的一部分,用于描述允许 HID 设备执行的用途。这些 HID 使用表包含一个包含使用情况描述的列表,其中描述了报告中描述的特定项目的预期含义和用途。