HID报表描述符大全及实例分析
+ -

USB鼠标HID报告描述符数据格式分析

2021-05-07 6048 2

注意:这里的鼠标为普通鼠标报告描述符的信息解释,其并不适用于全鼠标报表描述符。
一个示例如下:


0x05,0x01, // Global Generic Desktop
0x09,0x02, // Local Mouse
0xa1,0x01, // Main app collection
0x09,0x01, // Local Pointer
0xa1,0x00, // Main phy collection
0x95,0x03, // Global ReportCount
0x75,0x01, // Global ReportSize
0x05,0x09, // Global Button
0x19,0x01, // Local Usage Min
0x29,0x03, // Local Usage Max
0x15,0x00, // Global Logical Min
0x25,0x01, // Global Logical Max
0x81,0x02, // Main Input(Data,Var,Abs)
0x95,0x01, // Global ReportCount
0x75,0x05, // Global ReportSize
0x81,0x03, // Main Input(Cnsr,Var,Abs)
0x95,0x03,0x75,0x08, // Global ReportCount Global ReportSize
0x05,0x01, // Global Generic Desktip
0x09,0x30, // Local X
0x09,0x31, // Local Y
0x09,0x38, // Locak Wheel
0x15,0x81, // Global Logical Min
0x25,0x7f, // Global Logical Max
0x81,0x06, // Main Input(Data,Var,Rel)
0xc0,      // Main End collection

鼠标发送给PC的数据每次4个字节。

  • BYTE1字节:
    • bit7~3:补充的常数,无意义,这里为0即可
    • bit2: 1表示中键按下
    • bit1: 1表示右键按下 0表示右键抬起
    • bit0: 1表示左键按下 0表示左键抬起
  • BYTE2 — X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量
  • BYTE3 — Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
  • BYTE4 — 滚轮变化。0x01表示滚轮向前滚动一格;0xFF表示滚轮向后滚动一格;0x80是个中间值,不滚动。

试验数据:

BYTE2 X坐标变化量,当BYTE1的bit4为0的时候,0x01~0x7F为向左移动,0x81~0xFF为向右移动,0x00,0x80为不移动。BYTE1的bit4为1的时候,依旧。试验数据是跟BYTE1的bit4没什么关系。

BYTE3的变化跟BYTE2的一样。
因此BYTE2/BYTE3/BYTE4的变化趋势都是一样的,中间是分界点,山峰结构。从低到高,再从高到低。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

HID 触摸屏的报表描述符
讲道理,这个触摸屏的报告描述符是我从网上搜索的一段代码,这个触摸屏的报告内容本人也进行了测试。测试是通过本站编写的虚拟触摸屏驱动实现的。0x05, 0x0d, // USAGE_PAGE (Digitizers) 0 0x......
HID 报表描述符数字显示实例
USAGE_PAGE (Alphnumeric Display) 05 14USAGE (Alphanumeric Display) 09 01LOGICAL_MINIMUM (0) 15 00 CO......
HID 报表描述符远程控制实例
USAGE_PAGE (Consumer Devices) 05 0CUSAGE (Consumer Control) 09 01COLLECTION (Application) A1 01 ......
USB键盘报告描述符数据格式分析
USB键盘的HID报表描述符的内容参见下表。数据的输入端点为中断方式,当有键盘敲击事件时,会上报数据长度为8字节的数据报告。0x05,0x01,// Global Generic Desktop0x09,0x06,// Local KeyBoard 0xA1,0x01,// Main app col......
HID 报表描述符键盘实例
通过下面的报告描述符的定义,我们根据上面的注释可知,包含一个中断输入报表描述符和一个中断输出报告描述符。其中断输入报告描述符用于USB HID键盘中断输入端点,输出报表描述符用于USB HID键盘中断输出端点。USB HID键盘的中断输入报告对于中断输入端点,数据格式定义如下:BYTE0:该字......
HID 报表描述符游戏手柄
LOGICAL_MINIMUM (0) 15 00 USAGE_PAGE (Generic Desktop) 05 01USAGE (Joystick) 09 04......
USB鼠标HID报告描述符数据格式分析
注意:这里的鼠标为普通鼠标报告描述符的信息解释,其并不适用于全鼠标报表描述符。一个示例如下:0x05,0x01, // Global Generic Desktop0x09,0x02, // Local Mouse0xa1,0x01, // Main app collection0x09,......
HID 报表描述符数字仪
USAGE_PAGE (Digitizers) 05 0DUSAGE (Digitizer) 09 01COLLECTION (Application) A1 01 ......
HID 报表描述符操纵杆实例
USAGE_PAGE (Generic Desktop) 05 01LOGICAL_MINIMUM (0) 15 00 USAGE (Joystick) 09 04CO......
HID 报表描述符开关电源实例
USAGE_PAGE (Power Device) 05 84USAGE (UPS) 09 04COLLECTION (Application) A1 01 ......
为什么Windows7重新安装系统后插在USB3.0端口的鼠标不能使用?
在 Windows 7 及更早版本的操作系统中,USB 3.0 驱动程序堆栈由第三方提供,操作系统不提供USB3.0驱动栈。 因此,Windows7重新安装系统后插在USB3.0端口上的所有设备都无法工作,需要安装第三方提供的USB控制器和集线器驱动,这样才能识别出挂接在该USB总线下的设备。从Wi......
HID 报表描述符监视器实例
USAGE_PAGE (Monitor) 05 80USAGE (Monitor Control) 09 01COLLECTION (Application) A1 01 ......
HID 报表描述符/报告描述符
报表描述符用于描述USB HID设备与主机之间数据交互的格式。根据数据的传输方向,分为输入报告和输出报告。输入报告是USB设备发送数据给主机的。大部分的USB HID设备主要实现的是输入报告。如我们平常使用的USB鼠标,就是通过我们点击鼠标按键或滑动鼠标流轮实现给主机上报鼠标的报告信息。输出报告......
HID 报表描述符电话实例
内容来源于USB官方HID报告描述符工具自带的tele.hidREPORT_COUNT (1) 95 01 USAGE_PAGE (Telephony Devices) 05 0BUSAGE (Phone) ......
USB键盘与HID报表描述符关系
报告描述符确实非常复杂,要看懂协议真得比较难(因为只有英文的),我见到的国内教材也没有对这部分写得很详细的,有的也只是部分内容的翻译而已。一般建议用示例报告描述符修改一下就可以了,《Hid Usage Table》里给出了一些常见应用的报告描述符。对于键盘类应用,通常用已有的示例已经够用了。“如果是......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!