锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

LIN总线学习

时间:2022-09-02 21:00:01 电容专用电抗器振荡极限状态传感器sl32二极管二极管用来发送脉冲单数字控制电位器singleii20电磁继电器

lin学习总线协议

1、 LIN介绍

LIN 是 Local Interconnect Network 以缩写为基础 UART(Universal Asynchronous Receiver-Transmitter,串行通信接口/SCI(Serial Communication Interface,低成本串行通信协议串行通信接口)。

1.1 LIN 子网(Cluster)与节点(Node)

LIN 网络及主干线 CAN(Controller Area Network,当控制器局域网)总线连接时,需要添加 CAN-LIN 主机节点一般充当网关。
LIN与上层网络连接示意图

通过应用程序信号处理实现信号传输,通过传输层实现消息的传递

1.2 主/从机节点与主/从机任务

LIN 拓扑结构为单线总线,应用了单主机多从机的概念。 

总线电平为 12V,传输位速率(Bitrate)最高为20kbps。

主机负责任务:
(1) 调度总线上帧的传输顺序;
(2) 监控数据,处理错误;
(3) 作为标准时钟参考;
(4) 接收从机节点发出的总线唤醒命令。

由于物理限制,一个 LIN 网络最多可以连接== 16 ==典型的节点应用通常是在 12 节点以下,只有一个主机节点,从机节点 1 到 15 个

主机节点(Master Node)包括主机任务(Master Task)和从机任务(Slave Task),从机节点(Slave Node)只包含从机任务。 

2、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 提供信号处理、配置、识别和诊断四个功能

3、lin总线 协议

3.1总线

显性电平为0(Dominant),隐性电平值为1。 

总线上实行线-与:当总线上有发送显性电平时,总线呈现显性电平,所有节点都发送隐性电平时呈现隐性电平;不发消息默认隐性电平。

3.2数据帧结构:

帧(Frame)包含帧头(Header)和应答(Response)两部分。 

主机负责发送帧头;
接收帧头并分析帧头中包含的信息。

帧间隔:帧间隔; 响应间隔:帧头与响应之间的间隔; 字节间隔:同步间隔段末至校验段前。 

3.2.1 同步间隔段(Break Field)

同步间隔由同步间隔组成(Break)与同步间隔段间隔符(Break Delimiter)构成示。 

至少同步间隔是持续的 13 显性(0)电平(以主机节点的位速为准)。 同步间隔的间隔符至少是连续的 1 隐性电平的位置。  由于帧中的所有间隔或总线都应保持(1)隐性电平; 帧中的任何其他字段都不会大于 9 显性电平(0); 因此,同步间隔可以标记帧的开始。 

当从机任务接收帧头的同步间隔时,以从机任务所在节点的位置速率为准。当检测总线连续出现时 11 当位置显性电平被认为是帧的开始
当从机节点使用精度高的时钟时,可以选择识别阈值 9.5 位。

3.2.2 同步段(Sync Byte Field)

在 LIN 除了3.2.1.同步间隔段,后段通过字节域格式传输。   字节域(Byte Field): 1 位起始位(Start Bit,显性“0”)   8位数据位   1 位停止位(Stop Bit,隐性1是一种标准 UART 数据传输格式。   在 LIN 在帧中,首先发送数据传输LSB(Least Significant Bit,最低有效位),最后发送 MSB(Most Significant Bit,最高有效位)。  LIN 使用字节同步下降边作为判断标志 0x55。 

从机节点不能使用精度高的时钟,而是使用片上振荡器等精度和成本相对较低的时钟,需要通过主机节点时钟的偏差同步段调整的结果是使从机节点数据的位速与主机节点一致。

以同步基准时钟为主机节点的同步段时钟。
从机节点计算主机节点的位置速率,并根据计算结果重新调整自己的位置速率。主机节点的实际传输 1 位所用时间,即位速率。


3.2.3 受保护 ID 段(Protected Identifier Field)

受保护 ID 段的前 6 位叫作帧 ID(Frame ID),加上两个奇偶验证后,称为受保护 ID。 

帧 ID 的范围在 0x00~0x3F 之间,共 64 个。帧 ID 识别帧的类别和目的地。
从机任务对帧头的反应(接收/发送/忽略响应部分)是基于帧 ID 判断。如果从机节点收到0xFF”或“0x可判断为传输错误。

3.2.4 数据段(Data Field)

数据段包含两种数据类型(Signal)和诊断消息(Diagnostic messages)。  信号(Signal)一帧由信号携带帧传输 ID 对应的数据段可能包含一个或多个信号。 

确保信号更新的完整性,而不仅仅是部分。一个信号通常由一个固定的节点发出,信号发布节点(Publisher);其余一个或多个节点接收,称为信号接收节点(Subscriber))。

诊断消息(Diagnostic message)信息内容的分析由数据本身和节点状态决定。 

3.2.5 校验和段(Checksum Field)

校准和段是对帧中传输的内容进行校准。 校验分为标准校验和(Classic Checksum)增强校验和(Enhanced Checksum) 根据帧发布节点和每个收听节点,采用标准校验或增强校验和主机节点管理 ID 判断采用哪种验证和。 

验证方法是将验证对象的字节作为位二进制加法(每当结果大于或等于 256 时就减去 255),并将最终收入和逐位取反,以此结果作为发送的验证和。
接收方根据验证和类型对接收数据进行相同的带进位二进制加法,最终和不取反,并与接收到的验证和加法进行加法。如果结果是 0xFF,在一定程度上保证了数据传输的正确性。

3.2.6 计算帧传输时间

TFrame_Maximum为 帧 最大时间在总线上传输; THeader_Maximum为 帧头 最大时间在总线上传输; TResponse_Maximum为应答最大时间在总线上传输;  THeader_Nominal帧头额定传输时间:同步间隔(包括同步间隔和同步间隔间隔)的最小传输时间   同步段传输时间   受保护I段传输时间;
帧头的余量THeader_Rest包含字节间间隔,规定为帧头额定传输时间的0.4 倍;

TResponse_Nominal为应答额定传输时间:数据段传输时间 + 校验和段传输时间;
应答的余量TResponse_Rest包含应答间隔以及字节间间隔,规定为应答额定传输时间的 0.4 倍;

Ndata表示数据段包含N个字节。


3.2.7帧在总线上的传输波形

3.3 LIN中帧的类型与进度表

帧的类型主要受根据受保护段ID中的ID值判断,ID值具体分配类型如下。

帧时隙是进度表规定的一个帧的帧头起始到下一个的帧的帧头起始的时间。
每个帧的帧时隙都可以不同,一个帧时隙对应了进度表的一个入口。

其中TFrame_Maximum为帧在总线上传输的最大时间。

抖动(Jitter)为帧的同步间隔段的下降沿与帧时隙起始时刻相差的时间。

时基(Time Base)为LIN子网的最小计时单位,通常设定为 5ms或 10ms。

帧时隙必须为时基的整数倍,并且起始于时基的开始时刻(称为时基的节拍(Tick)),切换到另外一个进度表时一定要等到当前帧时隙的结束。

进度表是帧的调度表,规定总线上帧的传输次序以及各帧在总线上的传输时间。
进度表位于主机节点,主机任务根据应用层需要进行调度。

进度表可以有多个,一般情况下,轮到某个进度表执行的时候,从该进度表规定的入口处开始顺序执行,到进度表的最后一个帧时,如果没有新的进度表启动,则返回到当前的进度表第一个帧循环执行;也有可能在执行某个进度表当中发生中断,执行另一个进度表后再返回,如事件触发帧的冲突解决过程就是一个典型的例子。

3.3.1无条件帧

无条件帧是具有单一发布节点,无论信号是否发生变化,帧头都被无条件应答的帧。

无条件帧在主机任务分配给它的固定的帧时隙中传输。总线上一旦有帧头发送出去,必须有从机任务作应答(即无条件发送应答)。

3.3.2 事件触发帧(Event Triggered Frame)

事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧,当存在多个发布节点时,通过冲突解决进度表来解决冲突。当从机节点信号发生变化的频率较低时,主机任务一次次地轮询各个信号会占用一定的带宽。为了减小带宽的占用,引入了事件触发帧的概念。

事件触发帧的典型应用就是轮询四个车门的开关情况。与其利用无条件帧每个车门轮询一遍,不如同时对四个车门进行询问,如果其中一个车门打开了(事件发生),该车门要对询问作应答,即事件触发的含义。

这样做可以减小带宽,但同时会导致两种现象,其一就是没有车门被打开,即无节点应答——事件触发帧允许一帧中只有帧头无应答;另外一种情况就是冲突,即同时有大于等于两个车门被打开,对该问题同时作答——事件触发帧允许两个以上的节点对帧头作应答而不视为错误。

当发生冲突时,主机节点需要重新作轮询,这样会增加一些响应时间,但由于事件触发帧本身就用来处理低概率事件,总的来说还是节省了带宽。原先用作轮询的无条件帧,称为与该事件触发帧关联的无条件帧,即事件触发帧的应答部分是与其关联的无条件帧所提供的应答。

当发生冲突时,需要立刻中断当前的进度表,启动冲突解决进度表(Collision Resolving Schedule),重新调用这些关联的无条件帧。
其中,冲突解决进度表要求包含所有的关联的无条件帧。与事件触发帧关联的多个无条件帧需要满足以下 5 个条件:
(1) 数据段包含的数据字节数等长;
(2) 使用相同的校验和类型
(3) 数据段的第一个字节为该无条件帧的受保护 ID,这样才能够知道应答是哪个关联的无条件帧发送出来的;
(4) 由不同的从机节点发布;
(5) 不能与事件触发帧处于同一个进度表中。

3.3.3 偶发帧(Sporadic Frame)

偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。
当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。

与事件触发帧一样,偶发帧的应答也关联了一组无条件帧。

规定偶发帧只能由主机节点作为发布节点

偶发帧的传输可能出现三种状况:
1)当关联的无条件帧没有信号发生变化时,该时隙保持沉默,主机节点连帧头都不需要发送;
2)当其中一个关联的无条件帧包含的信号发生了变化,则发送该关联的无条件帧的应答部分;
3)如果有两个或两个关联的无条件帧包含的信号发生了变化,则按照事先规定好的优先级,优先级较高的关联的无条件帧获得发送权,优先级较低的要等到下一个偶发帧的帧头到来时才能发送应答。

