USB通信设备类CDC简介
2022-03-11
15528
6
什么是USB CDC?
USB CDC(Communications Device Class,通信设备类)是USB标准中的一类,专门用于支持各种通信设备(如调制解调器、网络适配器、串口设备等)在USB总线上与主机进行数据和控制信息的交换。CDC规范为这些设备在USB上的识别、配置、管理和数据传输提供了统一的架构和协议。
主要内容
1. 设备分类
USB通信设备的定义由三大类组成:
- 通信设备类(Communication Device Class):这是设备级别的定义,用于让主机正确识别一个通信设备,该设备可能包含多种不同类型的接口。
- 通信接口类(Communication Interface Class):定义了一种通用机制,可用于在USB上启用所有类型的通信服务。
- 数据接口类(Data Interface Class):定义了一种通用机制,当数据不符合其他类的要求时,可在USB上启用批量(Bulk)或同步(Isochronous)传输。
2. 支持的设备类型
- 模拟/数字调制解调器
- ISDN终端适配器
- 串口(虚拟COM口)
- 以太网/网络适配器(如USB转网卡)
- ADSL/电缆调制解调器等
3. 规范内容
- 标准描述符:定义了设备、接口、端点等的描述符格式。
- 类特定描述符:如功能描述符(Functional Descriptor),用于描述CDC设备的特定功能。
- 类特定请求:如设置多播过滤器、获取统计信息、设置包过滤等。
- 通知机制:通过中断端点向主机报告设备状态变化(如链路状态、速率变化等)。
- 数据传输机制:支持批量(Bulk)和同步(Isochronous)传输,适应不同类型的数据流。
4. 设计目标
- 通用性:支持多种通信设备和协议。
- 兼容性:尽量复用现有的通信协议和数据格式。
- 可扩展性:通过子类和协议代码支持不同的通信场景(如以太网、ATM等)。
应用场景
- USB转串口线(虚拟COM口)
- USB网卡(CDC-ECM/NCM)
- USB调制解调器
- 工业控制、医疗设备等需要USB通信的场合
规范意义
USB CDC规范为通信设备在USB上的互操作性和即插即用提供了标准基础,使得各种通信设备能够方便地通过USB接口与主机系统集成和通信,极大地简化了驱动开发和设备兼容性问题。
CDC类功能
通信设备具有三个基本任务:
- 设备管理(控制配置特定设备并通知 USB 主机某些事件)
- 呼叫管理(建立和终止电话呼叫或其他连接)
- 数据传输(发送和接收应用数据)
USB 组件中的 CDC 实现具有:
- 使用CDC的ACM(抽象控制模型)子类模拟虚拟 COM 端口。
- 使用CDC的ACM(抽象控制模型)子类使用RDNIS协议模拟网络连接。这支持Windows 主机 PC 和嵌入式设备之间的 USB 网络连接,以及USB 设备 RNDIS 到以太网桥应用程序。
- 使用 CDC 的NCM(网络控制模型)子类模拟以太网适配器(仅适用于USB 设备)。使用 CDC (NCM),您可以在基于 Linux 的主机系统上创建Ethernet-over-USB(适用于 Linux 主机)应用程序。
CDC端点
支持以下端点配置:
- 一个用于通知 USB 主机的中断 IN 端点
- 一个BULK输入和一个BULK输出端点用于数据传输
USB-IF CDC类规范文件
- 通信设备 1.2 的类定义
- 通信设备 1.1 的类定义
- 应用笔记,从 RS-232 迁移到 USB 桥接器规范。解释如何使用 USB CDC(通信设备类)ACM(抽象控制模型)来模拟 USB 上的串行端口
USB 描述符
USB CDC ACM 设备中需要以下描述符:
- 标准设备描述符
- 标准配置描述符
- 接口关联描述符
- CDC头功能描述符
- CDC 联合功能描述符
- 呼叫管理功能描述符
- 抽象控制管理功能描述符
- CDC 类通信接口的标准接口描述符
- 中断 IN 端点的标准端点描述符
- CDC 类数据接口的标准接口描述符
- Bulk IN 和 Bulk OUT 端点的标准端点描述符
USB CDC NCM 设备中需要以下描述符:
- 标准设备描述符
- 标准配置描述符
- 接口关联描述符
- CDC头功能描述符
- CDC 联合功能描述符
- CDC 以太网网络功能描述符
- NCM 功能描述符
- CDC 类通信接口的标准接口描述符
- 中断 IN 端点的标准端点描述符
- CDC 类数据接口的标准接口描述符
- Bulk IN 和 Bulk OUT 端点的标准端点描述符