LIN总线:帧结构详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在介绍LIN帧结构之前,先简单回顾一下LIN基础、硬件实现和特点等,便于更好的理解LIN总线。

1.为什么会出现LIN总线?

随着汽车上的ECU越来越多,电气架构越来越复杂,如果都是CAN双绞线网络的话,线束的重量和成本都会上升,会影响汽车的质量和品质。所以有些外围ECU对于通信时延、速率及可靠性要求不高的,则引入LIN总线。

2.LIN基础

LIN( Local Interconnect Network)本地互连网络,低成本的串行通信协议。

  • 基于UART/SCI 通用异步收发器/串行通行接口
  • LIN一主多从 (CAN没有主节点概念)因物理层限制,最多连接16个节点。如果超过16个节点将减少网络阻抗,这会导致环境条件变差,从而不能保证正常的无错误通讯。
  • 最大位速率(波特率)是20kbps。原因是数据速率和EMI权衡的结果,压摆率越大,工作电流也越大,电磁干扰强度越大,限制EMI电磁干扰强度。
  • 通信按照调度表LDF进行报文顺序的发送,主从节点的信号传输具体确定性,因此没有总线仲裁,且从节点不需要高精度时钟源(主节点需要)。
  • LIN采用单线通信,无需单独的硬件模块支持,是一种低成本的通讯方式。

3.LIN硬件实现

LIN帧收发的硬件组成包括协议控制器(Protocol Controller)、总线收发器(Bus Transceiver)和 LIN 总线三部分。
在这里插入图片描述
协议控制器负责二进制与高低电平之间的转换;总线收发器负责高低电平与显隐性信号之间的转换。


通过上述简单的介绍,大致了解LIN总线的基本情况。下面将重点介绍一下LIN帧结构。

一、LIN帧结构组成

在这里插入图片描述
LIN帧从大的结构层面来说,包括帧头和应答两部分。
帧头由主机任务发出;应答由从机任务发出(从机任务接收帧头并进行信息解析,然后决定后续动作)。
这里需要区分清楚是主从机任务主从机节点。主机节点是既可以发送帧头,也可以发送应答(比如0x3C报文帧头和应答都是主机节点发出);而从机节点只能发送应答。

二、LIN帧结构内容

如下图,LIN帧结构帧头包括:同步间隔段、同步段、受保护ID段;应答包括:数据段、校验和段。
在这里插入图片描述
在介绍LIN帧结构各段特点之前,先引入字节域的概念。
字节域包括 1 位起始位(Start Bit,显性) + 8位数据位 + 1 位停止位(Stop Bit,隐性),总共10个bit,是一种标准UART 数据传输格式

在这里插入图片描述
为什么会出现字节域呢?
作用:方便网络资源管理,便于标准化。除了同步间隔场以外,其后的各段都是通过字节域的格式传输。

1.帧头_同步间隔段

在这里插入图片描述
作用:标志一个帧的开始,至少持续13位显性电平,其后紧跟间隔界定符(至少由一个隐性位组成)。
同步间隔场是唯一一个不符合字节域格式的场。
从节点至少检测连续11位显性电平来判断检测到帧头,发送到接收有一定的误差时间。

为什么需要至少连续11位呢?这是因为LIN帧结构其他的场满足字节域概念,也就是算上起始/停止位都是10个bit。从节点判断帧头至少检测11个显性bit的原因就在这儿,如果是10个bit的话就有可能检测到其他场而造成误判。

2.帧头_同步段

在这里插入图片描述
作用:从机节点时钟精度不高,会产生时钟偏差,通过同步段的计算来调整从节点的位速率。主从节点产生的时钟偏差,通过同步段进行调整;使从机节点数据位速率与主机节点一致。
实现上基于下降沿进行同步,0x55(01010101)。

3.帧头_受保护ID段

在这里插入图片描述
作用:定义报文的内容和长度。
PID前6位叫帧ID(标识帧的类别和目的地)+两个奇偶校验位。
从机任务对于帧头作出的反应都是依据帧ID判断的。
奇偶校验位来甄别ID传输错误,PID全0全1为传输错误。
在这里插入图片描述
P0=ID0⊕ID1⊕ID2⊕ID4
P1=ID1⊕ID3⊕ID4⊕ID5,结果取非。
因此,计算结果P0和P1一定不相等,所以PID全0全1可以判定传输错误。

4.应答_数据段

在这里插入图片描述
长度1至8个字节。
低字节先发,低位先发(Intel小端方式)。
包含两种数据类型,信号+诊断信息。
信号由信号携带帧传递,一个固定的发布节点,其余的为收听节点。
诊断消息由诊断帧传递,对消息内容的解析由数据自身和节点状态决定。

5.应答_校验和段

在这里插入图片描述
作用:对帧中所传输的内容进行校验。
在这里插入图片描述
两种方式:标准型、增强型。通过主机节点进行管理选择,发布节点和各收听节点根据帧ID来判断采用哪种校验和。可以通过CAPL自带函数linGetChecksum来获取。下图可以看到3C诊断报文是标准型(Classic)校验和,其他无条件帧报文是增强型(Enhanced)校验和。
校验方法:翻转八位和。
在这里插入图片描述

tips:帧间隔、应答间隔是留给MCU(微控制单元)足够的处理时间。


总结

熟悉LIN帧结构对于LIN协议一致性测试有重要的帮助,特别是针对从节点一致性测试中对应各段的干扰怎么去做、状态机测试如何针对LIN帧结构去控制报文发送间隙以及LIN诊断报文如何仿真等等。甚至于对于初学者而言,在了解LIN帧结构的基础上再去学习CAN、ETH的报文结构理解起来可能就会稍微容易些。毕竟不管是LIN还是CAN/FR/ETH报文都是一种通讯的编码方式,规定了收发双方如何去解析0101的二进制数据来正确的获取信息。

  • 56
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值