由于主机节点是唯一的发布节点,所以主机节点事先就知道各个关联信号的优先级别,这样在传输时就不会产生冲突。

引入偶发帧的目的在于为进度表增加一些动态特性——当主机节点的信号发生变化时才有通信发生。

事件触发帧和偶发帧反映了帧在不同时机(信号变化或未发生变化)的传输状况,引入它们的目的是为了增加通信的灵活性。

3.3.4 诊断帧(Diagnostic Frame)

诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用。

主机请求帧(Master Request Frame,MRF),帧 ID 0x3C,应答部分的发布节点为主机节点;

从机应答帧(Slave Response Frame,SRF),帧 ID 0x3D,应答部分的发布节点为从机节点。

数据段规定为 8 个字节,一律采用标准型校验和。

3.4 状态机(State Machine)实现

3.4.1 主机任务的状态机

当进度表启动后,主机任务依次发送同步间隔段、同步段和受保护 ID 段。

3.4.2 从机任务的状态机

从机任务负责发布或者接听帧的应答。包括两个状态机:1. 同步间隔段和同步段检查器2. 帧处理器。


3.5 网络管理

网络管理主要指的是网络的休眠和唤醒管理。

3.5.1 唤醒

当总线处于休眠状态时,主/从机节点都可以向总线上发送唤醒信号,唤醒信号持续 250μs~5ms。

