Skip to content

Article

Multiplexing and CAN: why one broken wire stops five unrelated things

CA @cargeek 1 month ago

Every switch in an old car had a wire running from it to the thing it operated. The headlight switch carried headlight current; the horn button carried horn current. Simple, and it does not scale.

By the 1990s a well-equipped car needed something like 1,200 wires. The loom for a single driver's door could be fifty; the dashboard area alone over a hundred. Wiring complexity was roughly doubling every decade, and it was becoming a serious problem of weight, cost, assembly time — and reliability, because every additional connector is another thing to corrode.

Multiplexing is the answer: instead of a wire per function, run a shared pair of wires past every module and send messages along it. The switch no longer operates the lamp. The switch tells a module, the module puts a message on the network, and another module switches the lamp.

In Iran the Peugeot 206 was the first domestically produced car built this way, with the BSI as its central body computer; the Samand and Soren followed.

What CAN actually is

The original article treats "multiplex" and the network as one thing. They are not quite: multiplexing is the idea, and CAN — Controller Area Network, developed by Bosch and released in 1986 — is the protocol nearly every car uses to do it.

Two details of how it works explain most of what goes wrong.

It is a two-wire differential pair. CAN-High and CAN-Low carry the same signal inverted: when one rises the other falls by the same amount. A receiver reads the difference between them. Electrical noise — from the ignition system, the alternator, a mobile phone — hits both wires roughly equally, so it cancels in the subtraction. That is why a network carrying safety-critical messages can run through an engine bay at all.

Every module hears every message. There is no addressing to a recipient. A message goes out with an identifier saying what it is — engine speed, wheel speed, a door switch state — and each module takes what it needs and ignores the rest. Modules also arbitrate: when two try to talk at once, the more important message wins and the other retries, without either being corrupted.

Why one fault stops several unrelated things

This is the question in the title and the original never answers it.

On a conventional loom, a broken wire disables one thing. On a network, a single fault can take out everything downstream of it — and things that share nothing but the wire.

The instrument cluster shows road speed because a message from the ABS module tells it. The automatic gearbox chooses a shift point partly on engine load, which arrives as a message from the engine ECU. The air conditioning asks the engine for idle-up before the compressor engages. None of these components is connected to the others in any way a wiring diagram of the old sort would show — but break the pair they all talk on, and the speedometer dies, the gearbox goes to a limp strategy and the air conditioning stops, all at once.

That combination looks like several simultaneous failures. It is one wire.

This is the single most useful thing to hold on to when diagnosing a modern car: a set of unrelated symptoms appearing together is evidence for a network fault, not against it. The instinct to look for what the failed items have in common physically is exactly wrong here — what they have in common is a message.

The measurement that finds it

CAN's shared pair is terminated with a 120 Ω resistor at each end of the backbone, to stop signals reflecting off the ends and corrupting the data.

Two 120 Ω resistors across the same pair are in parallel, so the bus should measure about 60 Ω between CAN-High and CAN-Low.

With the ignition off and the battery disconnected, measure across the two CAN pins at the diagnostic socket:

Reading Means
~60 Ω Both terminators present — the bus is intact
~120 Ω One terminator missing, or the bus is broken between the two
Very high or open Both terminators unreachable — an open circuit in the pair
~40 Ω or less An extra terminator somewhere, often an aftermarket accessory
~0 Ω CAN-High shorted to CAN-Low

This single measurement separates a wiring fault from a module fault faster than anything else available, and it needs only a multimeter.

Other useful checks: neither line should be shorted to power or earth, and on a scope a healthy bus shows the two lines mirroring each other about a common rest voltage. A line sitting flat while the other switches means one side of the pair is broken or shorted.

One car, several networks

A modern car carries more than one bus, and knowing which is which prevents a lot of wasted time.

High-speed CAN — up to 1 Mbit/s — carries the powertrain and chassis: engine, transmission, ABS, stability control. Anything where late data is dangerous.

Low-speed or fault-tolerant CAN carries body electronics: doors, seats, lighting, comfort. Slower, and designed to keep working on one wire if the other fails, because a broken window switch should not be a safety event.

LIN is a cheap single-wire bus hanging off a module for the least demanding things — a rain sensor, a mirror motor, a seat switch. A LIN fault usually affects exactly one item, which is a helpful clue.

The buses are joined by a gateway, often the body computer, which forwards selected messages between them. A failed gateway produces its own distinctive picture: two halves of the car that each work internally but cannot see each other.

What the codes tell you

The corpus's whole U category is communication faults, and the numbering is informative.

U0001 is the high-speed CAN bus itself. U0073 — control module communication bus A off — means the module setting it has stopped being able to transmit at all, which points at the physical layer rather than at any one module.

The lost communication codes name the module that went silent: U0100 for the engine ECU, U0121 for ABS, U0140 for the body control module, U0155 for the instrument cluster. Read these as a set rather than one at a time — several lost-communication codes from different modules point at the bus; a single one, reported consistently by everything else, points at that module or its own supply and earth.

The invalid data codes such as U0401 mean something different and more subtle: the messages are arriving, so the network is fine, but their content is not plausible. That is a fault in the module that sent them, not in the wire.

A bus fault can also make the car undiagnosable, because the scan tool reaches most modules over the same network. A tool that cannot see anything at all is itself a result: check the 60 Ω before concluding the tool is at fault.

Going further

If you want to see what these messages actually look like, the CAN database section mirrors the message and signal definitions the open-source community has reverse-engineered for a range of vehicles — the identifiers, what each carries, and how the values are scaled.

Information, not instruction

CarGeek is a reference, not a service manual. Its pages are written from public sources and from what other people have found, never from a manufacturer's own service information, so they can be wrong or incomplete for your particular vehicle. Some of what they describe carries real risk: high voltage, fuel under pressure, stored energy, hot and moving parts.

Have anything you intend to act on checked by a trained person against the manufacturer's own procedure for your vehicle. Nothing here replaces that procedure.

WhatsApp Telegram X Email

Replies

No replies yet.

Sign in to reply.