Thesycon's
USB CDC/ACM device driver provides a serial port emulation on Windows operating systems
by implementing a serial link emulation protocol on USB. The driver exposes a Win32-compatible COM port
and in addition provides some unique features such as a Plug&Play compliant device instance enumeration
method. This avoids confusion about COM port numbers and improves usability.
The driver supports all Windows desktop operating systems from Windows 2000 to Windows Vista, including
64 bit systems. A similar driver is also available for Windows CE. See
USB CDC/ACM Class Driver for Windows CE
for more information.
The driver works with devices that are compliant to the Communication Device Class (CDC) specification,
subclass Abstract Control Model (ACM). However, the driver supports three different USB protocol flavours which
are described in more detail below.
Thesycon also offers the Embedded USB Device Stack with CDC/ACM device class for implementing the firmware of a USB CDC/ACM device. With these development kits Thesycon provides the support for implementing the firmware and the device driver for USB CDC/ACM devices quickly and cost-effective.
CDC/ACM Compliant Protocol
The device needs to implement the Abstract Control Model (ACM) subclass defined in the USB Communication Device
Class (CDC) specification. This protocol requires two USB interfaces, a data interface which consists of two endpoints
(bulk in + bulk out) and a control interface which consists of one interrupt in endpoint. Furthermore, on EP0 the device
needs to implement the class-specific requests defined by the CDC specification. Because this USB protocol is compliant
to the CDC/ACM standard on some operating systems (e.g. Linux, MacOS) the device can work with in-box drivers.
Reduced CDC/ACM Protocol
This mode uses the CDC data interface (bulk in + bulk out endpoint) only. No control interface (interrupt in endpoint)
is required. The device needs to implement the CDC class-specific requests. So it is still possible to support baud rate
settings and serial control/status lines. This mode is useful if the number of available endpoints is limited by hardware
restrictions. However, as the protocol is proprietary a specific device driver is required for every operating system
platform to be supported by the device.
Bulk-only Protocol
The device implements the data interface (bulk in + bulk out endpoint) only. The device does not provide an additional
control interface and does not need to implement any class-specific requests on EP0. Because bulk transfer mode provides
flow control there is no need to support serial control/status lines. The advantage of the bulk-only protocol is that
the implementation efforts on the device side are reduced to a minimum. However, because the protocol is proprietary a
specific device driver is required for every operating system platform to be supported by the device.
Depending on the driver configuration the CDC/ACM device driver exposes an emulated COM port or a modem. The standard Windows mechanism is used to assign a COM port number to each device instance. This COM port can be opened and used by standard programs such as HyperTerminal.
In addition to the COM port naming scheme the driver supports a PnP compliant enumeration mechanism which is based on device interfaces. Custom applications can enumerate and open available device instances by using Windows API functions such as SetupDiGetClassDevs and SetupDiEnumDeviceInterfaces. So the user is not required to enter a COM port number. Applications can automatically locate, identify and open available device instances. By using the function RegisterDeviceNotification applications can receive notification messages when devices are connected or disconnected. Thus, an application can implement full USB Plug&Play support.
The driver conforms to Microsoft's Windows Driver Model (WDM) and can be certified by Windows Hardware Quality Labs (WHQL).
Feature Summary:
|
|
Supported Platforms
|
x86
|
x64
|
|
|
Windows 2000
|
![]() |
![]() |
|
|
Windows XP
|
![]() |
![]() |
|
|
Windows XP Embedded
|
![]() |
![]() |
|
|
Windows Server 2003
|
![]() |
![]() |
|
|
Windows Vista
|
![]() |
![]() |
A similar driver is also available for Windows CE. See USB CDC/ACM Class Driver for Windows CE for more information.
The demo version is time-limited but has full functionality. After the device is connected the driver can be used for 4 hours, then the driver disables itself and the computer must be rebooted in order to use the demo again. The demo package includes the driver and the documentation.
USB CDC/ACM Product Sheet (English) 
USB CDC/ACM Reference Manual (English)
(1.2 MB)
USB CDC/ACM Software License Agreement (English) 
USB CDC/ACM Order Form (English) 
USB CDC/ACM Update Order Form (English) 
When designing a USB device you need an official USB vendor ID (VID) which is unique world-wide. Vendor ID's will be assigned by the USB Implementers Forum (www.usb.org). There is a fee of $1500 US.
Thesycon owns a USB vendor ID and provides a subset of product ID's (PID) to customers who licensed our USB software. This service is free of charge. You will receive a set of product ID's that is, if used in combination with Thesycon's vendor ID, unambiguous world-wide. You can use these ID's for your products.
If you would like to be kept informed of product updates, please subscribe to the Thesycon newsletter.
© 2008 THESYCON