其余节点(除发送唤醒信号以外的节点)以大于 150μs 为阈值判定唤醒信号。每个从机节点必须在唤醒信号显性脉冲的结束处算起 100ms 以内准备接收来自主机的命令(帧头);

主机节点也必须被唤醒,100ms 之内主机节点发送帧头开始通信。

主机节点的同步间隔段也可以充当唤醒信号,由于从机节点需要作初始化处理,因此主机节点所发的这个帧有可能不会被正常接收。

如果节点发送出唤醒信号后,在 150ms~250ms 之内没有接收到总线上的任何命令(帧头),则可以重新发送一次唤醒信号。唤醒信号最多可以发送 3 次,3 次之后,必须等待至少 1.5s 之后才可以再次发送唤醒信号。

3.6 状态管理

状态管理是为了检测运行中的错误。错误一旦被发现,根据设计需要采取不同的措施进行排除,一种方法是简单替换掉错误节点,另一种方法是让发生问题的节点进入到自我保护/安全模式(Limp HomeMode)。

3.6.1 网络报告

协议强制规定,每个从机节点都要在它发布的某个无条件帧中包含一个长度为一位的标量信号response_error,向主机节点报告自身状态。

主机节点负责接收这个信号并且执行分析。事件触发帧由于允许总线冲突,需特殊处理。

