In short: CAN is a two-wire, multi-master serial bus whose genius is bit-wise, non-destructive arbitration on message identifiers — the highest-priority frame always wins the line without retransmission, which is exactly why it has dominated automotive and industrial embedded networks for four decades.
If you have ever wondered how the fifty-plus electronic control units (ECUs) in a modern car — engine, ABS, airbags, door modules — all share a couple of twisted wires without stepping on each other, the answer is the Controller Area Network (CAN). Bosch introduced it in 1986 for Mercedes-Benz, and it is now standardised as ISO 11898. This article explains the three ideas that make CAN work: differential signalling, bit-wise arbitration, and the message frame — and why those choices beat the alternatives for safety-critical, real-time systems. For broader context, see our overview of communication protocols in embedded systems.
A message bus, not an address bus
The first mental shift CAN demands is that frames are not addressed to a node. There is no "send to ECU 7." Instead every frame carries an identifier that names the content — "engine RPM," "wheel speed," "brake pedal position." Every node hears every frame and uses on-chip acceptance filters to decide what to keep. This content-addressing is why adding a new sensor module rarely means rewiring: it simply subscribes to the IDs it cares about. The identifier does double duty, because it is also the priority.
⚡ Classic CAN runs up to 1 Mbit/s, but on a 40 m bus the practical ceiling is about 250–500 kbit/s because the arbitration bit must propagate to the far end and back within one bit time. CAN FD (ISO 11898-1:2015) lifts the data-phase rate to 5–8 Mbit/s once arbitration is over.
Differential signalling: two wires, strong noise immunity
CAN uses two lines, CAN_H and CAN_L, terminated by 120 Ω resistors at each physical end. A dominant bit (logical 0) drives the pair apart to roughly 3.5 V / 1.5 V; a recessive bit (logical 1) lets them float back together near 2.5 V. Because a receiver looks only at the difference between the wires, electromagnetic interference that couples equally onto both conductors cancels out. That is what lets CAN survive the brutal EMC environment next to an ignition coil or a 400 V inverter.
Bit-wise arbitration: the heart of CAN
Here is the elegant part. Dominant bits physically overwrite recessive bits on the shared medium — a wired-AND. When two or more nodes start transmitting at the same time, they send their identifier bit by bit, most-significant first, and simultaneously read back the bus. A node that transmits a recessive 1 but reads a dominant 0 knows another node with a higher-priority (lower numerical) ID is talking, so it immediately stops and becomes a listener. It does not corrupt the winning frame and does not have to retry a collision.
This is CSMA/CR — Carrier Sense Multiple Access with Collision Resolution — and it is fundamentally better than Ethernet's CSMA/CD for real-time control. There is no back-off, no lost bandwidth to collisions, and the frame with the lowest ID always meets its deadline. A brake message given ID 0x080 will always pre-empt an infotainment status at 0x600.
Anatomy of a CAN data frame
A standard (11-bit) data frame is a tightly specified sequence of fields. Understanding it is a common VLSI and embedded interview question:
| Field | Bits | Purpose |
|---|---|---|
| SOF | 1 | Start-of-frame; synchronises all nodes |
| Identifier | 11 (or 29 extended) | Priority + content label |
| RTR | 1 | Data vs. remote request |
| Control (IDE, DLC) | 6 | Data length code 0–8 bytes |
| Data | 0–64 | Payload (max 8 bytes classic, 64 in CAN FD) |
| CRC | 15 + delim | Error detection polynomial |
| ACK | 2 | Receivers assert dominant to confirm |
| EOF + IFS | 10 | End of frame, inter-frame space |
? CAN's error handling is a safety hallmark: a 15-bit CRC, bit-stuffing (a stuff bit inserted after five identical bits), form checks, and acknowledgement. The Hamming distance of 6 means it can detect up to 5 randomly distributed bit errors per frame. Faulty nodes also self-isolate via transmit/receive error counters — moving to "bus-off" rather than jamming the network.
Why it still dominates — even against newer buses
CAN's payload is tiny by modern standards, yet it wins on determinism, cost, and robustness. Three reasons keep it entrenched:
- Guaranteed latency. Priority arbitration gives a provable worst-case response time, which you can analyse with classic rate-monotonic math — essential for airbag or steering torque signals.
- Fault tolerance. The bus keeps running if a node dies or a wire shorts; low-speed fault-tolerant CAN can even run single-wire.
- Ecosystem. Every automotive MCU has an on-chip CAN controller; higher layers like CANopen (industrial automation) and SAE J1939 (trucks) are mature. Tools from vendors such as Vector CANoe and Siemens are standard for bench validation, and silicon teams verify CAN IP cores against the ISO spec using UVM testbenches in Synopsys VCS or Cadence Xcelium before tape-out.
Automotive Ethernet and CAN FD are extending, not replacing, the ecosystem: CAN FD keeps the arbitration scheme while enlarging the payload to 64 bytes and speeding up the data phase, bridging the gap until zonal Ethernet architectures mature. If you want to see how CAN sits alongside SPI, I²C and UART trade-offs, read our breakdown of SPI vs I²C vs UART.
Teams designing or verifying CAN controller IP at the RTL level often pair this theory with hands-on labs. Our training partner ChipXpert's VLSI programs cover protocol IP verification in depth, and silicon design services are available through Avecas.
Want to build a working CAN node on an STM32 and decode frames on a logic analyser? Our hands-on Embedded Systems & Protocols course on CourseTron walks you from bit timing to a full CANopen stack.
Frequently asked questions
Why does a lower CAN ID mean higher priority?
Because dominant bits (0) overwrite recessive bits (1) during arbitration. A smaller numeric identifier has more leading zeros, so it keeps "winning" the bus bit by bit while higher-ID nodes detect the mismatch and back off.
What is the difference between classic CAN and CAN FD?
CAN FD (Flexible Data-rate) keeps the same arbitration mechanism but allows up to 64 data bytes per frame and switches to a faster bit rate (up to 5–8 Mbit/s) during the data phase after arbitration completes, dramatically increasing throughput.
How far and how fast can a CAN bus run?
There is a trade-off set by signal propagation: 1 Mbit/s is possible only up to about 40 m, while 125 kbit/s can reach roughly 500 m. The arbitration bit must round-trip the whole bus within one bit time.
Is CAN secure?
Classic CAN has no built-in authentication or encryption — any node can inject any ID. Modern vehicles add SecOC (Secure Onboard Communication) message authentication, gateways, and intrusion detection on top of the raw protocol.