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.

Figure - CDC Composite Device

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:

Table - CDC Endpoint Usage
EndpointDirectionInterfaceUsage
Control INDevice-to-hostCCIStandard requests for enumeration, class-specific requests, device management and optionally call management.
Control OUTHost-to-deviceCCIStandard requests for enumeration, class-specific requests, device management and optionally call management.
Interrupt or bulk INDevice-to-hostCCIEvents notification, such as ring detect, serial line status, network status.
Bulk or isochronous INDevice-to-hostDCIRaw or formatted data communication.
Bulk or isochronous OUTHost-to-deviceDCIRaw 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.

Table - CDC Subclasses
SubclassCommunication modelExample of devices using this subclass
Direct Line Control ModelPSTNModem devices directly controlled by the USB host
Abstract Control ModelPSTNSerial emulation devices, modem devices controlled through a serial command set
Telephone Control ModelPSTNVoice telephony devices
Multi-Channel Control ModelISDNBasic rate terminal adaptors, primary rate terminal adaptors, telephones
CAPI Control ModelISDNBasic rate terminal adaptors, primary rate terminal adaptors, telephones
Ethernet Networking Control ModelECMDOC-SIS cable modems, ADSL modems that support PPPoE emulation, Wi-Fi adaptors (IEEE 802.11-family), IEEE 802.3 adaptors
ATM Networking Control ModelATMADSL modems
Wireless Handset Control ModelWMCMobile terminal equipment connecting to wireless devices
Device ManagementWMCMobile terminal equipment connecting to wireless devices
Mobile Direct Line ModelWMCMobile terminal equipment connecting to wireless devices
OBEXWMCMobile terminal equipment connecting to wireless devices
Ethernet Emulation ModelEEMDevices using Ethernet frames as the next layer of transport. Not intended for routing and Internet connectivity devices
Network Control ModelNCMIEEE 802.3 adaptors carrying high-speed data bandwidth on network