CDC Class Overview
A CDC device is composed of several interfaces to implement a certain function, that is communication capability. It is formed by the following interfaces:
- Communications Class Interface (CCI)
- Data Class Interface (DCI)
A CCI is responsible for the device management and optionally the call management. The device management enables the general configuration and control of the device and the notification of events to the host. The call management enables calls establishment and termination. Call management might be multiplexed through a DCI. A CCI is mandatory for all CDC devices. It identifies the CDC function by specifying the communication model supported by the CDC device. The interface(s) following the CCI can be any defined USB class interface, such as Audio or a vendor-specific interface. The vendor-specific interface is represented specifically by a DCI.
A DCI is responsible for data transmission. The data transmitted and/or received do not follow a specific format. Data could be raw data from a communication line, data following a proprietary format, etc. All the DCIs following the CCI can be seen as subordinate interfaces.
A CDC device must have at least one CCI and zero or more DCIs. One CCI and any subordinate DCI together provide a feature to the host. This capability is also referred to as a function. In a CDC composite device, you could have several functions. And thus, the device would be composed of several sets of CCI and DCI(s) as shown in Figure - CDC Composite Device.
A CDC device is likely to use the following combination of endpoints:
- A pair of control IN and OUT endpoints called the default endpoint.
- An optional bulk or interrupt IN endpoint.
- A pair of bulk or isochronous IN and OUT endpoints.
Table - CDC Endpoint Usage indicates the usage of the different endpoints and by which interface of the CDC they are used:
Endpoint | Direction | Interface | Usage |
---|---|---|---|
Control IN | Device-to-host | CCI | Standard requests for enumeration, class-specific requests, device management and optionally call management. |
Control OUT | Host-to-device | CCI | Standard requests for enumeration, class-specific requests, device management and optionally call management. |
Interrupt or bulk IN | Device-to-host | CCI | Events notification, such as ring detect, serial line status, network status. |
Bulk or isochronous IN | Device-to-host | DCI | Raw or formatted data communication. |
Bulk or isochronous OUT | Host-to-device | DCI | Raw or formatted data communication. |
Most communication devices use an interrupt endpoint to notify the host of events. Isochronous endpoints should not be used for data transmission when a proprietary protocol relies on data retransmission in case of USB protocol errors. Isochronous communication can inherently loose data since it has no retry mechanisms.
The seven major models of communication encompass several subclasses. A subclass describes the way the device should use the CCI to handle the device management and call management. Table - CDC Subclasses shows all the possible subclasses and the communication model they belong to.
Subclass | Communication model | Example of devices using this subclass |
---|---|---|
Direct Line Control Model | PSTN | Modem devices directly controlled by the USB host |
Abstract Control Model | PSTN | Serial emulation devices, modem devices controlled through a serial command set |
Telephone Control Model | PSTN | Voice telephony devices |
Multi-Channel Control Model | ISDN | Basic rate terminal adaptors, primary rate terminal adaptors, telephones |
CAPI Control Model | ISDN | Basic rate terminal adaptors, primary rate terminal adaptors, telephones |
Ethernet Networking Control Model | ECM | DOC-SIS cable modems, ADSL modems that support PPPoE emulation, Wi-Fi adaptors (IEEE 802.11-family), IEEE 802.3 adaptors |
ATM Networking Control Model | ATM | ADSL modems |
Wireless Handset Control Model | WMC | Mobile terminal equipment connecting to wireless devices |
Device Management | WMC | Mobile terminal equipment connecting to wireless devices |
Mobile Direct Line Model | WMC | Mobile terminal equipment connecting to wireless devices |
OBEX | WMC | Mobile terminal equipment connecting to wireless devices |
Ethernet Emulation Model | EEM | Devices using Ethernet frames as the next layer of transport. Not intended for routing and Internet connectivity devices |
Network Control Model | NCM | IEEE 802.3 adaptors carrying high-speed data bandwidth on network |