2026-06-12 · RS-485 · RS-232 · hardware · fieldbus

RS-232 vs RS-485: the electrical story

Both come out of a UART, both get called “the serial port”, and both have survived every technology that was supposed to replace them. But electrically RS-232 and RS-485 are built on opposite philosophies: one moves a voltage referenced to ground, the other moves a difference between two wires and barely cares where ground is. That single design decision explains every practical difference between them — distance, speed, node count and noise immunity.

The same bits, three electrical layers

The same bit pattern shown on three electrical layers: TTL UART switching between 0 and 3.3 volts, RS-232 swinging plus-minus 12 volts with inverted logic and an undefined band at plus-minus 3 volts, and RS-485 as complementary A and B differential signals. Figure 1 — One byte, three wire formats. Note that RS-232 is logically inverted: a “1” is a NEGATIVE voltage.

Three things in this picture surprise people the first time:

  • RS-232 logic is inverted. A logic “1” (mark, the idle state) is −5…−15 V; a logic “0” (space) is +5…+15 V. This is why you can’t wire an MCU pin straight into a 232 port — the transceiver (MAX232 and friends) both shifts the level and inverts it.
  • RS-232 has a forbidden zone. Anything between −3 V and +3 V is undefined. The fat noise margin was the point in 1960 — but it costs big voltage swings, which is exactly what limits speed and distance.
  • RS-485 doesn’t care about absolute voltage. The receiver looks only at the sign of (A−B), with a threshold of just ±200 mV. The driver guarantees at least ±1.5 V across the pair under full load — leaving more than a volt of margin for attenuation and noise.

Why differential wins in a noisy plant

Industrial noise — contactor arcs, VFD output cables, welding equipment — couples into cables. The trick of RS-485 is the twisted pair: both conductors run through the same fields, so the noise appears identically on both wires. The receiver subtracts one from the other, and the noise subtracts itself out.

A driver in one cabinet and a receiver in another, connected by a twisted pair. EMI arrows couple equally into both wires, and a ground potential difference exists between cabinets; the receiver computes A minus B, and small oscilloscope traces show the spike present on A and B but cancelled in the difference. Figure 2 — Common-mode rejection at work. The spike rides on both wires; the difference doesn’t see it.

The same mechanism handles a problem RS-232 fundamentally cannot: ground potential difference. Two cabinets 300 m apart never sit at the same earth potential — volts of difference are normal, and during faults much more. RS-232 is a ground-referenced signal, so that difference adds directly onto the data. RS-485 receivers are required to work over a −7 V…+12 V common-mode range, so the shifted ground simply slides both wires together and the difference survives. (Beyond ±7 V you reach for isolated transceivers — standard practice on anything that leaves the building.)

The numbers side by side

RS-232RS-485
Signalingsingle-ended vs GNDdifferential (A−B)
Driver levels±5…±15 V≥ ±1.5 V into 54 Ω
Receiver threshold±3 V±200 mV
Logic senseinverted (1 = negative)non-inverted (1 = A > B)
Common-mode tolerancenone — ground is the reference−7 V … +12 V
Topologypoint-to-pointmultidrop bus
Devices1 driver, 1 receiver32 unit loads (up to 256 with ⅛-UL parts)
Distance~15 m1200 m
Speed~115.2 kbit/s practical, 1 Mbit/s short10+ Mbit/s short, 100 kbit/s at 1200 m
Duplexfull (separate TX/RX)half on 2 wires, full on 4 (RS-422 style)
Extrashandshake lines (RTS/CTS/DTR…)none — data pair only

Log-log plot of data rate against cable length: the RS-485 curve runs flat at 10 megabits per second out to about 12 meters, then slopes down to 100 kilobits per second at 1200 meters, while RS-232 occupies a small zone below 15 meters and 115 kilobits per second. Figure 3 — The rate–length trade. RS-485’s curve is bounded by cable loss and reflections; RS-232’s box is bounded by its own slew-rate limits.

The speed–distance curve is worth internalizing: RS-485 holds ~10 Mbit/s out to a dozen meters, and the classic rule of thumb is rate × length ≤ 10⁸ bit·m/s beyond that. RS-232 was never meant to leave the desk: its high-swing, slew-limited drivers top out around 115.2 kbit/s over a few meters of cable.

RS-485 only works if you wire it right

A differential bus is a transmission line, and it collects three classic installation mistakes:

Correct RS-485 wiring shown as a daisy chain of master and slaves with 120 ohm termination at both physical ends, a fail-safe bias network of pull-up and pull-down resistors at one node, and a third signal-common conductor; an inset marked wrong shows a star topology crossed out in red. Figure 4 — Daisy chain, terminate both ends, bias once, carry the common. The star goes in the bin.

  1. Termination. One 120 Ω resistor at each physical end of the bus — two total, nowhere else. Unterminated ends reflect every edge back down the cable; over-terminated buses load the drivers down. Short, slow buses (a few meters at 9600) often forgive missing termination, which is exactly why the habit breaks on the first long installation.
  2. Fail-safe biasing. When no driver is enabled, the pair floats and receivers amplify noise into garbage characters. A pull-up on A and pull-down on B (560–720 Ω at one node, usually the master) holds the idle difference above +200 mV so every receiver reads a clean mark. Many modern transceivers have “full fail-safe” receivers that make this optional — check the datasheet before, not after, the commissioning trip.
  3. Topology. Daisy chain, always. Every long stub or star branch is an unterminated transmission line that reflects. And run the signal common — RS-485 is differential but not magic; the common-mode range still has to be respected, and a third conductor (or the shield, grounded at one end) is what keeps both nodes inside it.

One more half-duplex detail that bites firmware people: driver-enable turnaround. On a 2-wire bus the master must drop DE right after the last stop bit, or it tramples the slave’s reply. Do it in the UART’s transmit-complete interrupt (not “TX register empty” — that fires a full character early), or pick a transceiver with automatic direction control.

Which one for which job?

RS-232 is still the right answer for a debug console, a bench instrument one meter away, or legacy equipment — it’s full-duplex with zero direction-control headaches, has hardware handshake lines if you need them, and every USB adapter on earth speaks it.

RS-485 is the right answer the moment any of these words appear: multiple devices, another cabinet, another building, VFDs nearby, “the cable runs in the tray with the power wiring.” Distance, multidrop and common-mode tolerance are exactly what it was designed for — it’s why Modbus RTU, PROFIBUS and DMX512 all ride on it.

The shortest version: RS-232 connects two things on a desk; RS-485 connects a plant.