USB communications device class
USB communications device class (or USB CDC) is a composite Universal Serial Bus device class. The communications device class is used for computer networking devices akin to a network card, providing an interface for transmitting Ethernet or ATM frames onto some physical media. It is also used for modems, ISDN, fax machines, and telephony applications for performing regular voice calls. Microsoft Windows versions prior to Windows Vista do not work with the networking parts of the USB CDC, instead using 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 works with USB CDC and USB WMCDC devices. 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 device attaches to an RS-232 communications line and the operating system on the USB side makes the USB device appear as a traditional RS-232 port. While chip manufacturers such as Prolific Technology, FTDI, Microchip, and Atmel manufacture USB chips and provide drivers that expose the chip as a virtual RS-232 device, the chips do not use USB CDC protocol and rather use their custom protocols, though there are some exceptions (PL2305). Devices of this class are also implemented in embedded systems such as 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 3.43 MB)
Class definitions for Communication Devices 1.1
a good guide (linux-oriented) about USB host-to-host, CDC 'ethernet' class and RNDIS Archived Version
 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. PL2305I USB to Printer Bridge Controller (component data)

Communications device class