LIN Protocol Tutorial

The purpose of the LIN Protocol tutorial is to give you a brief explanation of LIN from basic to deep. This will help you to understand and implement it in any project if you are work

ing on it. If you have any doubts after learning from this tutorial please provide us your feedback. Even if you can also comment below if any doubt. If you have any real-time doubt since you are working on any project, then you can ask your question in our forum.

History of LIN Protocol

The LIN stands for Local Interconnect Network. Whenever the Automotive OEMs were started increasing the use of the huge amount of features in the vehicle with having more sensors and other smart intelligent devices in the vehicle, then the price increased as it was more costly for the costumers. So to make a vehicle with low cost, the OEM’s as BMW, Volkswagen Group, Audi Group, Volvo Cars, and Mercedes-Benz are 5 automakers were developed this LIN protocol in 1990 by Volcano Automotive Group and Motorola.

The first LIN was 1.0 version but it was not stable for use in a vehicle. Then the LIN-1.3 version was published in November-2002 where they started using this in the vehicle. Again in September-2003, the LIN-3.0 version was introduced to expand the more features and having the diagnostic features. Even if there is a good advantage of LIN is that it can use as a DC power line for automotive vehicles and is being standardized as ISO/AWI 17987-8.

Lin protocol vender name
LIN Protocol Design Owner

LIN Protocol Revision History

IssueDate of releaseRemark
LIN 1.01999-07-01Initial Version of the LIN Specification
LIN 1.12000-03-06NA
LIN 1.22000-11-17NA
LIN 1.32002-12-13NA
LIN 2.02003-09-16Major Revision Step
LIN 2.12006-11-24Clarifications, configuration modified, transport layer enhanced and diagnostics added.
LIN 2.22010-12-31Updated document according to LIN 2.1 Errata sheet 1.4
Softened bit sampling specification
LIN 2.2A2010-12-31Corrected wakeup signal definition in chapter 2.6.2
Revision History of LIN Protocol

Introduction to LIN Protocol

The LIN is a CAN and SAE-J1850 compliant application protocol which is not time-critical and does not need extreme fault tolerance since the LIN is not reliable as CAN protocol. Basically, the objective of the LIN protocol was to use where the time and fault-tolerant is not a priority and to implement at a low cost than CAN protocol.

Definition Of LIN Protocol

The LIN is broadcasting, Single Master and Multi Slave (up to 16), SCI/UART-based serial, byte-oriented, time-triggered communication protocol designed to support automotive networks in conjunction with Controller Area Network (CAN), which enables the cost-effective communication with sensors and actuators when all the features of CAN are not required. The main features of this protocol (compared to CAN) are low cost and low speed and used for short-distance networks.

Usually, the LIN protocol is used in Automotive vehicles to support the CAN network for cost-effective to connect between the sensors and actuators with an ECU which is often a gateway with CAN bus. In LIN protocol there is no collision detection capability, therefore in LIN, all the messages are initiated by the Master node with at most one slave will reply with the Transmitted message identifier. The master is typically a moderately powerful microcontroller, whereas the slaves can be less powerful, cheaper micro-controllers or dedicated ASIC’s, etc.

Basically the LIN is a single wire 12V bus networking communication protocol based on the ISO-9141 NRZ based standard protocol. The main feature of the LIN network is the synchronization mechanism which allows the clock recovery by the slave nodes without quartz or ceramics resonator. Only the Master node is having consists of the clock or the oscillator. Like CAN protocol, the LIN nodes also can be added into the LIN network without any hardware or software changes in other slave nodes.

Lin protocol network master slave communication
LIN Network With Master Slave Communication

Features of Lin Protocol:

  • LIN protocol has a Single Master and Multi Slave (Up to 16 Nodes) network.
  • It is a Single ware communication protocol up to 20 kbit/s speed at 40 meters.
  • It has Guaranteed latency times for any signal transmission to give reliable and predictable responses in the network.
  • Variable length of Data Frame (2, 4, & 8 bytes).
  • Configuration Flexibility for the Slaves.
  • It has Multicast reception capability with time synchronization without any crystals or ceramic resonators.
  • It has the capability of detection of defective nodes in the network.
  • The LIN frames are having data checksum and error detection capability.
  • It can be designed with Low-cost silicon implementation by using the standard SCI/UART hardware.

Applications Of LIN Protocol

 The LIN bus is having many applications in the automotive vehicles are:

