参考资料
一篇博文,
USB中文网,
USB中文网1,
HID有关资源,
HID报告描述符的基本组成(短)item
长的item几乎没使用过,和短的item使用方法类似,可根据HID协议查看,使用方式可以参考item介绍
三大类items
详细介绍可参考一篇博文,
一个HID报告描述符的整体框架
keyboad的hid实例,参考
05 01 //Usage Page (Generic Desktop),
09 06 //Usage (Keyboard),
A1 01 //Collection (Application),
05 07 //Usage Page (Key Codes);
19 E0 //Usage Minimum (224),
29 E7 //Usage Maximum (231),
15 00 //Logical Minimum (0),
25 01 //Logical Maximum (1),
75 01 //Report Size (1),
95 08 //Report Count (8),
81 02 //Input (Data, Variable, Absolute), ;Modifier byte
95 01 //Report Count (1),
75 08 //Report Size (8),
81 01 //Input (Constant), ;Reserved byte
95 05 //Report Count (5),
75 01 //Report Size (1),
05 08 //Usage Page (Page# for LEDs),
19 01 //Usage Minimum (1),
29 05 //Usage Maximum (5),
91 02 //Output (Data, Variable, Absolute), ;LED report
95 01 //Report Count (1),
75 03 //Report Size (3),
91 01 //Output (Constant), ;LED report padding
95 06 //Report Count (6),
75 08 //Report Size (8),
15 00 //Logical Minimum (0),
25 65 //Logical Maximum(101),
05 07 //Usage Page (Key Codes),
19 00 //Usage Minimum (0),
29 65 //Usage Maximum (101),
81 00 //Input (Data, Array), ;Key arrays (6 bytes)
C0 //End Collection
HID报表描述符中常见命令和代表的含义
报表描述符的item中参数含义
下面是控制类型的usage type,一般用于,可以看出数据的类型和触发方式等
音量调节的控制方式,满足条件触发一次
数据类型一般用于INPUT, OUTPUT,Feature的item中
bit位 | 作用或含义 |
---|---|
Bit0: | Data(0):数据表示该项目正在定义包含可修改设备数据的报告字段。 Constant(1)常量表示该项目是报表中的静态只读字段,一般保留字符使用 |
Bit1 | Array(0): 将每个数据占用8bit位 Variable(1): 每个字节占1bit |
Bit 2 | Absolute (0) 指示数据是绝对数据(基于固定原点)还是相对数据(指示上次报告的值变化)。 Relative (1) 鼠标设备通常提供相对数据,而平板电脑通常提供绝对数据。 |
Bit3 | Wrap(1):数值过最大循环到最小(例如音量键到100后) Wrap(0): 不循环 |
Bit 4 | Linear (0) :来自设备的原始数据和报告数据存在线性关系,一般是灵敏度修改; Non Linear (1):对原始数据非线性处理 |
Bit 5 | Preferred State(0):主项目对应的操作再不被触发时会自动恢复到初始状态,例如键盘的按键; Preferred State(1):不会恢复原状 |
Bit 6 | No Null position (0):任何状态都发送有效数据,; Null state(1):控件某一种空状态,处于不发送有意义数据的状态 |
Bit 8 | Bit Field (0) :控件发出固定大小的字节流 Buffered Bytes (1):主项目的数据格式要以字节为单位,不足构成字节时自动填充成字节 |