最近因为要做个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原理与工程开发》 王成儒 李英伟编著 国防工业出版社