HID设备类

来源:互联网 发布:2018域名 编辑:程序博客网 时间:2024/05/29 19:15

  HID是Human Interface Devices的缩写,即人机接口设备。HID的一大优势就是操作系统已经内置了HID设备类驱动,一般不需要安装驱动程序。通用的HID设备可以直接使用HID设备类驱动程序(hidclass.sys)和HID小驱动程序(hidusb.sys)。

1.HID设备的特点

  HID设备类可以参考两个文档:
USB Device Class Definition for Human Interface Devices (HID) :
这是HID类别设备的规范,包括描述符、传输类型及速度的定义。
HID Usage tables:
是HID类报告描述符表的一部分,对于HID类做了更加详细的定义。

这里写图片描述

2.HID设备的定义

这里写图片描述
这里写图片描述



3.HID设备基本描述符

  HID设备支持5种标准的USB描述符:设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。

设备描述符

  需要注意,类代码、子类代码和协议代码必须设置为0:
这里写图片描述

接口描述符

这里写图片描述



4.HID类描述符

  HID设备都必须支持3个类描述符:HID描述符、报告描述符和物理描述符。一个HID设备只能包含一个HID描述符,但其可以支持多个报告描述符,而物理描述符可以有也可以没有。

HID描述符

这里写图片描述
这里写图片描述

报告描述符

  HID设备的报告描述符是一种数据报表,主要用于定义HID设备和USB主机之间的数据交换格式。

这里写图片描述



5.HID设备类请求

  HID设备一般需要支持标准的USB控制请求,此外,还需要支持6个HID特定的控制请求:

这里写图片描述

获取报告请求GetReport

这里写图片描述

获取空闲速率请求GetIdle

这里写图片描述
这里写图片描述

获取HID协议请求GetProtocol

这里写图片描述
这里写图片描述

设置报告请求SetReport

这里写图片描述

设置空闲速率请求SetIdle

这里写图片描述
这里写图片描述

设置HID协议请求SetProtocol

这里写图片描述

1 0
原创粉丝点击