CAN is message-based, not node-based. An I2C transaction targets a device by its address and SPI selects a device with a chip-select line, both are destination addressing. A CAN frame instead carries an identifier that names the message content (e.g., "engine RPM" or "brake status"), and the frame is broadcast to every node on the bus; there is no source or destination field. Each node uses hardware acceptance filters to decide which IDs it cares about and ignores the rest. This decouples producers from consumers: a sensor broadcasts its measurement under a known ID, and any number of nodes can consume it without the sender knowing or caring who's listening, which suits a distributed control system. The design implication is that you must define a system-wide ID map (which ID carries which signal, and thus its priority), and that's exactly what higher-layer standards like CANopen and J1939 standardize on top of raw CAN. So with CAN you think in terms of messages and their priorities, not device addresses or select lines.
Communication Protocols · Interview question
How is CAN addressing different from I2C or SPI?
A strong answer
What a weak answer sounds like
You know the answer. Do you know what gets you dinged?
Pro breaks down the answer most candidates actually give to this question — and the specific reason an interviewer marks it down. It’s the difference between sounding correct and sounding senior, on all 472 questions.
From the lesson
CAN Bus
The robust multi-master bus behind vehicles: differential dominant/recessive bits, non-destructive bitwise arbitration by message ID, and built-in error detection with fault confinement.
More CAN Bus questions
How does CAN arbitration work, and why is it called "non-destructive"?Why does CAN need exactly two 120 Ω termination resistors, and what happens without them?What makes CAN robust enough for vehicles? Describe its error handling.A CAN node keeps going "bus-off." What does that mean and what causes it?
Browse all 472 interview questions