USB Serial (Communication Class



A google search for ACM reveals that it is part of CDC (Communications Device Class) which is a USB communication class opposite of HID (i.e. A USB device may use HID or CDC). This wikipedia articlereveals that CDC/ACM is a method of emulating RS-232 communication over USB. Def availableports: usbserialports = filter( (lambda x: x.startswith('ttyUSB')), os.listdir('/dev')) ports = for p in usbserialports: ports.append(serialforurl('/dev/'+p, donotopen=True)) ' also check for old school serial ports, my hope is that this will enable both USB serial adapters and standard serial ports Scans COM1 through COM255 for available serial ports returns a. The StarTech.com ICUSB232 1ft USB to DB9 RS232 Serial Adapter Cable lets you connect DB9 RS232 serial devices to your Mac or PC laptop or desktop computer through a USB port, as though the computer offered an onboard DB9M connector. The NI-VISA driver supports two classes of USB instruments: USB Test and Measurement Class (USBTMC) and USB RAW instruments. USBTMC instrument conform to the USBTMC protocol, while USB RAW instruments use their own specific communication protocol. This tutorial will cover both types of instruments. Learn more about USB and VISA. When 'USB Serial' changes to 'USB Serial (Communication Class, Abstract Control Model)' and a COM port number is shown, you can access your program on Teensy using that COM port. If there is no 'USB Serial' at all, please rememober Teensy only becomes a Serial device when programmed to do so.

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:

Usb serial communication
ClassSubClass
02h - CDC01h - 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

Usb Serial (communication Class 10

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)

Usb Serial (communication Class 7

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