RS-485 Protocol

Overview

The RS-485 communication protocol is a differential, multi-drop, half-duplex, two-wire communication protocol. It was formally specified in 1983 by the Electronics Industries Association (EIA).

A typical RS-485 network setup, using a standard RS-485 to UART transceiver at each node (in this case it is the TI SN65HVD72). Image from http://www.ti.com/.
A typical RS-485 network setup, using a standard RS-485 to UART transceiver at each node (in this case it is the TI SN65HVD72). Image from http://www.ti.com/.

It is a very common protocol used in industry for between-room control system to sensor communication.

Name RS-485
Drive Mode Differential
Multi-drop Yes
  Half-duplex
Maximum Data Rate 10Mbps
Maximum Bus Length 1.22km (at a data rate of 100kbps)
   

It is not commonly used for intra-board communication (i.e. between two devices on the same PCB) because in these scenarios there is normally no need for the noise immunity and transmission distances RS-485 provides, and communication protocols such as UART, SPI and I2C are more prevalent.

Standards

The TIA/EIA 485 standard governs the RS-485 protocol specifications.

The RS-485 standard only defines the electrical specifications of the interface, and does not specify the type of connector to be used, the cable, the pinout, or the messaging protocol/data structure.

Thus, the RS-485 can be incorporated into higher-level standards which specify things such as the messaging protocol, and use RS-485 to define the physical layer.

Transmission Distances

Because RS-485 is a differential communication protocol, it can achieve far greater communication distances than say, UART, I2C or SPI.

A distance of 1.22km (4000 feet) is achievable at a data rate of 100kbps.

Baud Rate

RS-485 transceivers usually top out at about 50-100Mbps.

Node Count

Higher baud rate transceiver IC’s usually support a lower number of total nodes on the RS-485 bus.

RS-485 introduces the term unit load. A unit load is a specified load impedance on the RS-485 bus. Transceivers are rated by the equivalent unit loads of impedance they introduce when connected to the bus.

Unit Load No. of Nodes Min. Receiver Input Impedance
1 32 \(12k\Omega\)
\(\frac{1}{2}\) 64 \(24k\Omega\)
\(\frac{1}{4}\) 128 \(48k\Omega\)
\(\frac{1}{8}\) 256 \(96k\Omega\)

Termination Resistors

The TIA/EIA 485 standard does not specifically state what the characteristic impedance of the twisted-pair cable should be, nor the value of the termination resistors. However, it does provide recommendations, and states that the twisted-pair cable should have a characteristic impedance of \(120\Omega\) whenever possible.

This implies that \(120\Omega\) termination resistors should be used with this twisted-pair cable.

Receiver Hysteresis

Receiver hysteresis is normally around 80mV.

Standard Pinout

There is somewhat of a standard pinout for RS-485 transceivers in 8-pin component packages as follows:

Pin Number Pin Name Pin Description
1 R, RO Receiver data output.
2 nRE, RE* Active-low receiver outout enable.
3 DE Active-high RS-485 line driver enable. When high, the IC will be driving the RS-485 A and B wires, when low the A and B pins are put into high-impedance and the IC acts as a RS-485 receiver.
4 D, DI Driver data input. If the driver outputs are enabled (DE high), then a low on DI drives A low and B high, while a high on DI drives A high and B low.
5 GND Ground.
6 A RS-485 differential line A.
7 B RS-485 differential line B.
8 \( V_{CC} \) Supply voltage.

8-pin packages that RS-485 transceivers come include DIP-8, SOIC-8, TSSOP-8 and MSOP-8. Example transceivers that follow this “standard” include the Texas Instruments DS485, Linear Technology LTC1480

Differential Voltage Specs

The RS-485 specification states that the transmitter must produce a differential voltage of at least ±1.5V when loaded, and the receiver must receive a differential voltage of at least ±200mV.

The waveform below shows the voltage on the A and B nets of a RS-485 bus when operating normally at 115200 baud.

The typical appearance of the voltages on the A (top) and B (bottom) nets of a RS-485 bus under normal operating.  This was operating at 115200 baud.
The typical appearance of the voltages on the A (top) and B (bottom) nets of a RS-485 bus under normal operating. This was operating at 115200 baud.

The standard also states that the driver is not allowed to produce a differential voltage of more than ±6V.

Common-Mode Voltage

Most transceivers can withstand a constant single-ended voltage of around ±15V on each of the A and B wires (the allowed transient voltage can be much higher).

Specialised TVS Diodes

Dedicated TVS diode components exist for voltage-spike suppression on RS-485 data lines.

They usually are a bidirectional TVS diode (or diode array) with asymmetric breakdown voltages, that match the maximum voltage specifications of +12V and -7V for RS-485 data lines.

The +12V and -7V limits arise from the section of the RS-485 spec which states that up to a 7V ground difference is allowed between any two devices on a RS-485 bus. This, coupled with the spec that allows a single-ended voltage range of 0-5V to be applied to either of the bus nets, gives a possible voltage range of +12V (7V + 5V) to -7V (-7V + 0V).

One such example is the Semtech SM712 diode array. Below is an image of the components internal schematic.

The SM712 TVS diode array, a diode array with asymmetric breakdown voltages, specifically designed for protecting RS-485 data lines. Image from http://www.semtech.com/.
The SM712 TVS diode array, a diode array with asymmetric breakdown voltages, specifically designed for protecting RS-485 data lines. Image from http://www.semtech.com/.