欢迎来到天天文库
浏览记录
ID:62496429
大小:382.01 KB
页数:78页
时间:2021-05-10
《USB接口HID设备说明书.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第8章USB接口HID设备HID(HumanlnterfaceDevice,人机接口设备)是USB设备中常用的设备类型,是直接与人交互的USB设备,例如键盘、鼠标与游戏杆等。在USB设备中,HID设备的成本较低。另外,HID设备并不一定要有人机交互功能,只要符合HID类别规范的设备都是HID设备。Wndows操作系统最先支持的HID设备。在windows98以及后来的版本中内置有HID设备的驱动程序,应用程序可以直接使用这些驱动程序来与设备通信。在设计一个USB接口的计算机外部设备时,如果HID类型的设备可以满足需要,可以将其设计为HID类型设备,这样可以省去比较复杂的USB驱动程序的编
2、写,直接利用Windows操作系统对标准的HID类型USB设备的支持。8.1HID设备简介8.1.1HID设备的特点交换的数据储存在称为报表(Report)的结构内,设备的固件必须支持HID报表的格式。主机通过控制和中断传输中的传送和请求报表来传送和接收数据。报表的格式非常灵活。每一笔事务可以携带小量或中量的数据。低速设备每一笔事务最大是8B,全速设备每一笔事务最大是64B,高速设备每一笔事务最大是1024B。一个报表可以使用多笔事务。设备可以在未预期的时间传送信息给主机,例如键盘的按键或是鼠标的移动。所以主机会定时轮询设备,以取得最新的数据。HID设备的最大传输速度有限制。主机可以保证
3、低速的中断端点每10ms内最多1笔事务,每一秒最多是800B。保证全速端点每lms一笔事务,每一秒最多是64000B。保证高速端点每125us一笔事务,每一秒最多是。HID设备没有保证的传输速率。如果设备是设置在10ms的时距,事务之间的时间可能等于或小于10ms除非设备是设置在全速时在每个帧传输数据,或是在高速时在每个微帧传输数据。这是最快的轮询速率,所以端点可以保证有正确的带宽可供使用。HID设备除了传送数据给主机外,它也会从主机接收数据。只要能够符合HID类别规范的设备都可以是HID设备。设备除了HID接口之外,它可能同时还包含有其他的USB接口。例如影像显示设备可能使用HID接口
4、来做亮度、对比度的软件控制,而使用传统的影像接口来传送要显示的数据。USB扩音器可以使用实时传输来播放语音,同时使用HID接口来控制音量、低音等。HID类别设备的规范文件主要是以下两份:DeviceClassDefinitionforHumaninterfaceDevicesHIDUsageTables其中前者是HID的基本规范文件,后者可以是前者的附件,为开发人员提供实际的控制类型的描述。文件是用来定义让主机了解以及使用HID数据的数值。这两份文件是由USBDeviceWorkingGroup制定的,可以在网址#Class_Definition下载。8.1.1HID设备的硬件要求HID
5、接口必须符合DeviceClassDefinitionforHumaninterfaceDevices规范内所定义的HID类别的需求。在此文件内描述了所需的描述符、传输的频率以及传输的类型等。为了符合规范,HID接口的端点与描述符都必须符合数个要求。所有的HID传输都是使用默认控制管道或是一个中断管道,HID设备必须有一个中断输入端点来传送数据到主机,中断输出端点则不是必需的。HID类别默认控制管道■>4HID类别驱动程序—设备外设主机图8-1HID传输的传输类型表8-1HID设备的传输类型类型数据来源数据类型是否需要管道控制设备(输入)没有严格时间限制的数据是主机(输岀)没有严格时间限
6、制的数据或是没有中断输岀管道时的任何数据中断设备(输入)定时或低延迟的数据是主机(输岀)定时或低延迟的数据是主机与设备之间所交换的数据,可以分成两种类型:低延迟的数据,必须尽快地到达目的;配置或其他的数据,没有严格时间限制的需求。中断管道是控制管道之外的另一种数据交换的方式,特别适合使用在接收端需要定时或是尽可能及时收到数据的时候。中断输入管道携带数据到主机,中断输出管道则是携带数据到设备。在总线忙的时候,控制管道可能会被延迟,而中断管道保证会有可得到的带宽。HID不需要一定有中断输出管道。如果没有中断输出管道,主机会在控制管道上使用HID设备特有的Set_Report请求来传送所有的报
7、表。8.1.1HID固件的要求主机的驱动程序要与HID设备通信,设备的固件必须符合下列需求:设备的描述符必须识别该设备包含有HID接口。除了默认控制管道外,固件必须另外支持一个中断输入管道。固件必须包含一个报表描述符来定义要传送与接收的设备数据。如果要传送数据,固件必须支持Get_Report控制传输与中断输入传输。如果要接收数据,固件必须支持Set_Report控制传输与选择性的中断输出传输。所有的HID数据都必须使用定义过的报表
此文档下载收益归作者所有