LIN接口

前言

本文参考标准《LIN Specification Package-Revision 2.2A》。

LIN接口

简介

LIN是一种基于UART/SCI传输协议的总线标准,作为一种串行通信协议,其具有低成本的特点,常用于传输速度要求不高的场合中。

LIN总线的主要特点如下:

  • LIN总线的工作模式为单主多从模式,工作时无需仲栽机制;
  • LIN 协议基于UART/SCI接口标准,兼容多数微控制器,具有成本低的特点;
  • 为单总线结构,物理层建设成本极低,符合ISO9141国际标准;
  • 总线电平分为显性和隐性,其中‘0’为显性电平,“1’为隐性电平;
  • 总线最大的传送速率为20Kbps。

帧格式

LIN总线上的电平分为显性和隐形,显性表示为‘0’,隐性表示为‘1’,信号在总线上传输的过程中进行“线与”逻辑,即只要有节点发送显性电平,总线电平就表现为显性;只有当所有节点均不发送信息或者均发送隐性电平时,总线才表现为隐性。

一个完整的帧包括同步间隔段、同步段、受保护的ID段、数据段和校验和段五部分。其中,同步间隔段、同步段和受保护的ID段共同构成了帧头,数据段和校验和段构成了应答。完整的帧结构如图1所示,其中,在帧与帧之间以及帧内部分布的空闲隐性电平称为帧间隔、应答间隔、字节间间隔。

在这里插入图片描述

同步间隔段 (Break Field)

同步间隔段是由连续的至少13位显性电平构成的同步间隔和至少为1位隐性的同步间隔间隔段组成。由于总线空闲期间和帧中的所有间隔均为隐性电平,帧的其他段中不会发送出超过连续的9个显性电平,所以当出现连续13位的显性电平即标志帧的传输开始。

同步段 (Sync Byte Field)

除同步间隔段以外,帧中其他段都是以字节域的形式进行传输的。一个字节域包括显性的起始位、8位数据位和隐性的停止位。在数据位的传输过程中,都是先发送最低有效位(LSB),最后发送最高有效位(MSB)。

在这里插入图片描述

LIN的同步段的内容是固定的字节0x55,即二进制01010101。自同步功能在同步段中实现。

在这里插入图片描述

在LIN通信中,传输波特率由主机节点进行控制,因此从机节点不需要采用高精度的时钟,可大幅降低组网成本。主机节点和从机节点存在的时钟偏差可由同步段来进行调整,具体方式为以主机节点为基准,从机节点调整自身的时钟分频值。调整方法为,从机节点接收到主机节点发送的同步段之后,通过计算主机节点传输1位比特所需的时间调整自身位速率。计算公式如下:
1位时间 - (第7位的下降时刻起始位的下降时刻) / 8
通过计算,可得出主机节点传输1位比特所需的时间,即位速率。

受保护ID段 (Protected Identifier Field)

受保护的I段由6位帧ID和2位奇偶校验位组成,ID0~ID5为帧ID,ID6和ID7为奇偶校验位。

在这里插入图片描述

帧ID共6位,所以帧ID的个数为2^6=64,其地址范围为0x00~0x3F。帧的类别和接收目标都是在帧ID中规定的。从机任务只有对帧头中的I进行判断后才能决定下一步是接收帧响应还是发送帧响应,亦或者是忽略帧头不作响应。奇偶校验位是通过6位用户配置的帧ID计算出来的,计算方法如下所示:

P0 = ID0 ^ ID1 ^ ID2 ^ ID4

P1=~ (ID1 ^ ID3 ^ ID4 ^ ID5)

其中ID0~ID3表示节点的地址,所有LIN 网络中最多含有2^4=16个节点。ID4 和ID5用于控制数据的字节数,数据长度和ID4、ID5的对应关系如下表所示:

ID5ID4数据长度/字节
002
012
104
118

ID0~ID3表示帧类型,帧类型详细说明见帧类型章节。

