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

HID 报表描述符键盘实例

2020-09-23 5130 2

通过下面的报告描述符的定义,我们根据上面的注释可知,包含一个中断输入报表描述符和一个中断输出报告描述符。其中断输入报告描述符用于USB HID键盘中断输入端点,输出报表描述符用于USB HID键盘中断输出端点。

USB HID键盘的中断输入报告

对于中断输入端点,数据格式定义如下:

  • BYTE0:该字节的各位表示特殊按键是否按下,这些特殊的按键包括Shift,alt等。
  • BYTE1:该字节保留,值固定为00.
  • BYTE2-BYTE7:这6个字节表为一个6字节的数组,其中数组中的每一项可以表示按键的键值。当有多个普通的按键按下时,则应同时返回这些键的值。数组中各键的无先后顺序

USB HID键盘的中断输出报告

中断输出报告定义的数据长度是一个1字节的中输输出报告。其中低5位表示了相关指示灯的状态,高5位保留值为0.
USB HID键盘的中断输出报告用于操作系统对接入系统中的各个键盘之间的指示灯进行同步。当在一个键盘打开某个指示灯时,系统会同步连接到该中机中所有的指示灯,同步的方式就是通过USB HID键盘的中断输出报告。
所以对于USB HID键盘,并不用在键盘内部保留该键盘的指示灯是否亮,而是直接接收来自主机的中断输出报告,根据各指标灯的中断输出报告进行相应的指示灯状态设置。

USB HID键盘的报表描述符

USAGE_PAGE (Generic Desktop)                    05 01
USAGE (Keyboard)                                09 06
COLLECTION (Application)                        A1 01 

 //以下为输入报告描述符,用于中断输入端点
//输入报告描述符2字节,第一个字节各位代表的是控制键,第二个字为0,后面跟6个数组,用于普通按键键码
  USAGE_PAGE (Keyboard)                         05 07
  USAGE_MINIMUM (Keyboard LeftControl)          19 E0
  USAGE_MAXIMUM (Keyboard Right GUI)            29 E7
  LOGICAL_MINIMUM (0)                           15 00 
  LOGICAL_MAXIMUM (1)                           25 01 
  REPORT_SIZE (1)                               75 01 
  REPORT_COUNT (8)                              95 08 
  INPUT (Data,Var,Abs)                          81 02 
  REPORT_COUNT (1)                              95 01 
  REPORT_SIZE (8)                               75 08 
  INPUT (Cnst,Var,Abs)                          81 03 

  REPORT_COUNT (6)                              95 06 
  REPORT_SIZE (8)                               75 08 
  LOGICAL_MINIMUM (0)                           15 00 
  LOGICAL_MAXIMUM (101)                         25 65 
  USAGE_PAGE (Keyboard)                         05 07
  USAGE_MINIMUM (Reserved (no event indicated))    19 00
  USAGE_MAXIMUM (Keyboard Application)          29 65
  INPUT (Data,Ary,Abs)                          81 00 

//输出报告描述符,用于控制键盘灯
//以下为中断输出报告描述符,用于中断输出端点
//第一节字的低5位表示相应的指示灯,高3位为0
  REPORT_COUNT (5)                              95 05 
  REPORT_SIZE (1)                               75 01 
  USAGE_PAGE (LEDs)                             05 08
  USAGE_MINIMUM (Num Lock)                      19 01
  USAGE_MAXIMUM (Kana)                          29 05
  OUTPUT (Data,Var,Abs)                         91 02 
  REPORT_COUNT (1)                              95 01 
  REPORT_SIZE (3)                               75 03 
  OUTPUT (Cnst,Var,Abs)                         91 03 

END_COLLECTION                                  C0
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键盘设备数据抓包分析实践
本文使用 Bus Hound 工具对 USB HID 设备数据包进行分析,并结合官方手册及网上文章进行整理。在进行数据分析前,我们先回顾一下USB相关的基础知识。USB描述符USB 主机是通过各种描述符来识别设备的,有设备描述符,接口描述符,端点描述符,字符描述符,报告描述符(HID)等。和普通的......
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 ......
BIOS下识别USB键盘
在BIOS下要识别一个USB键盘和在操作系统下识别一个USB键盘其实是有一些区别的:首先接口描述符中bInterfaceClass的值必须为0x03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(Boot Device,一般对PC机而言才有意义,意思是BIO......
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鼠标,就是通过我们点击鼠标按键或滑动鼠标流轮实现给主机上报鼠标的报告信息。输出报告......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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