PROTOCOL / 01

CAN bus

Differential signalling, non-destructive arbitration and reliable controller-to-controller communication.

Principle

Message-oriented communication

CAN is a multi-master, broadcast serial network. Nodes transmit frames identified by an 11-bit or 29-bit identifier; that identifier also participates in arbitration. It is not simply the address of a single receiving device.

When nodes start transmitting together, non-destructive bitwise arbitration allows the highest-priority frame to continue. For otherwise comparable identifiers, the lower numerical value has priority; standard 11-bit frames also take precedence over extended 29-bit frames with the same first 11 identifier bits.

Key properties

Standards
ISO 11898-1 (data link); ISO 11898-2 (high-speed physical layer)
Identifiers
11 or 29 bits
Classical CAN payload
Up to 8 bytes
CAN FD payload
Up to 64 bytes
Bus access
Priority arbitration
Physical layer

High-speed CAN wiring

The common ISO 11898-2 high-speed physical layer uses CAN_H and CAN_L as a differential signal pair. A linear bus with short stubs and two correctly located terminators is the usual design.

CheckEngineering note
Bus terminationNormally 120 Ω across CAN_H and CAN_L at each physical end of a high-speed segment.
Resistance testOn a safely de-energized, isolated high-speed segment with two 120 Ω end terminators, the expected resistance is approximately 60 Ω. Extra terminations, connected electronics and alternative termination designs can change the reading; check the equipment manual before measuring.
Ground and shieldFollow transceiver and equipment grounding guidance; avoid assuming the shield is the signal return.
Bit timingAll nodes must use compatible nominal bit timing. CAN FD data-phase settings may differ.
CAN generations

Classical CAN and CAN FD

Classical CAN carries up to eight data bytes per frame. CAN FD extends the data field to 64 bytes and can switch to a higher bit rate during the data phase. CAN FD-capable controllers can also exchange Classical CAN frames. A Classical CAN-only controller normally detects a received CAN FD frame as a protocol error; mixing such nodes requires a compatible network design.

Higher-layer protocols such as CANopen and SAE J1939 add application-level conventions; they are not synonyms for the CAN physical layer.

Practical fault indications

  • Inconsistent termination or bus topology
  • CAN_H / CAN_L wiring errors
  • Bit-rate or sample-point mismatch
  • Excessive errors or bus-off counters
  • Noise and common-mode voltage outside device limits
References

Further reading