LIN 协议并没有标准化错误类型,用户可根据需要自行制定。下表列出了可能出现的一些错误类型供参考。

3.6.2 节点内部报告

节点自身需要设定两个状态位:Error_in_response 和 Successful_transfer。

当发送或接收应答的时候发现错误,将置位 Error_in_response;
成功传输则置位 Successful_transfer。节点需要将这两个状态位报告给应用层。

4帧收发的硬件实现

4.1 组成

收发 LIN 帧需要的硬件包括协议控制器(Protocol Controller)、总线收发器(Bus Transceiver)和 LIN 总线三部分。

4.2 LIN 的硬件特点

● 单线通信
● 从机节点无需高精度时钟源
● EMI 低而且可控
● 最高通信速率 20kbps 

4.3 协议控制器

协议控制器的主体是一个基于 UART/SCI 的通信控制器,工作方式是半双工。

协议控制器既可以使用专用模块实现,也可以用“UART/SCI+定时器”实现。发送时,协议控制器把二进制并行数据转变成高-低电平信号,并按照规定的串行格式(8 数据位,1 停止位,无校验位)送往总线收发器;接收时,协议控制器把来自总线收发器的高-低电平信号按照同样的串行格式储存下来,然后再将储存结果转换成二进制并行数据。

1、协议控制器要能产生和识别帧的同步间隔段。如前面所述,同步间隔段包含一个低电平脉冲,长度至少为 13 位。发出和识别同步间隔段虽然增加了硬件设计的复杂度,但是从接收方的角度看,这样做能把同步间隔段与普通的数据字节区别开,确保了同步信息的特殊性。
2、协议控制器要能执行本地唤醒(Local Wakeup)。需要唤醒总线时,协议控制器通过总线收发器向 LIN 总线送出唤醒信号。
3、协议控制器要能识别总线唤醒(Bus Wakeup)。当收到来自 LIN 总线的唤醒信号时,协议控制器能够正确动作,进入规定的通信状态例如,主机节点延迟 100ms,然后查询唤醒来源。

4.3.1 实现方案

依据硬件资源不同可以分为 3 类: UART/SCI+定时器+外部中断、硬件 LIN(Hardware LIN)和 LIN 模块(LIN Module),分别面向对成本和性能有不同侧重的应用。

4.4 总线收发器

总线收发器的主体是一个双向工作的电平转换器,完成协议控制器的高-低电平与 LIN 总线的隐性-显性电平(注 1)之间的转换。

LIN 规范规定:LIN 总线的电平参考点是总线收发器的电源参考点。
为了克服电源波动和参考点漂移的影响,LIN 规范要求总线收发器要能承受±11.5%的电源波动和参考点电平波动,并且能承受电源和参考点之间 8%的电位差波动。收发双方的电平鉴别门限也设置了较大的冗余度。

总线收发器还包括一些附加的功能,例如总线阻抗匹配、压摆率(Slew-rate)控制等。

此外,LIN 规范要求总线收发器具备这样一种特性:本地节点掉电或工作异常时,不能影响总线上其他节点工作。

注:1. “显性-隐性”此处有两个含义,一是突出 LIN 总线“线-与”的本质,二是与协议控制器的“高-低电平”相区别。

4.4.1 实现方案

4.5 LIN 总线

