USB通信设备类CDC简介
USB通信设备类CDC分类编号为0x0a,且必须指定为接口设备类。
USB 通信设备类(或USB CDC类)是一个复合通用串行总线 设备类。
通信设备类用于类似于网卡的计算机网络设备,提供用于将以太网或ATM帧传输到某些物理介质的接口。它还用于调制解调器、ISDN、传真机和电话应用程序以执行常规语音呼叫。
Windows Vista之前的Microsoft Windows版本不与 USB CDC 的网络部分一起使用,而是使用 Microsoft 自己的衍生产品Microsoft RNDIS ,这是Microsoft NDIS(网络驱动程序接口规范)的序列化版本。通过供应商提供的INF 文件,Windows Vista 可以与 USB CDC 和 USB WMCDC 设备一起使用。
此类可用于 CNC 机械等工业设备,以允许从旧的RS-232串行控制器和机器人进行升级,因为它们可以保持软件兼容性。该设备连接到 RS-232 通信线路,USB 端的操作系统使 USB 设备显示为传统的 RS-232 端口。Prolific Technology、FTDI、Microchip和Atmel等芯片制造商为开发 USB RS-232 设备提供了便利。
此类设备也在嵌入式系统(例如移动电话)中实现,因此电话可以用作调制解调器、传真或网络端口。数据接口通常用于执行批量数据传输。
CDC实现示例
通信设备类 (CDC)支持范围广泛的可以执行电信和网络功能的设备。通讯设备的例子有:
- 使用CDC的ACM(抽象控制模型)子类模拟虚拟 COM 端口。使用CDC的ACM(抽象控制模型)子类使用RDNIS协议模拟网络连接。这支持Windows 主机 PC 和嵌入式设备之间的 USB 网络连接,以及USB 设备 RNDIS 到以太网桥应用程序。
- 使用 CDC 的NCM(网络控制模型)子类模拟以太网适配器(仅适用于USB 设备)。使用 CDC (NCM),您可以在基于 Linux 的主机系统上创建Ethernet-over-USB(适用于 Linux 主机)应用程序。
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 端点的标准端点描述符