名称: usb-stack 描述: USB设备与主机栈实现专业知识 类别: 通信协议 允许工具:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
USB栈技能
概述
本技能为嵌入式系统提供USB设备与主机栈实现专业知识,涵盖描述符生成、设备类实现和协议调试。
能力
USB描述符生成
- 设备描述符配置
- 配置描述符
- 接口描述符
- 端点描述符
- 字符串描述符
- BOS描述符(USB 3.x)
设备类实现
- CDC(通信设备类)
- HID(人机接口设备)
- MSC(大容量存储类)
- DFU(设备固件升级)
- 音频类
- 视频类
- 自定义类实现
USB栈配置
- TinyUSB配置
- STM32 USB栈设置
- NXP USB栈集成
- Zephyr USB子系统
- 端点缓冲区管理
枚举与调试
- 枚举序列调试
- 协议分析
- USB分析仪集成
- 描述符验证
- 合规性测试
高级功能
- 复合设备配置
- USB供电
- 高速/全速选择
- 等时传输
- 中断传输
- 批量传输
DFU实现
- DFU引导加载程序设计
- 运行时DFU模式
- 分离与下载
- 上传能力
- 清单阶段处理
目标流程
device-driver-development.js- USB驱动程序实现bootloader-implementation.js- USB DFU引导加载程序hw-sw-interface-specification.js- USB接口规范
依赖项
- TinyUSB或供应商USB栈
- USB协议分析仪
- usb-tools(lsusb, usbmon)
使用场景
本技能在以下任务需求时调用:
- USB设备实现
- 设备类开发
- USB引导加载程序创建
- 协议调试
- 描述符优化
设备类示例
CDC虚拟COM端口
tusb_desc_interface_t cdc_interface = {
.bLength = sizeof(tusb_desc_interface_t),
.bDescriptorType = TUSB_DESC_INTERFACE,
.bInterfaceNumber = 0,
.bAlternateSetting = 0,
.bNumEndpoints = 2,
.bInterfaceClass = TUSB_CLASS_CDC,
.bInterfaceSubClass = CDC_COMM_SUBCLASS_ACM,
.bInterfaceProtocol = CDC_COMM_PROTOCOL_NONE,
.iInterface = 0
};
HID报告描述符
uint8_t const hid_report_desc[] = {
HID_USAGE_PAGE(HID_USAGE_PAGE_DESKTOP),
HID_USAGE(HID_USAGE_DESKTOP_MOUSE),
HID_COLLECTION(HID_COLLECTION_APPLICATION),
HID_USAGE(HID_USAGE_DESKTOP_POINTER),
HID_COLLECTION(HID_COLLECTION_PHYSICAL),
// ... 按钮和轴
HID_COLLECTION_END,
HID_COLLECTION_END
};
配置
usb:
vid: 0x1234
pid: 0x5678
device_class: cdc | hid | msc | dfu | composite
speed: full | high
endpoints:
- ep1_in: bulk, 64
- ep1_out: bulk, 64