文档详情

USB-HID协议中文

汽***
实名认证
店铺
DOCX
810.14KB
约48页
文档ID:396975002
USB-HID协议中文_第1页
1/48

第8章 USB 接口 HID 设备HID〔Human Interface Device,人机接口设备〕是USB 设备中常用的设备类型,是直接与人交互的USB 设备,例如键盘、鼠标与玩耍杆等在USB 设备中,HID 设备的本钱较低另外,HID 设备并不肯定要有人机交互功能,只要符合HID 类别标准的设备都是HID 设备Wndows 操作系统最先支持的HID设备在windows 98以及后来的版本中内置有 HID设备的驱动程序,应用程序可以直接使用这些驱动程序来与设备通信在设计一个USB 接口的计算机外部设备时,假设HID 类型的设备可以满足需要,可以将其设计为 HID 类型设备,这样可以省去比较简单的 USB 驱动程序的编写,直接利用Windows 操作系统对标准的HID 类型USB 设备的支持8.1 HID 设备简介8.1.1 HID 设备的特点Ÿ 交换的数据储存在称为报表〔Report〕的构造内,设备的固件必需支持 HlD 报表的格式主机通过掌握和中断传输中的传送和恳求报表来传送和接收数据报表的格式格外敏捷Ÿ 每一笔事务可以携带小量或中量的数据低速设备每一笔事务最大是 8B,全速设备每一笔事务最大是 64B,高速设备每一笔事务最大是 1024B。

一个报表可以使用多笔事务Ÿ 设备可以在未预期的时间传送信息给主机,例如键盘的按键或是鼠标的移动所以主时机定时轮询设备,以取得最的数据Ÿ HID 设备的最大传输速度有限制主机可以保证低速的中断端点每10ms 内最多 1笔事务,每一秒最多是 800B保证全速端点每 lms 一笔事务,每一秒最多是64000B保证高速端点每 125 us 三笔事务,每一秒最多是 24.576MBŸ HID 设备没有保证的传输速率假设设备是设置在10ms 的时距,事务之间的时间可能等于或小于 10ms除非设备是设置在全速时在每个帧传输数据,或是在高速时在每个微帧传输数据这是最快的轮询速率,所以端点可以保证有正确的带宽可供使用HID 设备除了传送数据给主机外,它也会从主机接收数据只要能够符合HlD 类别标准的设备都可以是HID 设备设备除了 HlD 接口之外,它可能同时还包含有其他的USB 接口例如影像显示设备可能使用HID 接口来做亮度、比照度的软件掌握,而使用传统的影像接口来传送要显示的数据USB 扩音器可以使用实时传输来播放语音,同时使用 HID 接口来掌握音量、低音等HID 类别设备的标准文件主要是以下两份:Ÿ Device Class Definition for Human interface DevicesŸ HID Usage Tables其中前者是HID 的根本标准文件,后者可以是前者的附件,为开发人员供给实际的掌握类型的描述。

文件是用来定义让主机了解以及使用 HID 数据的数值这两份文件是由USB Device Working Group 制定的,可以在网址 :// usb.org/developers/hid/ #Class _Definition 下载第 8 章 USB 接口HID 设备1898.1.2 HID 设备的硬件要求HID 接口必需符合Device Class Definition for Human interface Devices 标准内所定义的HID 类别的需求在此文件内描述了所需的描述符、传输的频率以及传输的类型等为了符合标准,HID 接口的端点与描述符都必需符合数个要求全部的HID 传输都是使用默认掌握管道或是一个中断管道,HID 设备必需有一个中断输入端点来传送数据到主机,中断输出端点那么不是必需的主机外设默认掌握管道HID 类别驱动程序HID 类别设备中断管道图 8-1 HID 传输的传输类型传输类型数据来源数据类型设备〔输入〕是否需要管道是掌握主机〔输出〕中断设备〔输入〕主机〔输出〕没有严格时间限制的数据没有严格时间限制的数据或是没有中断输出管道时的任何数据定时或低延迟的数据定时或低延迟的数据是是表 8-1 HID 设备的传输类型主机与设备之间所交换的数据,可以分成两种类型:Ÿ 低延迟的数据,必需尽快地到达目的;Ÿ 配置或其他的数据,没有严格时间限制的需求。

中断管道是掌握管道之外的另一种数据交换的方式,特别适合使用在接收端需要定时或是尽可能准时收到数据的时候中断输入管道携带数据到主机,中断输出管道那么是携带数据到设备在总线忙的时候,掌握管道可能会被延迟,而中断管道保证会有可得到的带宽HID 不需要肯定有中断输出管道假设没有中断输出管道,主时机在掌握管道上使用 HID 设备特有的Set_Report 恳求来传送全部的报表8.1.3 HID 固件的要求主机的驱动程序要与HID 设备通信,设备的固件必需符合以下需求:Ÿ 设备的描述符必需识别该设备包含有HID 接口Ÿ 除了默认掌握管道外,固件必需另外支持一个中断输入管道Ÿ 固件必需包含一个报表描述符来定义要传送与接收的设备数据假设要传送数据,固件必需支持 Get_Report 掌握传输与中断输入传输假设要接收数据,固件必需支持Set_Report 掌握传输与选择性的中断输出传输全部的HID 数据都必需使用定义过的报表格式来定义报表中数据的大小与内容设备可以支持一个或多个报表在固件中的一个报表描述符用来描述此报表,以及如何使用报表数据的信息在每一个报表中的一个数值,定义此报表是一个输入〔Input〕、输出〔Output〕或是 特征〔Feature〕报表。

