hid报告描述符详解

分类: LINUX

HID协议规定了两种条目:短条目和长条目(这儿没有用到长条目,不管它).其中短条目的结构如下图所示:
要判断一个短条目具体是哪种类型,先查看bType确定出主条目、全局条目、局部条目的一种,然后再跟据bTag确定具体的类型。
1. 关于第三章USB鼠标的ReportDescriptor,
从条目前缀结构中可以发现,这一节的条目类型只有这三种(0xC0,唉,对不起你啊):
   0x1 --> 00 01 --> 后面跟一字节的(main)主条目
   0x5 --> 01 01 --> 后面跟一字节的(Global)全局条目
   0x9 --> 10 01 --> 后面跟一字节的(Local)局部条目
2. 然后从条目前缀的结构(高字节),可以看到具体的类型 
以0x05,0x01为例(0x05要拆开来看--0x0与0x5): 
0x5: 后面跟一字节的(Global)全局条目
0x0: UsePage
0x01: Generic Desktop Controls (这个需要参考:Hut1_12v2.pdf 【HID Usage Tables】)
3. 关于HID描述符中main global local 三者之间的关系
我感觉是这样的: HID中最关键的是main条目,而global local条目是用来描述main条目的。

点击(此处)折叠或打开

  1. Usage Page (Generic Desktop),                             05 01 
  2. Usage (Mouse),                                            09 02
  3. Collection (Application),                                 A1 01 
  4. Usage (Pointer),                                           09 01
  5. Collection (Physical),                                     A1 00 
  6. Usage Page (Buttons),                                    05 09
  7. Usage Minimum (01),                                      19 01
  8. Usage Maximun (03),                                      29 03
  9. Logical Minimum (0),                                     15 00 
  10. Logical Maximum (1),                                     25 01
  11. Report Count (3),                                        95 03 
  12. Report Size (1),                                         75 01
  13. Input (Data, Variable, Absolute),                        81 02 
  14. Report Count (1),                                        95 01
  15. Report Size (5),                                         75 05
  16. Input (Constant),                                        81 01 
  17. Usage Page (Generic Desktop),                            05 01       
  18. Usage (X),                                               09 30
  19. Usage (Y),                                               09 31
  20. Logical Minimum (-127),                                  15 81    
  21. Logical Maximum (127),                                   25 7F    
  22. Report Size (8),                                         75 08
  23. Report Count (2),                                        95 02
  24. Input (Data, Variable, Relative),                        81 06
  25. End Collection,                                             C0 
  26. End Collection                                             C0
3.1 上面是 《Device Class Definition for Human Interface Devices (HID) 》中的一个实例,是usb鼠标的Report Descriptor,按意义表述一下就是:
a. 先定义了一个普通桌面鼠标的应用(大)开集合
b. 再定义用途为指针的(小)开集合
c. 输入button
d. 填充位无实际意义
e. 输入的范围
f. 关闭小集合
g. 关闭大集合

转自:http://blog.chinaunix.net/uid-26009923-id-3248193.html留着备份 感谢博主!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值