汽车LIN总线特点及开发过程

分享到:

汽车中有很多总线,大家熟知的有CAN总线、LIN总线和flexray总线等等,在汽车电子开发过程中,不可避免会用到LIN总线(Local Interconnect Network)。做为一个对CAN总线作为低成本辅助总线,LIN总线在车身控制中应用广泛,车门、车窗、车灯以及中控锁等都使用LIN线。其实对于不计成本新能源造车来说,完全可以使用CAN线更简单统一的实现这些功能,但限于汽车里零配件实在太多,要与传统车控ECU供应商兼容。也许有一天LIN线的价格优势不复存在,整车厂有足够多的其他诸如CAN、ETH零配件供应可选时,LIN真的要逐渐退出了。但在此之前,还是有必要总结下LIN的主要特点以及开发过程。
 
LIN线与CAN最大的区别主要有三点。
 
一,单线通信,传输速率较低。LIN线在物理上是一个上拉到12V的集电极开漏总线,多个节点可以并联到同一根线上,与IIC的SDA类似,但其没有独立的时钟线,靠通信双方约定的波特率进行通信,与UART类似,但由于UART之处在于,其可以通过同步场进行时钟同步,使传输变得更可靠。这样与CAN总线的一对差分双绞线不同,其抗干扰能力大大减弱,通信速率最高只能20Kbps,而CAN可达1Mbps。
 
二,主从结构,中心化拓扑。
 
LIN线拓扑结构是主从结构的星型模型,所有传输都是master发起,slave不可以主动发起请求。这个其实与modbus更类似。也可以把slave看做消息的发布者,master看成消息的订阅者,想要获取某个变量值,就需要不断轮询读应节点对应的报文。这个结构就决定了LIN线传输的消息不可能太多,以保证消息更新的实时性,通常一条LIN线上定义的消息要比一条CAN线上定义的消息少一个数量级。当然,如果中心节点出现了问题,整个网络也就挂掉了。
 
三,更轻量级的处理协议栈。
 
在汽车电子开发中,CAN总线协议栈占有相当大的代码量,包括CAN 驱动层、TP、NM、UDS、router、bootloader等等,但LIN开发量也会少一个数量级,包括驱动、调度表,简单的睡眠唤醒,简单的TP等,其上层的服务还是要转成CAN的信号进行传输。
 
 
 
1.LIN总线数据帧格式
lin
LIN总线的帧格式如上图所示。如果你在学习LIN协议,用示波器抓出一帧报文进行分析可能是最好的切入点。可以看出,一个典型的LIN数据帧主要包含header、header response以及response域。LIN一帧数据最大可以传8bytes,比较有意思的一点是,LIN2.x规定可以传输的LIN字节数可选是2,4,8并不是1-8内任意一个数字。一般而言,车内会选择一个统一字节数,最常用比如每帧都传8个字节。
 
Header场中包含break,synch以及受保护的id。其实break就是告诉总线传输开始,然后用synch同步始终,然后使用受保护id来寻址,如果有LIN slave节点可以提供这个id的服务,那在master发出protected id后,就他就会插入一个应答,与IIC从机在sda上给出类似应答类似。值得注意的是,这个protected id并不是slave从机地址,而是想要订阅的报文id,换个说法,一个slave从机可以提供多个报文id的服务,比如一个车灯控制ECU,可以提供灯控制、状态、故障码、软硬件版本信息等多个LIN ID服务。而slave从机地址是隐性的与其所提供的报文ID是有个对应关系的。
 
与CAN总线的CRC校验不同,LIN的提供奇偶校验以及checksum方式,对header中的protected id进行奇偶校验,也会对data进行checksum校验,有classic以及enhanced区分。
 
2.LIN总线传输调度
 
LIN总线的主从结构决定了master节点要周期性的去slave读取数据,也可以去设置一个报文。一条LIN总线上有多个slave节点,每个slave要发布多个ID报文时,就需要master在兼顾实时行的条件下,顺序的读取或这设置每个slave的每个ID报文。对于每个slave可以提供哪些报文,有ldf文件统一描述,与CAN的dbc文件不同。Ldf文件全称为LIN Configuration Description File,描述了一条LIN bus完整的主从节点信息,以及报文格式,调度信息。根据ldf文件可以得到schedule tables,这个调度表给master设置了读取slave节点报文id的时间间隔,比如10ms,100ms。这个调度表可以由专门的生成工具由ldf文件来生成。
 
3.LIN总线诊断
lin2
在整个汽车网络中,目前最复杂的就是CAN诊断部分,LIN诊断可以说只是一个补充,LIN支持使用0x3C(master request frame)以及0x3D(slave response frame)两个报文进行对LIN slave的诊断,其帧格式(报文内8 bytes的数据)如下所示:
 
其中NAD为address of the slave node,表明是要诊断哪一个ECU; PCI为Protocol Control Information,表明该报文代表是一个什么样的诊断保文; SID 为Service Identifier,表明该报文对应的服务是什么;其他为数据长度以及数据分片。
 
 LIN总线的诊断与CAN诊断各个服务保持一致,但不需要支持那么多服务,一般而言只需要支持比如通信控制、读取DID、读取DTC等服务即可,少数可以进行固件升级的LIN ECU还需要支持安全访问、程序下载、复位等服务。
 
4.LIN总线开发内容
 
       (1)EE拓扑规划以及ldf文件的定义;
 
       (2)根据ldf文件由专门的工具生成schedule tables,以及信号层;
 
       (3)开发或集成LIN driver、LIN TP;
 
       (4)开发相关LIN发送以及接收task,轮询各节点报文;
 
       (5)接收上层控制信号对slave进行设置,接受slave信号的变化反馈给上层应用;
 
       (6)对于诊断部分的处理;
 
       (7)错误处理;
 
       (8)LIN睡眠和唤醒的控制。
 
5. 罗姆车载用LIN收发器_BD41030FJ-C
 
BD41030FJ-C是最适用于具有LIN(Local Interconnect Network)中主/从协议通信功能BUS系统的LIN收发器。通过采用小型SOP封装实现省空间化,通过Sleep mode实现了低耗电待机。
 
主要特征:
  • LIN引脚的绝对最大额定值为-27V至+ 40V
  • 最大传输速率20kbps
  • 低电磁辐射(EME)
  • 高电磁抗扰度(EMI)
  • 总线断电时高阻抗
  • 具有协议层的接口(RXD / TXD)对应于3.3V / 5.0V逻辑。
  • 内置LIN从终端
  • 睡眠模式下的待机功耗
  • 传输数据(TXD)主导超时功能

 

 

相关资讯
三相无刷电机驱动:母线电压纹波与换相转矩脉动协同控制方法

三相无刷直流电机(BLDC)驱动系统中,母线电压纹波与换相转矩脉动存在强耦合劣化机理。本文提出一种母线电压动态补偿与换相时序优化的协同控制方法,打破传统独立控制壁垒,实现供电稳压与转矩平滑的双向协同,解决低速抖动与高速脉动难题。

高频开关电源交叉导通损耗抑制:快速恢复二极管反向恢复电荷控制

高频开关电源的交叉导通损耗主要源于快速恢复二极管(Fast Recovery Diode, FRD)的反向恢复电荷(Reverse Recovery Charge, Qrr)。通过器件电荷精准调控、时序自适应优化与电路参数匹配,可有效抑制交叉导通损耗,提升电源整机效率与运行可靠性。本文系统剖析Qrr的生成机理与耦合劣化机制,提出全域协同抑制策略。

升压型LED驱动器短路开路保护:双阈值迟滞设计与自恢复机制

升压型(Boost)LED驱动器输出短路与开路故障易导致系统失效。本文提出双阈值迟滞切换保护体系与自适应自恢复机制,解决传统单阈值保护在临界工况下的抖动与误触发问题,实现故障精准闭锁与自动复归。

温度传感器IC精度漂移根源:带隙基准曲率校正与ADC量化补偿

温度传感器IC(集成电路)的精度漂移主要源于带隙基准非线性曲率漂移与ADC(模数转换器)量化误差的温变耦合。现代精密测控要求在-40℃~125℃宽温域内实现0℃级测温,传统单点线性补偿已失效。本文揭示多误差耦合的物理根源,提出高阶曲率校正与系统级量化补偿方案,解决宽温域精度失控难题。

AC/DC转换器欠压保护与动态响应优化:工业导轨及服务器冗余供电

AC/DC转换器(交直流转换器)在工业导轨与服务器冗余供电中,需采用分级自适应欠压保护与动态闭环参数适配。此举可解决传统固定阈值保护导致的误动作与稳压失效问题,提升系统供电可靠性。

精彩活动