Roof area:

  • Rain sensor – possibly interrogated every 10 – 20 ms
  • Light sensor
  • Light control
  • Sunroof

Door / window: 

  • Mirror
  • Window control
  • Door lock

Steering wheel:

  • Cruise control
  • Radio
  • Mobile phone
  • Wiper
  • Lights

Seats:

  • Seat position control.
  • Occupancy sensor.
  • Heating control (if installed).

Like CAN protocol, the LIN is also having LIN Controller and LIN Transceiver. The LIN controller mostly used the SCI standard available in the microcontroller or else we can use the UART available in the microcontroller and over the UART we can implement the LIN standard frame format for LIN data communication.Physical Layer of LIN Protocol

LIN Network Components

Master Node

  • Controls bus communication by sending header frames.
  • Manages timing and scheduling of frames.
  • Can also act as a Slave node when responding to specific requests.

Slave Node

  • It Responds to Master’s requests when addressed.
  • Can only transmit data when prompted by the Master.
  • Multiple Slave nodes can exist in a single LIN bus.

Physical Layer of LIN Protocol

The LIN-bus transceiver is a modified version of the LIN transceiver used by the ISO-9141 standard. The LIN bus is bidirectional and connected to the node transceiver, and also via a termination resistor and a diode to Vbat of the node for error-free data communication in between the Master and Slave with some modifications for the automotive applications; specifically EMC, ESD, Transient pulse response, and so forth.

The transceiver is what facilitates the communication between the bus and the network. The LIN transceiver converts the bit logic from the microcontroller into higher voltage levels as transmission along the bus, and vice versa. The Transmitter (TxD) and Receiver (RxD) of the LIN transceiver facilitate the communication to and from the bus through voltage translation that happens as the signals pass through the transceiver so that the LIN controller will not worry about the physical communication how it is going to happen. Basically, the LIN transceiver will receive the data from Microcontroller (Inside the microcontroller it will be having LIN controller where which will be used by the Embedded firmware developer to write the LIN driver program) in serial UART pin and convert it to LIN bus voltage level. The TxD has connected to the microcontroller nothing but the on-chip LIN controller, where the message is sent and then broadcasted on the LIN bus. The RxD monitors the bus and converts the messages on the LIN bus to voltage levels the microcontroller can interpret, and thus respond to the communication happening on the bus. The typical voltage levels for the TxD and RxD are typical of most microcontroller levels: 3.3 V and 5 V. The LIN bus, and LIN transceivers, typically operate at voltages ranging from 9 V to 18 V, but some go up to 30 V, depending on the application; a typical vehicle is a 12-V battery system, but some larger vehicles go up to 24 V.

Lin protocol physical layer
Lin Physical Layer Design

Pull-Up Resistor in LIN Protocol

The master node requires an external line pull-up resistor and diode according to the LIN specification. The typical value seen is the 1 kΩ (other typical values are 600 Ω and 500 Ω) in series with a diode – for reverse-polarity protection – connected to the battery voltage. The typical lin pull-up value of the LIN slave is 30 kΩ, and in all modern LIN transceivers, this is integrated within the IC, so no external lin pull-up is necessary for the slave configuration.

LIN BUS Threshold Voltage Level

In a LIN network, data transmission occurs through voltage level variations on the LIN bus. The voltage thresholds for dominant (low) and recessive (high) states differ between the transmitter (Tx) and receiver (Rx) to account for potential variations in supply voltage and signal integrity.

Lin protocol bus diagram
LIN Bus Threshold Level

Voltage Level Requirements

  1. Dominant State (Logical LOW – Active Signal)
    • Transmitter (Tx): The sender drives the bus voltage down to 20% of the battery voltage (VBAT).
    • Receiver (Rx): A dominant bit is detected when the bus voltage drops to 40% of the battery voltage.
  2. Recessive State (Logical HIGH – Idle State)
    • Transmitter (Tx): The sender raises the bus voltage to 80% of the battery voltage.
    • Receiver (Rx): A recessive bit is interpreted when the voltage reaches 60% of the battery voltage.

Why Are These Thresholds Different?

The difference in voltage levels between transmission and reception occurs due to:

  • Voltage drops in the cabling and connectors.
  • Ground shifts across different parts of the vehicle.
  • Filtering components that alter signal levels along the bus.
  • Variations in external supply voltages among different LIN nodes.

LIN Protocol Data Communication

