跳转到内容

USB CDC-ACM 接口

USB CDC-ACM(通信设备类 - 抽象控制模型)组件使支持的设备能够作为 USB 虚拟串口工作。当连接到主机时,微控制器将显示为一个或多个串口/COM 端口,允许与微控制器上运行的应用程序进行串行通信。

您必须在设备配置中包含 Tinyusb 才能使用此组件。

目前支持以下 ESP32 微控制器变体:

  • ESP32-P4
  • ESP32-S2
  • ESP32-S3
# 示例最小配置条目
usb_cdc_acm:
  • rx_buffer_size (可选, 整数):USB 接收缓冲区大小(字节)。范围:1-65535。默认值为 256
  • tx_buffer_size (可选, 整数):USB 发送缓冲区大小(字节)。范围:1-65535。默认值为 256
  • interfaces (可选, 列表):CDC-ACM 接口实例列表。最多支持两个;至少需要一个。默认为单项目列表,仅定义一个接口。

interfaces 列表中的每个接口包含以下内容:

  • id (可选, ID):此接口实例使用的 ID。用于在其他组件、平台或 lambda 中引用该接口。

USB CDC-ACM 组件支持在单个设备上最多两个同时运行的虚拟串口接口。这允许您通过单个物理 USB 连接创建多个独立的通信通道。

# 双接口配置示例
usb_cdc_acm:
interfaces:
- id: cdc_acm_1
- id: cdc_acm_2

在此配置中,设备将对主机显示为两个独立的串口/COM 端口。每个接口独立运行,拥有自己的数据缓冲区。

缓冲区大小决定了 USB 传输期间可以临时存储多少数据:

  • 小缓冲区(256 字节,默认值):适用于低带宽应用,节省 RAM
  • 大缓冲区(512-1024 字节):推荐用于高吞吐量应用或处理数据突发的情况

如果您遇到数据丢失或需要处理较大的数据包而不频繁轮询,请增加缓冲区大小。