LIN 总线是衔接所有 LIN 节点的通信介质。LIN 总线的特征阻抗——尤其是容抗——会影响信号的波形,在设计产品时应予以重视,参照 4.8.2 节。为汽车电子产品增加 LIN 功能所花费的成本与获得的灵活性相比,往往后者更为显著。汽车上大多数传感器、执行器除至少要接 1 根电源线和 1 根地线外,此外还有一些模拟/数字信号线,这些接口往往存在兼容性的问题。如果采用 LIN 规范,仅用 3 根线(电源、地和 LIN)就可以实现标准化的数字接口。传感器、执行器通过总线连接,汽车结构设计可以更加灵活,线束的数量(重量)不但不会增加,还可能减少。

4.6 时钟源

LIN 网络的主机节点必须设置较高精度的时钟,而从机节点则不必。换句话说,主机节点是 LIN 网络的时间基准,这保证了位速率的准确性。LIN 规范规定一个 LIN 网络里只有一个主机节点,这保证了位速率的唯一性。LIN 规范规定所有通信都由主机节点发起,并在帧头中加入同步段,这就给从机节点提供了主机节点位速率的信息。只要所有从机节点都能在 LIN 通信时与主机节点采用同样的位速率,LIN 网络就能正常工作。这种做法虽然降低了传输效率,但是一方面减少了高精度时钟数量,降低了成本;另一方面不需要仲裁,降低了软硬件设计复杂度。

● 主机节点、从机节点的位速率必须在使用环境要求的温度范围和电压范围内,优于规定的精度(主机节点是±0.5%,从机节点是±14%)。

同步之前,主机和从机节点的位速率与额定位速率的误差应符合 Ftol_res_master 和Ftol_res_slave/Ftol_unsync 的要求。
主机节点按主机位速率发出同步间隔段,从机节点应可按从机位速率将其解释为长度大于 9~11 位的显性电平(这个宽度必须是帧的其他部分不可能出现的)。这里除了要考虑从机节点对时间的测量误差(取决于时钟精度),还要考虑从机节点可用位速率与额定位速率的误差,以及 LIN 总线电抗特性造成的传输延迟(固有误差,取决于硬件设计)。

● 同步之后,从PID段到校验和段,通信双方的位速率相对误差不大于±2%(即Ftol_sync和Ftol_sl_to_sl)。
如果是主机节点与从机节点通信,设 Ftol_res_master 为±0.5%,那么不论从机节点是否利用同步段修正位速率,其位速率相对于额定位速率的误差不能大于 Ftol_sync - Ftol_res_master,即±1.5%。如果是从机节点之间通信,对从机节点各自的位速率误差的要求将高于±1.5%。

4.7 EMI 及其控制

EMI 这里指电磁干扰。对于 LIN 而言,EMI 主要由位速率和压摆率共同决定。

位速率决定单位时间内电平变化次数,压摆率决定电平跳变的快慢。单位时间内跳变次数越多,每次跳变持续时间越短,跳变过程包含的谐波成分就越丰富,EMI 也越大;相反,跳变持续时间越长,单位时间跳变次数越少,其谐波成分越少,EMI也较低。

LIN 可以控制 EMI。这是因为协议控制器可以控制 LIN 总线位速率,总线收发器可以控制压摆率。另外,LIN 协会把 LIN 的最高位速率限制在 20kbps。值得一提的是,这个速度远非 LIN 物理层的极限,而是在数据速率与 EMI 之间权衡的结果。

4.8 设计电路时的注意事项

4.8.1 工作环境对时钟的影响

片上振荡器容易受到环境温度和电源电压的影响,石英晶体容易受到冲击振动的破坏。在选择时钟源时,定要考虑使用环境的温度范围、电源电压范围和冲击振动情况。在电路板布局时,要让时钟器件尽量避开热源和易受外力冲击的部位。总之,要确保在最恶劣的情况下,也能保证时钟的精度和稳定性。

LIN 的硬件部分应该在-40℃~+125℃的温度范围内保证满足 LIN 规范规定的指标。在电源适应性方面,要能承受±11.5%(注 1)的电压波动。	
注:1. LIN 规范 2.1 版将这个指标提高到±11.5%,LIN 规范 1.x 和 2.0 版中,这个指标是±10%。

