Electronics Design AU
Communications

What Is RS-485?

Last updated 28 June 2026 · 6 min read

Direct Answer

RS-485 (TIA/EIA-485) is a differential, half-duplex serial communication standard supporting multiple nodes (typically up to 32 unit loads per segment) on a two-wire bus over cable runs of approximately 1200 m at 100 kbit/s, or shorter distances at higher baud rates. Unlike RS-232, RS-485 uses differential signalling on A and B lines, giving it far superior noise immunity and enabling multi-drop bus topologies that RS-232 cannot support.

Detailed Explanation

RS-485 is the industry standard for serial communication in industrial, building automation, and energy management systems. It solves the two core problems of RS-232 — limited cable length and point-to-point-only topology — by using differential signalling on a two-wire bus with a defined multi-drop architecture. Modbus RTU, BACnet MS/TP, and many proprietary industrial protocols use RS-485 as their physical layer.

Differential signalling

RS-485 drives a differential voltage between two wires, conventionally called A and B (or D− and D+ in some standards). A logic 1 (MARK) is transmitted as a positive voltage on B relative to A (B − A > +200 mV). A logic 0 (SPACE) is transmitted as a negative voltage on B relative to A (B − A < −200 mV). The receiver measures only the differential voltage between A and B — any common-mode noise (a voltage applied equally to both wires) is rejected. This gives RS-485 rejection of common-mode noise up to ±7 V (with standard receivers), making it suitable for industrial environments with significant electrical interference.

Half-duplex vs full-duplex

The standard two-wire RS-485 configuration is half-duplex: only one node may drive the bus at a time, and communication is bidirectional but not simultaneous. Each transceiver has a driver-enable (DE) signal that tri-states the transmitter when not in use, allowing the bus to be driven by another node. Firmware must explicitly assert DE before transmitting and de-assert it after the last byte is fully clocked out before the other end responds.

A four-wire RS-485 implementation uses separate TX and RX pairs, enabling full-duplex operation, but this is less common and eliminates the multi-drop bus topology.

Bus topology and termination

RS-485 must use a daisy-chain (linear) topology — each device connects to the bus in series, not in a star from a central point. Star topologies create stubs that cause reflections, particularly at higher baud rates.

Termination resistors (typically 120 Ω, matching the characteristic impedance of the twisted-pair cable) must be placed at both ends of the bus to absorb reflections. At low baud rates (9600 baud), termination is optional on short buses but should always be installed for any bus that may be extended or operated at higher speeds.

Fail-safe bias resistors hold the bus at a known logic level when no node is driving. Without bias resistors, an idle or unpowered bus floats to an undefined state and some receivers interpret this as a continuous BREAK condition, generating garbage characters. Bias resistors (typically 560 Ω–1 kΩ) are connected from A to GND and from B to VCC to hold A−B < −200 mV during idle.

Modbus RTU

Modbus RTU is the dominant application-layer protocol above RS-485 in industrial systems. It uses a master/slave model: a single Modbus master polls each slave by address (1–247), sending a request frame and waiting for the addressed slave to respond. Only one device transmits at any given time, making Modbus naturally compatible with the half-duplex RS-485 bus.

A Modbus frame includes: device address, function code (e.g. 0x03 for read holding registers), data bytes, and a 16-bit CRC for error detection. Maximum Modbus RTU frame size is 256 bytes. Common baud rates: 9600, 19200, 38400, 115200 baud — all are achievable on RS-485 within the cable-length limits above. For a detailed treatment of the Modbus register model, function codes, inter-frame timing, and Modbus TCP/IP, see What Is Modbus?.

Common transceiver ICs

  • MAX485 / MAX3485: half-duplex, 5 V / 3.3 V supply, 2.5 Mbit/s maximum. The original MAX485 is a standard 1 UL device; the MAX3485 is a 3.3 V compatible variant. These are the most widely deployed RS-485 transceivers.
  • MAX13487 / ISO1500: full-duplex auto-direction-control transceivers with automatic DE assertion triggered by UART TX activity — useful when MCU firmware cannot precisely control the DE signal timing.
  • ADM2587E: isolated RS-485 transceiver with 2500 V RMS galvanic isolation, used in applications where ground potential differences between bus segments would otherwise damage equipment. For a comparison of discrete optocoupler pairs versus integrated digital isolators for RS-485 isolation, see Optocoupler vs Digital Isolator.