主机在输入报表中接收数据,在输出报表中传送数据,特征报表可 以在任何方向传递Windows 98 以及后来版本的HID 驱动程序使用中断传输来传递输入报表输出报表的传输类型要依据设备支持的端点与Windows 的版本而定Windows 98 Gold 只符合HID1.0 标准,它的HID 驱动程序使用掌握传输来传递输出报表Windows 98 SE 、Wndows 2000 符合HID 1.1 标准,HID 驱动程序在有中断输出端点时使用中断传输,否那么使用掌握传输来传递输出报表特征报表都是使用掌握传输8.2 HID 设备描述符HID 设备连接到USB 主机后,主机通过发送Get_Descriptor 恳求读取HID 设备的描述符,了解描述符对了解USB 设备是至关重要的8.2.1 HID 设备的描述符HID 设备除了支持USB 设备的 5 种标准描述符之外,还支持HID 设备特有的 3 种描述符这些描述符是:Ÿ USB 标准描述符:设备、配置、接口、端点和字符串描述符Ÿ HID 特有的描述符:HID、报表〔Report〕和实体〔Physical〕描述符从描述符的关联关系看,HID 描述符是关联于接口。

所以假设一个 HID 设备有 2 个端点,设备不需要每个端点有一个HID 描述符接口描述符InterfaceHID 描述符Hid端点描述符Endpoint报表描述符Report实体描述符PhysicalHID、报表和实体描述符是 HID 设备特有的描述符图 8-2 HID 描述符的关联关系从前面的 USB 描述符可以看出一个规律,描述符的第一、二字节分别是描述符的长度和类型,描述符的类型字段〔bDescriptorType〕说明描述符的种类,下表列出了不同描 述符的类型字段数值表 8-2 HID 的描述符类型描述符应用设备 Device配置 Configuration字符串 String标准接口端点InterfaceEndpoint全部设备必需有,只能一个全部设备必需有,至少一个可选择每一个接口一个除端点 0 之外的每个端点一个同时支持全速与高速的设备必需有一个类别设备限定 Device_QualiffierOther_Speed_Configuration Interface_powerHIDHubHID 设备必需有HID 报表 Report HID 设备必需有特定 实体 Physical 可选择的数值010203040506070821292223对于一个HID 设备,设备描述符与配置描述符没有HID 特定的信息。

其设备描述符的bDeviceClass 和 bDeviceSubClass 字段的值为 0,接口描述符的bInterfaceClass 字段值为 03,表示设备的该接口是HID 类别在接口描述符中其他包含HID 特定信息的字段还有子类别码〔blnterfaceSubClass〕与协议码〔blnterfaceProtocol 字段〕在接口描述符中子类别码字段等于1 表示此设备支持启动接口〔Boot Interface〕假设设备有启动接口,即便主机的HID 没有加载驱动程序,设备也可以使用这种情形可能发生在计算机是由DOS 直接启动,在启动时观看系统设置画面或使用Wndows 的平安模式时含有启动接口的键盘或鼠标可以使用BIOS 或很多主机支持的默认简洁协议HID 标准定义了键盘与鼠标的启动接口协议假设设备没有启动接口,并且接口描述符中协议码字段是 1,表示设备支持键盘接口, 协议码字段是 2,表示支持鼠标接口接口描述符中协议码字段是 0,表示设备不支持启动协议在 HID Usage Tables 标准中定义了键盘与鼠标的启动描述符〔Boot Descriptor〕BIOS 不需要从设备中读取描述符,由于它知道启动协议,并且假设设备支持启动协议。

所以要启动的设备不需要在固件内包含启动接口描述符,它只要在主机尚未要求在报表描述符中的定义协议时支持启动协议即可在操作系统加载 HlD 驱动程序后会使用Set_Protocol 恳求,将设备由启动协议转换成报表协议8.2.2 HID 描述符表 8-3 HID 描述符构造偏移字段字节数值说明HID 描述符的主要作用是用来识别HID 通信所使用的额外描述符下表是 HID 描述符构造量数类型0bLength1Numeric描述符字节数1bDescriptorType1Constant0x21 = HID 描述符2bcdHID2NumericHID 标准版本号〔BCD〕4bCountryCode1Numeric硬件设备所在国家的国家代码5bNumDescriptors1Numeric类别描述符数目〔至少有一个报表描述符〕6bDescriptorType1Constant类别描述符的类型7wDescriptorLength2Numeric报表描述符的总长度910[bDescriptorType]...[wDescriptorLength]...12Constant 附加的描述符的类型,可选的Numeric 附加的描述符的总长度,可选的bcdHID:设备与其描述符所遵循的 HID 标准的版本号码,此数值是 4 个 16 进制的BCD 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档