RS232

Introduction

RS232 is a serial protocol which allows binary data to be exchanged between two end points over a cable. RS232 is generally provided by a UART (Universal Asynchronous Receiver Transmitter) within the microcontroller.

A large number of signals are defined in RS232 as shown below. At a minimum the RXD, TXD and GND lines are required - this is often referred to as '3-wire'. Adding flow control (RTS, CTS) increases this to 5-wire. Signals beyond these 5 are generally required only for modems, and provided by a 'full function' UART.

Typically a 'DB9' connector is used to connect a serial device. By convention a female DB9 is the DTE (Data Terminal Equipment, i.e. the master) and a male DB9 is the DCE (Data Circuit-terminating Equipment, i.e. the slave). In the case where both devices a DTEs, a 'null modem' cable is used, which switches transmit/receive and the flow control lines to enable communication to occur.

Within an RS232 frame, there is a start bit, a number of data bits, and optional parity bit and a stop bit. While it is possible for a receive and transmitter to get out of sync when the receiver misses part of a transmission, the start and stop bits help to ensure that this is rare.

RS232 is generally transmitted at 12V levels (-12V and +12V) but to save power and components it is often reduced to 0V and 3.3V within an embedded system. This avoids the need for level shifters if both the sender and receiver do not require it.

RS232 operates at a number of bit rates, typically 9600 or 115200, but higher and lower rates are supported. Bluetooth UARTs typically run at 961200 baud, for example.

 

Signals

Many signals are defined in the full function UART, as shown below:

Signals Name Direction
Common Ground GND
Transmitted Data TxD Out
Received Data RxD In
Data Terminal Ready DTR Out
Data Set Ready DSR In
Request To Send RTS Out
Clear To Send CTS In
Carrier Detect DCD In
Ring Indicator RI In

For more information on the RS232 standard and its history, see Wikipedia

End User Applications

RS232 is commonly used on modems, although many have moved to USB now, and in any case analogue modems are seldom used now that broadband Internet is more popular. Some laptop still provide an RS232 port, for example.

Bluewater Experience

180px-TracMapBoard
Roughy

 

Bluewater has used RS232 in most projects as a console output.

In Roughy, a total of 10 RS232 ports were provided using the Snapper FPGA although these did not use a standard DB9 connector to reduce board space.

It is very common for an embedded system to have a single RS232 port designated as the 'console' where it is possible to see the unit boot up and display warning messages. It is good practice to keep this clear of other functions where possible, despite the increased cost this might incur. To reduce this cost, Bluewater has create Squid (see Squid) which removes the need for the DB9 connector and level shifter.

RS232 on Rig 200

Rig 200 supports 3 RS232 ports, two through DB9 connectors and another through pin headers.

 

rs1

rs_2

rs_3

rs_4