The Local Interconnect Network (LIN) protocol follows a Master-Slave communication model, where one Master node controls up to 16 Slave nodes. Unlike multi-master protocols like CAN, LIN operates in a strictly controlled manner, ensuring efficient and collision-free communication.

How LIN Communication Works?

Lin protocol data frame
Lin Frame Data
  • In a LIN network, communication is always initiated by the Master. The Master node sends a command or a request specifying which data needs to be exchanged.
  • The Slave node responds based on the instructions contained in the LIN frame header sent by the Master.
  • Similar to the CAN protocol, LIN is a message-based protocol, meaning data is transmitted in structured messages rather than direct node-to-node communication.

Key Advantage of LIN Over CAN

One of the major advantages of LIN over CAN is its collision-free nature. Since only the Master can initiate communication, there is no need for complex arbitration mechanisms or collision detection, which are required in CAN networks where multiple nodes can transmit simultaneously.

Data Exchange in LIN

  • The Master first sends a header frame, which includes a message identifier that tells the network which data needs to be transmitted.
  • The Slave then fills the data field with the required information and sends the response back on the LIN bus.
  • The Master receives this data and processes it according to the application’s functionality.
  • The information exchanged within LIN frames is referred to as signals.

By maintaining a structured communication flow where the Master controls all transmissions, LIN ensures a simplified, low-cost, and efficient data exchange mechanism suitable for automotive applications.

LIN Protocol Frame Format

The LIN protocol communicates the data between the Master & Slave using the LIN data frame. This frame is having consists of a Header field, a Response field, and the Inter-frame Space (IFS) field. Every LIN frame is a message and the different messages are categorized by their properties which are defined in the Lin Description File (LDF) like CAN database (.dbc). The LIN messages are created whenever the master node broadcasts a frame containing 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 Header

The LIN message header is generated by the LIN master node which consists of:

  1. Sync Break Field.
  2. Sync Field.
  3. Protected Identifier Field (PID).
  4. Inter Byte Space.
  5. Response Space.

Sync Break Field

 The BREAK field is used to activate all the attached LIN slaves to listen to the header. The synch field is the signal for the LIN slave nodes to warn the beginning of a new frame. break field is always generated by the master task (in the master node) and it shall be at least 13 nominal bit times of dominant value, followed by a break delimiter. This is used to ensure that the listening LIN nodes or ECUs with a main-clock differing from the set bus baud rate in specified ranges will detect the BREAK as the frame starting the data communication and not as a standard data byte with all values zero (hexadecimal 0x00) values. The break delimiter shall be at least always one nominal bit time long.

Lin protocol synch break
Synch Break Field

Sync Field

The objective of the Synch byte is sent to decide the time between two falling edges and thereby determine the transmission rate which the master uses. The LIN slaves are the running on the RC oscillator will use the distance between a fixed amount of rising and falling edges to measure the current bit time on the bus (normally of the master’s time) and to recalculate the internal baud rate. The synch field is a one-byte data with the data value 0x55 (0b01010101) as a bit pattern having a maximum number of edges.

Lin protocol synch field
Sync Field

When the break/sync field sequence happens, the transfer in progress shall be aborted and processing of the new frame shall commence.

Protected Identifier Field (PID)

The protected Identifier field having consisted of two sub-fields as the frame identifier and the parity. The 0to5 bits are the frame identifier and the 6 – 7 are the parity.

LIN Frame Identifier

The 6-bit identifier contains the information about to the sender and receiver and the number of bytes which is expected in the response. The values in the range between 0 – 63 can be used.

How to detect DLC of a LIN frame?

The response is as below according to the frame identifier sent by the master as below:

ID Range (DEC)ID Range (HEX)Frame Data Length (Byte)
0-31 0X00 – 0X1F2
32-470X20 – 0X2F4
48-630X30 – 0X3F8
LIN Protocol Identifier Range With Frame Length

The frame identifiers are split into three categories are:

  1. Values from 0 – 59 (0x3B) are used for signal carrying the frames.
  2. The values from 60 (0x3C) and 61 (0x3D) are used to carry diagnostic and configuration data.
  3. The values from 62 (0x3E) and 63 (0x3F) are reserved for the future protocol enhancements.

LIN Parity Field

The LIN protocol is also using error checking methods like CRC in CAN protocol for validation of transmitted data. The LIN using the Parity Bit checking method for data validation. The parity is calculated on the frame identifier bits as shown in equations (1) and (2):

