最近因为要做个USB HID设备,又重温了一下USB 设备描述符和报告描述符,特别是报告描述符理解起来真是困难,鉴于此,列了个表格如下:
位序号 | 短数据项 | 数值 |
|
| ||
0 | bSize | 00: | 指明短数据项所含数据字节数 | 0个字节 | ||
01 | 1个字节 | |||||
1 | 10 | 2个字节 | ||||
11 | 4个字节 | |||||
2 | bType | 00 | 指明短数据项的类型 | 主数据项 | ||
01 | 全局数据项 | |||||
3 | 10 | 局部数据项 | ||||
11 | 保留 | |||||
数据项标签部分 | ||||||
bType的值 | 主数据项 | 全局数据项 | 局部数据项 | 保留 | ||
4 | bTag | 0000 |
| 用法页 | 用法索引 |
|
0001 |
| 逻辑最小值 | 用法最小值 |
| ||
0010 |
| 逻辑最大值 | 用法最大值 |
| ||
0011 |
| 物理最小值 | 标志符索引 |
| ||
5 | 0100 |
| 物理最大值 | 标志符最小值 |
| |
0101 |
| 单位指数 | 标志符最大值 |
| ||
0110 |
| 单位 | 字符串索引 |
| ||
0111 |
| 报告大小 | 字符串最小值 |
| ||
6 | 1000 | 输入 | 报告ID | 字符串最大值 |
| |
1001 | 输出 | 报告计数 | 分隔符 |
| ||
1010 | 特征 | 入栈 |
|
| ||
1011 | 集合开始 | 出栈 |
|
| ||
7 | 1100 | 集合结束 |
|
|
| |
1101 |
|
|
|
| ||
1110 |
|
|
|
| ||
1111 |
|
|
|
|
USB HID规范定义了两种数据项:短数据项和长数据项,以上表格为短数据项的第一个字节数据的含义,对于各个数据项标签部分的内容未列出,各位有兴趣也可以补充上来。
参考资料:《USB2.0原理与工程开发》 王成儒 李英伟编著 国防工业出版社