13
$\begingroup$

RS232 is not popular as it used to be and is mainly replaced by USB [wikipedia]. Problems such as mentioned in this question doesn't help its reputation either.

In a new system design therefore, one could think of using USB instead of Serial Port for communication. However, it still seems like RS232 is the serial communication protocol/port of choice.

Why is that? I understand changing old machinery that work with RS232 is costly, but what prevents new system designers from using USB instead of RS232?

$\endgroup$
12
$\begingroup$

At least in the microcontroller level:

  1. Serial ports (usually TTL or LVTTL) are still the most common way to communicate, since most simple microcontrollers don't have a USB controller.

    For instance: most 8-bit AVR or PIC microcontrollers don't have USB, a few 32-bit ARM microcontrollers do, but they all usually have serial ports.

  2. Conversion from TTL/LVTTL serial communication to RS-232 requires a "simple" logic level conversion, which can be done with very cheap ICs (MAX232/MAX3232)

  3. Conversion from TTL/LVTTL serial communication to USB when your microcontroller does not have a USB controller usually requires using a slightly more expensive IC (FTDI) which does not have any through-hole packaging options, only surface mount.

  4. There are a few details relative to the protocol one has to pay attention to when using USB devices in general, such as the current level it may request from the USB host. With serial ports, you only have to worry about 3 to 5 fixed parameters that have to be consistent in your system (baudrate, # of stop bits, parity, etc).

$\endgroup$
9
$\begingroup$

Simplicity, i guess. A USB implementation (chips and driver software) is usually more complex than good ol' RS232, which can even be found in many 8-bit microcontrollers. While USB has many protocol mechanisms and is designed to deal with many participants over a bus, a RS232 connection doesn't have any of that. Instead, it's the "rawest" form possible of sending bytes over a wire.

Although Arduino and increasing spread of USB-to-serial adapters show promise that USB will eventually become as dominant as RS232 used to be.

$\endgroup$
5
$\begingroup$

I think the biggest reason that RS232 has stayed around is the simplicity in implementing common use-cases in embedded hardware - like sending a sequence ASCII bytes between two devices for control. The use-cases for sending information at the much higher speeds available with USB are not worth the trade-off in complexity caused by implementing the USB protocol's signalling.

As the requirements for higher speeds appear, I wouldn't be surprised if RS-485 became more common with it's very simple physical interface and high (up to 10Mb/s) data rates.

$\endgroup$
4
$\begingroup$
  • Simplicity for hardware designers and easy usage for programmers
  • Reliability
  • Well known and supported in many systems

Specially in robotics when we forced to use USB instead of RS232 (Our new PCs did not have RS232 ports). We faced many problems:

  1. Any USB socket disconnection need so much effort to recover the system. Sometimes it leads to a bad system-fault and we had to restart PCs.

  2. Any shock or hazard make it unplugged.

  3. Too much programming time

$\endgroup$
2
$\begingroup$

Communication latency is another reason why USB1.1 or USB2.0 is not always a good replacement for RS232. Data on USB1.1 or USB2.0 bus is formatted into 1ms or 125us frames respectively, which forces minimum receive to transmit latency equal to two frame periods (often more in practise). This is an important consideration for modern PC hardware, which usually doesn't have built-in RS232 port and USB/RS232 converter is used instead.

$\endgroup$

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.