P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4 —————-(1)

P1 = ! (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5) ————(2)

Mapping: The mapping of the bits (ID0 to ID5 and P0 and P1) is shown in Figure below: 

Lin protocol map
LIN Map

LIN Inter Byte Space

The Inter Byte Space is used to adjust for bus jitter. It is an optional component within the LIN specification. If it is enabled, then all the LIN nodes must be prepared to deal with it. There is an Inter Byte Space IN between the BREAK and SYNC field, one between the SYNC and IDENTIFIER field, one between the payload and Checksum and one between every Data byte in the payload.

LIN Response Space

The Response Space is the time between the IDENTIFIER field and the first Data byte which starts of the LIN RESPONSE part of the LIN frame. When a particular LIN frame is transmitted completely, Header + Response, by the LIN MASTER, the LIN MASTER will use the full RESPONSE SPACE TIME to calculate when to send the response after sending the header. If the response part of the LIN frame is coming from a physically different SLAVE NODE, then each node (master & slave) will utilize 50% of the Response Spacetime in their timeout calculations for the delay.

LIN Slave Response Field

The response is sent by one of the attached LIN slave tasks and is divided into (1) data and (2) checksum.

LIN Slave Data Field

The responding LIN slave may send zero to eight data bytes to the LIN bus. The amount of data is fixed by the LIN Master (application designer) and mirrors data relevant for the application which the LIN slave runs in.

LIN Checksum

Like CAN protocol, the LIN is also having the CRC for data validation. There are two checksum-models are available within the LIN – The first is the checksum including the data bytes only (specification up to Version 1.3), the second one includes the identifier in addition (Version 2.0+). The used checksum model is pre-defined by the application designer for their own product.

Difference between Classic and Enhanced LIN Checksum:

The checksum used in LIN protocol is one byte long and differs from LIN version 1.3 to LIN version 2.1: –> LIN V1.3: The LIN version from V-1.0 to V-1.3 called classic Checksum. In this, the checksum is calculated from the data-bytes only. –> LIN V2.1: The LIN version from V-2.1 to above called enhanced Checksum. In this, the checksum is calculated from the data-bytes and PID fields. The best advantages of LIN is Inside a LIN V2.1 bus, the individual messages can also be transmitted as LIN V1.3 messages, in order to remain compatible with old ECUs in vehicles. The LIN message IDs 60 (0x3C) and 61 (0x3D) are reserved for the classic checksum as per LIN 1.3. A LIN 2.0 master is backward compatible with a LIN 1.3 slave (with limitations). Both LIN 2.0 and LIN 1.3 slaves can coexist in a network but some new features like the improved checksum and automatic baud rate detection have to be avoided by using the above-defined LIN message ID.

How to calculate the CheckSum in LIN Protocol?

The LIN v-2.0 specification defines the checksum calculation process as the summing of all values and subtraction of 255 every time the sum is greater than or equal to 256 (unlike modulo-255 or modulo-256). Per the LIN 2.0 specification, the classic checksum is for use with LIN 1.3 slave nodes and the enhanced checksum is for use with LIN 2.0 slave nodes. It further specifies that IDs 60 through 63 shall always use a classic checksum.

What is the difference between Classic and Enhanced LIN CheckSum?

The below points are changed from older LIN v1.3 to Enhanced LIN 2.1:

  1. The Byte array signals are supported, thus allowing signal sizes up to eight bytes.
  2. The Signal groups are deleted as replaced by byte arrays for better performance.
  3. Automatic bit-rate detection is incorporated in the LIN 2.1 specification.
  4. The Enhanced checksum including a protected identifier as an improvement to the LIN 1.3 classic checksum.
  5. In LIN v2.1, Sporadic frames are defined.
  6. The Network management timing is defined in seconds, not in bit times for flexible application interface.
  7. The LIN network Status management is simplified and reporting to the network and the application is standardized.
  8. Mandatory node configuration commands are added, together with some optional commands.
  9. The Diagnostics features are added for ECU fault detection.
  10. A LIN Product Identification for each node is standardized to implement and interface easily in a LIN network.
  11. The API is made mandatory for microcontroller-based nodes programmed in C.
  12. The API is changed to reflect the changes; byte array, go-to-sleep, wake up, and status reading.
  13. A diagnostics API is added.
  14. A node capability language specification is added.
  15. The configuration language specification is updated to reflect the changes made; node attributes, node composition, byte arrays, sporadic frames, and configuration are added.

