USB communications 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. Chip manufacturers such as Prolific Technology, FTDI, Microchip, and Atmel provide facilities for developing USB RS-232 devices.
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.
- USB-IF's Approved Class Specification Documents
- a good guide (linux-oriented) about USB host-to-host, CDC 'ethernet' class and RNDIS
- 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.