本帖最后由 redone 于 2022-4-28 10:39 编辑
一 LIN 是什么
LIN 是 Local Interconnect Network 的缩写,是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter / Serial Communication Interface,通用异步收发器/串行通信接口)的低成本串行通信协议。可用于汽车、家电、办公设备等多种领域。本文主要针对 LIN 在分布式的汽车电子网络系统中的应用。
1996 年,Volvo和Volcano通讯(VCT)为Volvo S80 系列开发了一种基于UART/SCI的协议,即Volcano Lite。1997 年,Motorola与Volvo和VCT合作,帮助它们改进Volcano Lite协议以满足各种不同需求(比如无需晶振的从机设备自动同步),并制定可以支持各种半导体产品的开放标准。1998 年 12 月,Audi、BMW、Daimler Chrysler和Volkswagen也加入进来,由此形成了LIN协会(http://www.lin-subbus.org)。开发LIN标准的目的在于适应分层次车内网络在低端(速度和可靠性要求不高、低成本的场合)的需求。
LIN 的特点
LIN 具有以下特点:
(1) 网络由一个主机节点和多个从机节点构成。
(2) 使用 LIN 可以大幅度的削减成本,表现在以下方面:
● 开放型规范:规范可以免费从官方网站获得。
● 硬件成本削减:基于普通 UART/SCI 接口的低成本硬件实现,无需单独的硬件模块支持;从机节点无需
高精度时钟就可以完成自同步;总线为一根单线电缆。
● 装配成本削减:LIN 采用了工作流(Work Flow)和现成节点(Off-the-shelf Node)的概念,将网络装配标准
化,并可通过 LIN 传输层进行再配置。
● 缩短软件开发周期:LIN 协议将 API(Application Programming Interface,应用编程接口)标准化。
(3) 信号传输具有确定性,传播时间可以提前计算出。
(4) LIN 具有可预测的 EMC(ElectroMagnetic Compatibility,电磁兼容性)性能。为了限制
EMI(ElectroMagnetic Interference,电磁干扰)强度,LIN 协议规定最大位速率为 20kbps。
(5) LIN 提供信号处理、配置、识别和诊断四项功能。
LIN 的协议层
LIN 的帧结构
帧(Frame)包含帧头(Header)和应答(Response)两部分。主机任务负责发送帧头;从机任务接收帧头并对帧头所包含信息进行解析,然后决定是发送应答,还是接收应答,还是不作任何反应。帧在总线上的传输如图所示。
帧头包括同步间隔段、同步段以及PID(Protected Identifier,受保护ID)段,应答包括数据段和校验和段,如图 3.2 所示,其中值“0”为显性电平(Dominant),值“1”为隐性电平(Recessive),总线上实行“线-与”:当总线上有大于等于一个节点发送显性电平时,总线呈显性电平;所有的节点都发送隐性电平或不发送信息(不发送任何信息时总线默认呈隐性电平)时,总线才呈现隐性电平,即显性电平起主导作用。图中帧间隔为帧之间的间隔;应答间隔为帧头和应答之间的间隔;字节间间隔包括同步段和受保护ID段之间的间隔、数据段各字节间之间的间隔以及数据段最后一个字节和校验和段之间的间隔。下面对帧头和应答的各部分进行详细说明。
帧的类型
无条件帧(Unconditional Frame)
无条件帧是具有单一发布节点,无论信号是否发生变化,帧头都被无条件应答的帧。
事件触发帧(Event Triggered Frame)
事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧,当存在多个发布节点时,通过冲突解决进度表来解决冲突。
当从机节点信号发生变化的频率较低时,主机任务一次次地轮询各个信号会占用一定的带宽。为了减小带宽的占用,引入了事件触发帧的概念。
偶发帧(Sporadic Frame)
偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。
诊断帧(Diagnostic Frame)
诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用。主机请求帧(Master Request Frame,MRF),帧 ID = 0x3C,应答部分的发布节点为主机节点;从机应答帧(Slave Response Frame,SRF),帧 ID = 0x3D,应答部分的发布节点为从机节点。数据段规定为 8 个字节,一律采用标准型校验和。
保留帧(Reserved Frame)
保留帧的帧 ID 为 0x3E 和 0x3F,为将来扩展用。
信号处理、配置、识别和诊断
传输层
传输层的任务单一,就是充当一个“翻译官”,把来自诊断服务的消息(Message)“翻译”成协议层可以处理的PDU (Packet Data Unit,分组数据单元),或者反过来,把协议层收到的 PDU“翻译”成诊断服务需要的消息。消息到 PDU 的转换过程称为拆分(Packing),PDU 到消息的转换过程称为重组(Unpacking)。PDU 对应着帧结构的数据段,并通过诊断帧发送或接收。
PDU 结构
为满足汽车行业的要求,LIN 传输层 PDU 的格式与 ISO 制定的基于 CAN 网络的诊断标准(参照参考资料[9])非常相似(是 ISO 标准的子集)。这种兼容性大大减少了在 CAN 和 LIN 之间转换数据格式的工作量,降低了对节点计算能力的要求。
从发送格式上,PDU 单元可分为单帧(Single Frame,SF)、首帧(First Frame,FF)和续帧(Consecutive Frames,CF)三种。从发送源上,主机发送请求 PDU,从机发送应答 PDU。
传输层通信
应用层发出的消息如果长度不超过单帧的容量,传输层会按单帧的格式交给协议层发送。传输层收到的单帧也会直接作为消息送往应用层;如果消息长度超过单帧的容量,传输层先要把消息拆分成首帧和续帧并排好次序,然后再交给协议层依次发送。反过来,协议层收到的首帧和续帧,传输层先要按照接收次序将其重组为消息,最后交给应用层处理。
LIN 传输层只能按顺序接收续帧。
LIN 传输层具备出错重传功能。
LIN 应用层
概述
LIN 应用层提供信号处理、配置、识别和诊断四项功能。配置、识别和诊断功能又包含若干项目,称为服务(Service)。为了区别,每项服务都有固定、唯一的服务代号(Service ID,SID)。
① 信号通过信号携带帧通信
② 配置服务通过传输层,以单帧的形式通信
③ 识别服务通过传输层,以单帧的形式通信
④ 基于信号的诊断服务
⑤ 诊断传输层,通过传输层通信,需要使用复帧的形式通信
⑥ 用户自定义的诊断
为便于理解本图,后文对每项功能都分别进行了详细描述并提出了工作模型的概念。LIN 应用层的配置、识别和诊断都是针对逻辑节点(Logical Node)的。逻辑节点是能够对来自主机节点和/或诊断设备的服务请求作出响应的功能实体。为了区别不同的逻辑节点,LIN 定义了 NAD(Node Address for Diagnose,诊断地址)。第 1 章介绍了物理节点(Physical Node)、从机任务和接口(Interface)的概念。对于一个物理节点来说,从机任务和接口对应着实现帧收发的软件和硬件实体,而逻辑节点则代表了配置、识别和诊断方面的能力。物理节点、从机任务以及接口是一一对应的,但是物理节点可以包括 1 个或者多个逻辑节点。
信号处理功能
信号处理功能是指应用层可以不经过传输层,直接从协议层获取或修改网络中的信号。这些信号由NCF(Node Capability File,节点性能文件)定义,既可以是工作参数(例如温度、压力的测量值、继电器的开合状态等),也可以是状态标志(例如某信号携带帧的收发状态)。
配置功能
LIN 规范规定,每个逻辑节点都应该有 NAD。在网络运行期间,任意两个逻辑节点的 NAD 都必须不同,否则就会产生冲突。此外,每个逻辑节点都要能处理带有某些 PID 的帧。由此可见,NAD 和 PID 分别与逻辑节点建立了一种映射关系,LIN 规范把 NAD 和 PID 的这样一种组合称为逻辑节点的配置项(Configuration)。一个逻辑节点可以有一个以上的配置项,但在网络运行期间,每个逻辑节点只能有一个配置项有效。
配置功能是指 LIN 的主机节点能自动地给所有逻辑节点选择配置项,消除 NAD 和 PID 分配中存在的冲突,使网络正常工作。配置功能是确保各节点协调运作的内部功能,包含分配 NAD、分配 PID 等服务。配置功能通过传输层完成配置服务。
识别功能
识别功能是指主机节点能够获取逻辑节点的信息,例如产品代号等。借助识别功能,主机节点和逻辑节点还可以实现一些自定义的操作。
诊断功能
诊断功能是指 LIN 网络之外的诊断设备可以直接连接 LIN 的主机节点,或者通过外部的其它网络(例如ISO11898 定义的 CAN 网络,参照参考资料[8])连接主机节点,连接后,诊断设备可以按规定的诊断协议(例如ISO15765 规范,参照参考资料[9])与 LIN 的逻辑节点通讯。与配置功能相比,诊断功能是 LIN 网络作为一个整体对外呈现的可配置、可访问的属性。
|