LIN Protocol Frame Types

The LIN is having consists of 6 types of frames as  the identifier specifies the frame type which can be one of the following:

  1. Unconditional Frame.
  2. Event-triggered Frame.
  3. Sporadic Frame.
  4. Diagnostic Frame.
  5. User-defined Frame.
  6. Reserved Frame.

Unconditional LIN Frame

This frame is the normal type of LIN message format for data communication. Basically, the master node will send this frame header in a scheduled frame slot and the designated slave node will receive and fills the data and send it back. This frame normally carries off the signals and the defined identifiers from 0-59 (0x00 to 0x3B). In short:

  • A specific frame ID is always sent.
  • Used for standard communication without dynamic behavior.

Event-Triggered LIN Frame

The purpose of this method is to receive as much information from the slave nodes without overloading the bus with frames. An event triggered frame can be filled with the data from more than one slave node. A slave only updates of the data in an event-triggered frame when the value has changed. If more than one slave wants to update data in the frame a collision occurs. The master should then send unconditional the frames to each of the slaves starting with the one with the highest priority. In short:

  • Used for frames that should only be sent when specific conditions are met.
  • Multiple frames share the same event-triggered slot.
  • If multiple responses occur simultaneously, the Master detects a collision and resolves it.

Sporadic LIN Frame

The purpose of the sporadic frame is to blend some dynamic behavior into the deterministic and real-time focused schedule table without losing the determinism in the rest of the schedule table. In short:

  • Used for frames that are rarely transmitted.
  • Only one response is allowed per slot, prioritizing the highest-priority frame.
  • If no data is available for transmission, the slot remains silent.

Diagnostic LIN Frame

The diagnostic frame is used to find the fault in a LIN network by using the Transport Layer (TP). The frame identifier is either 60 (0x3C), called the master request frame, or 61 (0x3D), called the slave response frame. The interpretation of the data is given in the Node configuration and Identification Specification and Diagnostic specification.

LIN Protocol BUS Timing

Since the LIN protocol bus is a polled bus, the processing of each frame is allocated a nominal time slot as follows:

  • THeader_Nominal = 34 * Tbit.
  • TResponse_Nominal = 10 * (NData + 1) * TBit.
  • TFrame_Nominal = THeader_Nominal + TResponse_Nominal. Processing of each frame is allocated a maximum time slot as follows:
  • THeader_Maximum = 14 * THeader_Nominal.
  • TResponse_Maximum = 1.4 * TResponse_Nominal.
  • TFrame_Maximum = THeader_Maximum + TResponse_Maximum.

LIN Transport Layer (LIN-TP)

The LIN transport layer facilitates the transmission of large messages.

  • Uses special frame IDs:
    • 0x3C: Master-Request Frame (MRF) for Master to Slave communication.
    • 0x3D: Slave-Response Frame (SRF) for Slave to Master communication.
  • Messages can be segmented using:
    • Single-Frame (SF): For messages ≤ 6 bytes.
    • First-Frame (FF) & Consecutive-Frame (CF): For messages > 6 bytes.

LIN Description File (LDF)

An LDF defines the LIN network configuration, including nodes, schedule tables, and frame details. Example:

LIN_description_file;
LIN_protocol_version = 2.2A;
LIN_language_version = 2.0;
LIN_speed = 19.2 kbps;
Channel_name = LIN_Bus;
Nodes {
    Master: LIN_Master, 5 ms, 1 ms;
    Slave: [LIN_Slave1, LIN_Slave2];
}

LIN Protocol Behaviour:

The LIN bus connects a single master device (ECU/node) and one or more slave devices (ECU/nodes) together in a LIN cluster. The behavior of each node is described by its own ECU/node capability file. The node capability files are the inputs to a system-defining tool, which generates a LIN description file (LDF) that describes the behavior of the entire cluster. The LDF is parsed by a system generator to automatically generate the specified behavior in the desired nodes. At this point, the master node master task starts transmitting headers on the bus, and all the slave tasks in the cluster (including the master node’s own slave task) respond, as specified in the LDF.

The LDF is used to configure and create the scheduling behavior of the LIN cluster. For example, it defines the baud rate, the ordering and time delays for the master task’s transmission of the headers, and the behavior of each slave task in the response packet. The response queue holds 64 responses, one for each of the maximum number of 64 IDs specified for the LIN. This ensures that the LIN interface slave task can respond to headers within the response time defined by the LIN specification.

