单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读 > 带你搞懂LIN总线知识

带你搞懂LIN总线知识

扫描关注一起学嵌入式,一起学习,一起成长


大家好,今天这篇文章来自一位汽车电子软件的大佬,将这篇文章分享给大家。感谢这位大佬的投稿。

LIN总线定义

LIN (Local Interconnect Network,局部互联网络总线)是针对汽车分布式电子系统而定义的一种低成本的串行通讯网络。

LIN主要功能是为CAN总线网络提供辅助功能,在一些比如车身电子配件的地方(如车窗、后视镜、大灯、雨刮器等)就采用 LIN 总线。适

用于对网络的带宽、性能或容错功能没有过高要求的应用。基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,是UART中的一种特殊情况。

LIN总线特点

(1)LIN总线采用的是单线传输形式,总线电平一般为12V,传输速率最高限制为20kbps。由于物理层的限制,一个LIN网络最多可以连接16个节点,无需仲裁。

(2)对硬件要求简单,仅需UART/SCI 接口,辅以简单驱动程序便可实现 LIN 协议。

(3)LIN的一大优点是成本低,最大传输速率为20Kbps。建议的通信速率如下,低速2400bps,中速9600bps,高速19200bps。(bps全称为bit per second)

LIN的网络拓扑结构

(1)单主任务,多从任务;

(2)主节点(master)包含主任务和从任务;

(3)从节点(slave)只包含从任务;

(4)主任务(master)决定总线上的报文,从任务发送数据;

(5)LIN网络中的所有节点(包括主机节点)都具有从机任务,当接到主机任务的报文信息时,它们中的某一个要对报文做出响应。

LIN电平

(1)LIN 总线上具有“显性”和“隐性”两种互补的逻辑电平。显性电平(参考地电压)是逻辑 0,隐性电平(电源电压)是逻辑1。

(2)隐形电平和显性电平的收发时,通过预先设定压差范围来保证数据传输的稳定性。

(3)发送信号电压必须满足隐形电平>Vbat80%,发送信号电压必须满足显性电平<Vbat20%。

(4)接收信号电压必须满足隐形电平>Vbat60%,发送信号电压必须满足显性电平<Vbat40%。

LIN的帧结构

LIN总线的一帧主要由两部分组成,即报文头(Header)和报文响应(Response)。

其中,报文头是由一个主机节点的主任务发出的,而报文响应(以下简称响应)是由一个主机节点或从机节点的从机任务发出的。

报文头由同步间隔场(最小13个显性位)、同步场(1个字节:0x55)、PID场(1个字节)三部分组成;响应由1-8个字节的数据场、校验和场(1个字节)所组成。

报文头和响应之间有一个帧内空间分隔,最小空间为0,总共11个字节。

同步间隔段

同步间隔段由同步间隔(Break)和同步间隔段间隔符(Break Delimiter)构成:

   1、同步间隔是至少持续13位的显性电平,同步间隔段是一帧开始的标志,由主节点发出;

   2、 同步间隔段间隔符是至少持续1位的隐性电平。

   3、 同步间隔场是唯一一个不符合UART格式的场。

   4、从节点需要检测到至少连续11个显性位才认为是间隔信号。

同步段

    1、同步段由1位起始位显性+8位data bit + 1位停止位隐性组成。

    2、在LIN帧中,数据传输都是先发送LSB(least significan bit),最后发送MSB(Most Significant Bit, 最高有效位);

    3、LIN同步以下降沿位判断标志,采用字节0x55(二进制为 01010101b),确保所有从节点使用与主节点相同的波特率发送和接收数据。

受保护段(PID)

受保护ID段的前6位叫作帧ID(Frame ID),加上两个奇偶校验位后称作为受保护ID。

LIN2.0及以上协议,都使用的是PID。

帧ID的范围在0x00~0x3F之间,共64个(ID:60-61为诊断ID,ID:62-63为预留),奇偶校验位的校验公式如下:

数据段

数据场长度1到8个字节;

低字节先发,低位先发;

如果某信号长度超过1个字节采用低位在前的方式发送(小端模式)。

校验和段

校验和段是对帧中所传输的内容进行校验。校验和分为标准型校验和及增强型校验和。


例如:采用标准型校验和,Data1 = 0x4A,Data2 = 0x55,Data3 = 0x93,Data4 = 0xE5,计算方法如下:

LIN总线波形

LIN调度表

(1)调度表负责调度网络各帧发送的顺序:

   为每条帧分配发送间隙;

   发送间隙:帧可以被发送的时间;

   不同帧的发送间隙可能不同。

(2)调度表在网络系统设计阶段确定,即在LDF文件里指定。

(3)主任务可以拥有多个调度表,并在不同的调度之间切换。

LIN的解析

发送 PID:0X28    Data(0-7):0xFF 0x28  0xFF  0xFF 0xFF  0xFF 0xFF  0xFF

示波器解析LIN的数据:

示波器解析LIN的发送周期:

示波器解析LIN的发送波特率(19200bps):

数据大小端传输方式

小端模式也称为intel格式

大端模式也称为motorola格式

从图中可以看出,每行表示一个字节的8个位,从右到左依次是bit0, bit1...bit7. 一共有8行,从上到下依次是byte0, byte1...byte7.共64个bit(bit位序从byte0到byte7依次递增排序)。

无论用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别。

LIN节点同步机制

硬同步

LIn节点在通信之前都是不同步的;

为了降低成本,从节点一般不使用晶振,而是RC振荡器;

单线传输,也不使用时钟线;

当没有数据传输时,总线处于隐形状态;

为了保证数据一致性,有效数据传输之前必须进行同步。

同步间隔场:

同步场:

一个字节,结构固定:0x55,用于同步;检测5个下降沿:Tbit=(T1-T0)/8

重同步

使用异步传输方法

基于UART/SCI的通信格式,发送一个字节需要10个位时间(Tbit)。



关注【一起学嵌入式】,回复加群进技术交流群。

觉得文章不错,点击“分享”、“”、“在看” 呗!