CANBUS – Networking so simple, even YOU can understand it!
Dave's Garage · 23:06 · 3 days ago
CAN Bus is a robust, distributed communication protocol that allows multiple devices to share data over a simple two-wire connection without a central controller. It manages traffic through a built-in priority system where messages with lower identification numbers automatically take precedence during contention, ensuring reliable data delivery in noisy environments.
-
Differential signaling — Data transmission relies on the voltage difference between two wires (CAN High and CAN Low) rather than absolute voltage levels, which rejects common-mode electrical noise .
-
Dominant and recessive states — A logical zero is "dominant" and forces the wires apart, while a logical one is "recessive" and allows both wires to settle at a neutral middle voltage .
-
Non-destructive arbitration — When multiple devices broadcast simultaneously, the system compares identifiers bit-by-bit; the device with the lower numerical identifier (higher priority) wins the bus, while the others yield without corrupting the message .
-
Shared broadcast network — Every message is visible to all connected devices, allowing individual controllers to simply listen for and process identifiers relevant to them .
-
Termination requirements — Attaching 120-ohm resistors at both ends of the network prevents signal reflections that would otherwise occur at wire ends .
-
Bit stuffing — To maintain timing synchronization, a transmitter inserts a bit of opposite polarity after five identical bits, which receivers then identify and remove .
-
Fault confinement — If a device repeatedly generates errors, the system progressively isolates it, eventually putting it into a "bus off" state to prevent a single broken component from blocking all communication .
-
Lack of authentication — The protocol does not verify the source of a frame, allowing any device with knowledge of the message format to masquerade as another .