Loading header...

RS-485 — Industrial Multi-Drop Signaling

RS-485 is a differential electrical standard for robust serial communication over long cables and noisy environments. It is common in factories, energy meters, motor drives, building automation, lighting systems, and field instruments. Protocols such as Modbus RTU, PROFIBUS, BACnet MS/TP, and DMX512 often run on top of RS-485.

Learning Objectives

By the end of this lesson, you should be able to:

  • explain differential signaling and why it rejects common-mode noise;
  • wire a half-duplex RS-485 bus as a daisy chain with termination;
  • understand driver-enable and receiver-enable timing;
  • distinguish RS-485 physical wiring from protocols such as Modbus RTU;
  • debug polarity, termination, biasing, and turnaround failures.

Physical Layer, Not Message Meaning

RS-485 defines the electrical layer:

  • A and B differential wires;
  • driver and receiver voltage thresholds;
  • multi-drop bus loading;
  • cable topology and termination.

It does not define register addresses, commands, CRC fields, or message timing. Those belong to the protocol above it.

flowchart TB APP["Application\nregisters, commands, data meaning"] MOD["Protocol\nModbus RTU, PROFIBUS, DMX512"] PHY["RS-485 physical layer\nA/B differential bus"] CABLE["Twisted-pair cable\ntermination and bias"] APP --> MOD --> PHY --> CABLE

Differential Signaling

Single-ended links compare one signal to ground. RS-485 compares two wires to each other. Noise coupled equally into both wires is mostly rejected.

Condition Meaning
VA - VB >= +200 mV one valid logic state
VB - VA >= +200 mV the opposite valid logic state
difference near 0 undefined unless biasing forces an idle state

Different vendors label A and B inconsistently. If the bus is silent or every frame has CRC errors, swapped polarity is one of the first things to test.

Half-Duplex Bus Topology

Most industrial RS-485 uses two-wire half-duplex operation. All nodes share the same pair, but only one driver may transmit at a time.

flowchart LR classDef node fill:#dbeafe,stroke:#2563eb,color:#1e3a5f classDef term fill:#fef9c3,stroke:#ca8a04,color:#713f12 T1["120 ohm\ntermination"]:::term M["Master"]:::node S1["Slave 1"]:::node S2["Slave 2"]:::node S3["Slave 3"]:::node T2["120 ohm\ntermination"]:::term T1 --- M --- S1 --- S2 --- S3 --- T2

Use a linear daisy chain. Avoid star wiring and long stubs because impedance discontinuities cause reflections.

Termination and Bias

Termination matches the cable impedance so signal edges do not reflect from the cable ends. A typical twisted-pair RS-485 cable has about 120 ohm characteristic impedance, so the usual termination is:

one 120 ohm resistor at the first physical end
one 120 ohm resistor at the last physical end

Only the two ends get termination. Do not place 120 ohm resistors at every node.

Bias resistors create a defined idle state when no driver is enabled. Without biasing, the bus can float and receivers may detect false characters. Many gateways include fail-safe bias internally, but real installations should verify it instead of assuming.

Driver Enable and Turnaround

An RS-485 transceiver converts MCU UART pins to the A/B bus. In half-duplex systems it usually has control pins:

Pin Meaning Typical use
DI Driver input MCU TX data into transceiver
RO Receiver output received data to MCU RX
DE Driver enable high enables transmit driver
RE_N Receiver enable, active low low enables receiver

Firmware must enable the driver before transmitting, wait until the final stop bit has fully left the UART, then disable the driver so another node can reply.

sequenceDiagram participant M as Master participant B as RS-485 Bus participant S as Slave M->>M: DE high M->>B: Request bytes M->>M: Wait TX complete M->>M: DE low, receiver on S->>B: Response bytes B-->>M: Master receives reply

If DE is disabled too early, the last byte is truncated. If disabled too late, the slave's first response byte can collide with the master driver.

Cable Length and Speed

RS-485 can reach long distances at low data rates. Practical values depend on cable, transceivers, termination, grounding, and noise.

Data rate Typical distance guidance
100 kbps up to about 1200 m with proper cable
1 Mbps much shorter; often tens to hundreds of metres
10 Mbps short cable only

Use twisted pair, keep stubs short, and route away from contactors, drives, and high-current conductors. In harsh environments, use isolated RS-485 transceivers and surge protection.

A controller reads an energy meter over two-wire RS-485 using Modbus RTU:

  • Physical layer: RS-485 A/B pair, 120 ohm termination at both ends, biasing at one place.
  • Serial settings: 9600, 8E1 or as configured by the meter.
  • Protocol layer: Modbus RTU slave address, function code, register address, data count, CRC.
  • Firmware: master enables DE, sends request, turns around, waits for response, validates CRC.

If the CRC is wrong, first inspect RS-485 wiring and timing. If the CRC is valid but the register value is wrong, debug the Modbus register map.

Practical Commissioning Checks

  • Confirm a linear daisy-chain bus, not a star.
  • Install exactly two end terminators.
  • Verify A/B polarity across all devices.
  • Check idle bias with no active transmitter.
  • Match baud rate, parity, stop bits, and protocol address.
  • Use shield and ground strategy appropriate for the site.
  • Scope the bus at both ends if errors happen only on long cables.
  • Leave notes showing which physical nodes contain termination and bias.

Common Mistakes

  • Treating RS-485 as if it defines Modbus registers.
  • Adding termination at every device.
  • Creating long star branches from a panel terminal block.
  • Leaving DE high after transmitting.
  • Disabling DE before the UART transmit-complete flag, not just data-register-empty.
  • Trusting A/B labels without testing polarity.
  • Omitting bias on an idle bus.

Summary

RS-485 is a rugged differential physical layer for long-distance, multi-drop serial buses. It works well when the cable is a daisy chain, termination exists only at the ends, idle bias is defined, device polarity is consistent, and firmware handles half-duplex turnaround correctly. Protocols such as Modbus RTU give meaning to the bytes carried over the bus.

Further Reading

  • Texas Instruments, RS-485 Design Guide.
  • Analog Devices, RS-485/RS-422 circuit implementation guides.
  • TIA/EIA-485 standard summaries from transceiver vendors.
  • Modbus Organization, Modbus over Serial Line specification.

Mind Map

mindmap root((RS485)) Core concept Differential pair Multi drop bus Physical layer only Half duplex common Electrical checks VA minus VB threshold Common mode noise rejected Twisted pair Bias idle state 120 ohm ends Timing DE before send Wait TX complete Release for reply One driver active Turnaround delay Design rules Daisy chain No star wiring Short stubs Two terminators Isolation when needed Practical checks Verify A B polarity Match serial settings Check Modbus address Scope both ends Record terminators Common mistakes Terminating every node Wrong DE timing Floating idle bus Protocol layer confusion Long noisy stubs