My Account
Shopping Cart 0 item(s)
View Cart
Facebook Google Plus LinkedIn

USB-Serial Emulation

Posted by Peter Hiscocks on 3/18/2014 to Technical Papers
A serial port transfers information between the host computer and some external device one bit at a time. This is in contrast to some sort of parallel port, where the information is transferred in byte or word-sized chunks. Historically, this made the serial port economical of hardware and easy to use, but relatively slow.

It's not uncommon to find the 9 pin DB-9 connector of a serial port on the rear panel of older computers. For example, mice and modems often used the serial port connection. Some lab and engineering hardware did as well. 

The serial port is really easy to access in software: open the port, send or receive data, close the port. Done. Accessing a parallel port or memory mapped hardware can be orders of magnitude more difficult -- in large part because many parallel ports and memory maps are not standardized. 

Serial ports have been largely replaced by USB ports. When it works properly, USB is a huge improvement - it's much faster, the computer enumerates and recognizes the device automatically, and can even supply power to it. If you need to access something that uses a serial port (such as our multimeter DVM-101), you can use a USB-Serial converter. That works well at modest speeds. 

Our other hardware - like the CGR-101 CircuitGear, uses an 'emulated serial port'. USB-Serial emulation puts a special chip in the hardware and loads the USB-Serial driver into the host computer. The connection is a USB cable - with all the advantages of USB. To software, the connection looks like an extremely high speed serial port. Why in this day and age do we continue to emulate this obsolescent standard of the serial port? Why not just go directly from USB at the computer to USB at the hardware, as many USB connected devices do? After all, the emulation requires a bunch of chips in the hardware to convert the USB information back to a serial stream, and this adds to the cost.

The reason is this: USB-Serial emulation dramatically simplifies the software, and this is something can be important to you, the user of the device. Any software that can talk to a serial port can talk to our hardware. For example, here's a very simple test setup that you can use to exercise our hardware: set up a terminal emulator. Point it at our hardware by opening the appropriate serial port (something like COM 9 on a Windows machine, /dev/ttyusb0 on a linux box, or cu-usbserial-something on a Mac.) Type in the hardware command and press return. The hardware should respond – by changing a frequency setting, or an amplitude control, whatever. That's it!

When the hardware talks to the host computer over a generic USB channel the manufacturer must provide a driver that is specific to the computer, the hardware and the language you'd like to use. Programming the hardware is much, much more difficult.

USB-Serial emulation requires additional parts and makes our hardware a little more expensive, but we think it's worth it - it makes it easier for our customers to program the hardware and aligns with our policy of providing open-source software for all our hardware.
Share |

 Software
 Resources
 Technical Papers
 Products
 Accessories

 The Single Channel Oscilloscope
 Curing Circuit Oscillation
 Testing a Selenium Rectifier
 Yes, we test IGBTs
 Negative Tracking Power Supply

 September 2017
 October 2016
 June 2016
 March 2016
 January 2016
 August 2015
 July 2015
 May 2015
 February 2015
 January 2015
 October 2014
 September 2014
 June 2014
 March 2014
 February 2014
 September 2013
 July 2013
 April 2012
 February 2012
 January 2012
 October 2011
 September 2011
 June 2011
 March 2011
 January 2011
 December 2010
 October 2010
 September 2010
 May 2010
 April 2010
 December 2009
 November 2009
 April 2009
 March 2009
 December 2008
 October 2008
 September 2008
 June 2008
 May 2008
 March 2008
 February 2008
 September 2007
 August 2007
 July 2007
 June 2007
 October 2006
 September 2006
 July 2006
 May 2006
 March 2006