1. 文档基础信息
本文档为极海半导体应用笔记AN1095,版本 V1.0,文档完整介绍 APM32 USB Device Library(USB 设备库),内容包含库简介、软件分层架构、文件目录、核心数据结构、各类 USB 设备类驱动、工程配置步骤与初始化流程。 该文档用于指导开发者基于 APM32 系列 MCU 快速开发 USB 从机(Device)功能,实现各类 USB 标准设备。
资料获取:APM32 USB Device Library应用笔记
2. 适用 MCU 产品范围
本 USB 设备库适配全部片上具备 USB 外设的 APM32 系列 MCU,文档列出的型号清单: APM32F072xx、APM32L072xx、APM32F10x、APM32E10x、APM32S10x、APM32F4xx。
3. USB Device Library 整体能力清单
SDK 库内部包含完整组件:
- 各芯片系列底层 USB 硬件驱动;
- USB 设备标准库驱动;
- 公用 USB 设备类驱动;
- 支持 USB 全速、高速模式;支持控制、中断、批量、同步四种 USB 传输类型;
- 内置 5 大类 USB 设备示例代码:
- CDC:通信设备类,实现虚拟 COM 口,USB 转 RS232 桥接;
- HID:人机接口设备,例程实现按键模拟鼠标滚轮;
- Custom HID (CHID):自定义 HID,支持 HID 输入输出双向数据;
- MSC:大容量存储类,可基于 SRAM、SD Card、NorFlash 模拟 U 盘;
- WinUSB:微软 WinUSB1.0 免驱批量传输设备,Windows 系统无需安装第三方驱动。
4. USB 设备库五层软件架构总览
整体架构自上而下分为五层:
- Application 应用层:用户业务应用代码,处于架构最顶层;
- USB Device Library 库层,内部再拆分为 Core 内核模块、Class 设备类模块;
- Core 内核模块:包含 Core 状态机、Translation 传输处理、Request 标准请求处理;
- Class 类模块:CDC、HID、CHID、MSC、WinUSB 各类协议实现;
- Device Configuration 设备配置层:描述符、硬件参数、回调配置;
- Device Driver 设备驱动层:芯片抽象层,适配不同 APM32 芯片 USB 硬件差异;
- USB Driver 硬件驱动层:直接操作 MCU USB 外设寄存器的底层驱动。
Core 模块与 Class 模块相互调用,Class 驱动通过USBD_Init()函数挂载链接至 USB 内核。
5. 库面向的落地业务应用场景
依托库内置的五类设备类,可实现嵌入式产品中常见 USB 从机功能:
阅读全文
58