没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
USB HID Report终极解析
HID的报告描述符巨难懂,关键是数据格式与每一位代表的意思。
经过三天的研究,终于将HID Report的每一个数据位的含义弄清楚
了,现将数据解析如下,最后附上了一个HID 通信的Report例子。
以一个键盘的HID Report为例:
键盘的HID报告描述符:
code char KeyBoardReportDescriptor[63] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x06, // USAGE (Keyboard)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x07, // USAGE_PAGE (Keyboard)
0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x08, // REPORT_COUNT (8)
0x81, 0x02, // INPUT (Data,V ar,Abs)
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x08, // REPORT_SIZE (8)
0x81, 0x03, // INPUT (Cnst,V ar,Abs)
0x95, 0x05, // REPORT_COUNT (5)
0x75, 0x01, // REPORT_SIZE (1)
0x05, 0x08, // USAGE_PAGE (LEDs)
0x19, 0x01, // USAGE_MINIMUM (Num Lock)
0x29, 0x05, // USAGE_MAXIMUM (Kana)
0x91, 0x02, // OUTPUT (Data,V ar,Abs)
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x03, // REPORT_SIZE (3)
0x91, 0x03, // OUTPUT (Cnst,V ar,Abs)
0x95, 0x06, // REPORT_COUNT (6)
0x75, 0x08, // REPORT_SIZE (8)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0xFF, // LOGICAL_MAXIMUM (255)
0x05, 0x07, // USAGE_PAGE (Keyboard)
0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated))
0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application)
0x81, 0x00, // INPUT (Data,Ary,Abs)
0xc0 // END_COLLECTION
};
具体分析如下:
code char KeyBoardReportDescriptor[63] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
// 分析
根据HID短项目数据格式
短项目的编码形式如下:
Bits 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
[data] [data] bTag bType bSize
0x05 = 0000 0101
0000: Usage Page
01: bType, 全局(bType = 0:主项目;bType = 1:全局项目;bType = 2:区域项
目; )
01: bSize,1字节(BSize 用来指出项目的数据所需字节的数目,该数目仅可以为0
(当bSize=0) ,1(当bSize=1) ,2(当bSize=2) ,和4(当bSize=3)﹔注意不可以为3个
字节。大部分的卷标仅需一个字节的数据﹔全局项目的卷标Unit 比较特殊有可能最多用到
4 个字节来表示其资料。 )
0x01: Generic Desktop(查文档Universal Serial Bus HID Usage Tables,第三节
Usage Pages)
0x09, 0x06, // USAGE (Keyboard)
// 分析
0x09 = 00001001
剩余11页未读,继续阅读
资源评论
- windyhll2013-11-30很好用,谢谢
- 密码之名2014-07-14不错的东西 ,很好的 !!!!!
- foresightyj2014-08-19不可多得的对HID的详细介绍。特别是关于Collection的描述。官方的解释实在是烂。
- blxyID2020-12-25非常详细,谢谢!
- FL智能2014-08-20感谢分享, 自己整理的分数高点也没什么; 这文档说了报告描述符各项是怎么构成的, 如果要找"为什么要这样构成"的同学可能要失望了.
西伯利亚的风
- 粉丝: 32
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功