LIN Bus The Little Sibling Of CAN Bus
Today I learned about existence of Local Interconnect Network or LIN bus. It is a set of specifications defining a network communication system describing everything from raw voltage levels up to logical communication data protocol. A LIN network has up to sixteen devices: one controller and up to fifteen peripherals, and they communicate via asynchronous serial over a shared wire. At a high level, there's a lot of resemblance to how serial bus servos work, but LIN came from the automotive field.
As car components got more sophisticated, basic on/off or analog voltage was no longer enough to convey status. They needed an actual data network protocol, and the industry has settled on CAN bus. While capable and robust, CAN bus is overkill for basic functions. LIN bus is a simpler protocol that trades capability for less expensive implementation hardware. A focus on simplicity meant the LIN steering group decided their job here was done and is now a mature standard also known as ISO 17987.
Based on my limited reading, I understand the division of labor for an illustrative modern car driver's door would be something like this:
- A host controller connected to the car's CAN bus communicating with the rest of the car, and connected to other devices inside the door via LIN bus.
- A microcontroller monitors all the power window switches and report their status to the door host via LIN.
- A microcontroller manages the power window motor based on commands received from door host via LIN.
- Repeat for power door locks, and power mirrors.
- Other sensor inputs like whether door latch is closed.
- Other control outputs like illuminating puddle lights.
Given the close proximity of these devices to each other inside the door, full signal integrity robustness of CAN bus was not strictly necessary. LIN bus modularity means fewer wires. For example, wires that would otherwise be necessary if the host controller had to monitor each power window switch individually could now be replaced by a single LIN data wire. It also simplifies adding/removing functionality for higher/lower trim levels in a product line, and reduce cost of adapting to regional differences like left- or right-hand drive.
That's all great for automobile manufacturers. But since LIN bus is simpler than CAN bus, it also lowers the barrier to repurposing automotive components for hobbyist projects. A quick look on Arduino forums found several threads discussion LIN bus devices, and there exists affordable breakout boards (*) to interface with microcontrollers. This could be an entryway into a lot of fun.
(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.