11

What is the name of the USB class which handles communication with USB devices which appear as COM ports in Window's device manager? For linux (at least for Fedora 17 and Ubuntu 12.04) these ports appear as ACM (Abstract Control Model, /dev/ttyACM#).

I understand that historically, serial communication was primarily done through the RS-232 serial port which is now deprecated. I believe that today's standard is to communicate through USB using HID.

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 article reveals that CDC/ACM is a method of emulating RS-232 communication over USB.

With this information, shouldn't this form of serial communication be called "CDC" or "CDC/ACM" ?

Daniel
  • 8,655
  • 5
  • 60
  • 87

2 Answers2

4

According to this, the USB connected "Virtual COM ports" are indeed using the USB CDC class.

Daniel
  • 8,655
  • 5
  • 60
  • 87
2

the name of the protocol which handles communication with USB devices which appear as COM ports in Window's device manager?

In most cases a propretary protocol is used, like in FTDI/PL2303/SiLabs Serial2USB chips. They use a Windows specific interface to appear as COM ports, but that has nothing to do with ACM.

If you have the choice - e.g. on your own USB microcontroller - I recommend dropping the COM port and using WINUSB or LibUSB to talk to your device directly, even if you only have one Bulk-In and Bulk-Out Endpoint each.

Turbo J
  • 7,563
  • 1
  • 23
  • 43
  • Thanks for the suggestion. Do you know if "Serial COM" over USB is using the CDC? – Daniel Dec 10 '12 at 18:55
  • On a side note: I was not contemplating using CDC/"Serial COM" for an application, I posted this question because I couldn't find a clear answer on the net. However, looking into WinUSB, I think this is a better choice for a project for which I'd chosen to use HID. Thanks again for the suggestion. – Daniel Dec 11 '12 at 19:28