USB组合设备——鼠标+键盘(两个接口实现)
文章目录
- 两个接口实现带鼠标功能的键盘
-
- 描述符结构
- 设备描述符
- 设置地址
- 配置描述符集合
-
- 配置描述符
- 键盘的接口描述符
-
- 接口描述符
- HID 描述符
- 端点描述符
- 鼠标的接口描述符
-
- 接口描述符
- HID 描述符
- 端点描述符
- 接口 1 字符串描述符(索引为 4)
- 接口 2 字符串描述符(索引为 5)
- HID 报告描述符
-
- 接口 1 的报告描述符
- 接口 2 的报告描述符
- set idle
-
- 接口 1 的 setidle
- 接口 2 的 setidle
- 报告的返回
-
- 键盘的报告
- 鼠标的报告
- 复合设备:Compound Device 内嵌 Hub 和多个 Function,每个 Function 都相当于一个独立的 USB 外设,有自己的 PID/VID/DID。
- 组合设备:Composite Device 内只有一个 Function,只有一套 PID/VID/DID。
这里使用组合设备来实现
两个接口实现带鼠标功能的键盘
要实现带鼠标功能的键盘有两种方式
- 一个接口,但是使用两个应用集合和两个报告
- 两个接口,分别实现键盘和鼠标
上一章中介绍了使用一个接口两个集合来实现,实现参考 USB组合设备——鼠标加+键盘(一个接口实现),
这一章使用两个接口实现
描述符结构
USB - 描述符之间的关系 中可以知道,多个接口实现时,一个接口实现鼠标,一个接口实现键盘,所以此时的配置描述符集合为