USB

瑞昱 USB 应用

USB

集成内置 PHY 的 USB 2.0,支持多样 Host、Device 与 OTG 应用

概览

Ameba 系列 SoC 集成了 USB 2.0 控制器并内置了 PHY 模块,提供了丰富的 USB 主机、设备和双角色解决方案,支持通信、多媒体、存储、人机交互等多种应用场景,其性能、兼容性和可靠性已经众多客户大量实际产品充分验证。

Ameba USB 2.0 解决方案

USB 类简介

CDC ACM (USB Communication Device Class - Abstract Control Model)

CDC ACM 是 USB CDC 类中最常用的子类,模拟串行通信端口(虚拟串口),允许主机通过 USB 与设备进行串行数据通信,广泛用于调试、透传通信、数据传输、自定义通信协议等场景。

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Bulk IN 1 必需 用于设备到主机数据传输
Bulk OUT 1 必需 用于主机到设备数据传输
Interrupt IN 1 可选 用于通知/状态更新
CDC ACM 主机

CDC ACM 主机

  • 功能描述:连接 USB 转串口设备、调制解调器等,在主机侧生成虚拟串口(如 /dev/ttyACM0、COM 端口),实现串行数据通信
  • 典型应用:工业网关、PLC 控制器、嵌入式开发板调试接口、4G/5G 模块 AT 指令通道等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr
CDC ACM 设备

CDC ACM 设备

  • 功能描述:模拟 USB 虚拟串口设备,主机免驱识别为标准 COM 口,支持双向数据收发,常用于固件调试日志输出与命令交互
  • 典型应用:USB 转串口模块、IoT 模组调试接口、USB 烧录工具、无线模块 AT 指令接口等
  • 支持的 SDK:FreeRTOS、Linux


CDC ECM (USB Communication Device Class - Ethernet Control Model)

CDC ECM 是 USB CDC 类的以太网子类,允许 USB 设备模拟标准以太网网卡,主机通过 USB 接口获得网络连接能力。类似的 USB CDC 网络子类还有 CDC NCM 和 RNDIS,三者主要区别如下:

协议 标准来源 吞吐性能 特性
CDC ECM USB-IF 中等 标准以太网帧封装,Linux/macOS/Win 10+ 免驱支持
CDC NCM USB-IF 最高 多帧聚合传输,高吞吐量,嵌入式端实现成本高,Linux/macOS/Win 8.1+ 免驱支持
RNDIS Microsoft 中等 非 USB-IF 标准,属微软私有协议,Windows 免驱支持,在其它平台上逐渐被边缘化

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Bulk IN 1 必需 用于设备到主机数据传输
Bulk OUT 1 必需 用于主机到设备数据传输
Interrupt IN 1 可选 用于通知/状态更新
CDC ECM 主机

CDC ECM 主机

  • 功能描述:连接 USB 网络适配器、4G/5G USB 网卡等设备,在主机侧生成标准以太网接口(如 eth0、usb0),实现 USB 网络共享
  • 典型应用:工业路由器、嵌入式 Linux 网关、USB 有线网卡适配器、移动 Wi-Fi 热点等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr
CDC ECM 设备

CDC ECM 设备

  • 功能描述:模拟 USB 以太网网卡,主机通过 USB 接口获得网络访问能力,支持 TCP/IP 协议栈,结合 Wi-Fi 可实现 USB 共享上网功能
  • 典型应用:USB 网络共享模块(USB Tethering)、Wi-Fi 转 USB 有线网卡、4G/5G USB 网络棒、嵌入式网络调试接口等
  • 支持的 SDK:FreeRTOS、Linux


HID (USB Human Interface Device Class)

HID 是 USB-IF 定义的标准人机交互设备类协议,允许主机与输入/输出设备之间进行数据交互。

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Interrupt IN 1 必需 用于设备到主机数据传输
Interrupt OUT 1 可选 用于主机到设备数据传输
HID 主机

HID 主机

  • 功能描述:连接 USB 键盘、鼠标、游戏手柄、触控板等 HID 设备,通过 Report Descriptor 解析输入数据
  • 典型应用:智能电视、机顶盒、游戏主机、工业控制终端等
  • 支持的 SDK:Linux
