HID设备示例
+ -

USB-BOOT鼠标

2025-04-02 0 0

设备描述符

12 01 10 01 00 00 00 08 
4F 1C 34 00 10 01 01 02 
00 01

解析后:

0x12,        // bLength
0x01,        // bDescriptorType (Device)
0x10, 0x01,  // bcdUSB 1.10
0x00,        // bDeviceClass (Use class information in the Interface Descriptors)
0x00,        // bDeviceSubClass 
0x00,        // bDeviceProtocol 
0x08,        // bMaxPacketSize0 8
0x4F, 0x1C,  // idVendor 0x1C4F
0x34, 0x00,  // idProduct 0x34
0x10, 0x01,  // bcdDevice 2.10
0x01,        // iManufacturer (String Index)
0x02,        // iProduct (String Index)
0x00,        // iSerialNumber (String Index)
0x01,        // bNumConfigurations 1

// 18 bytes

配置描述符

09 02 22 00 01 01 00 A0 
32 09 04 00 00 01 03 01 
02 00 09 21 10 01 00 01 
22 34 00 07 05 81 03 04 
00 0A

解析后:

0x09,        //   bLength
0x02,        //   bDescriptorType (Configuration)
0x22, 0x00,  //   wTotalLength 34
0x01,        //   bNumInterfaces 1
0x01,        //   bConfigurationValue
0x00,        //   iConfiguration (String Index)
0xA0,        //   bmAttributes Remote Wakeup
0x32,        //   bMaxPower 100mA

0x09,        //   bLength
0x04,        //   bDescriptorType (Interface)
0x00,        //   bInterfaceNumber 0
0x00,        //   bAlternateSetting
0x01,        //   bNumEndpoints 1
0x03,        //   bInterfaceClass
0x01,        //   bInterfaceSubClass
0x02,        //   bInterfaceProtocol
0x00,        //   iInterface (String Index)

0x09,        //   bLength
0x21,        //   bDescriptorType (HID)
0x10, 0x01,  //   bcdHID 1.10
0x00,        //   bCountryCode
0x01,        //   bNumDescriptors
0x22,        //   bDescriptorType[0] (HID)
0x34, 0x00,  //   wDescriptorLength[0] 52

0x07,        //   bLength
0x05,        //   bDescriptorType (Endpoint)
0x81,        //   bEndpointAddress (IN/D2H)
0x03,        //   bmAttributes (Interrupt)
0x04, 0x00,  //   wMaxPacketSize 4
0x0A,        //   bInterval 10 (unit depends on device speed)

// 34 bytes

GetProtocol

USB请求:A1 03 00 00 00 00 01 00 
数据返回:00

解释详见:https://www.usbzh.com/article/detail-107.html

通讯数据

数据格式分析:https://www.usbzh.com/article/detail-327.html

00 00 FF 00 
00 FF FC 00 
00 FF F8 00 
00 00 FB 00 
00 FF FC 00 
...
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 获取协议请求GetProtocol
GetProtocol用于获取HID设备的协议值。对于USB引导BOOT设备,该协议是必须对;对于非引导设备,是可选的。详见:USB请求bmRequestType(1):0xa1bRequest(1): GetProtocol,值为03wValue(2):0wIndex(2):接口IDwLen......
USB-BOOT鼠标
设备描述符12 01 10 01 00 00 00 08 4F 1C 34 00 10 01 01 02 00 01解析后:0x12, // bLength0x01, // bDescriptorType (Device)0x10, 0x01, // bcd......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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