对于汽车电子产品,还要承受汽车电源系统常见的总线短路、负载突降(Load Dump)、电源反接、蓄电池串联(Jump-start)等现象。

4.8.2 端接阻抗和总线负载

为了实现“线-与”特性,LIN 规范规定了主机节点和从机节点的端接电阻。端接电阻一端连接 LIN 总线,另一端经串联二极管连接收发器电源。图中的串联二极管是必须的,当 ECU 的“电池断路”的时候,它可以防止 LIN 总线向 ECU 供电。

LIN 子网各节点并联在一起,其中,总线负载电阻等于各节点端接电阻的并联等效电阻(总线的电阻通常很小,可以忽略),总线负载电容等于各节点输入电容和总线分布电容的并联等效电容。总线电阻决定了总线收发器驱动级的功率和通信期间的功耗;总线电容可以很好地吸收周围环境的噪声干扰。总线电阻和总线电容构成的 RC
滤波器还有助于控制压摆率。

为确保最恶劣情况下正常通信的需要,LIN 规范除了限制节点的端接电阻、电容和时间常数,还规定 LIN总线长度不超过 40 米,一个 LIN 网络的最大节点数目不超过 16。应注意,由于端接电阻连接着电源和 LIN 总线,当出现 LIN 总线对地短路时,如果不采取保护措施,会有较大的电流流过端接电阻,产生显著的功耗。

4.8.3 ESD 防护

ESD(Electrostatic Discharge)指静电危害,表现为短暂而幅度迅速衰减的高压、大电流放电,由于其瞬间电压可达数千伏,对于工作在干燥的环境或者接地不良的电子产品威胁最严重。总线收发器最容易受到 ESD 的冲击。LIN 规范要求总线收发器的电源和地应直接连接到 ECU 的接口处,这就使电源线成为 ESD 侵入的窗口。同样,LIN 总线也可能窜入 ESD。如果处理不当,容易因为放电过程中的高压、大电流烧毁内部器件。
设计时可以采取以下措施:

● 在电源线和地线之间串联电阻和电容;
● 地线加粗,并与其它大面积接地导体就近,链接低阻抗;
● 在 LIN 信号线与地线之间并接 ESD 保护器件,例如瞬态电压抑制器件(Transient Voltage Suppressor,TVS)、RC 滤波器等。( RC 滤波器的截止频率应远高于 LIN 的位速率,否则会影响 LIN 通信波形。)

5. 信号处理、配置、识别和诊断

本章从应用需求入手,介绍了信号处理、配置、识别(Identification)和诊断的概念、功能和用途。

本章内容对应于 LIN 规范的以下部分:
● LIN Transport Layer Specification
● LIN Node configuration and Identification Specification
● LIN Diagnostic Specification
从使用的角度来看,LIN 提供四项功能——信号处理、配置、识别和诊断,这四项功能共同构成了 LIN 的应用层

5.1 传输层

传输层是配置、识别和诊断这三项功能的通信载体,实现应用层消息与帧之间的格式转换和传输。为
了规范使用,LIN 为应用层和传输层定义了 API 接口。
传输层的任务单一,就是充当一个“翻译官”,把来自诊断服务的消息(Message)“翻译”成协议层可以处理的PDU (Packet Data Unit,分组数据单元),或者反过来,把协议层收到的 PDU“翻译”成诊断服务需要的消息。消息到 PDU 的转换过程称为拆分(Packing),PDU 到消息的转换过程称为重组(Unpacking)。PDU 对应着帧结构的数据段,并通过诊断帧发送或接收。

5.1.1 PDU 结构

为满足汽车行业的要求,LIN 传输层 PDU 的格式与 ISO 制定的基于 CAN 网络的诊断标准(参照参考资料[9])非常相似(是 ISO 标准的子集)。这种兼容性大大减少了在 CAN 和 LIN 之间转换数据格式的工作量,降低了对节点计算能力的要求。

从发送格式上,PDU 单元可分为单帧(Single Frame,SF)、首帧(First Frame,FF)和续帧(Consecutive Frames,CF)三种。
从发送源上,主机发送请求 PDU,从机发送应答 PDU。

