人体学接口装置
此条目需要补充更多来源。 (2017年3月21日) |
此条目翻译自其他语言维基百科,需要相关领域的编者协助校对翻译。 |
人体学接口装置(英语:Human interface device,缩写HID,直译为人类接口装置)也常被称为人体学输入装置,是一类与人类直接交互的电脑装置,它通常提供一种人类可用的输入方法,以及可能将输出资讯传递给人类。术语“HID”一般指USB-HID标准。该术语由微软的Mike Van Flandern提出,他提议USB委员会创建一个“人体学输入装置”(Human Input Device)类工作组。该工作组后被更名“人体学接口装置”(Human Interface Device)类,因为DEC的Tom Schmidt建议:所提出的标准支持双向通信。[来源请求]
HID输出装置 | |
常用HID | |
不常用HID | |
HID标准
HID标准的设立主要是为革新PC输入装置和简化安装此类装置的流程。在HID概念引入前,装置通常要符合为滑鼠、键盘和控制杆严格定义的协议。例如,标准的滑鼠协议支持相对的X和Y轴数据,以及最多两个按钮的二进制输入,没有其他支持。所有硬件创新必须重载现有的协议数据,或者创建自定义的装置驱动程式并为开发者提供新的协议。与此相反,所有HID定义的装置驱动程式提供可包含任意数量数据类型和格式的自我描述包。电脑上的单个HID驱动程式就可以解析数据和实现数据I/O与应用程式功能的动态关联。这加快了创新和发展,使人类接口装置的类型、功能更加丰富、多样化。
多个著名企业代表组成的工作委员会开发了HID标准。参与者名单列在“Device Class Definition for Human Interface Devices (HID)”[1]文档中。一个自描述可扩展协议的概念最初来自Mike Van Flandern和Manolito Adan在微软与Steve McGowan的“Raptor”项目工作期间,他们在Forte工作期间研究用于访问总线的装置协议。在消费者游戏大会交换意见后,Steve和Mike同意就新生的通用串行总线(USB)标准合作。
HID协议有其局限性,但所有现代主流操作系统都识别标准USB HID装置(例如键盘和滑鼠),而无需专门的驱动程式。在装置安装时,屏幕上可能呈现“一个‘HID兼容装置’已安装”消息。相较而言,此消息一般不会在装置使用通过USB连接的PS/2 6针DIN连接器连接时出现。 PS/2通常不支持即插即用,这意味着连接PS/2键盘或滑鼠到电脑不一定能正常工作,并有可能损害电脑主板。同样的,PS/2标准不支持HID协议。USB人类接口装置类描述了USB HID。
HID协议的组件
HID协议中有两个实体:主机(host)和装置(device)。装置是直接与人类交互的实体,例如键盘或滑鼠;主机则是负责与装置通信并接收人类在装置上输入的数据。输出数据则是主机传送给装置,装置再展现给人类。最常见的主机就是PC,但有些手机和PDA也可作为主机。
HID协议使得装置的实现非常简单。装置定义它们的数据包,然后向主机呈递“HID描述符”。HID描述符是描述装置的数据包的硬编码字节数组,其中包括:装置支持多少个数据包,数据包大小,以及数据包中各个字节和位元的目的。例如,计算器程序的键盘按钮可以告诉主机,该按钮的按压/松开状态被存储为数据包4号中第6个字节中的第2位元(注意:这些位置仅为说明目的,并且依装置而不同)。装置通常将HID描述符存储在ROM中,并且不需要本质上理解或解析HID描述符。目前市场上的一些滑鼠和键盘硬件仅使用8位CPU来实现。
主机的预期是比装置更复杂的实体。主机需要检索来自装置的HID描述符,并需要解析它才可以与装置进行完全通信。解析HID描述符可能很复杂。已知有多个操作系统的负责解析HID描述符的驱动程式在发布给公众几年后被发现存在缺陷。[来源请求]但是,这种复杂性也成就了HID装置的快速创新。
上述机制描述了什么是HID“报告协议”。因为可以理解并非所有主机都能够解析HID描述符,HID还定义了“引导协议”(boot protocol)。因为引导协议中使用固定的数据包格式,所以只支持特定功能的特定装置。在该模式中不使用HID描述符,因此创新是有限的,但好处是可以在无法支持HID的主机上仍可实现有限的功能。引导协议中支持装置只有:
- 键盘 – 定义在HID使用表中的前256个键盘代码,使用页7可以由键盘使用引导协议报告,但大多数系统只处理这些键的子集。大多数系统支持IBM AT-101布局上的全部104个按键,以及为Microsoft Windows 95的额外三个按键(左侧和右侧Windows键,以及一个菜单键)。许多系统还支持基本的西方附加键——欧洲105-、韩国106-、巴西ABNT 107,以及日本DOS/V 109键布局。没有被报告的按钮、旋钮和按键将不可用。例如通用的美式键盘的QWERTY键将有效,而定制化的计算器、注销登录等按键将无效,因为它们在页12上定义,并且不能在引导协议中报告。
- 滑鼠只有X轴、Y轴和前3个按钮可用。滑鼠上的任何额外功能将不可用。
引导模式的一个常见用法是在电脑刚刚启动时使用。直接配置电脑的BIOS通常只能用引导模式完成。有时会出现一条消息,通知用户该装置已经安装正确的驱动程式,并且现在可以使用[需要解释]。
装置的HID定义
根据HID标准,一个装置在其报告模式期间描述作为控制器集或者控制器组。
其他使用HID的协议
HID最初定义为通过USB,但它现在也可使用在其他电脑通信总线。允许传统上只支持USB的HID装置能用在其他总线上是为现有的USB HID装置可以更快适配,而不必重新发明新协议以支持滑鼠、键盘和其他装置。已知使用HID的总线有:
- 蓝牙HID – 通过蓝牙连接的滑鼠和键盘
- 串行HID – 用于微软的Windows媒体中心PC遥控接收器。
- ZigBee输入装置 – ZigBee(RF4CE)通过“ZigBee输入装置规范”支持HID装置。
- 基于I²C的HID – 用于Microsoft Windows 8中的嵌入式装置[2]
- HOGP(基于GATT的HID) – 使用蓝牙低功耗技术连接的HID装置
参见
参考资料
- ^ Device Class Definition for Human Interface Devices (HID): Firmware Specification -- Final 1/30/97. USB Implementer's Forum. 1997 [2014-04-28]. (原始内容存档于2020-09-15).
- ^ HID over I2C. Microsoft. [2016-01-19]. (原始内容存档于2016-02-22).
- HID developers forum, USB.org
- HID Device Class Definition 1.11 Specification, USB.org
- (页面存档备份,存于互联网档案馆), USB.org