The LIN protocol is a serial, wired communications protocol for electronic devices. It consists of one master and one or more slaves, and does not support multiple masters.
The LIN (local interconnect network) protocol was originally designed for localised communication within an automobile (for instance, between electrical devices in the door), while the CAM protocol was designed for global communication (e.g. from the back to the engine bay).
It can be considered as a cross between the RS-232/UART and I2C protocols. It uses the open-drain, pull-up design of the I2C protocol, but the start/stop bit and asynchronous timing of the UART protocol.
Bit Rate And Transmission Distances
Bit rates vary between 1-20kBit/s. The top speed is limited primarily for EMC reasons. The transmission rate is changeable by the master at any time, as the slaves use a sync byte included in the message header to synchronise their clocks to the bit rate.
6 bits is allocated for the header ID, giving a total of 64 different header IDs. However, the IDs 60-63 are reserved for special functions, giving a useable range 0-59.
From the Freescale website
LIN/SAE J2602 is a universal asynchronous receiver–transmitter (UART)–based, single–master, multiple–slave networking architecture originally developed for automotive sensor and actuator networking applications.
Atmel makes SiP (System-in-Package) IC's such as the ATA6624C, which contains a ATmega168 microcontroller and ATA6624 (which they call a LIN-system-basis chip).
Texas Instruments make LIN interface IC's, such as the TPIC1021DR, which is a cheap (approx US$0.50, as of 2012), simple, SOIC-8, LIN bus driver.
Texas Instruments MSP430 microcontrollers with the USCI_A (Universal Serial Communication Interface) peripheral support the LIN protocol. This includes the MSP430 Value Line (MSP430G2xx), MSP430 2 Series (MSP430F2xx), MSP430 4 Series, MSP430 5 Series, MSP430 6 Series and MSP430 Automotive Series.
Freescale's S08 automotive microcontrollers have an SCIx peripheral, which support the LIN protocol.
- LVDS (Low-Voltage Differential Signalling)
- How To Use SocketCAN With C++ In Linux
- How To Use SocketCAN With The Command-Line In Linux
- 4-20mA Current Loops