概述
lin总线通信
文章目录
- lin总线通信
- 一、综述
- 二、LIN 报文结构
- 三、总线传输
- 四、诊断方式
一、综述
1.采用单主多从的组网方式,无CAN总线那样的仲裁机制,最多可连接16个节点(1主15从)。
2.主要用于can总线的协助辅助功能,汽车低速反应要求应用,对硬件要求简单,仅需UART/SCI 接口,辅以简单驱动程序便可实现 LIN 协议。故几乎所有的MCU均支持LIN。
3.低成本,最大传输速率20kbps。通常低速设计2400bps,中速设计9600bps,高速设计19200bps.
5.在LIN的标准中,令牌被称为“header”,数据被称为“response”,报文被称为“Frame”。在“header”中含有表示报文身份的“ID”,各个节点根据“ID”决定是否发送“Response”。同时,LIN报文是地址寻址方式,总线上的所有节点都能收到报文。
二、LIN 报文结构
1、LIN 总线上具有“显性”和“隐性”两种互补的逻辑电平。其中,显性电平(参考地电压)是逻辑 0,隐性电平(电源电压)是逻辑1。
2、如上介绍所说LIN采用的是“主从”通信方式。LIN报文的一帧由“Header”和“Response”组成,“Header”由主任务(主节点)发送,“Response”由从任务(主节点或者从节点)发送。下面将分别介绍“Header”和“Response”。
Header
“Header”又可以分为“Break”、“Synch”和“PID”3个场(图1)。
图1 header 结构
Break场
Break场不同与其他场,它有意的造成UART通信中的FramingError(从起始位到第10位没有检出停止位时的错误)来提示LIN总线中的所有从节点之后要开始进行LIN报文的传输了。
Break场又可以分为“Break”,“Break-delimiter”,“Break”为13位以上的显性位,“Break-delimiter”为1位的隐形位,“Break-delimiter”是“Break”结束的标志。
Synch场
Synch场即同步场,第一讲在介绍同期信号时提到过同步场。同步场是为了修正各个节点间时钟的误差,固定发送0x55的UART数据(包含起始位/停止位)。从节点根据最初和最终的下降沿除以8来算出1位的时间,并以此作为基准来调整自己的时钟误差(图 2)。如果从节点使用的是高精度时钟的话(允许误差±1.5%),则不需要调整时钟的误差。
图2synch结构 (参照VectorJapan资料作成)
PID场
ID范围 0-0x3f
PID场标识LIN报文识别信息,由6位(位0~位5)的报文ID和2位(位6、位7)的奇偶校验位,合计8位组成(图3)。
Response
Response由“数据”和“和校验”2个场组成。都可以通过UART的形式进行传输。
图4数据场结构 (参照VectorJapan资料作成)
数据场
数据场最大可以传输8Byte数据
和校验场
和校验即我们通常说的Checksum,用来确认接收的数据是否正常。和校验场的具体值为各个数据场的和的反数,如果有溢出的话,则需要取余运算(mod256)。和校验有“标准和校验(Classic Checksum)”和“扩张和校验(Enhanced Checksum)”两种形式:
lin1.3 classic checksum lin2.0 enhanced checksum
标准和校验
计算对象为所有数据场
LIN1.x为所有报文都使用
LIN2.x为诊断报文(ID60~61)使用
扩张和校验
计算对象为PID场和数据场
LIN2.x为报文ID0~59使用
通过上述结构,各个报文在LIN总线上传输。通过Header调整时钟误差,确认报文信息,进行数据的接收和发送,并且有奇偶校验与和校验来确保数据的正确性。
时间规定
LIN报文的传输是根据LIN的时间表执行的。按照LIN的硬件结构,报文的传输时间可以分为“Response时间”和“间隔时间”,设计时间表时需要考虑两者的误差(图5)。
三、总线传输
1、主机节点报文发送
A.主机任务主要执行以下功能:
1.定义总线上的通信速率。(同步场?待考)
2.发送报文帧头,包含同步间隔场、同步场和标识符场三个部分。
3.监控总线通信,通过校验和确定数据正确性与否。
4.使从机进入唤醒或睡眠状态,并响应从机的唤醒要求。
2、从机节点报文发送
B.从机任务既可运行于主机又可运行于从机,它主要完成以下功能:
1.等待主机任务发送的同步间隔,使从机与主机于同步场中获得同步。
2.分析标识符场,若与自己相关,则接收或发送数据,若与自己无关则什么都不做。
3.检查和发送校验和。
4.接受主机任务的唤醒和睡眠请求。
四、诊断方式
主节点的诊断:
主节点通常与CAN等主干网络连接。因此,不使用LIN而是使用主干网络进行诊断。
从节点的诊断:
LIN通信由主节点进行通信控制,因此从节点不能与诊断测试仪直接通信。所以,从节点的诊断必须通过主节点进行。
转载参考
LIN通信入门二 - 知乎 (zhihu.com)
LIN总线入门 - 知乎 (zhihu.com)
LIN总线协议简介_IOT2017的博客-CSDN博客_lin协议
最后
以上就是温婉草丛为你收集整理的lin总线通信的全部内容,希望文章能够帮你解决lin总线通信所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复