Why the car chose CAN
In the early 1980s a Mercedes S-Class had a problem that had nothing to do with engines: the wiring loom. Every new function — ABS, electronic ignition, climate control — needed its own dedicated copper runs between modules. Looms were approaching two kilometers of wire and tens of kilograms, and the connector count was becoming a warranty nightmare. Bosch’s answer, presented at SAE in 1986, was the Controller Area Network. The 1991 S-Class (W140) shipped it; thirty-five years later there is no car on sale without it.
Figure 1 — The problem statement. With point-to-point wiring, links grow as n·(n−1)/2; with a bus, adding a module is adding a stub.
The cast: what actually runs in a car today
CAN didn’t stay alone. Each network in a modern vehicle is a price/performance decision:
| Protocol | Rate | Wires | Topology | Typical duty |
|---|---|---|---|---|
| LIN | 19.2 kbit/s | 1 | single master | window lifts, mirrors, seat motors |
| CAN | 125 k – 1 Mbit/s | 2 (diff.) | multi-master bus | powertrain, body, chassis backbone |
| CAN FD | up to 5–8 Mbit/s data phase | 2 | multi-master bus | same buses, bigger payloads (64 B) |
| FlexRay | 2 × 10 Mbit/s | 2 or 4 | time-triggered | active suspension, steer/brake-by-wire |
| Automotive Ethernet | 100 M – 10 Gbit/s | 2 | switched point-to-point | cameras, ADAS, infotainment, OTA |
The pattern: LIN below CAN, Ethernet above it. LIN exists because a window lift doesn’t deserve a CAN transceiver’s cost — one wire, one master, done. Ethernet exists because a camera stream doesn’t fit in anything else. CAN holds the middle: everything that controls the car.
Figure 2 — One car, five networks, one gateway routing between them. The OBD-II port is just another CAN node.
Why CAN won: the arbitration trick
Plenty of buses could replace wires. CAN won because of how it decides who talks — and to see it you only need one electrical fact: the bus has a dominant state (logical 0, driven) and a recessive state (logical 1, idle). If any node drives dominant, the whole bus reads dominant. Electrically, the bus is a giant AND gate.
Every frame starts with its identifier, sent MSB first. Colliding nodes transmit and listen at the same time:
Figure 3 — Bitwise arbitration. Losers discover they lost by reading the bus; the winner never even notices the collision.
A node that writes a recessive 1 but reads back a dominant 0 has just learned that someone with a more important message is talking — it stops transmitting and becomes a receiver, mid-bit, with no damage done. Compare the era’s alternative: Ethernet of the 1980s detected collisions, destroyed both frames, and made everyone retry after a random backoff. In a car, where the airbag module shares a wire with the seat heater, “random backoff” is not an answer:
- Arbitration is lossless. The winning frame goes through on the first try — a collision costs zero bus time.
- Priority is the identifier. Lower ID = more important, by construction. The brake message cannot be delayed by the climate control chatter. Worst-case latency of the highest-priority message is one frame length (~130 µs at 500 kbit/s) — you can put that number in a safety calculation.
- It’s multi-master. No token to lose, no central scheduler to fail. Any node can initiate whenever the bus idles.
The frame and the wire
Figure 4 — The frame and its physical layer. Recessive: both wires float at 2.5 V. Dominant: the driver forces 2 V of difference between them.
The physical layer is a differential twisted pair, same noise-immunity logic as RS-485: coupled noise hits both wires and cancels in the receiver. What CAN adds is the asymmetric drive — dominant overpowers recessive — which is precisely what makes the wired-AND arbitration possible. High-speed CAN (ISO 11898-2) runs the pair with 120 Ω termination at both ends, 500 kbit/s as the de-facto powertrain rate, 1 Mbit/s max on classic CAN (bounded by the requirement that arbitration bits propagate the whole bus within one bit time — bus length and bit rate trade off directly).
Error handling: the paranoid part
A protocol that carries brake commands needs more than a CRC, and this is where CAN is genuinely over-engineered — five overlapping detection mechanisms:
- 15-bit CRC on every frame.
- Bit monitoring — every transmitter compares the bus to what it sent.
- Stuff-bit checking — after five identical bits the sender inserts the opposite one; a sixth identical bit is a protocol violation by definition.
- Form checks on the fixed-format fields.
- The ACK slot — every receiver that got a clean frame drives it dominant. If nobody ACKs, the sender knows immediately, not at some timeout.
Any node that spots an error transmits an error frame that deliberately violates stuffing, forcing every other node to discard the frame; the sender retransmits automatically. And the masterstroke: every node keeps error counters, and a node that keeps failing demotes itself — first to error-passive, then bus-off, where it disconnects entirely. A babbling transceiver with a cracked solder joint removes itself from the bus instead of taking the vehicle down. Residual undetected error probability is on the order of 10⁻¹¹ — for practical purposes, a corrupted frame that slips through never happens in the life of the fleet.
Where CAN stops
Honesty section. Classic CAN gives you 8 bytes at 1 Mbit/s shared — that’s it. Three pressures pushed past it:
- Payload & speed → CAN FD (2012): same arbitration, but after winning the bus the sender switches to a faster data phase and may carry 64 bytes. Most new platforms ship it; the migration pain is that classic-CAN controllers destroy FD frames, so segments must convert wholesale.
- Determinism → FlexRay: arbitration gives priority, not a guaranteed schedule. Steer-by-wire wanted a time-triggered slot table and a redundant channel. FlexRay delivers exactly that — at roughly 10× the cost, which is why it stayed in the chassis niche.
- Bandwidth → automotive Ethernet: a single surround-view camera outruns every CAN segment in the car combined. 100/1000BASE-T1 runs full duplex over one twisted pair, and zonal architectures now use it as the spine — with CAN (FD) still doing the last meter of actual control.
The division of labor is stable: Ethernet moves data, CAN moves decisions.
Field notes
- Plan bus load like a budget. Above ~50% utilization the low-priority tail starts starving; chronic 80% buses produce bugs that only appear on cold mornings when every ECU talks at once.
- ID allocation is politics. The identifier is the priority — which supplier’s message gets 0x100 is a meeting, not a code review. Document the map.
- Measure 60 Ω. Power off, multimeter across CANH–CANL: two 120 Ω terminators in parallel read 60 Ω. The number of “intermittent” bus failures that end at a missing or doubled terminator is humbling.
- Error frames are a symptom, not noise. A counter that climbs on one node points at that node’s connector, crystal tolerance, or sample point setting — not at ghosts.
- Mind the stub lengths on high-speed segments; the 1 Mbit/s bus is far less forgiving of T-taps than the 125 k body bus that taught your habits.