USBHID协议中文版USB接口HID设备.docx

上传人:lao****ou 文档编号:406774 上传时间:2023-10-25 格式:DOCX 页数:80 大小:369.18KB
下载 相关 举报
USBHID协议中文版USB接口HID设备.docx_第1页
第1页 / 共80页
USBHID协议中文版USB接口HID设备.docx_第2页
第2页 / 共80页
USBHID协议中文版USB接口HID设备.docx_第3页
第3页 / 共80页
USBHID协议中文版USB接口HID设备.docx_第4页
第4页 / 共80页
USBHID协议中文版USB接口HID设备.docx_第5页
第5页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《USBHID协议中文版USB接口HID设备.docx》由会员分享,可在线阅读,更多相关《USBHID协议中文版USB接口HID设备.docx(80页珍藏版)》请在第一文库网上搜索。

1、第8章USB接口HID设备HID(HumnInterfaceDevice,人机接口设备)是USB设备中常用的设备类型,是直接与人交互的USB设备,例如键盘、鼠标与游戏杆等。在USB设备中,H1D设备的成本较低。此外,HID设备并不一定要有人机交互功能,只要符合HID类别规范的设备都是HID设备。WndoWS操作系统最先支持的H1D设备。在WindoWS98以及后来的版本中内置有H1D设备的驱动程序,应用程序可以直接使用这些驱动程序来与设备通信。在设计一种USB接口的计算机外部设备时,如果H1D类型的设备可以满足需要,可以将其设计为H1D类型设备,这样可以省去比较复杂的USB驱动程序的编写,直接

2、运用Windows操作系统对原则的H1D类型USB设备的支持。8.1 HID设备简介8.1.1 H1D设备的特点互换的数据储存在称为报表(Report)的构造内,设备的固件必须支持HID报表的格式。主机通过控制和中断传播中的传送和祈求报表来传送和接受数据。报表的格式非常灵活。 每一笔事务可以携带小量或中量的数据。低速设备每一笔事务最大是8B,全速设备每一笔事务最大是64B,高速设备每一笔事务最大是1024B。一种报表可以使用多笔事务。 设备可以在未预期的时间传送信息给主机,例如键盘时按键或是鼠标的移动。因此主机会定期轮询设备,以获得最新的数据。 HID设备的最大传播速度有限制。主机可以保证低速

3、的中断端点每IOmS内最多1笔事务,每一秒最多是80OB。保证全速端点每Ims一笔事务,每一秒最多是64000B。保证高速端点每125US三笔事务,每一秒最多是24.576MB。 HID设备没有保证的传播速率。如果设备是设立在IomS时时距,事务之间的时间也许等于或不不小于IOmso除非设备是设立在全速时在每个帧传播数据,或是在高速时在每个微帧传播数据。这是最快时轮询速率,因此端点可以保证有对时时带宽可供使用。HID设备除了传送数据给主机外,它也会从主机接受数据。只要可以符合HID类别规范的设备都可以是HID设备。设备除了H1D接口之外,它也许同步还包具有其他的USB接口。例如影像显示设备也许

4、使用H1D接口来做亮度、对比度的软件控制,而使用老式的影像接口来传送要显示的数据。USB扩音器可以使用实时传播来播放语音,同步使用H1D接口来控制音量、低音等。HID类别设备的规范文献重要是如下两份: DeviceCIassDefiitionforHumaniterfaceDevices HIDUsageTabIes其中前者是HID的基本规范文献,后者可以是前者的附件,为开发人员提供实际的控制类型的描述。文献是用来定义让主机理解以及使用HID数据的数值。这两份文献是由USBDeviceWorkingGroUP制定也可以在网址。8.1.2 H1D设备的硬件规定HID接口必须符合DeviceC1a

5、ssDefiitioforHumaninterfaceDeviCeS规范内所定义的HID类别的需求。在此文献内描述了所需的描述符、传播的频率以及传播的类型等。为了符合规范,H1D接口的端点与描述符都必须符合数个规定。所有的HID传播都是使用默认控制管道或是一种中断管道,HID设备必须有一种中断输入端点来传送数据到主机,中断输出端点则不是必需时。卜铅HID类别王太HID类别山新笞落囱A-IHin传据的传据率刊表8-1H1D设备的传播类型传播类型数据来源数据类型与否需要管道控制设备(输入)没有严格时间限制的数据是主机(输出)没有严格时间限制的数据或是没有中断输出管道时的任何数据中断设备(输入)定期

6、或低延迟的数据是主机(输出)定期或低延迟的数据是主机与设备之间所互换的数据,可以提成两种类型:低延迟的数据,必须尽快地达到目的;配备或其他的数据,没有严格时间限制的需求。中断管道是控制管道之外的另一种数据互换的方式,特别适合使用在接受端需要定期或是尽量及时收到数据的时候。中断输入管道携带数据到主机,中断输出管道则是携带数据到设备。在总线忙时时候,控制管道也许会被延迟,而中断管道保证会有可得到的带宽。HID不需要一定有中断输出管道。如果没有中断输出管道,主机会在控制管道上使用HID设备特有的Se1ReP。什祈求来传送所有时报表。8.1.3 H1D固件的规定主机的驱动程序要与H1D设备通信,设备的

7、固件必须符合下列需求:设备的描述符必须辨认该设备包具有H1D接口。除了默认控制管道外,固件必须此外支持一种中断输入管道。固件必须涉及一种报表描述符来定义要传送与接受的设备数据。如果要传送数据,固件必须支持Get_RePort控制传播与中断输入传播。如果要接受数据,固件必须支持Set_Report控制传播与选择性的中断输出传播。所有的HID数据都必须使用定义过时报表格式来定义报表中数据的大小与内容。设备可以支持一种或多种报表。在固件中的一种报表描述符用来描述此报表,以及如何使用报表数据的信息。在每一种报表中的一种数值,定义此报表是一种输入(Input).输出(OUtPUt)或是特性(FeQtUe

8、)报表。主机在输入报表中接受数据,在输出报表中传送数据,特性报表可以在任何方向传递。Widows98以及后来版本的HID驱动程序使用中断传播来传递输入报表。输出报表的传播类型要根据设备支持的端点与WindOws的版本而定。Windows98Go1d只符合H1DI.。规范,它的H1D驱动程序使用控制传播来传递输出报表。Windows98SExWndows符合H1D1.1规范,HID驱动程序在有中断输出端点时使用中断传播,否则使用控制传播来传递输出报表。特性报表都是使用控制传播。8.2H1D设备描述符HID设备连接到USB主机后,主机通过发送Get_Descriptor祈求读取H1D设备的描述符,

9、理解描述符对理解USB设备是至关重要取8.2.1 HID设备的描述符H1D设备除了支持USB设备的5种原则描述符之外,还支持HID设备特有的3种描述符。这些描述符是: USB原则描述符:设备、配备、接口、端点和字符串描述符。 H1D特有时描述符:HID、报表(RePort)和实体(Physica1)描述符。从描述符的关联关系看,H1D描述符是关联于接口。因此如果一种HID设备有2个端点,设备不需要每个端点有一种HID描述符。图8-2H1D描述符的关联关从前面的USB描述符可以看出一种规律,描述符的第一、二字节分别是描述符的长度和类型,描述符的类型字段(bDescriptorTyPe)表白描述符

10、的种类,下表列出了不同描述符的类型字段数值。表8-2H1D的描述符类型描述符应用原则设备Device所有设备必须有,只能种01配备Configuration所有设备必须有,至少一种02字符串String可选择03接口Interface每种接口种04端点Endp0int除端点0之外的每个端点一种05设备限定Device_Qua1iftier0ther_Speed_Configuration同步支持全速与高速的设备必须有一种0607Interface_power08类别IIIDHID设备必须有21Hub29H1D特定报表RcportHID设备必须有22实体Physica1可选择的23对于一种HID

