Inside the CAN Bus: How Your Car's Computers Talk to Each Other
A modern car has 70 to 100 tiny computers called ECUs (electronic control units) -- one for the engine, one for brakes, one for windows, one for the radio. In 1986, German engineer Uwe Kiencke at Bosch invented a way for all of these computers to talk over just two wires instead of hundreds: the Controller Area Network, or CAN bus.
What You'll Learn
- Explain why the CAN bus replaced older point-to-point car wiring. - Describe how CAN bus messages use arbitration IDs to decide which message gets sent first. - Connect the CAN bus to a real diagnostic tool: the check-engine light and OBD-II codes. - Explain, using a real 2015 case, why CAN bus security matters to mechanics today.
Why Cars Needed the CAN Bus
Before the CAN bus, every sensor and switch in a car needed its own dedicated wire running all the way back to whichever computer used it. Wiring harnesses in some cars ran to over 4,000 feet of wire and weighed as much as an adult passenger. The CAN bus fixed this by using just two twisted wires, called CAN-High and CAN-Low, running to every ECU in the car. Instead of a private line for every signal, ECUs broadcast short messages onto the shared bus, and any other ECU that needs that information listens for it. The two wires carry opposite voltage signals, which cancels out electrical noise from the engine and makes the system reliable even in a loud electrical environment.
How Messages Get Priority: Arbitration
Dozens of ECUs might try to send messages on the CAN bus at the same instant. To prevent chaos, every message includes an identifier (ID) number, and lower ID numbers win priority -- a message with ID 0x010 will always be sent before a message with ID 0x7FF. Critical safety messages, like an airbag deployment signal, are assigned very low ID numbers so they always get through first, even if the radio and the power windows are both also sending data at that exact moment. This process, called arbitration, happens non-destructively: the losing message simply waits and retries a fraction of a second later, without being corrupted.
When your check-engine light turns on, a mechanic plugs a scan tool into the OBD-II port, which reads diagnostic trouble codes (like P0300, meaning 'engine misfire') straight off the CAN bus messages the engine ECU has been broadcasting.
When the CAN Bus Fails or Gets Hacked
In 2015, security researchers Charlie Miller and Chris Valasek remotely disabled the transmission of a Jeep Cherokee while a journalist was driving it on a highway. They got in through the internet-connected infotainment system, then sent fake messages onto the CAN bus, tricking other ECUs into obeying commands that didn't come from the driver. The case led to a recall of 1.4 million vehicles and forced automakers to add stronger security between internet-connected systems and safety-critical CAN bus traffic. For mechanics, it's also a reminder: an intermittent electrical problem might be a wiring fault, a failing sensor, or in rare cases, a genuine communication error on the bus itself -- diagnosing it starts with understanding what should be on that bus in the first place.
During CAN bus arbitration, which message wins and gets sent first when two ECUs transmit at the same time?
How did researchers Miller and Valasek remotely disable a Jeep Cherokee's transmission in 2015?
Diagnose a Simulated OBD-II Fault
You're given the code P0171 ('System Too Lean, Bank 1'). Research what this code means, list two likely real-world causes (for example, a vacuum leak or a failing oxygen sensor), and write a short paragraph explaining how the engine ECU's CAN bus broadcast made it possible for a scan tool to detect and report this problem in the first place.
Want to keep learning?
Sign up for free to access the full curriculum โ all subjects, all ages.
Start Learning Free