Practical Examples

A building management system uses a 500 m RS-485 bus at 19200 baud to connect a central controller to 16 fan coil unit (FCU) controllers, each with a unique Modbus RTU address. The controller polls each FCU every 5 seconds: reads room temperature, setpoint, and valve position, then writes new setpoint commands if required. Each FCU uses a low-unit-load RS-485 transceiver (1/4 UL), keeping total bus load well within the 32 UL limit.

In a solar inverter installation, a monitoring system communicates with 20 string inverters over a 200 m RS-485 bus using the SunSpec Modbus profile. The monitoring server reads power output, string current, and fault codes from all inverters every 60 seconds.

Design Considerations

  • Driver-enable timing: the DE signal must be asserted before the first bit of each transmission and de-asserted only after the last stop bit has completed. Many UART peripherals include auto-direction-control (RS-485 mode) that automates this; without it, firmware must precisely time the DE de-assertion relative to the UART transmit-complete interrupt.
  • Fail-safe biasing: add 560 Ω–1 kΩ pull-up and pull-down resistors on the bus (only at one point — typically the master node). Without these, an undriven bus floats and appears as random data to receivers.
  • Ground reference: despite being differential, RS-485 requires a ground connection between nodes to keep the common-mode voltage within the transceiver's input range (typically ±7 V). Floating grounds in long cable runs cause common-mode voltage violations and communication failure. Use a three-wire cable (A, B, ground) or a shielded twisted-pair cable with the shield grounded at one end.
  • RS-485 vs CAN bus: CAN bus provides multi-master arbitration, automatic error confinement, and standardised higher-level protocols (CANopen, J1939). RS-485 is simpler and lower-cost for master/slave polling topologies like Modbus, but requires the application layer to manage bus access. Choose RS-485 + Modbus for standard industrial instrumentation; choose CAN for automotive, multi-master, or high-reliability applications.

Common Mistakes

  • Forgetting fail-safe bias resistors: an RS-485 bus with no bias resistors is indeterminate when idle. Receivers may generate random characters when no node is transmitting. Add bias resistors at the master node or at one end of the bus.
  • Incorrect DE/RE timing: de-asserting DE too early (before the last stop bit is transmitted) allows the bus to float before the transmission is complete. The last bits of the byte may be corrupted at the receiver. Wait for the UART TC (Transmission Complete) interrupt, not TXNE (transmit buffer not empty), before de-asserting DE.
  • Star topology: running RS-485 as a star from a central hub creates stubs that produce reflections. Each stub acts as a transmission line discontinuity. Use daisy-chain connections wherever possible.
  • Missing termination at high baud rates: at 115200 baud and above, unterminated buses produce visible ringing on the differential waveform. Termination resistors are required at both bus ends.

Frequently Asked Questions

What is the maximum cable length for RS-485?
The TIA-485 standard specifies a maximum cable length based on total bus capacitance (typically up to 3300 pF). With standard twisted-pair cable at approximately 50 pF/m, this limits the bus to approximately 1200 m at 100 kbit/s. At higher baud rates, maximum cable length decreases: at 1 Mbit/s, reliable range is typically 30–100 m depending on cable quality. The practical limit is always determined by the combination of baud rate, cable capacitance, and signal propagation delay.
How many nodes can an RS-485 bus support?
The original RS-485 specification defines a unit load (UL) per node; the bus supports up to 32 unit loads. Modern low-unit-load transceivers (1/4 UL or 1/8 UL) reduce the electrical loading per node, allowing 128 or 256 nodes per segment. Repeaters can extend beyond one segment's limit. In practice, Modbus RTU is typically used with 32–247 nodes per RS-485 segment, depending on transceiver loading specifications.
What is the difference between RS-422 and RS-485?
RS-422 is a point-to-point differential standard (one driver, one or multiple receivers) designed for full-duplex, long-distance serial communication. RS-485 adds multi-drop capability: multiple drivers can share the bus, with only one transmitting at a time (half-duplex). RS-485 transceivers include a driver-enable pin (DE) to tri-state the transmitter when not in use, allowing other nodes to drive the bus. RS-485 transceivers are backward-compatible with RS-422 receivers.

References

Related Questions

Related Forum Discussions