HID 设备

HID 设备

  • 功能描述:模拟 USB HID 设备,通过 Report Descriptor 向主机上报按键、坐标、传感器等数据
  • 典型应用:USB 键盘、USB 鼠标、无线游戏手柄接收器、USB 自定义数据采集设备等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr


MSC (USB Mass Storage Class)

MSC 是 USB-IF 定义的标准大容量存储设备类协议,通过 SCSI 命令集实现主机对存储介质的读写访问,支持 U 盘、移动硬盘、读卡器等存储设备的即插即用。

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Bulk IN 1 必需 用于设备到主机数据传输
Bulk OUT 1 必需 用于主机到设备数据传输
MSC 主机

MSC 主机

  • 功能描述:连接 USB 存储设备,通过 SCSI 命令对存储介质进行读写操作,支持 FAT32、exFAT 等文件系统的挂载与访问
  • 典型应用:智能电视、车载娱乐系统、工业数据采集终端、嵌入式 OTA 升级系统、NAS 存储设备等
  • 支持的 SDK:FreeRTOS(仅支持 FAT32 设备)、Linux
MSC 设备

MSC 设备

  • 功能描述:模拟 USB 大容量存储设备,将 SD 卡、eMMC 等存储介质以标准 SCSI LUN 方式暴露给主机,实现文件传输和固件升级
  • 典型应用:U 盘、USB 读卡器、USB 移动固态硬盘、IoT 设备固件升级接口、USB 数据记录仪等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr


UAC (USB Audio Class)

UAC 是 USB-IF 定义的标准音频设备类协议,允许主机与设备之间进行音频传输(放音、录音)与控制(音量、静音等),目前 Ameba USB 协议栈支持 UAC 1.0 和 UAC 2.0,各协议版本之间的基本差异如下:

版本 最高采样率 特性
UAC 1.0 96kHz / 24bit 基础音频流,同步传输
UAC 2.0 384kHz / 32bit 高分辨率音频,反馈机制,省电
UAC 3.0 768kHz+ 低功耗模式,Power Domains

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Isochronous IN 1 可选 用于从设备到主机音频录制
Isochronous OUT 1 可选 用于从主机到设备音频播放
UAC 主机

UAC 主机

  • 功能描述:连接 Type-C 耳机、USB 麦克风、USB 扬声器等 USB 音频设备,实现音频传输与控制功能
  • 典型应用:智能门铃、智能音箱、智能电视、智能音频模块等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr
UAC 设备

UAC 设备

  • 功能描述:模拟 USB 声卡,支持主机的音频传输和控制请求,结合音频、蓝牙、Wi-Fi 等接口,可实现有线及无线音频传输功能
  • 典型应用:USB 麦克风、USB 扬声器、USB 声卡、无线音频模块等
  • 支持的 SDK:FreeRTOS、Linux


UVC (USB Video Class)

UVC 是 USB-IF 定义的标准视频设备类协议,允许主机与摄像头、视频采集设备之间进行视频流传输与控制。

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Isochronous IN 1 必需 用于从设备到主机视频流传输
Interrupt IN 1 可选 用于视频控制和状态通知
UVC 主机

UVC 主机

  • 功能描述:连接 USB 摄像头、视频采集卡等 UVC 设备,获取视频流并进行处理,结合 Wi-Fi 可实现视频流无线转发
  • 典型应用:智能门铃、视频会议终端、工业视觉检测、嵌入式人脸识别系统、直播采集设备等
  • 支持的 SDK:FreeRTOS、Linux
UVC 设备

UVC 设备

  • 功能描述:模拟 USB 摄像头,向主机提供标准视频流,结合图像传感器可实现完整的 USB 摄像头方案
  • 典型应用:USB 网络摄像头(Webcam)、USB 视频采集棒、USB 内窥镜、USB 工业相机等
  • 支持的 SDK:FreeRTOS


Vendor (USB 厂商自定义类)

Vendor 是 USB 协议中保留给厂商自定义的设备类(Class Code 0xFF),不受 USB-IF 标准类规范约束,厂商可根据业务需求自定义传输协议、端点配置与数据格式,配合专用驱动实现高度灵活的 USB 通信方案。