LIN Protocol Error Detection and Confinement:

The LIN 2.0 specification states that error detection should be handled by the slave tasks and that error monitoring by the master task is not required which will improve the LIN bus master efficiency. The LIN 2.0 specification does not require the handling of multiple errors within one LIN frame or the use of error counters also. Upon encountering the first error in the frame, the slave task aborts the processing of the frame until the detection of the next break-sync sequence (in the next header transmitted by the master). If the log bus error attribute is set to true, a bus error the frame is logged into the read queue. If the log bus error attribute is set to false, an error is the returned by ncWriteNet or ncWriteNetMult.

LIN protocol also provides for error reporting to the LIN network. The LIN 2.0 specification defines a Response_Error status bit, which the slave is required to report to the master in one of its transmitted frames. This bit is set whenever the frame received or transmitted by a slave node contains an error in the response field. The bit is cleared after it is then transmitted in one of the slave’s published responses.

Network Management in LIN Protocol

Network management in LIN ensures the proper functioning of all nodes and efficient power consumption. Key aspects include:

1. Go-To-Sleep Mode

  • The Master node can send a Go-To-Sleep command to put all Slave nodes into low-power mode.
  • The command consists of a frame with all data bytes set to 0x00.
  • When in sleep mode, nodes consume minimal power, suitable for battery-powered automotive applications.

2. Wake-Up Mechanism

  • Any node (Master or Slave) can wake up the bus by pulling the LIN line dominant (low) for a duration between 250µs to 5ms.
  • This wake-up signal prompts all nodes to resume normal operation.
  • The Master node then transmits a break field to synchronize all Slaves before communication resumes.

3. Timeout and Error Handling

  • If the Master node does not transmit a break field within 150ms to 250ms after the wake-up signal, the Slave must resend the wake-up signal.
  • If no response is received after three consecutive wake-up attempts, the initiating node must wait at least 1.5 seconds before retrying.
  • LIN does not implement advanced error detection mechanisms like CAN, but it ensures minimal retransmissions and efficient retry mechanisms.

4. Node Addressing in Network Management

  • The Node Address (NAD) is used to identify and manage individual nodes in the LIN network.
  • The Master can send configuration commands to specific nodes using their NAD.
  • NAD 0x00 is reserved for network management purposes.

LIN Protocol Transceiver :

With most modern LIN transceivers, there are special functions that help with the specific application needs. Most of the features listed are for systems that focus on low power consumption. Let’s go discuss the different LIN Modes.

LIN Protocol Sleep Mode

The Sleep Mode in LIN protocol is designed to reduce power consumption in vehicle networks. This feature helps optimize battery usage by allowing unused nodes to enter a low-power state while keeping the system responsive to wake-up signals.

How Sleep Mode Works

  1. Entering Sleep Mode
    • Sleep mode is activated by disabling the LIN transceiver. This can be done by setting the Enable (EN) pin to logic LOW (if present).
    • When in sleep mode, the node enters a less functional state, meaning it consumes minimal power but remains capable of detecting wake-up signals.
    • The LIN driver is disabled, and the internal bus termination is switched off to reduce current draw, even if the LIN bus is accidentally shorted to ground.
    • A low-power receiver remains enabled, while the normal receiver function is disabled. The EN input remains active.
  2. Triggering Sleep Mode via LIN Master
    • According to the LIN 2.0 specification, the Master node can force all Slave nodes into sleep mode by sending a diagnostic master request frame (ID = 60) with the first data byte set to 0. This frame is known as the Go-To-Sleep Command.
    • If a Slave node receives this frame, it transitions into sleep mode.
  3. Automatic Sleep Mode Activation
    • If the LIN bus remains inactive for more than 4 seconds, Slave nodes automatically enter sleep mode to save power.
    • Once a full frame containing a sleep request message is received from the Master or if bus inactivity is detected for 4 seconds, the LIN interface can be set to Sleep Mode by configuring the LIN Sleep attribute to TRUE in the application code.

Wake-Up from Sleep Mode

  • Any node can wake up the LIN network by sending a dominant (low) signal on the LIN bus for 250 µs to 5 ms.
  • The Master node detects this wake-up signal and resumes communication by sending a break field to synchronize all Slaves.

Benefits of Sleep Mode in LIN

  • Optimized power consumption in automotive applications.
  • Extended battery life, especially in battery-operated subsystems.
  • Ensures Slaves remain available while minimizing current draw.

