USB Component  Version 6.12.4
MDK Middleware for USB Device and Host Communication
 All Data Structures Functions Variables Enumerations Enumerator Groups Pages
CDC: Communication Device Class

The Communication Device Class (CDC) supports a wide range of devices that can perform telecommunications and networking functions. Examples for communications equipment are:

  • Telecommunications devices, such as analog phones and modems, ISDN terminal adapters, digital phones, as well as COM-port devices
  • Networking devices, such as ADSL and cable modems, as well as Ethernet adapters and hubs

A detailed description about CDC is provided by the USB Implementers Forum (USB-IF).

CDC Class Features

A communications device has three basic tasks:

  • Device management (controlling an configuring a specific device and notifying the USB Host of certain events)
  • Call management (establishing and terminating telephone calls or other connections)
  • Data transmission (sending and receiving application data)

The CDC implementation in the USB Component features:

Note
The following endpoint configurations are supported:
  • One interrupt IN endpoint for notifications to the USB Host
  • One bulk IN and one bulk OUT endpoint for data transfer

Control Transfers

The documents available at Communications Device Class describe the nine available request types for the Abstract Control Model (ACM). All requests specified for the Network Control Model (NCM) by the documents in ECM120.pdf and NCM10.pdf are supported. Encapsulated commands specified by CDC120.pdf are not supported.

USB Descriptors

The following descriptors are required in an USB CDC ACM Device:

  • Standard Device Descriptor
  • Standard Configuration Descriptor
  • Interface Association Descriptor
  • CDC Header Functional Descriptor
  • CDC Union Functional Descriptor
  • Call Management Functional Descriptor
  • Abstract Control Management Functional Descriptor
  • Standard Interface Descriptor for the CDC Class communication interface
  • Standard Endpoint Descriptor for Interrupt IN endpoint
  • Standard Interface Descriptor for the CDC Class data interface
  • Standard Endpoint Descriptors for Bulk IN and Bulk OUT endpoints

The following descriptors are required in an USB CDC NCM Device:

  • Standard Device Descriptor
  • Standard Configuration Descriptor
  • Interface Association Descriptor
  • CDC Header Functional Descriptor
  • CDC Union Functional Descriptor
  • CDC Ethernet Networking Functional Descriptor
  • NCM Functional Descriptor
  • Standard Interface Descriptor for the CDC Class communication interface
  • Standard Endpoint Descriptor for Interrupt IN endpoint
  • Standard Interface Descriptor for the CDC Class data interface
  • Standard Endpoint Descriptors for Bulk IN and Bulk OUT endpoints

The necessary descriptors are automatically generated by the USB Middleware Component. The page USB Descriptors provides more information on the topic.

Note
Further information on how to use CDC is given in the Reference section: