汽车网络LIN总线协议解析

发布时间:2023-06-08  

LIN协议适用于汽车内进行低成本、短距离、低速网络通信,其用途是传输开关设置状态以及对开关变化响应。本文详细分析了LIN总线协议的特性、消息协议的组成、检错机制等,并介绍如何基于PICmicro器件来实现LIN总线从节点。


LIN协议是由欧洲车辆制造商协会开发用来进行低成本、短距离、低速网络通信,其用途是传输开关设置状态以及对开关变化响应,因此通信事件是在百毫秒以上时间内发生,而不像引擎管理等其它速度快得多的汽车应用。此协议支持在单根线上进行双向通信,使用由RC振荡器驱动的低成本微控制器,这样可以省去晶振或陶瓷振荡器的成本。另外,此协议实际上是以时间和软件上的代价换取硬件上成本的节约。LIN协议的每一条消息都包含自动波特率步进的数据,最高可以支持波特率为20k,同时低功耗睡眠模式可以关断总线,以避免产生不必要的功耗。总线可以由任意一个节点提供电源


LIN总线特性

LIN总线融合了I2C和RS232的特性:像I2C总线那样,LIN总线通过一个电阻上拉到高电平,而每一个节点又都可以通过集电极开路驱动器将总线拉低;像RS232那样通过起始位和停止位标识出每一个字节,每一位在时钟上异步传输。


图1给出了典型的LIN协议配置。当任意一个节点将总线拉低时,总线处于低电平,标识着总线进入占用状态;而当所有节点都使总线浮空时总线处于电池的电压(9-18V),则意味着总线处于非占用状态(Recessive state);在空闲状态下浮空的总线通过电阻被上拉到高电平。

汽车网络LIN总线协议解析

总线工作在9到18伏的电压下,但所有连接到总线上的器件必须能承受40V的电压。一般情况下,微控制器通过线路驱动器或接收器与总线隔离。总线在每一个节点上被端接到Vbat,主节点通过一个1kΩ的电阻端接而从节点则通过一个20kΩ到47kΩ的电阻端接。总线最大长度为40米。


总线上传输的每一个字节都是与起始位和停止位一起组成帧。起始位的状态与空闲状态相反(即为0),而停止位则与空闲状态同为1。在每个字节中,首先传输的是最低有效位。


消息协议

主节点控制总线的方式是轮询各个从节点并与总线上其余部分共享从节点的数据。从节点仅在接到主节点的命令时才进行数据传输,这样就可以进行双向传输并且无需进一步的仲裁。消息传输是以主节点发出一次同步中断开始,紧接着是消息的同步字段和消息字段。通过在每条消息的起始处传送的同步字段还设定了整个总线的时钟,每个从节点用该字节来调整其波特率。


同步中断使总线进入占用状态,该状态保持时间为13位数据的传输时间,紧接着是一个停止位(非占用状态),这告知从节点即将有消息传输。主节点与从节点的时钟漂移最大允许在15%,因此从节点接收的同步中断可能只有11位或长达15位数据位的传输时间。


每一条消息的第二个字节是标示字节,用来告知总线在该字节后面传输的是什么数据和哪一个节点应该应答,以及应答的长度(标示字段如图2所示)。一条命令仅会有一个从节点对其进行响应,从节点仅在主节点的指示下才发送数据。数据只要出现在总线上,每一个节点都可以接收到。因此,无须主节点专门控制从节点之间的通信。

汽车网络LIN总线协议解析

由于设计中采用廉价的RC振荡器,从节点必须在每一次传输时检测主节点的波特率并调整其自身当前的波特率。因此,每一次通信都由一个由交替的“0”和“1”组成的同步字节开始。标识字段紧跟在同步字段的后面,它告知总线后面传输的内容是什么。标识字段又分为三个子字段,最低4位(0-3位)是寻址总线上的器件,中间两位(4-5位)是后面传输的消息的长度,最高两位(6-7)用作奇偶校验位。

除了睡眠命令,LIN协议并没有定义每一条消息的内容。其它命令是由具体应用来定义的。


检错机制

下面描述的错误必须被检测出,并且在每个节点内进行计数。

位错误-传输节点必须将它认为应该传输的数据位与总线上实际出现的数据位进行比较。由于总线需要响应时间,控制器必须在检测数据位之前等待足够长的时间。假设最小的电压翻转速率为1V/μs,而总线最高电压为18V,则发送器必须等待18μs才能检测总线上的数据位是否正确。


校验和错误-每一条消息的内容都是由校验和字节进行保护。

奇偶校验错-命令字节的6个数据位由两个奇偶校验位进行保护,需要重新进行计算这些位并比较。如果错误出现,应当忽略当前命令并且记录下错误。LIN协议中没有直接的错误报告机制,但每一个从节点应当跟踪其自身的错误,主节点可以要求从节点将错误状态作为正常消息协议的一部分来传输。


LIN总线与CAN总线

LIN协议并不直接与CAN总线兼容,但人们期望两者进行相互操作。CAN总线可能用在整个汽车内来实现通信,而LIN总线仅用在汽车的局部电路内,如车门。为了连接两种总线,需要采用CAN-LIN协议接口节点,该节点从LIN总线节点收集信息然后传送到CAN总线上。


低功耗睡眠模式

主节点通过发送标识码0x80指示所有节点进入睡眠模式,睡眠命令后面跟随的数据字节的内容没有定义。收到睡眠命令的从节点应当对本身进行设置,以便当总线发生改变时能唤醒,并关闭自身的电压以使电流消耗最低。当处于睡眠模式时总线将处于高电平并且不消耗电流。


任意一个节点都可以通过发送唤醒信号来唤醒总线。当收到唤醒信号后,一般情况下所有的节点应当激活并等待主节点开始总线轮询。


硬件示例

图3给出了有两个按钮和三个LED组成的硬件示例。每按动十下按钮1 LED1改变一次状态。同样,每按动十下按钮2,LED2改变一次状态。作为标识为ID1的响应,按钮的按动次数被传送到总线上。作为标识为ID4的响应,按钮的按动次数的刷新被传送到总线上。

汽车网络LIN总线协议解析

软件操作

LIN协议程序工作在由RB0触发的中断下以实现总线的睡眠/唤醒。在触发中断时,程序对低电平数据位的长度进行计数,然后读同步字节并确定数据位时间,最后再将其与最初的数据位时间进行比较,以确定最初的低电平时间是否大于10个数据位的时间,大于10为同步中断,小于10为唤醒信号。如果是唤醒信号,程序退出并继续等待同步中断;如果是同步中断,程序就读取命令字节,检查奇偶位并检查动作表(action table)来确定接下来的动作。动作表定义了总线上数据的来源或目的地。


为了初始化LIN协议的从节点句柄(Slavehandler),用户必须调用InitLinSlave程序,这个程序初始化RB0中断引脚和TMR0寄存器。TMR0寄存器用来测量数据位的长度并生成波特率。初始化完成之后,用户可以执行自己的程序。一旦检测到RB0引脚上的下降沿,用户程序就将被中断。当检测到下降沿时,程序就跳转到中断服务程序。必须禁止除了TMR0和RB0中断之外所有的中断源,以便对同步字段进行精确测量。计算出波特率之后,中断服务程序就退出执行。


在下一次RB0中断发生时,LIN协议Slavehandler自动进入接收模式,以接收标识字段或数据字节。如果检测到标识字段的起始位,就对标识字段进行接收和解码。然后,根据收到的标识执行相应的代码,例如存储数据或点亮LED。总线上一个帧传输完成之后,标志FCOMPLETE被置位。这个标志指示所有的数据都已正确接收完毕并可以进行后续的处理。此标志由用户固件清除。


LIN协议从节点句柄Slavehandler最高可以工作在20K的波特率下,需要420字的程序存储空间以及23字节的数据存储空间。


由于其低成本,LIN协议具有在汽车应用中广泛采用的潜力。可以使用内置的RC振荡器并且运行在4MHz的时钟频率下的诸如Microchip的各种器件的微处理器,使得设计师们能以最低的可能成本设计应用系统


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    总线就是车载网络中底层的车用设备或车用仪表互联的通信网络。目前,有四种主流的车用总线:CAN总线、LIN总线、FlexRay总线和MOST总线。用一张表格来说明各种总线的区别 一、汽车总线的诞生汽车总线的诞生离不开汽车电子的发展。汽车......
    、MOST、LIN等)。 MCU运行AUTOSAR系统,用于CAN/LIN线的唤醒、通讯以及电源管理等。 1)MCU的实时性和可靠性要求非常高,启动唤醒都是毫秒级别,支持CANLIN各类......
    器产品,能够为客户提供从低速到高速的各种通信解决方案。 目前行业发展方向正积极向车载以太网过渡。CAN线和以太网在速度上的区别类似于“城间小路”与“高速公路”之间的差异。CAN刚推......
    LIN总线的简介(2023-09-07)
    LIN线的简介; 对于传统的这种点对点的连接方式,我们可以看到ECU相关的传感器和执行器是直接连接到ECU的。当传感器和执行器的数量较少时,这样的连接方式是能满足要求的。但是,随着......
    串行总线) 7)CAN:现场总线 2、传输数据线的......
    首席工程师陈皓受邀参与活动,并带来以“CANCAN FD总线协议转换”为主题的演讲。 本次演讲内容主要分为三个部分:首先介绍了CANCAN FD总线的区别,并以......
    种架构下,以太网将成为主干网络,而传统的CAN/CAN FD、LIN等将继续在低容量通讯场景下使用。这种混合网络架构,旨在满足高速数据通信的同时,保持系统的灵活性和成本效益。与非研究院认为,未来车载CAN线的......
    标是为现有汽车网络(例如CAN总线)提供辅助功能,因此LIN总线是一种辅助的总线网络。在不需要CAN线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN总线可大大节省成本。 LIN联盟......
    CAN协议栈与LIN协议栈介绍;CAN协议栈 汽车CAN协议栈是一种软件组件,用于实现汽车电子系统中的CAN总线通信功能。它包含了一系列的功能软件,用于处理CAN线的......
    总线协议较为简单,对单片机的要求也并不高,基本的串口就可以实现,成本较低,可作为CAN线的辅助总线。LIN总线广泛应用于车门、车窗、车灯以及中控锁等车身控制领域。 表x LIN总线协议大事记 最新......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>