Mentor Graphics (Formerly Volcano Automotive Group) and Freescale (Formerly Motorola, now NXP). The first fully implemented version of the new LIN specification was published in November 2002 as LIN version 1.3. In September 2003 version 2.0 was introduced to expand configuration capabilities and make provisions for significant additional diagnostics features and tool interfaces. The protocol’s main features are listed below: Single master, up to 16 slaves (i.e. no bus arbitration). This is the value recommended by the LIN Consortium to achieve deterministic time response. Slave Node Position Detection (SNPD) allows node address assignment after power-up Single wire communications up to 19.2 kbit/s @ 40 meter bus length. In the LIN specification 2.2, the speed up to 20 kbit/s. Guaranteed latency times. Variable length of data frame (2, 4 and 8 byte). Configuration flexibility. Multi-cast reception with time synchronization, without crystals or ceramic resonators. Data checksum and error detection. Detection of defective nodes. Low cost silicon implementation based on standard UART/SCI hardware. Enabler for hierarchical networks. Operating voltage of 12 V. Data is transferred across the bus in fixed form messages of selectable lengths. The master task transmits a header that consists of a break signal followed by synchronization and identifier fields. The slaves respond with a data frame that consists of between 2, 4 and 8 data bytes plus 3 bytes of control information. LIN message frame A message contains the following fields: Synchronization break Synchronization byte Identifier byte Data bytes Checksum byte Frame types Unconditional frame. These always carry signals and their identifiers are in the range 0 to 59 (0x00 to 0x3b). All subscribers of the unconditional frame shall receive the frame and make it available to the application (assuming no errors were detected). Event-triggered frame. The purpose of this is to increase the responsiveness of the LIN cluster without assigning too much of the bus bandwidth to the polling of multiple slave nodes with seldom occurring events. The first data byte of the carried unconditional frame shall be equal to a protected identifier assigned to an event-triggered frame. A slave shall reply with an associated unconditional frame only if its data value has changed. If none of the slave tasks responds to the header the rest of the frame slot is silent and the header is ignored. If more than one slave task responds to the header in the same frame slot a collision will occur, and