人机界面设备
编辑接收人类输入并将输出提供给人类的计算机设备
人机接口设备或HID是人类通常使用的一种计算机设备,它接受人类的输入并将输出提供给人类。
术语HID最常指的是USB-HID规范。该术语是由微软的MikeVanFlandern在提议USB委员会创建一个人类输入设备类工作组时创造的。在DEC的TomSchmidt的建议下,工作组更名为HumanInterfaceDevice类,因为提议的标准支持双向通信。
HID标准
编辑采用HID标准主要是为了实现PC输入设备的创新并简化此类设备的安装过程。在引入HID概念之前,设备通常遵循严格定义的鼠标、键盘和操纵杆协议;例如,当时的标准鼠标协议支持相对X轴和Y轴数据以及最多两个按钮的二进制输入,没有旧版支持。所有硬件创新都需要在现有协议中超载使用数据,或者创建自定义设备驱动程序并向开发人员宣传新协议。相比之下,所有HID定义的设备都提供自描述包,其中可能包含任意数量的数据类型和格式。计算机上的单个HID驱动程序可以解析数据并实现数据I/O与应用程序功能的动态关联,从而实现了快速创新和开发,以及新的人机界面设备的多样化。
由多家知名公司代表组成的工作委员会制定了HID标准。参与者列表出现在人机接口设备(HID)文档的设备类定义中。自描述可扩展协议的概念最初来自MikeVanFlandern和ManolitoAdan,当时他们在Microsoft从事名为Raptor的项目,独立于SteveMcGowan,后者在Forte从事AccessBus设备协议的工作。在消费者游戏开发者大会上比较笔记后,史蒂夫和迈克同意就新兴通用串行总线(USB)的新标准进行合作。
HID协议有其局限性,但所有现代主流操作系统都可以识别标准USBHID设备,例如键盘和鼠标,而无需专门的驱动程序。安装后,屏幕上通常会出现一条消息,指出“已识别出“符合HID的设备”。相比之下,此消息通常不会出现在通过USB之前的PS/26针DIN连接器连接的设备上。PS/2通常不支持即插即用,这意味着在计算机开机的情况下连接PS/2键盘或鼠标并不总是有效,并且可能对计算机的主板造成危害。同样,PS/2标准也不支持HID协议。这USB人机接口设备类描述了一个USBHID。
HID协议的组成部分
在HID协议中,有2个实体:主机和设备。设备是直接与人交互的实体,例如键盘或鼠标。主机与设备通信并从设备接收关于人类执行动作的输入数据。输出数据从主机流向设备,然后流向人。最常见的主机示例是PC,但一些手机和PDA也可以是主机。
HID协议使设备的实现非常简单。设备定义它们的数据包,然后向主机提供HID描述符。HID描述符是一个硬编码的字节数组,用于描述设备的数据包。这包括:设备支持的数据包数量、数据包的大小以及数据包中每个字节和位的用途。例如,带有计算器程序按钮的键盘可以告诉主机,按钮的按下/释放状态存储为数据包编号4中第6字节的第2位(注意:这些位置仅用于说明,是设备-具体的)。设备通常将HID描述符存储在ROM中,并且不需要本质上理解或解析HID描述符。当今市场上的一些鼠标和键盘硬件仅使用8位实现中央处理器。
主机应该是比设备更复杂的实体。主机需要从设备中检索HID描述符并对其进行解析,然后才能与设备完全通信。解析HID描述符可能很复杂。众所周知,在设备驱动程序最初向公众发布多年后,多个操作系统在负责解析HID描述符的设备驱动程序中出现了错误。然而,这种复杂性是HID设备快速创新成为可能的原因。
上述机制描述了所谓的HID报告协议。因为众所周知,并非所有主机都能够解析HID描述符,所以HID还定义了引导协议。在引导协议中,由于使用了固定的数据包格式,因此仅支持具有特定功能的特定设备。此模式不使用HID描述符,因此创新受到限制。但是,好处是在无法支持HID的主机上仍然可以使用最少的功能。引导协议中xxx支持的设备是
启动模式的一个常见用法是在计算机启动序列的最初时刻。直接配置计算机的BIOS通常只使用启动模式。有时会出现一条消息,通知用户设备已安装正确的驱动程序并且现在可以使用。
设备的HID定义
根据HID规范,在报告模式期间,设备被描述为一组控件或一组控件。控件由包含数据的字段匹配,另一个包含使用标签。每个使用标签在spec作为构造函数建议使用报告模式中描述的数据。
使用HID的其他协议
编辑由于HID最初是通过USB定义的,因此HID现在也用于其他计算机通信总线。这使得传统上只能在USB上找到的HID设备也可以在替代总线上使用。这样做是因为对USBHID设备的现有支持通常可以比必须发明一个全新的协议来支持鼠标、触摸板、键盘等更快地适应。使用HID的已知总线有:
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/136352/