LIN Protocol Standby Mode

The Standby Mode in the LIN protocol is a low-power state that serves as an intermediary between Sleep Mode and Normal Operation. This mode is activated when a wake-up request is detected, but the Enable (EN) pin remains in a low state.

Key Differences Between Standby and Sleep Mode

FeatureSleep ModeStandby Mode
Power ConsumptionMinimalSlightly higher than Sleep Mode
RDX (Receiver Output)Floating (high impedance)Low (active)
Wake-up HandlingDevice remains inactive until explicitly reactivatedSignals to the controller that a wake-up request has been detected
Transition to Normal ModeRequires an external wake-up signal and EN pin activationDirectly transitioned by setting the EN pin HIGH

How Standby Mode Works

  1. Entering Standby Mode:
    • When a wake-up request is detected on the LIN bus, the transceiver enters Standby Mode instead of immediately going to Normal Mode.
    • However, if the EN pin remains LOW, the transceiver stays in Standby Mode instead of fully powering up.
  2. Signaling the Controller:
    • In Standby Mode, the RDX output is driven LOW, indicating to the microcontroller that a wake-up event has occurred.
    • This contrasts with Sleep Mode, where the RDX output is floating, meaning no active signal is sent.
  3. Transitioning to Normal Mode:
    • To exit Standby Mode and enter Normal Mode, the EN pin must be set HIGH.
    • If the EN pin is LOW during power-up, the LIN transceiver automatically starts in Standby Mode instead of Normal Mode.

Why Standby Mode is Useful

  • Ensures quick response after a wake-up event without immediately drawing full power.
  • Reduces power consumption while still allowing the system to detect wake-up requests.
  • Prevents unnecessary bus activity, helping manage power efficiently in automotive applications.

LIN Protocol Wake-Up Mode

The Wake-Up Mode in the LIN protocol is designed to reactivate nodes (ECUs, devices) on the bus from Sleep Mode. Any node, whether Master or Slave, can initiate a wake-up request, ensuring that all connected devices return to active operation when needed.

How Wake-Up Works in LIN

  1. Wake-Up Initiation
    • Any node (Master or Slave) can initiate a wake-up request.
    • The wake-up request is issued by forcing the LIN bus into a dominant state (low voltage level) for a duration of 250 µs to 5 ms.
  2. Wake-Up via WAKE Pin
    • Most LIN transceivers have a WAKE pin, which can be used as an alternative to the LIN bus wake-up request.
    • The WAKE pin is typically a high-voltage pin and can respond to:
      • Negative transitions (high-to-low voltage change).
      • Positive transitions (low-to-high voltage change).
      • Both negative and positive transitions, depending on transceiver design.
  3. Role of the EN Pin
    • The EN (Enable) pin in the LIN transceiver is controlled by the microcontroller.
    • A negative transition (HIGH → LOW) on the EN pin places the device into Sleep Mode.
    • A positive transition (LOW → HIGH) on the EN pin wakes the device back into Normal Mode.

Timing Requirements for Wake-Up

According to the LIN 2.0 specification:

  • When a Slave node detects a wake-up request, it must be ready to process headers within 100 ms.
  • The Master node must detect the wake-up request and start sending headers within 100 to 150 ms.

Wake-Up Retrying Mechanism

If the Master does not send headers within 150 ms after receiving the first wake-up request:

  1. The Slave node retries the wake-up request and waits another 150 ms.
  2. If the Master still does not respond, the Slave issues the wake-up request again and waits another 150 ms.
  3. If there is no response after three attempts, the Slave must wait for 1.5 seconds before attempting a fourth wake-up request.

Why is Wake-Up Mode Important?

  • Ensures efficient power management by keeping nodes in low-power Sleep Mode until needed.
  • Allows both Master and Slave nodes to reactivate the network when required.
  • Provides a reliable retry mechanism, preventing unnecessary power drain.

7 thoughts on “LIN Protocol”

  1. Veerendra N n

    Mostly i don’t find any article in Google on LIN protocol. But after i got this from PiEmbSysTech, i don’t think that i need any other site so stopped searching this on google. I just bookmarked the PiEmbSysTech as favourite. Thats it.

  2. Under history it is mentioned that LIN 3.0 and in LIN revision history it is not may i know LIN 3.0 is available??

Leave a Reply

Scroll to Top