USB HID报告描述符标签代码(0x05/0x09/0xA1)来源咨询
USB HID描述符中0x05、0x09、0xA1字节的定义来源
这些字节是HID规范中Item前缀编码,定义在HID 1.11文档的**第6章(HID Descriptors)的6.2.2节(Item Format)**里,下面逐个拆解:
0x05:这是**Usage Page(全局项)**的前缀编码(当参数长度为1字节时)。它的字节结构是:- 高2位(Size):
01→ 表示后续跟着1字节数据 - 中间2位(Type):
01→ 全局项(Global Item) - 低4位(Tag):
0000→ 对应Usage Page标签
你看到的0x05后面的0x01才是通用桌面Usage Page的ID,0x05本身是用来标识「接下来的字节是Usage Page值」的前缀。
- 高2位(Size):
0x09:这是**Usage(局部项)**的前缀编码(参数长度1字节时):- 高2位(Size):
01→ 1字节参数 - 中间2位(Type):
10→ 局部项(Local Item) - 低4位(Tag):
0001→ 对应Usage标签
它后面跟着的是具体的Usage ID(比如鼠标的0x02、键盘的0x06)。
- 高2位(Size):
0xA1:这是**Collection(主项)**的前缀编码(参数长度1字节时):- 高2位(Size):
01→ 1字节参数 - 中间2位(Type):
00→ 主项(Main Item) - 低4位(Tag):
1010→ 对应Collection标签
后续的字节是集合类型,比如0x01代表Application(应用级集合,比如完整的鼠标/键盘设备)。
- 高2位(Size):
简单来说,这些字节是用来「描述后续数据的类型和长度」的元数据,和Usage Page/Usage的ID是两个不同的概念——前者是HID描述符的语法规则,后者是具体的功能定义。
内容的提问来源于stack exchange,提问作者Shaw Kobayashi
相关产品推荐
相关产品推荐

