[hid协议报告描述总结.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[hid协议报告描述总结

HID报告描述符主要内容整理 刚刚接触USB(HID)时对【报告描述符】感到难于理解,因此就更无从下手。下面根据2个主要的协议文本整理出一些常用信息,不完整,备忘。 主要参考文本: 【协议文本1】:《Device Class Definition for Human Interface Devices (HID)》Ver1.11 【协议文本2】:《Universal Serial Bus HID Usage Tables》Ver1.12 每个协议文本后面的附录都有很多例子可供参考借鉴。 0、主要术语与概念 (1)报告(Report):HID设备与主机交换信息的单位(报告字节数似乎没有限制); (2)报告描述符(Report Description):用许多【项目】说明报告的格式与【用途】; (3)用途(Usage):用于指出报告中某个数据域的意义或目的,32bit。高16bit用途页(Usage Page)指出用途的大类,低16bit用途ID(Usage ID)指出用途大类下的子用途; (4)项目(Item):报告描述符用于说明数据域的某种属性的数据,有短项目和长项目之分,短项目1~5B,长项目3~255B; (5)共有3种类型的项目:主项目、全局项目(Global)、局部项目(Local); (6)主项目(Main Item)共有5个,其中的Input、Output和Feature会产生实际的数据域并附带说明其操作特性(见2.1);其余2个Collection和End Collection是一对括号,其间的内容构成一个【集合】,用于限定集合中信息的整体特性; (7)全局项目(Global Item):说明其后主项目产生的数据域的某方面特性,一旦说明一直有效,除非遇到一个新的全局项目说明改变其值; (8)局部项目(Local Item):说明其后主项目产生的数据域的某方面特性,但只对其后的一个主项目有效; (9)可以认为所有用【全局项目】说明的各种数据域特性构成一个【全局状态表】,随着新的【全局项目】出现,该表在不断变化。可以使用【全局项目】中的【push】和【pop】将该表入栈或者出栈,以简化描述符。 (10)项目后的【可选数据字节】可以采用简短方式给出(不够该数据的实际位数),此时认为省略了高有效位且它们的值为0。 (11)一个产生多个数据域(Report Count1)的主项目之前有一个以上的【用途】时,每个【用途】与一个数据域依次对应,如果数据域个数(Report Count)超过【用途】的个数,则剩余的数据域都对应于最后一个【用途】。 1、短项目格式 (更多细节请参见协议文本1:p26) 前缀字节说明 bTag 项目标签 指出该项目的具体意义,见后续说明 bType 项目类型 【00】=主项目,【01】=全局项目,【10】=局部项目,【11】=保留 bSize 可选数据字节数 【00,01,10,11】=(0,1,2,4)字节 长项目很少使用,忽略。 2、主项目分类(更多细节请参见协议文本1:p28) 主项目说明 项目标签 前缀字节取值 Input 输入 1000 00 nn Output 输出 1001 00 nn Feature 特征 1011 00 nn Collection 集合开始 1010 00 nn End Collection 集合结束 1100 00 nn (nn为bSize【可选数据字节数】,后同) 2.1 【输入】【输出】【特征】项目的后续数据说明(更多细节请参见协议文本1:p30) Bit 取值 0 1 说明 (0/1) 8 Bit Field Buffered Bytes 位域/字节填充(不足8位填充成8位) 7 Non Volatile Volatile 主机不可改变/可改变状态值,只用于Feature项目 6 No Null Position Null State 没有【无效(空)状态】/有【无效(空)状态】 5 Preferred State No Preferred 无操作时回复原位(如按键或游戏杆)/不回复原位 4 Linear Non Linear 线性/非线性 3 No Wrap Wrap 卷绕/非卷绕,【卷绕】指最大最小值首尾相连 2 Absolute Relative 绝对值/相对值 1 Array Variable 每个字段(Report Size)独立触发操作/ 所有字段(Report Size* Report Count)触发一个操作 0 Data Constant 变量/常量 如果Bit8为0,则可以只给出1字节的低8位数据。 2.2 【集合开始】项目后的【集合类型】字节说明(更多细节参见协议

文档评论(0)

lisufan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档