PDU 格式,包括节点地址(NAD),协议控制信息(PCI),LEN,服务 ID(SID),应答服务 ID(RSID),
消息字节段(D1~D6)。首字节 NAD 首先发送,末字节 D4,D5,D6 最后发送。

5.1.1.1 NAD

PDU 单元的第一个字节是 NAD(node address),用于区分不同从机节点的地址。

5.1.1.2 PCI

PDU 单元的第二个字节是 PCI(Protocol Control Information)信息,包含了 PDU 单元类型和消息字节长度的信息。

单帧中,附加信息 Length 表示消息字节数加 1。

首帧中,附加信息只表示 Length 的高 4 位,低 8 位在 LEN中表示。因此在消息长度为 12 位数据,最大长度为 4095(0xFFF)。

续帧中的附加信息表示首帧后,跟随的续帧的编号,第一个续帧编号为 1,之后累加 1。如果续帧数多于15 个,那么帧计数器在第 16 个续帧时从 0 重新计数。

5.1.1.3 SID 与 RSID

SID(Service Identifier)表示了从机节点应完成的服务请求。
节点配置服务的 SID 区间为 0xB0~0xB7,诊断服务的 SID 区间为 0x00 ~0xAF,0xB8 ~ 0xFE。

RSID(Response Service Identifier)表示从机节点应答的内容,它的值是 SID+0x40。

5.1.1.4 消息字节段

消息字节段的内容取决于服务的种类。
在单帧中,消息字段最多 6 个字节。在首帧和续帧中,所有 PDU 的消息字段,经过“重组”组成一个完成的消息。

5.1.2 传输层通信

应用层发出的消息如果长度不超过单帧的容量,传输层会按单帧的格式交给协议层发送。传输层收到的单帧也会直接作为消息送往应用层;如果消息长度超过单帧的容量,传输层先要把消息拆分成首帧和续帧并排好次序,然后再交给协议层依次发送。反过来,协议层收到的首帧和续帧,传输层先要按照接收次序将其重组为消息,最后交给应用层处理。
LIN 传输层只能按顺序接收续帧。
LIN 传输层具备出错重传功能。

5.2 LIN 应用层

5.2.1 概述

LIN 应用层提供信号处理、配置、识别和诊断四项功能。

配置、识别和诊断功能又包含若干项目,称为服务(Service)。

为了区别,每项服务都有固定、唯一的服务代号(Service ID,SID)。

① 信号通过信号携带帧通信
② 配置服务通过传输层,以单帧的形式通信
③ 识别服务通过传输层,以单帧的形式通信
④ 基于信号的诊断服务
⑤ 诊断传输层,通过传输层通信,需要使用复帧的形式通信
⑥ 用户自定义的诊断
LIN 应用层的配置、识别和诊断都是针对逻辑节点(Logical Node)的。逻辑节点是能够对来自主机节点和/或诊断设备的服务请求作出响应的功能实体。为了区别不同的逻辑节点,LIN 定义了 NAD(Node Address for Diagnose,诊断地址)。对于一个物理节点来说,从机任务和接口对应着实现帧收发的软件和硬件实体,而逻辑节点则代表了配置、识别和诊断方面的能力。物理节点、从机任务以及接口是一一对应的,但是物理节点可以包括 1 个或者多个逻辑节点。

5.2.2 信号处理功能

信号处理功能是指应用层可以不经过传输层,直接从协议层获取或修改网络中的信号。这些信号由NCF(Node Capability File,节点性能文件)定义,既可以是工作参数(例如温度、压力的测量值、继电器的开合状态等),也可以是状态标志(例如某信号携带帧的收发状态).

5.2.3 配置功能

