LIN总线寡人猪八戒LIN技术规范第一节简介第二节基本概念第三节报文传输第四节报文滤波及确认第五节错误和异常处理第六节故障界定第一节简介LIN起源和发展1998的十月,在德国BadenBaden召开的汽车电子会议上LIN总线的设想首次被提出1999LIN联盟成立(最初的成员有奥迪,宝马,克莱斯勒,摩托罗拉,博世,大众和沃尔沃)第一节简介LIN是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。LIN网络将价格低廉的LIN收发器挂在普通串行口,再配以LIN驱动软件就可以构成LIN节点。LIN总线为单主节点/多从节点模式,从节点无须价格较高的石英或瓷片振荡器,物理总线为低成本的单线。典型的LIN总线应用是汽车的联合装配单元控制,如车门、方向盘、座椅、空调、照明灯、温度传感器和交流发电机等。LIN总线是一种辅助的总线网络,在不需要CAN总线的宽带和多功能的场合,比如智能传感器和制动装置之间的通讯,使用LIN总线可大大节省成本。第一节简介LIN通信的主要特性如下:(1)低成本,基于通用UART/SCI接口,几乎所有单片机都具备LIN必须的硬件:(2)极少的信号线即可实现国际标准ISO9141规定;(3)传输速率最高可达20Kbps;(4)单主控制其/多从设备模式,无需仲裁机制;(5)从节点不需晶振或陶瓷振荡器就能实现自同步,节省了从设备的硬件成本;(6)保证信号传输的延迟时间;(7)不需要改变LIN从节点的硬件和软件就可以在网络上增加节点。(8)通常一个LIN网络上节点数目小于16个,共有64个标志符。第一节简介这种低成本的串行通讯式和相应的开发环境已经由LIN协会制定成标准。制定LIN规范的目的是根据ISO/OSI参考模型的数据链路层和物理层实现任何两个LIN设备的互相兼容。LIN的标准化将为汽车制造商以及供应商在研发、应用、操作系统中降低成本。LIN协议标准目前已经历了从LIN1.0到LIN2.2多个版本。LIN标准包括传输协议规范、传输媒体规范、开发工具接口规范和用于软件编程的接口。LIN在硬件和软件上保证了网络节点的互操作性并有可预测EMC的功能。第一节简介通过比较LIN1.3和LIN2.0规范包,我们可以看到两个最重要的改变就是对配置和诊断的标准化支持,以及规定的节点能力文件。它们的目标都是简化现有节点的使用。其它重要的改变包括:①LINAPI(LIN规范包的一部分)是所有用C语言编程的节点所必需的。②增加了改进型校验和(LIN2.0的校验和还包括PID字节)。③增加了节点配置命令。④标准化和必备的LIN产品识别符(供应商ID/功能ID/版本ID)是配置的一部分。⑤增加了诊断和诊断API。⑥定义了新的帧和信号类型,从而可以使用零星的帧和字节阵列信号。⑦增加了必需的响应错误(Response_error)从状态监控。⑧将休眠(goto_sleep)和唤醒(wake_up)信号分离。⑨规范中增加了自动比特率检测。第一节简介LIN规范包括了三个主要部分:LIN规范可以实现开发和设计工具之间的无缝连接并提高了开发的速度,增强网络的可靠性。第一节简介在右图中,OSI参考模型的LIN分层结构显示如下:(1)物理层定义了信号如何在总线媒体上传输,本规范中定义了物理层的驱动器/接收器特性。(2)MAC(媒体访问控制子层)是LIN协议的核心,它管理从LLC子层接收到的报文,也管理发送到LLC子层的报文,MAC子层由故障界定这个管理实体监控。(3)LLC(逻辑链路控制子层)涉及报文滤波和恢复管理的功能。第二节基本概念1.报文在总线上发送的信息,有长度可选的固定格式。每个报文帧都包含2、4或8字节的数据以及3字节的控制、安全信息。总线的通讯由单个主机控制。每个报文帧都用一个分隔信号起始,接着是一个同步场和一个标识符场,这些都由主机任务发送。从机任务则是发回数据场和校验场(见下图)。通过主机控制单元中的从机任务,数据可以被主机控制单元发送到任何从机控制单元。相应的主机报文ID可以触发从机-从机的通信。第二节基本概念2.信息路由LIN系统中,节点不使用有关系统配置的任何信息,除了单主机节点的命名。(1)系统的灵活性:不需要改变任何其他从机节点的软件或硬件,就可以在LIN网络中添加节点。(2)报文路由:报文的内容由识别符命名。识别符不指出的目的地,但解释数据的含义。最大的标识符数量是64,其中4个保留用于专用的通讯,譬如软件升级或诊断。(3)多播:由于引入了报文滤波的概念,任何数目的节点都可以同时接收报文,病同时对此报文做出反应。第二节基本概念3.位速率最大的波特率是20Kb/s,它是由单线传输媒体的EMI限制决定。最小的波特率是1Kb/s,可以避免和实际设备的超时周期冲突。为使用低成本的LIN器件,建议使用下表中的位速率:4.单主机无仲裁只有包含主机任务的控制器节点可以传输报文头,一个从机任务对这个报文头做出响应,由于没有仲裁过程,如果多于一个从机回应,则将产生错误。这种情况下的错误界定可由用户按照应用要求指定。第二节基本概念5.安全性(1)错误检测:①监控,发送器比较总线“应当”的值和“现在”的值;②数据场的校验和以256为模并取反,将MSB的进位加到LSB上;③标识符场的双重奇偶校验保护。(2)错误检测的性能①发送器可以检测到所有的本地错误;②对整个协议的错误有很高的错误检出率。6.错误标定和恢复时间单主机的概念中不允许进行直接的错误标定。错误在本地被检测到,并用诊断的形式请求。第二节基本概念7.故障界定LIN节点可以区分短时扰动和永久故障,它还能对故障做出合适的本地诊断和采取合适的行动。8.连接LIN网络节点的最大数量不仅由标识符的数量限制,也由总线的物理特性限制。建议:LIN网络的节点数量不应超过16.否则,节点增加将减少网络阻抗,会导致环境条件变差,禁止无错误的通讯。每一个增加的节点都可以减少网络阻抗(约1~30kΩ)。网络中总的“电”线(通讯导线)长度应少于或等于40m。总线端电阻典型值:主机节点是1kΩ,从机节点是30kΩ。第二节基本概念9.单通道总线有一个传送位的单通道。从这里数据可以获得数据的重新同步信息。10.物理层物理层是一条单线,每个节点通过上拉电阻线于总线,电源从汽车电源网获得(VBAT),和上拉电阻串联的二极管可以防止电子控制单元(ECU)在本地电池掉电的情况下通过总线上电,如下图。信号的波形由EMI和时钟同步的要求定义。11.总线值总线有两个互补的逻辑值:“显性”或“隐形”。第二节基本概念12.应答正确接收报文后的应答过程在LIN协议中没有定义。主机控制单元检查由主机任务初始化的报文和由它自己的从机任务接收的报文的一致性。如果不一致,主机任务可以改变报文的进度表。如果从机检测到不一致,从机控制器将保持这个信息并将它用诊断信息的形式向主机控制单元请求。诊断信息可按普通报文帧的形式进行发送。13.命令帧和扩展帧4个8字节响应的标识符被保留用作特殊的报文帧:两个命令帧和两个扩展帧。两个命令帧都包括8字节响应,可以用于从主机向从机节点(或相反)上载和下载数据。保留两个扩展帧标识符,用于将用户定义的报文格式和以后的LIN格式嵌入到现在的LIN协议中,而不需要改变当前的LIN规范。第二节基本概念14.睡眠模式/唤醒为了减少系统的功耗,LIN节点可以进入没有任何内部活动和被动总线驱动器的睡眠模式。睡眠模式时,总线呈隐性。任何总线活动或任何总线节点的内部条件都将结束(唤醒)睡眠模式。一旦节点被内部唤醒,基于唤醒符号的过程将给主机通报这一消息,唤醒帧是一个不变的显性位序列。唤醒后内部的活动将重新启动,MAC子层将等待系统振荡器稳定。从机节点则在重新参与总线通讯前等待,直到(自己)和总线活动同步(等待显性的同步间隔)。第二节基本概念15.时钟恢复和SCI同步每个报文帧都由一个同步间隔起始,接着是同步场,这个同步场在几倍的位定时长度中包含了5个下降沿。这个长度可以测量,而且可以用于计算从机节点内部定时。同步间隔帧将使能丢失了同步的从机节点识别同步场。16.振荡器容差位定时的要求允许在有容差的从机节点上使用预设定的在片振荡器(参看下表)。主机节点的时钟由石英或陶瓷谐振器发生,而且是“频率中心点”。第三节报文传输一、报文帧报文传输是由报文帧的格式形成和控制。报文帧由主机任务向从机任务传送同步和标识符信息,并将一个从机任务的信息传送到所有其他从机任务。主机任务位于主机节点内部,它负责报文的进度表、发送报文头(HEADER).从机任务位于所有的(即主机和从机)节点中,其中一个(主机节点或从机节点)发送报文的响应(RESPONSE).第三节报文传输一个报文帧是由一个主机节点发送的报文头和一个主机或从机节点发送的响应组成。报文帧的报文头包括一个同步间隔场(SYNCHBREAKFIELD)、一个同步场(SYNCHFIELD和一个标识符场。报文帧的响应(RESPONSE)则由3个到9个字节场组成:2、4或8字节的数据场(DATAFIELD)和一个校验和场(CHECKSUMFIELD).字节场由字节间空间分隔,报文帧的报文头和响应是由一个帧内响应空间分隔。最小的字节间空间和帧内响应空间是0.第三节报文传输1字节场(BYTEfileds)字节场的格式(如图)就是通常的“SCI”或”“UART”串行(8N1编码)。每个字节场的长度10个定时(BITTIME).起始位(STARTBIT)是一个“显性”位,它标志着字节场的开始。接着是8个数据位,首先发送最低位,停止位(STOPBIT)是一个“隐形”位,它标志着字节场的结束。2.报文头场(HEADERFILELDS)(1)同步间隔(SYNCHRONISATIONBREAK).为了能清楚楚识别报文帧的开始,报文帧的第一个是一个同步间隔(Synchbreak).同步间隔场是由主机任务发送。它使所有的从机任务与总线时钟信号同步。第三节报文传输同步间隔场有两个不同的部分(如图)。第一个部分是由一个持续TSYNBRK或更长时间(即最小是TSYNBRK,不需要很严格)的显性总线电平。接着的第二部分是最少持续TSYNDEL时间的隐性电平作为同步界定符。第二个场允许用来检测下一个同步场(SYNCHFIELD)的起始位。最大的间隔和界定符时间没有精确的定义,但必须符合整个报文头THEAD_MAX的总体时间预算。同步间隔场(SYNCHBREAKFIELD)的位定时规范以及从机控制单元对此的估计值是考虑LIN网络中允许的时钟容差而得出的结果。第三节报文传输如果显性电平持续的时间比在协议中定义的普通显性位序列(这里是0x00场有9个显性位)还要长,此时认为这是一个同步间隔场(SYNCHBREAKFIELD).如果这个间隔超出了用从机位定时测量的间隔TSBRKTS,则从机节点将检测到一个间隔(见表)。这个“阀值”是由从机节点的最大本地时钟频率得楚。基于精确的本地时基,阀值TSBRKTS被指定了两个值。同步间隔场(SYNCHBREAKFIELD)的显性电平长度至少为TSYNBRK(可以更长),这个时间是用主机位定时来测量。最小值应根据连接从机节点指定的最小本地时钟频率所要求的阀值而得出。第三节报文传输(2)同步场(SYNCHFIELD).同步场包含了时钟的同步信息,同步场的格式是“0x55”,表现在8个位定时中有5个下降沿(即“隐形”跳变到“显性”的边沿)(见左下图)。(3)标识符场(IDENTIFIERFIELD).标识符场定义了报文的内容和长度。其中,内容是由6个标识符位和两个ID奇偶校验位(IDPARITYbit)表示,如图下右。第三节报文传输3.响应场(RESPONSEFIELD)根据应用,如果信息和控制单元无关,则报文的响应场(数据、校验和)可以不需要处理,如不知道或错误的标识符。在这种情况下,校验和的计算可以忽略。(1)数据场(DATAFIELD).数据场通过报文帧传输,由多个8位数据的字节场组成。传输由LSB开始。(2)校验和场(CHECKSUMFIELD).校验和场是数据场所有字节的和的反码,如图下所