在这里插入图片描述

数据段 (Data Field)

数据段一般包括2、4、8三种字节长度,最先发送的字节为 data0,后发送字节编号依次递加。数据字节之间具有一定长度的时间间隔。

在这里插入图片描述

校验和段 (Checksum Field)

在 LIN 协议中,校验和分为标准型校验(LIN1.x版本)和增强型校验和(LIN2.x版本)。

  • 标准型校验和只校验数据段各字节;
  • 增强型校验和校验数据段的字节和受保护的ID段。

校验和的原理是发送方将各字节进行二进制累加运算,累加和始终为8位二进制数,若有进位,则将进位加至最低位,然后再进行下一字节的累加,最后将累加和按位取反作为校验和。
在这里插入图片描述

校验和计算方法举例:

在这里插入图片描述

帧在总线上的传输波形

帧在总线上的传输分为两种情况:

  • 主机节点作为发布节点,发送帧头和帧响应;
  • 从机节点作为发布节点,即帧头由主机节点发送,帧响应由从机节点发送。

两种传输方式下总线上的传输波形如下图所示。

在这里插入图片描述

帧类型

LIN协议中规定了以下几种帧类型:

  • 无条件帧(Unconditional Frame)
  • 事件触发帧(Event Triggered Frame)
  • 偶发帧(Sporadic Frame)
  • 诊断帧(Diagnostic Frame)
  • 保留帧(Reserved Frame)
无条件帧

无条件帧的特点是发布节点的帧头发送出去后,无论接收帧头的节点自身状态是否发生变化,必须无条件的对帧头发送应答。无条件帧的ID范围为0x00~0x3B。下图演示了一种无条件帧的传输过程。图中举例所用的ID是随机的,协议中并没有强制的要求。

在这里插入图片描述

  • ID=0x30:从节点1向主节点发布信息,常用于从节点向主节点报告自身状态。
  • ID=0x31:主节点向从节点1和2发布信息,常用于主节点向从节点广播。
  • ID=0x32:从节点2向从节点1发布信息,常用于从节点间的通信。
事件触发帧

事件触发帧用于主机节点查询从机节点的状态是否发生变化,当多个从机发生变化需要发布信息时,需要通过进度表来进行仲裁。

当主机任务频繁的去轮询各从机节点时,会占用较大的带宽,所以引入了事件触发帧的概念。事件触发帧允许只有帧头而没有帧响应,也就是无从机任务进行响应;同时也允许多个节点对帧头作出响应,这种情况不应视为错误,此时主机节点需要重新进行轮询。典型的引用是用于检测车门的开关状态。下图描述了事件触发帧的几种情况。

在这里插入图片描述

偶发帧

偶发帧是主节点处理“时间”信息的一种方法,偶发帧的帧响应只能够由主机节点发送。主机节点是否发送偶发帧是根据与之关联的无条件帧的状态决定的:当所有的帧信号都没有变化时,则在该帧时隙内无响应;当主机节点探测到某一个帧内的信号发生了变化,则主机节点发送偶发帧;当多个帧中的数据发生了改变,则根据事先规定好的优先级进行仲裁后依次发送偶发帧。偶发帧大大增加了通信的灵活性。

在这里插入图片描述

诊断帧

诊断帧使用特定的标识符,包括主机请求帧和从机应答帧两种,主机请求帧的帧ID为0x3C,从机应答帧的帧I为0x3D。诊断帧的作用包括配置、识别和诊断。诊断帧的帧响应中数据字节长度为8,校验和为标准型校验和

保留帧

ID等于0x3E 和 0x3F的两个帧称为保留帧,用作以后扩展。

错误类型

  • ID奇偶校验错误、未知ID;
  • 数据校验和错误;
  • 从机响应超时;
  • 发送与回读的数据不同。

IP 设计

结构框图

接口设计

上板验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA的花路

你的鼓励是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值