USB为了实现不同的应用, 将具有特定属性与服务的一类设备划分为一个Class。
如果提供相似格式的数据流或者相似的与主机交换方式,两个设备则被统一在一个
Class 中。 如 USB 标准就有 Audio Class 、 Communications Device Class、
HIDClass、Video Class 等用于在 USB 接口上实现不同的设备接口。在 USB 标准
协议中,有一类专用于通讯设备(主要包括电信通信设备和中速网络通信设备)的
CDC 协议,USB 的 CDC 类是 USB 通信设备类(Communication Device Class Specification )
的简称。可以通过 USB CDC 协议来将 USB 接口虚拟为其他通讯接口如串口,以太
网接口,ISDN 接口等等。根据 CDC 协议所针对通信设备的不同,CDC 协议又被分
成以下不同的模型: USB 传统电话业务(POTS )模型, USB ISDN 模型和 USB网
络模型(如图所示)。本文就是通过 USB CDC 的网络模型来虚拟以太网接口。
CDC类
|
----------------------------------------------------------
| | |
电话(POST)模型 ISDN模型 网络模型
|
--------------------------------
| |
ATM网络控制模型 以太网控制模型
图 USB CDC 通讯设备类结构
CDC 协议由根据不同的功能可以分为三个部分:通讯设备类(Communication
Devices Class) 、通讯接口类(Communication Interface Class) 、和数据接口
类(Data Interface Class)。通讯设备类是设备层次的定义,通常用于标示一个通讯
设备与该设备可以提供相应的接口。通讯接口类则定义了相应的通讯服务,包括如何
对设备进行管理和控制,数据接口类则定义了如何传送数据。
在 USB CDC 协议中首先定义了以太网控制模型(ECM)用于配置与控制虚拟以太
网接口,随后的补充协议中又定义了以太网仿真模型(EEM)用于封装与发送以太网包。
以太网控制模型
USB 以太网控制模型( ECM)用于规范 USB 虚拟以太网接口配置与控制。 ECM
符合 CDC 协议, 主要包括两个接口: 数据接口与通讯接口。
通讯接口类来用于配置与管理以太网的各种功能,主要包括 CDC 的枚举配置,
虚拟以太网接口的配置,报告虚拟以太网接口的状态。CDC 的枚举配置用于告知主机
使用 CDC 来通讯,虚拟以太网接口的配置用于设置以太网的一些通用参数如组播、接
收以太网包的过滤器、电源管理模式等。数据接口则用于在 USB 总线上交换 USB数据
包,这些 USB 数据包封装了完整的以太网包。需要注意的是 ECM 并没有明确规定如何
对以太网包进行何种封装。