基于HID类的USB人机接口设计
http://tech.ddvip.com 2008年01月24日 社区交流 收藏本文
内容摘要:根据这些特性可以把USB设备划分为不同的类,如显示设备、通信设备、音频设备、大容量存储设备、人机接口设备(HID)。这里介绍如何实现HID类设备,以及如何在应用程序中对HID类设备进行访问。
图1 HID各种描述符之间的关系
从图1中可以看出,除了USB标准定义的一些描述符外,HID设备还必须定义HID描述符。另外设备和主机的通信是通过报告的形式来实现的,所以还必须定义报告描述符;而物理描述符不是必需的。还有就是HID描述符是关联于接口(而不是端点)的,所以设备不需要为每个端点都提供一个HID描述符。
USB设备有4种传输方式与主机进行通信: 控制方式、中断方式、批量方式和同步方式。每种方式都有它的应用领域。HID只支持控制和中断传输方式。如图2所示,HID设备必须要有默认的控制管道和一个中断输入端点;中断输出端点是可选的。

图2 HID类设备使用控制和中断传输方式
中断输出传输是USB1.1规范才有的内容,且必须获得Windows系统的支持。从Windows98 SE版本开始才支持中断输出传输方式,所以如果需要中断输出传输方式的设备应该选择相应的操作系统。表1列出了传输类型和相关情况。
表1 HID类设备支持的传输方式传输

USB协议定义了11种请求命令,通过这些请求来获得设备的信息及对设备进行设置。HID类设备除了要支持这11种标准的请求外,还要实现以下6种特定请求:
① Get_Report——主机用控制传输从设备接收数据,所有HID类设备都要支持这个请求;
② Set_Report——设备用控制传输接收主机的数据,设备可以不支持此请求;
来源:单片机与嵌入式系统应用 作者:涂晓强 周洪利 责编:豆豆技术应用
正在加载评论...