USBlyzer - USB Protocol Analyzer for Windows   USB Analyzer for Windows  

 CDC Class Decoder  Communication Device Class (CDC) Decoder

The Communication Device Class defines a general purpose mechanism that can be used to enable all types of communication services on the Universal Serial Bus. Universal Serial Bus Class Definitions for Communication Devices specification, and associated subclass specifications, define a framework of USB interfaces, data structures, and requests under which a wide variety of telecommunications and networking devices such as USB-connected telephony devices, ADSL modems, USB-to-Ethernet adaptors, multi-function communications handset devices, wireless mobile communications devices can be defined and implemented.

USBlyzer includes the comprehensive CDC class decoder that helps you easily visualize various CDC class-specific functional descriptors, requests and notifications.

Note: USB Remote NDIS (RNDIS) specific implementation of the Abstract Control Model (ACM) is currently not supported.


CDC Class-Specific Subclasses

The following CDC Class and SubClasses are supported:

Class SubClass
02h - CDC 01h - Direct Line Control Model
02h - Abstract Control Model
03h - Telephone Control Model
04h - Multi-Channel Control Model
05h - CAPI Control Model
06h - Ethernet Networking Control Model
07h - ATM Networking Control Model
08h - Wireless Handset Control Model
09h - Device Management
0Ah - Mobile Direct Line Model
0Bh - OBEX


CDC Class-Specific Functional Descriptors

Communications class devices use class-specific functional descriptors which are differ from standard USB descriptors. USBlyzer decodes and displays the following CDC class-specific functional descriptors:

  • Header Functional Descriptor

  • Union Functional Descriptor

  • Country Selection Functional Descriptor

  • Call Management Functional Descriptor

  • Abstract Control Management Functional Descriptor

  • Direct Line Management Functional Descriptor

  • Telephone Ringer Functional Descriptor

  • Telephone Call Functional Descriptor

  • Telephone Operational Modes Functional Descriptor

  • USB Terminal Functional Descriptor

  • Network Channel Terminal Functional Descriptor

  • Protocol Unit Functional Descriptor

  • Extension Unit Functional Descriptor

  • Multi Channel Management Functional Descriptor

  • CAPI Control Management Functional Descriptor

  • Ethernet Networking Functional Descriptor

  • ATM Networking Functional Descriptor

  • WHCM Functional Descriptor

  • Device Management Model Functional Descriptor

  • OBEX Functional Descriptor

  • Command Set Functional Descriptor

  • Command Set Detail Functional Descriptor

  • Telephone Control Model Functional Descriptor

  • OBEX Service Identifier Functional Descriptor

  • Mobile Direct Line Model Functional Descriptor

  • Mobile Direct Line Model Detail Functional Descriptor

Note: The specific information associated with the command set model specified by the GUID in the Command Set Functional Descriptor and the specific information associated with the semantic model specified by the GUID in the MDLM Functional Descriptor is not defined in CDC class specification and is not decoded by USBlyzer, though the data is displayed as a hexadecimal dump.

Below is an example of decoding CDC Control interface which encapsulates a bunch of functional descriptors.


CDC Class-Specific Requests and Notifications

The communications class defines a communications class interface consisting of a management element and optionally a notification element. The management element configures and controls the device, and consists of endpoint 0. The notification element transports events to the host, and in most cases, consists of a interrupt endpoint. For complete description of USB CDC class requests, refer to Universal Serial Bus Class Definitions for Communications Devices specification.


Communication Interface Management Element Requests

The management element requests control and configure the operational state of the communications device. The following class-specific requests are decoded:

  • Send Encapsulated Command (SEND_ENCAPSULATED_COMMAND)

  • Get Encapsulated Response (GET_ENCAPSULATED_RESPONSE)

    Note: The CDC class defines only a format of data encapsulation but not the specific encapsulated protocol. So the encapsulated data is not decoded by USBlyzer, though the data is displayed as a hexadecimal dump.

  • Set Comm Feature (SET_COMM_FEATURE)

  • Get Comm Feature (GET_COMM_FEATURE)

  • Clear Comm Feature (CLEAR_COMM_FEATURE)

  • Set Aux Line State (SET_AUX_LINE_STATE)

  • Set Hook State (SET_HOOK_STATE)

  • Pulse Setup (PULSE_SETUP)

  • Send Pulse (SEND_PULSE)

  • Set Pulse Time (SET_PULSE_TIME)

  • Ring Aux Jack (RING_AUX_JACK)

  • Set Line Coding (SET_LINE_CODING)

  • Get Line Coding (GET_LINE_CODING)

  • Set Control Line State (SET_CONTROL_LINE_STATE)

  • Send Break (SEND_BREAK)

  • Set Ringer Parms (SET_RINGER_PARMS)

  • Get Ringer Parms (GET_RINGER_PARMS)

  • Set Operation Parms (SET_OPERATION_PARMS)

  • Get Operation Parms (GET_OPERATION_PARMS)

  • Set Line Parms (SET_LINE_PARMS)

  • Get Line Parms (GET_LINE_PARMS)

  • Dial Digits (DIAL_DIGITS)

  • Set Unit Parameter (SET_UNIT_PARAMETER)

  • Get Unit Parameter (GET_UNIT_PARAMETER)

  • Clear Unit Parameter (CLEAR_UNIT_PARAMETER)

  • Get Profile (GET_PROFILE)

  • Set Ethernet Power Management Pattern Filter (SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER)

  • Get Ethernet Power Management Pattern Filter (GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER)

  • Set Ethernet Multicast Filters (SET_ETHERNET_MULTICAST_FILTERS)

  • Set Ethernet Packet Filter (SET_ETHERNET_PACKET_FILTER)

  • Get Ethernet Statistic (GET_ETHERNET_STATISTIC)

  • Set ATM Data Format (SET_ATM_DATA_FORMAT)

  • Get ATM Device Statistics (GET_ATM_DEVICE_STATISTICS)

  • Set ATM Default VC (SET_ATM_DEFAULT_VC)

  • Get ATM VC Statistics (GET_ATM_VC_STATISTICS)


Communications Class Interface Management Element Notifications

The management element device responses and event notifications inform the host of events occurring on the device. The following class-specific responses and notifications are decoded:

  • Network Connection (NETWORK_CONNECTION)

  • Response Available (RESPONSE_AVAILABLE)

  • Connection Speed Change (CONNECTION_SPEED_CHANGE)

  • Aux Jack Hook State (AUX_JACK_HOOK_STATE)

  • Ring Detect (RING_DETECT)

  • Serial State (SERIAL_STATE)

  • Call State Change (CALL_STATE_CHANGE)

  • Line State Change (LINE_STATE_CHANGE)

Below is an example of decoding Set Control Line State request.

Subscribe to USBlyzer RSS feed Bookmark and Share
Latest Events
 May 15, 2016
USBlyzer 2.2 has been released.

- USB Mass Storage Class support added.
[...]

 March 16, 2014
USBlyzer 2.1 has been released.

- USB 3.0 support added.
[...]

 April 3, 2011
USBlyzer 2.0 has been released.

- 64-bit OS support.
- Elapsed and duration time measuring.
[...]