HID设备类定义中文版.pdf

上传人:小** 文档编号:76174671 上传时间:2019-02-03 格式:PDF 页数:30 大小:1.27MB
返回 下载 相关 举报
HID设备类定义中文版.pdf_第1页
第1页 / 共30页
HID设备类定义中文版.pdf_第2页
第2页 / 共30页
HID设备类定义中文版.pdf_第3页
第3页 / 共30页
HID设备类定义中文版.pdf_第4页
第4页 / 共30页
HID设备类定义中文版.pdf_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《HID设备类定义中文版.pdf》由会员分享,可在线阅读,更多相关《HID设备类定义中文版.pdf(30页珍藏版)》请在金锄头文库上搜索。

1、 HID 设备类定义设备类定义 Firmware Specification-6/27/01 Version 1.11 注:本汉语版为 USB 爱好都编写,仅供参考。为保证原书语意,书中的专有名词均采用英 语原文。原书为 ”Device Class Definition for Human Interface Device(HID)”。 If you have any new ideas, please send your mail to Jerry_LY_Z. Im very glad to share with you. Jerry 3/92009 in Suzhou 目录目录 1 前言(

2、就是一些开场白,讲一些文件相关的东西)略前言(就是一些开场白,讲一些文件相关的东西)略 2 本书简介本书简介 USB 提供了一种通信方式, 它能够让个人电脑仅通过四根通信线很轻松的连接许多不同 类型的外设, 事实上 USB 是一种双线串口通信方式 (只需要两根数据线) , 它工作在 1.5 或者 12MbS 的速度。USB 协议支持外设的热插拨(plug in at run time) 。这些外设分为 许多不同的类别(设备类 device class) ,每一种设备类具有相同的动作和类似的功能。 下表为一些典型的例子: DEVICE CLASS Example Device Display 显

3、示器 Audio 话筒 Communication 锚 Mass storage 硬盘 Human interface(HID) 数据采集器 21 HID 设备的范畴设备的范畴 本书描述了 USB 协议的 HID(人机接口设备)类,此书会用到 USB 协议,但不重新叙 述。 HID 类提供了人机接口的界面,典型的 HID 设备包括: Keyboard and pointing device-例如:标准鼠标,跟踪球,操纵杆。 Front-panel controls-例如:球柄,开头,滑轮。 在电话、VCR 远程控制、游戏及模拟设备中有可能用到的设备-例如:数据采集器, 节流阀,方向盘,方向踏板

4、。 也许不需要人为参与,但数据格式与 HID 类设备相同-例如:数据采集枪、温度计、 电压表。 许多典型的 HID 类设备具有批示灯、格式化的显示、音频反馈、压力传感反馈,因此 HID 类定义包括了不同类型的批示,以反馈到用户端。 注:压力传感设备需要实时互动,有一本专门的书介绍“USB Physical Interface Device (PID) Class.” 注:了解更多的东西请参考 2.3 的相关参考书籍。 22 HID 设备定义的目的设备定义的目的 本书作为 USB SPEC 的补充协议,为 HID 设备制造商生产 USB-compatible device 提供 必要的文档依据。

5、同时本书也指出 HID 设备驱动如何从 USB 设备中获得数据。 HID 设备定义的最基本目的是: 尽可能的节省设备的数据空间。 允许操作系统忽略未知的信息。 使数据定义可扩展。 支持嵌套和集合。 拥有自身的相关信息,使之适用于一般的软件。 23 相关文献相关文献 本书参考了下列相关文件: Name Comment 1Universal Serial Bus(USB) Specification, 主要看 Chapter9 “USB Device Version 1.0 Framework 2USB Class Specification for Legacy Software 3USB HI

