In my work place there is a usb to serial multiport connected to a PC which controls servo motors ect. The 8 port(rs232) multiport is connected to the PC via a USB cable. My question is: Can these ports controlled at the same time from the PC or one port at a time? If for instance I have data transfer to COMport1 can I establish data transfer to COMport2 at the same time?

Here is a device similar I'm talking about: http://www.sunix.com.tw/itpd.php?cid=2&kid=4&gid=10&pid=764

or here: http://www.serialgear.com/4-Port-Serial-USB-CM-41042.html


There might be issues with the EXACT device you have, but in my experience (which is with FTDI based devices), there's no problem running bytes out multiple ports at the same time. Now, be careful with your programming because if you want to do this you have to make sure that you are either using multiple threads, or starting your reads and writes in such a way that they don't block the calling thread.

What's the exact chipset? If you don't know (and well you might not), then try looking up the VID & PID for the USB device (in Windows, you can find that via the device manager control panel. In Linux, try 'lsusb' as root.)

The VID is specific to a manufacturer, while the PID is specific to a device. Using the VID/PID, you can track down what device is inside the thing, and thus look up the data sheet and check for any oddball gotchas.

  • \$\begingroup\$ but how does the PC identify which port the serial data come from through the USB cable? \$\endgroup\$ – user16307 Oct 12 '13 at 20:53
  • \$\begingroup\$ I had a similar device, but different model and manufacturer. Inside, there was a USB hub and an FTDI chip for each serial output. Each serial port looked to a PC like a separate FTDI adapter. There may be another way of creating such device: microcontroller with multiple UARTs and a USB slave peripheral. \$\endgroup\$ – Nick Alexeev Oct 12 '13 at 21:01

USB is a high-speed, time-multiplexed connection. The PC constantly loops through all connected endpoints, sends a block of data to an endpoint (if there is any to be sent), requesting a block of data from an endpoint (and getting it, if available). This happens so fast that the illusion is maintained (for slower things like humans and serial ports) that there are simultaneous connections between the PC and all endpoints.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.