端点/通道配置

类型 数量 依赖类型 功能描述
Control IN/OUT 1 必需 用于设备枚举和类特定请求
Bulk/Interrupt/Isochronous 用户定义 可选 根据应用需求灵活配置
Vendor 主机

Vendor 主机

  • 功能描述:通过自定义驱动与自定义 USB 设备通信,支持灵活定义控制命令和数据传输协议,实现灵活的 USB 通信方案
  • 典型应用:USB 烧录器、USB 协议分析仪、工业自动化控制器、USB 数据采集系统等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr
Vendor 设备

Vendor 设备

  • 功能描述:以 Class Code 0xFF 向主机声明为厂商自定义设备,通过自定义端点与传输数据格式实现私有通信协议,实现定制化的 USB 功能
  • 典型应用:USB 无线传输模块、USB 加密狗、USB 固件升级接口等
  • 支持的 SDK:FreeRTOS、Linux、Zephyr

FreeRTOS USB 协议栈

Realtek 自主研发,提供广泛的 USB IF 标准类协议支持和简洁易用的编程接口, 具备高性能、高可靠性、高可配置性等核心优势, 已在众多客户的量产产品中经过充分验证。

Ameba FreeRTOS USB 协议栈
功能丰富
  • 支持丰富的 USB IF 标准类协议,覆盖主机端与设备端常用功能类,如 CDC ACM/ECM、HID、MSC、UAC、UVC 等
  • 支持复合功能主机/设备,通过单一 USB 接口同时承载多个功能类,满足多样化的应用需求
  • 支持厂商自定义主机/设备,可基于标准框架快速实现私有 USB 通信协议
  • 支持主机/设备双角色动态切换,适应灵活多变的连接拓扑
高可靠性
  • 自动检测总线错误,并提供自动重传机制,确保数据传输的完整性与可靠性
  • 自动检测连接状态,并提供防抖机制,有效规避因插拔抖动导致的误触发,保障系统稳定运行
  • 已在众多客户量产产品中经过长期验证
接口精简
  • 提供精简易用的异步回调式 API,显著降低用户学习成本,同时减少 CPU 调度开销,提升整体系统实时性能
  • 提供模板化的通用类驱动与应用开发范式,用户仅需实现少量回调接口即可完成定制化开发,大幅缩短产品研发周期
配置灵活
  • 设备描述符全定制,包括但不限于 VID/PID、设备字符串、端点配置等,满足品牌化定制需求
  • 类驱动与核心驱动参数可配置,支持针对不同应用场景进行精细化调优
  • 支持按需裁剪功能模块,适配资源受限的嵌入式平台

Linux USB 协议栈

复用 Linux 内核原生 USB 框架, 完整兼容 Linux 标准 USB 生态, 天然支持 Linux 社区持续演进的全量 USB 主机端与设备端功能类, 最大化降低用户的软件开发与维护成本。

Ameba Linux USB 协议栈
生态兼容
  • 上层协议栈完全复用 Linux 内核原生 USB 子系统, 完整兼容 Linux 标准 USB 主机端与设备端框架, 以及用户态 USB 访问接口,与主流软件生态无缝集成
  • 天然支持 Linux 内核所有已集成的 USB 标准类驱动, 包括 CDC ACM/ECM/NCM、HID、MSC、UAC、UVC 等
  • 随 Linux 内核版本持续迭代更新,及时获得功能增强、 安全修复与性能优化
驱动优化
  • 提供底层 USB PHY 驱动,支持通过 DTS 灵活配置校准参数
  • 针对 Ameba 系列芯片 USB 硬件特性,对原生 USB 控制器驱动进行若干优化,提高可靠性

Zephyr USB 协议栈

Realtek 自主研发,相比原生 Zephyr USB 协议栈仅提供有限的设备模式支持, Ameba Zephyr USB 协议栈更加成熟稳定,且额外提供完整的 USB 主机端协议栈支持, 填补了原生协议栈在主机功能方面的空白。

