• 正文
  • 相关推荐
申请入驻 产业图谱

APM32 USB Device Library 整体概览及应用定位

2小时前
58
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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 库内部包含完整组件:

  1. 各芯片系列底层 USB 硬件驱动;
  2. USB 设备标准库驱动;
  3. 公用 USB 设备类驱动;
  4. 支持 USB 全速、高速模式;支持控制、中断、批量、同步四种 USB 传输类型;
  5. 内置 5 大类 USB 设备示例代码:
    • CDC:通信设备类,实现虚拟 COM 口,USB 转 RS232 桥接;
    • HID:人机接口设备,例程实现按键模拟鼠标滚轮;
    • Custom HID (CHID):自定义 HID,支持 HID 输入输出双向数据;
    • MSC:大容量存储类,可基于 SRAM、SD Card、NorFlash 模拟 U 盘;
    • WinUSB:微软 WinUSB1.0 免驱批量传输设备,Windows 系统无需安装第三方驱动。

4. USB 设备库五层软件架构总览

整体架构自上而下分为五层:

  1. Application 应用层:用户业务应用代码,处于架构最顶层;
  2. USB Device Library 库层,内部再拆分为 Core 内核模块、Class 设备类模块;
    • Core 内核模块:包含 Core 状态机、Translation 传输处理、Request 标准请求处理;
    • Class 类模块:CDC、HID、CHID、MSC、WinUSB 各类协议实现;
  3. Device Configuration 设备配置层:描述符、硬件参数、回调配置;
  4. Device Driver 设备驱动层:芯片抽象层,适配不同 APM32 芯片 USB 硬件差异;
  5. USB Driver 硬件驱动层:直接操作 MCU USB 外设寄存器的底层驱动。

Core 模块与 Class 模块相互调用,Class 驱动通过USBD_Init()函数挂载链接至 USB 内核。

5. 库面向的落地业务应用场景

依托库内置的五类设备类,可实现嵌入式产品中常见 USB 从机功能:

  1. CDC 虚拟串口:设备 USB 转串口,调试打印、上位机通信,工业控制器、仪器仪表;
  2. HID 设备:鼠标、键盘、按键输入、自定义人机交互设备;
  3. Custom‑HID:双向高速自定义数据传输,不需要安装驱动的自定义通信设备;
  4. MSC 大容量存储:固件升级 U 盘模式、数据日志导出,把片内 Flash、外接 SD 卡虚拟为 U 盘;
  5. WinUSB 免驱批量传输:Windows 下高速批量数据采集、固件下载,不需要自定义 INF 驱动文件。

相关推荐