USB-接口描述符(四)

 USB 鼠标详解阅读顺序

1、枚举

2、设备描述符

3、设置地址

4、配置描述符

5、接口描述符

6、HID 描述符

7、端点描述符

8、字符串描述符

9、HID 报告描述符

10、HID 报告的返回

 

linux 内核中对接口描述符的定义,目录:linux/include/uapi/linux/usb/ch9.h

/* USB_DT_INTERFACE: Interface descriptor */
struct usb_interface_descriptor {
	__u8  bLength;
	__u8  bDescriptorType;

	__u8  bInterfaceNumber;
	__u8  bAlternateSetting;
	__u8  bNumEndpoints;
	__u8  bInterfaceClass;
	__u8  bInterfaceSubClass;
	__u8  bInterfaceProtocol;
	__u8  iInterface;
} __attribute__ ((packed));

bLength:该描述符的长度。标准的 USB 接口描述符的长度为 9 字节

bDescriptorType:描述符的类型。接口描述符的类型编码为 0x04

bInterfaceNumber:该接口的编号。当一个配置具有多个接口时,每个接口的编号都不同

bAlternateSetting:该接口的备用编号

bNumEndpoints:该接口所使用的端点数目(不包括 0 端点)

bInterfaceClass:接口所使用的类

bInterfaceSubClass:接口所使用的子类

bInterfaceProtocol:接口所使用的协议

iInterface:接口的字符串的索引值

0x09 bLength字段。接口描述符的长度为 9 字节

0x04 bDescriptorType字段。接口描述符的编号为 0x04

0x00 bInterfaceNumber字段。该接口的编号,第一个接口,编号为0

0x00 bAlternateSetting字段。该接口的备用编号,为0

0x01 bNumEndpoints字段。非0端点的数目。由于USB鼠标只需要一个中断输入端点,因此该值为1

0x03 bInterfaceClass字段。该接口所使用的类。USB鼠标是HID类,HID类的编码为0x03

0x01 bInterfaceSubClass字段。该接口所使用的子类。在HID1.1协议中只规定了一种子类:支持BIOS引导启动的子类。USB键盘、鼠标属于该子类,子类代码为0x01。

0x02 bInterfaceProtocol字段。如果子类为支持引导启动的子类,则协议可选择鼠标和键盘。键盘代码为0x01,鼠标代码为0x02。

0x00 iConfiguration字段。该接口的字符串索引值。这里没有,为0。

发布了134 篇原创文章 · 获赞 21 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览