11、设备,设备描述符与配备描述符没有H1D特定的信息。其设备描述符的bDeviceCIass和bDeviCeSIJbCIss字段时值为0,接口描述符的b1tef。CeCIQSS字段值为03,表达设备时该接口是H1D类别。在接口描述符中其他涉及HID特定信息的字段尚有子类别码(binterfaCeSubCIass)与合同码(b1terfaceProtocoI字段)。在接口描述符中子类别码字段等于1表达此设备支持启动接口(BootInterface)o如果设备有启动接口,即便主机的HID没有加载驱动程序,设备也可以使用。这种情形也许发生在计算机是由DoS直接启动,在启动时观看系统设立画面或使用Wndo

12、ws的安全模式时。具有启动接口的键盘或鼠标可以使用B1oS或许多主机支持的默认简朴合同。H1D规范定义了键盘与鼠标的启动接口合同。如果设备没有启动接口,并且接口描述符中合同码字段是1,表达设备支持键盘接口,合同码字段是2,表达支持鼠标接口。接口描述符中合同码字段是0,表达设备不支持启动合同。在HIDUsageTabIeS规范中定义了键盘与鼠标时启动描述符(BoOtDescriptor)。BIOS不需要从设备中读取描述符,由于它懂得启动合同,并且假设设备支持启动合同。因此要启动的设备不需要在固件内涉及启动接口描述符,它只要在主机尚未规定在报表描述符中的定义合同时支持启动合同即可。在操作系统加载H

13、ID驱动程序后会使用Se1Protoc。I祈求,将设备由启动合同转换成报表合同。8.2.2 H1D描述符HID描述符的重要作用是用来辨认HID通信所使用的额外描述符。下表是HID描述符构造。表8-3H1D描述符构造偏移字段字节数值型数类阐明0b1ength1Numeric描述符字节数1bDescriPtorTyPe1Constant0x21=H1D描述符2bcdHID2NumericHID规范版本号(BCD)4bCountryCode1Numeric硬件设备所在国家的国家代码5bNumDesCriPtOrs1Numeric类别描述符数目(至少有一种报表描述符)6bDescrip10rType1

14、Constant类别描述符的类型7wDescriptor1ength2Numeric报表描述符的总长度9bDescriptorTye.1Constant附加的描述符的类型,可选的10wDescriptor1ength.2Numeric附加的描述符的总长度,可选的bcdHID:设备与其描述符所遵循的H1D规范的版本号码,此数值是4个16进位的BCD格式字符。例如版本1.1的bedHID是01IOhobContryCode:硬件目的国家的辨认码。如果不阐明,该字段为0。bDescriptorType:H1D描述符附属的描述符的类型(报表或实体)。每一种HID都必须至少支持一种报表描述符。一种接口可

15、以支持多种报表描述符,以及一种或多种实体描述符。H1D描述符的偏移量为9和10的bDescriptorType和WDescriptor1ength可以反复存在多种。1.报表描述符报表描述符定义了执行设备功能的数据格式和使用措施。报表描述符和USB的其他描述符是不同样的,它不是一种简朴的表格,报表描述符是USB所有描述符中最复杂的。报表描述符非常复杂而有弹性,由于它需要解决多种用途的设备。报表的数据必须以简洁的格式来储存,这样才不会挥霍设备内的储存空间以及数据传播时的总线时间。事实上可以这样理解,报表内容的简洁,是通过报表描述符全面时、复杂的数据描述实现时。报表描述符必须先描述数据的大小与内容。报表描述符的内容与大小因设备的不同而不同,在进行报表传播之前,主机必须先祈求设备时报表描述符,只有得到了报表描述符才可对的解析报表时数据。报表描述符是报表描述项目(I

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服