Ameba Zephyr USB 协议栈
功能丰富
  • 支持丰富的 USB-IF 标准类协议,覆盖主机端与设备端常用功能类, 如 CDC ACM、HID、MSC、UAC 等
  • 支持复合功能主机/设备,通过单一 USB 接口同时承载多个功能类, 满足多样化的应用需求
  • 支持厂商自定义主机/设备,可基于标准框架快速实现私有 USB 通信协议
  • 相较于 Zephyr 原生 USB 协议栈,额外提供完整的 USB 主机端协议栈支持
成熟稳定
  • 与 FreeRTOS SDK 共用经过充分验证的 USB 协议栈核心驱动代码, 相较于 Zephyr 原生 USB 协议栈具备更高的工程成熟度与可靠性
  • 自动检测总线错误,并提供自动重传机制,确保数据传输的完整性与可靠性
  • 自动检测连接状态,并提供防抖机制,有效规避因插拔抖动导致的误触发,保障系统稳定运行
接口精简
  • 提供精简易用的异步回调式 API,显著降低用户学习成本,同时减少 CPU 调度开销,提升整体系统实时性能
  • 提供模板化的通用类驱动与应用开发范式,用户仅需实现少量回调接口即可完成定制化开发,大幅缩短产品研发周期
配置灵活
  • 设备描述符全定制,包括 VID/PID、设备字符串、接口数量与端点配置等, 满足品牌化定制需求
  • 类驱动与核心驱动参数可配置,支持针对不同应用场景进行精细化调优
  • 与 Zephyr 编译系统深度集成,支持按需裁剪功能模块, 有效控制固件体积,适配资源受限的嵌入式平台

典型应用

  • USB 音视频传输: 智能猫眼、智能门铃、智能门锁、智能监控、图像采集、智能音箱等应用场景
  • USB 4G/以太网通信:物联网网关、移动热点、以太网网卡、智能监控等应用场景
  • USB 外部存储:智能音箱、数据采集、OTA 升级、远程文件管理、智能影音等应用场景
  • USB 透传通信:串口通信、用户自定义通信协议等应用场景
  • USB 音频设备: 耳机、麦克风、扬声器、智能音箱、智能广播等有线及无线音频应用场景
  • USB HID 设备:智能遥控器、智能键鼠、游戏手柄、远程控制等人机交互应用场景
  • USB 存储设备:点读笔、录音笔、音频播放器、无线存储等应用场景
  • USB 透传通信:串口通信、用户自定义通信协议等应用场景
  • USB 无线网卡:USB 无线网卡
  • 车载 CarPlay 互联终端: 上电时处于设备模式,完成必要的认证流程,认证通过后切换为主机模式,主动与车机设备建立 NCM 和 iAP2 通信以实现 CarPlay 功能
  • 数据采集设备:在主机模式下,连接扫码枪或传感器(HID/CDC)采集现场数据,当连接 PC 时切换为设备模式,模拟成串口或 U 盘,将采集的数据批量上传至管理系统
  • USB 存储设备:在主机模式下,访问 U 盘等外部存储介质,当连接 PC 时切换为 MSC 设备模式,方便用户导入/导出文件,适用于智能音箱、智能记录仪等应用场景

开发资源

图标资源名称链接
SDK 下载 查看
FreeRTOS USB 开发指南 查看
Linux USB 开发指南 查看
Zephyr USB 开发指南 查看
联系我们 查看


推荐 IC 型号

功能 筛选 RTL8721Dx RTL8720E RTL8710E RTL8726E RTL8713E RTL8730E RTL8721F RTL872xD RTL8735B
应用处理器
Cortex-M Cortex-M Cortex-M Cortex-M Cortex-M Cortex-A Cortex-M Cortex-M Cortex-M
DSP
ISP?
Arm TrustZone
双频?
Wi-Fi 6
R-MESH?
超低功耗
以太网
BT 双模
HMI?
Audio ADC?
Audio DAC?
SDIO Host
SD/EMMC Host
USB
BT 独立天线?
CAN?


Feature RTL8721Dx RTL8730E RTL872xD RTL8721F RTL8735B
高速模式 (480Mbps)
全速模式 (12Mbps)
主机模式
外设模式
外设 IN 端点数量 4 4 4 6 4
外设 OUT 端点数量 4 4 4 6 4
主机通道数量 8 8 12 8