一、USBX 架构层次(以 Device 为例)
USBX 分为四层结构,从上到下依次为:

-
USBX Application (APP)
- 用户应用程序,调用 USBX API 实现功能。
-
Class Layer
-
实现 USB 设备类规范,如:
-
CDC(通信设备类,如虚拟串口)
-
HID(人机接口设备)
-
Audio Class(音频设备)
-
MISC(其他类)
-
-
-
Stack Layer
-
提供通用的 USB 协议栈功能:
-
描述符管理
-
端点的读写(
read/write等) -
设备状态管理
-
-
-
Controller Layer (HAL 层)
-
硬件抽象层,对接具体 USB 控制器硬件。
-
提供底层硬件操作接口。
-
最底层是 USB Device Controller 硬件。
二、USBX 运行模式配置(在 ux_user.h 中)
1. RTOS 模式(默认)
-
依赖 ThreadX,可使用阻塞式读写函数。
-
示例(CDC ACM 类):
cs_ux_device_class_cdc_acm_read() // 阻塞读 _ux_device_class_cdc_acm_write() // 阻塞写
2. 独立模式(Standalone Mode)
-
不依赖 ThreadX,使用非阻塞函数 + 回调机制。
-
需定义宏:
cs#define UX_STANDALONE -
函数示例:
cs_ux_device_class_cdc_acm_read_run() // 非阻塞读 _ux_device_class_cdc_acm_write_run() // 非阻塞写
三、关键配置选项
| 宏定义 | 功能说明 |
|---|---|
UX_STANDALONE |
启用独立模式(无 RTOS) |
UX_DEVICE_CLASS_CDC_ACM_TRANSMISSION_DISABLE |
禁用 CDC ACM 非阻塞传输(仅用于 RTOS 模式) |
UX_HOST_SIDE_ONLY |
仅启用 USB Host 功能 |
UX_DEVICE_SIDE_ONLY |
仅启用 USB Device 功能(常用) |
四、重要函数对比(以 CDC ACM 为例)
| 模式 | 函数类型 | 函数名 | 特点 |
|---|---|---|---|
| RTOS 模式 | 阻塞式 | _ux_device_class_cdc_acm_read/write |
传输期间线程阻塞,完成唤醒 |
| 独立模式 | 非阻塞式 | _ux_device_class_cdc_acm_read_run/write_run |
立即返回,需回调函数处理完成事件 |