USB communications device class
USB communications device class (or USB CDC) is a composite Universal Serial Bus device class. It provides a single device class. The class may include more than one interface, such as a custom control interface, data interface, audio, or mass storage related interfaces.
The communications device class is primarily used for modems. However it also supports ISDN and fax machines and telephony applications for performing regular voice calls.
Additionally this device class supports computer networking akin to a network card, providing an interface for transmitting Ethernet or ATM frames onto some physical media. Microsoft Windows versions prior to Windows Vista do not support the networking parts of the USB CDC, instead promoting Microsoft's own derivative named Microsoft RNDIS, a serialized version of the Microsoft NDIS (Network Driver Interface Specification). With a vendor-supplied INF file, Windows Vista supports USB CDC and USB WMCDC.[1]
This class can be used for industrial equipment such as CNC machinery to allow upgrading from older RS-232 serial controllers and robotics, since they can keep software compatibility. The serial driver works transparently emulating the USB as a serial port. Chip manufacturers like FTDI, Microchip and Atmel provide easy to use solutions for developing USB to serial converters.
This class is also implemented in embedded systems like mobile phones so that a phone may be used as a modem, fax or network port. The data interfaces are generally used to perform bulk data transfer.
References
External links
- USB-IF's Approved Class Specification Documents
- Class definitions for Communication Devices 1.2 (.zip file format, size 2.61 MB)
- Class definitions for Communication Devices 1.1
- a good guide (linux-oriented) about USB host-to-host, CDC 'ethernet' class and RNDIS
- http://www.atmel.com/dyn/resources/prod_documents/doc4322.pdf App Note, Migrating from RS-232 to USB Bridge Specification. Explains the use of USB CDC (Communications Device Class) ACM (Abstract Control Model) to emulate serial ports over USB.