6、D Usage Supplement 每一种类型具体的数据传输格式(开发) 4USB Physical Interface Device(PID) Specification 5USB Audio Device Class 更多的信息请访问 http:/www.usb.org 3 HID 设备管理(就是设备管理(就是 HID 用什么样的数据格式通信)简要(具体看用什么样的数据格式通信)简要(具体看 2.3 参考文献参考文献 3) USB 设备的信息存在自身的 ROM 中,它们以 descriptor(描述符)的方式组织数据。 Interface Descriptor 可识别设备归属的特定类别,

7、HID 类是本书的重点。 HID 类设备使用相应的 HID 类驱动与 PC 交换数据。通信数据格式是以 descriptor 的方 式组织。 HID Descriptor指出了此设备使用的其它descriptor类型、 是否使用 及大小。 例如: Report 和 Physical Descriptor。 Report Descriptor 定义了许多 item,这些 item 描述了位置、按键状态等。 Item 的信息如下: 决定数据的流向-例如:发送数据到鼠标、游戏柄。 允许软件执行相关的功能-例如:使用游戏柄掌握方向。 通过 Report Descriptor 的 Item,HID 类驱

8、动程序可以获得每个 Item 的大小及组成。 Physical Descriptor 是一组可选项,它携带如人身体的哪个部位操作此设备等的信息。 综上所述,可以将其列到如下图中。 HID device descriptors.xls 下面所述的章节为开发 HID 设备和驱动程序所需,请参阅。 4 HID 设备功能特征设备功能特征 此部分描述了 HID 设备的功能特征: Class Subclass Interface 下面介绍的三个参数 class、subclass、protocol 均是 Interface Descriptor 里的参数。 41 HID Class USB 设备划分类别有几

9、个标准: 拥有相同的数据传输需要 拥有同一个类驱动。 例如:Audio 类设备需要 isochronous 传输通道,HID 类设备则需要不同的传输通道。 HID 需要的通道要求将在下面叙述。 注:USB 设备需要的数据类别超过了已定的类别需要提供自己的类定义和驱动。自定义的 类在 USB Specification 中有详细的说明。 USB 协议中,Interface Descriptor 中的 bInterfaceClass 值为 3 时表示 HID 设备。 USB 设备有可能为单一类设备, 也有可能是多种类的综合。 例如: 电话有可能拥有 HID, Audio, Telephony 类

10、(这个实现方式可以参看我收集到的一个带有音乐播放键控制的键盘里, 就在下面了) 。这是有可能的,因为设备类的定义是放在 Interface Descriptor 里的,而不是放 在 Device Descriptor 里的,在 5.1 章里将会有详细的说明:Device Descriptor 结构。 keyboard.bmp 译者注:个人认为这句话是错误的,设备类可以定义在 Device Descriptor,也可以定义在 Interface Descriptor 里,只不过大部分情况都是定义在 Interface Descriptor 里,在 USB 官司 方网站上,有详细的清单说明,哪些设

11、备类放在 Device Descriptor、哪些放在 Interface Descriptor 里,网址是:http:/www.usb.org/developers/defined_class,它也是类定义的说明, 有个总体概念也好。 USB_org - Defined _0 Class Codes.ra 译者注:下面为我个人收集到的一个 USB 鼠标的 Device Descriptor,先感觉一下。 42 HID Subclass 在早期的 HID SPEC 发展中,Subclass 是为了区分 HID 类设备不同的通信 protocol。然 而这种方式在工业生产中显得非常吃紧,许多相似

12、的设备都用同一个 Protocol。也就是说设 备必须要遵守 Subclass 定义的相关 protocol,它不能有额外的功能扩展。 HID 委员会意识到了为所有设备定义 protocol 是不可能,另外,许多已经存在的设备拥 有多重类定义,例如:键盘会带有定位器,定位器中也会有按键。这样一来,HID 类不能用 subclass 来定义 protocol 了,而是通过 Report Descriptor 来识别 protocol、数据类型。 Report Descriptor 被 HID 类驱动解析,而 Report Descriptor 将不同的数据类型组合构成 了通信 protocol,

13、它是可扩展的,能够适应新的设备。 注: 因为解析Report Descriptor来获得protocol需要大量的数据, 一个简单的方式是通过BIOS 帮助查找到 protocol。 HID 类用 subclass 来指示设备是否支持已定义的 protocol (被称做 Boot Device,它有两种标准格式:键盘和鼠标)Boot Protocol 可以被扩展,也许 BIOS 帮助未有定 义,或者 HID 设备可以使用新的不同于 Boot Device 的协议,当然它需要新的 HID 类驱动。 在 Interface Descriptor 当中的 bInterfaceSubClass 参数有

14、如下定义: 43 Protocols 有不同的 protocol 支持 HID 设备, 只有当设备为 Boot Device (即 bInterfaceSubClass=1) 时,Protocol 才有意义,其它时候都应该等于 0。如下为 Boot Device 的 Protocol Code。 44 Interfaces HID 类设备与驱动程序通信使用两种 pipe :Control Pipe 或者 Interrupt Pipe。 Control Pipe 用于: 接收并反馈 USB 控制端的请求。 当被 HID 请求时(发送 Get_Report) ,传送数据。 接收主机发送的数据 In

15、terrupt Pipe 用于: 接收来自设备的同步数据 传送延迟小的数据 Interrupt Pipe 是可选的, 举例来说, 如果一个设备 declare 了一个 Interrupt Out endpoint, 主机就可以从此端点发送 output report。如果没有 declare 这样的端点,主机可以从 Control Pipe 发送 output report,使用的命令为 Set_Report(output)。 注: 对所有 USB 设备来说 Endpoint 0 是一个 control 通道, 所以大部分情况, 只有 Interrupt In Pipe 在 Interface

16、 Descriptor 里 declared(与 Endpoint Descriptor 一起设置) 。事实上,也没有 必要去再申请一个 Interrupt Pipe 了,差不多够用了。 下面为一个典型的配置: 5 Operational Model 这一章介绍了 HID 类设备的基本通信模型。流程图代表 firmware 的数据表。 51 Device Descriptor 结构结构 在 Descriptor 的最顶站端是 Device Descriptor 和 String Descriptor。标准的 Device Descriptor 指出了产品 ID(PID)和其它关于设备的信息。例如 Device Descriptor 主要包括: 对于 HID 类设备: 设备 Class

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号