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)。

img

​ 图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%),则不需要调整时钟的误差。

img

图2synch结构 (参照VectorJapan资料作成)

PID场

ID范围 0-0x3f

PID场标识LIN报文识别信息,由6位(位0~位5)的报文ID和2位(位6、位7)的奇偶校验位,合计8位组成(图3)。

img

Response

Response由“数据”和“和校验”2个场组成。都可以通过UART的形式进行传输。

img

图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)。

img

三、总线传输

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协议

  • 18
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
增强的switch语句是一种替代传统switch语句的语法糖。它具有返回值的能力,可以将整个语句作为一个表达式,在不同的情况下返回不同的值,而不仅仅是执行不同的语句。\[2\]增强的switch语句使用箭头来合并不同的case,之间以逗号分隔。这样可以减少代码的冗余。\[1\]同时,增强的switch语句要求在所有的情况下都有返回值,因此需要涵盖所有可能的情况。\[2\]在增强的switch语句中,标签可以是byte、short、int、char和String类型的常量表达式。多个标签可以合并,用逗号分隔。\[3\]每个标签中的语句部分可以是一条语句,也可以是用大括号包裹的一个块。\[3\]在执行增强的switch语句时,会按顺序匹配标签,进入第一个与标签相匹配的case执行。如果在某个case执行后没有使用break语句,将会顺序执行下面的case,而不再进行匹配。\[3\] #### 引用[.reference_title] - *1* [Switch statement can be replaced with enhanced ‘switch](https://blog.csdn.net/UZDW_/article/details/108913584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [java 普通switch与增强型switch](https://blog.csdn.net/qq_39631640/article/details/113897410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值