可视化解析HID前缀字节的位域结构、类型与编码规则
HID报告描述符中的前缀字节遵循严格的二进制编码结构,每个字节由三个部分组成:
| 比特位 (Bits) | 名称 | 含义 | 值示例 |
|---|---|---|---|
| Bit 4-7 (高4位) | bTag (标签) | 具体指令的功能标识 | 0x0: Usage Page 0x8: Input 0x9: Usage |
| Bit 2-3 | bType (类型) | 决定指令的作用范围 | 00: Main (主项) 01: Global (全局项) 10: Local (局部项) 11: 保留 |
| Bit 0-1 (低2位) | bSize (数据长度) | 指定紧随其后的数据字节数 | 00: 0字节 01: 1字节 10: 2字节 11: 4字节 |
通过以下工具计算或解析任意前缀字节:
二进制: 0000 0101
解析:
结论: 0x05告诉主机:"接下来这1个字节定义了一个全局的用途页。"
二进制: 0000 1001
解析:
结论: 0x09告诉主机:"接下来这1个字节定义了一个局部的具体用途。"
二进制: 1000 0001
解析:
结论: 0x81定义了一个输入字段,其属性由后续1个字节指定(如Data/Constant, Var/Array, Abs/Rel)。
在代码层面:前缀字节通常是硬编码的常量。开发者可以直接写出十六进制数值,或使用宏定义提高可读性:
在协议层面:前缀字节不是随意的,而是严格遵循HID规范的标准编码。不能随意发明前缀字节。
如果HID设备无法识别,请检查前缀字节的bSize是否与后续实际数据字节数匹配。例如:
0x05 (bSize=01,表示1字节数据),但后面跟了 0x00, 0x01 (2字节),主机解析器就会错位,导致后续所有字段解析错误。简而言之,前缀字节是HID语言的"语法关键字",必须准确无误,但可以通过宏或工具来辅助编写,避免直接记忆晦涩的十六进制码。
上一篇: 台式机自动关机怎么设置?
最近更新
相关内容
Copyright © 2023 - 2033 xxlxsoft.com All Rights Reserved.