LIN 规范规定,每个逻辑节点都应该有 NAD。在网络运行期间,任意两个逻辑节点的 NAD 都必须不同,否则就会产生冲突。此外,每个逻辑节点都要能处理带有某些 PID 的帧。由此可见,NAD 和 PID 分别与逻辑节点建立了一种映射关系,LIN 规范把 NAD 和 PID 的这样一种组合称为逻辑节点的配置项(Configuration)。一个逻辑节点可以有一个以上的配置项,但在网络运行期间,每个逻辑节点只能有一个配置项有效。配置功能是指 LIN 的主机节点能自动地给所有逻辑节点选择配置项,消除 NAD 和 PID 分配中存在的冲突,使网络正常工作。配置功能是确保各节点协调运作的内部功能,包含分配 NAD、分配 PID 等服务。配置功能通过传输层完成配置服务。

配置功能的工作模型与计算机局域网的“客户机-服务器”模型很相似。主机节点可以被视为客户机,逻辑节点被视为服务器。客户机首先向服务器发出服务请求,服务器依照请求执行操作,然后向客户机返回应答。

5.2.3.1 节点存储模型



第一种,无配置节点,这种从机节点在重启后,自身没有配置项,每次重启都需要主机进行配置。
第二种,预配置节点,这种从机节点在重启后,调用预先设置的配置项。但是在主机重新对其进行配置后,不能存储新配置项。
第三种,全功能配置节点,这种从机节点可以保存主机对其的配置,并在重启后调用此配置。

5.2.3.2 从机节点 NAD 配置

有三种方法生成配置 NAD,如果初始 NAD 等于配置 NAD,那么不需要进行其他配置操作;
如果配置 NAD需要从从机节点存储的保留配置中提取,需要调用 ld_set_configuration 进行配置;
如果 NAD 需要变更,则需要主机发送配置 NAD 请求。


主机节点给从机节点分配 NAD 是通过 Assign NAD 服务完成的。首先主机节点向从机节点发送配置 NAD请求,如果从机节点配置成功,从机节点会应答。

每个从机节点有一个初始 NAD,初始 NAD 是从一个初始 NAD 列表中选择的。初始 NAD 列表是在编写节点性能文件(NCF)时设置的。LIN 协议没有对生成初始 NAD 的具体方法进行限制。

其中,消息字节段的第一字节是开始帧索引,表示分配第一个帧的排列号。
从机节点中各帧的排列顺序是按照节点性能文件(NCF)和 LIN 描述文件(LDF)中定义的顺序定义的。
第一帧的索引编号是 0。
后续四个字节是给从机节点分配的 PID。
如果分配的 PID 值为 0,表示对应的信号携带帧无效。
如果分配的 PID 值为 0xFF,表示保持对应帧的 PID 不变。

5.2.3.4 其它服务
除了对从机节点 NAD 和 PID 的配置,LIN 规范还定义了其他配置服务,如条件变更 NAD,数据导入,保存配置。

5.2.4 识别功能
识别功能是指主机节点能够获取逻辑节点的信息,例如产品代号等。借助识别功能,主机节点和逻辑节点还可以实现一些自定义的操作。


5.2.5 诊断功能

诊断功能的实用意义可以用一个例子来说明:假设采用 LIN 子网的车门连接在底盘 CAN 网络上,诊断车门故障时,只需要把 OBD 设备连接于车载计算机的 CAN 接口即可,而不需要拆下车门;确定车门故障点后,拆下车门维修完毕,只需把 OBD 设备连接于车门的 CAN 接口,就能确认门是否已被修好,而不需要事先把车门装回。

一般而言,节点的计算能力与成本成正比。应用层的四项功能中,只有诊断功能可以根据具体产品而灵活裁减,其余的功能都是固定而且必须的。

诊断功能的可裁减性体现在两方面:实现方式以及支持的服务种类,这些都是直接影响着节点计算负荷的因素。



依据诊断服务的数量,LIN 规范划分出三种不同的诊断类型——I 类、II 类和 III 类,适用于不同条件的逻辑节点。I 类最低,III 类最高,较高类型完全包含较低类型的功能。

I 类是所有诊断类型的公共部分,提供信号处理、识别、配置功能,诊断功能采用表 中的方式 A,这也是每个逻辑节点必备的服务。
II 类节点增加了 UDS 定义的识别服务(注 1),诊断方式一般采用表 中的方式 B。
III 类节点相比 II 类节点,又增加了 UDS 定义的部分其它服务,此外,还增加了通过 LIN 总线在线升级的功能

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章