Why LIN exists alongside CAN

A window switch, a mirror adjustment motor, a rain sensor, or a seat position module doesn't need CAN's speed, robustness, or cost. LIN (Local Interconnect Network) is a deliberately simple, low-cost single-wire bus for exactly this class of device - typically used within one sub-system (a door, a seat) that then connects to the vehicle's main CAN network through a gateway ECU, rather than every LIN device talking on CAN directly.

CANLIN
Wires2 (differential pair)1 (plus ground/power)
Speedup to 1 Mbit/s (classic)up to 20 kbit/s
ArbitrationMulti-master, priority-basedSingle master, polled
Typical cost per nodeHigherLower - simpler transceiver silicon

Master/slave, not multi-master

This is LIN's biggest structural difference from CAN. There's no arbitration contest because there's no contest to have: one master node (usually the gateway ECU for that sub-system) decides what happens and when, sending out a "header" that names which slave node should respond next. That slave then sends the "response" - the actual data. Nothing on a LIN bus transmits unprompted, which is what keeps the protocol and the slave-node silicon simple enough to be cheap.

A LIN frame

  • Break - a deliberately-invalid signal that marks the start of a new frame, so every node can resynchronise
  • Sync - a fixed byte pattern slaves use to measure the master's exact baud rate (LIN slaves are cheap enough that they often don't have a precise clock of their own)
  • Identifier - which slave/message this header is for
  • Response - up to 8 data bytes plus a checksum, sent by the addressed slave

What this means in practice

Because everything is scheduled by the master, a LIN network's entire message timing is deterministic and defined up front in a LIN Description File (LDF) - LIN's equivalent of a DBC file, but also describing the schedule (which message is polled when), not just the signal layout. Capturing and decoding LIN traffic means listening in on the same header/response exchanges as a passive observer, using the same signal-scaling concepts as CAN (see DBC Files & Signal Decoding) once you have the message layout.

Where it shows up in diagnostics: LIN sub-networks are usually invisible from the main OBD-II connector - a scan tool talking to the vehicle's CAN backbone typically goes through a gateway that already decoded the relevant LIN signals into CAN messages, rather than exposing the LIN bus itself.

Where this fits into the ONAC platform

LIN capture sits alongside CAN/CAN FD as part of ONAC's broader vehicle network systems work - particularly relevant for body-electronics and NVH investigations where a LIN-controlled component (a motor, a sensor) is a suspect.