
Two wires, one state
A CAN bus is in one of two states, set by the difference between its two wires. Noise that lifts both wires together leaves the difference alone, which is why there are two.
Two wires, one number
A CAN bus has two wires, CAN high and CAN low, and one thing a receiver reads from them: the difference in voltage between the two. When nobody is sending, both wires rest at about 2.5 V in the generic standard, so the difference is about zero. That is the recessive state, a one. The SN65HVD230 on the TK109 board idles nearer 2.3 V; the difference is still about zero.
When a node sends a zero it pulls CAN high up by about a volt and CAN low down by about a volt, to roughly 3.5 V and 1.5 V. The difference is about 2 V. That is the dominant state, a zero.
Two limits, not one threshold
A receiver does not compare against a single line. The standard guarantees that a difference of at least 0.9 V reads as dominant and a difference of at most 0.5 V reads as recessive. Between them it promises nothing. Those are guaranteed limits, not the point where a chip switches: the SN65HVD230 typically switches near 0.75 V on the way up. A difference in the gap may be read either way, and differently by two receivers.
Why the difference
Noise from a motor or a relay lifts both wires at the same moment by about the same amount. Both wires move, the difference does not, and a receiver that only reads the difference sees almost nothing.
Twisting the pair is what makes the noise arrive nearly equally on both wires, because the two wires then take turns being the nearer one. Nearly, not exactly. What is left over is small, and it is the reason a long bus should use real twisted pair and not two loose wires. A straight pair leaves more.
What it costs when it goes wrong
Noise that reaches one wire more than the other is the dangerous kind, since it changes the difference. A damaged or poorly laid cable can turn common noise into that kind. The symptom is not a dead bus but sporadic errors: frames that fail their check and are sent again, and a bus that behaves until a motor starts.
Common mistakes
- Reading CAN high as the data and CAN low as the return. Neither wire carries the signal alone. Only the difference does.
- Treating 0.9 V and 0.5 V as the switching point. They are the guaranteed limits at each end of a gap the standard leaves open.
- Using two loose wires for a long run. Without the twist the noise reaches the wires unequally, and the cancelling is much weaker.
Edit this page — content/fundamentals/can/two-wires-one-state.mdx
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.