本地互连网络(LIN),即 ISO17897,是汽车领域中一种多点、低成本且易于实现的通信总线。在大多数应用中,它作为控制器局域网的子总线发挥作用。本文介绍了LIN 技术的主要组成部分,重点关注 LIN 收发器本身、协议相关信息以及实际应用中的物理层要求。


1. 引言
随着汽车变得更加智能、安全和舒适,电气系统和部件的数量持续增长。这些部件和系统的增加,使得汽车制造商急需通信收发器,以最有利的方式促进它们之间的交互。LIN 正是为了在那些不需要 CAN 总线的带宽和多功能性的场景中,高效、直接地管理这些部件和系统之间的通信而开发的;不过在大多数情况下,它是 CAN 总线的子总线。
# 网关包含与构成车辆网络的所有总线的接口。此处的 LIN 主节点被配置为网关模块的一部分。
连接到 LIN 总线的不同本地控制模块是从节点模块。
(图 1 - 1:高级应用图)
1.1 LIN 规范的演进
最新的 LIN 标准于 2010 年由 LIN 联盟定义(LIN 2.2A)。随后,该标准被提交给国际标准化组织(ISO),并于 2016 年被正式接受为 ISO 17897 标准并发布。


1.2 工作流程概念
本文重点关注 LIN 收发器及其实现方式;然而,为了理解收发器在应用中的作用,对整个 LIN 网络有一个宏观的认识是很重要的。随着 LIN 标准的确定,它不仅规定了实际的数据传输(用 1 和 0 表示),还定义了更高级别的网络实现方式:LIN 工作流程。LIN 工作流程为使用该协议的人员提供了一种易于使用、可靠的实现方案。整个网络集群的配置被定义并标准化,这就是 LIN 描述文件(LDF)发挥作用的地方。
LDF 用于区分不同的 LIN 集群,定义特定集群的具体用途和属性(节点数量、消息帧的数量和描述、消息速率等)。这使得开发者能够生成软件文件,确定集群中每个节点所执行的任务。LDF 可用于自动生成通信相关的软件,以及为分析 LIN 集群所涉及的测量和测试工具提供信息。

LDF 是使用 LIN 配置语言规范定义的语法编写的。这种语法与系统定义工具结合使用,以创建 LDF,从而定义整个网络。除了这些工具,还有 LIN 节点能力语言。它使开发者能够定义和描述现成节点的实现方式,这些节点是易于实现的通用 LIN 节点,专为可大量购买的典型应用而设计。
2. 网络架构
2.1 LIN 总线的总体布局
一个 LIN 集群定义为通过物理线缆连接的多个 LIN 节点。每个集群中有两种类型的节点:一个主节点和最多 16 个从节点。主节点负责管理总线上与每个从节点的通信。在 2.3 节将进一步讨论主从节点的工作原理。

LIN 的设计理念是成为一种简单且具有成本效益的通信接口。这就是为什么它没有采用专用的通信控制器。相反,通过对微控制器进行 LIN 协议编程,并利用其通过串行接口驱动与收发器的通信。这个接口被称为串行通信接口(SCI),在大多数 LIN 应用中,它已经取代了通用异步收发传输器(UART)。这两种接口在大多数微控制器中都很常见,从而减少了后端安装的工作量。
LIN 总线传输只需要一根线,并且使用较慢的通信速度,以便妥善处理任何辐射发射问题。所有节点都被动连接到总线上,并且使用上拉电阻来确保当节点处于关闭状态时,总线处于电源电压电平。
2.2 串行通信原理
SCI 是 LIN 收发器与与之通信的微控制器之间使用的主要接口。最初使用的是 UART,但通过 UART 实现无故障接口较为困难。
微控制器传输位帧,从显性起始位开始。这使总线上的所有接收器同步,随后依次传输最低有效位到最高有效位,最后是停止位。这构成一个 SCI 帧,而一个 LIN 消息由多个 SCI 帧组成。
2.3 主从节点原理
在每个集群中,有一个主节点和最多 16 个从节点。主节点控制总线上的所有通信,并且包含要执行的主任务和从任务。从节点之间不能相互通信,只包含从任务,并且只有当消息针对它们时,才能够响应主节点。主节点向指定的从节点发送请求作为报头(帧的开始),从节点作为响应帧对主节点做出响应。还有一种情况是,主节点向从节点发送报头和响应帧,而从节点只监听但不响应。这两种情况都保证了可预测且明确的总线流量,在很大程度上避免了冲突,因为总是由主节点发起通信。这种可预测性允许对消息进行调度。
如果 LIN 集群的开发者能够合理规划消息并计算其长度,就可以制定一个调度计划,从而不会发生冲突。调度计划是将消息帧组织到时隙中,并设定在任何给定时间要发送的所有消息的发送时间。令牌(也称为请求)由主节点在调度计划设定的给定时间发送。这些令牌被发送到从节点,从节点可以忽略、响应或仅接收数据。令牌和数据(报头和响应)构成了 LIN 消息,每个集群最多可以定义 64 条消息。
主从节点系统的问题在于,主节点控制所有通信,如果主节点出现故障,整个集群就会失效。在所有节点都可以充当主节点和从节点的方案中,不会出现这种情况。正是这一特性,以及较慢的消息速率,最终导致 LIN 无法用于与安全相关的应用。此外,LIN 集群本身也不具备事件驱动通信的能力,因为 LIN 从节点只有在被请求时才能与总线通信。
2.4 消息帧格式
每个 LIN 消息都有特定的结构:第一部分是令牌,第二部分是数据(报头和响应)。令牌总是由主任务发送,并分为同步间隔、同步字段和受保护标识符(PID)。同步间隔和同步字段用于使 LIN 总线上的所有从节点与主节点的时序同步(无需任何晶体或振荡器),而 PID 用于定义哪个从节点响应、接收或忽略正在发送的消息报头。报头总共至少包含 13 位同步间隔位、1 位分隔符位、10 位同步字段位(1 位起始位、8 位用于同步、1 位停止位)和 10 位标识符位(1 位起始位、6 位标识符、2 位奇偶校验位、1 位停止位)。

消息的数据(响应)部分由从任务发送,根据 PID 的 “指令”,可以由主节点或从节点发送。响应分为数据字节(最多 8 个)和校验和。校验和是对数据字节的一种保护机制,用于验证发送的消息是否为预期内容,以及在传输过程中是否没有引入错误。任何节点都可以接收帧响应,但实际使用该响应的节点取决于 LDF。响应总共包含每个数据字节的 10 位(1 位起始位、8 位数据、1 位停止位),最多 8 个数据字节,以及 10 位校验和(1 位起始位、8 位校验和结果、1 位停止位)。

3. 物理层要求
LIN 物理层基于 ISO 9141 标准,并针对汽车应用进行了一些修改,特别是在电磁兼容性(EMC)、静电放电(ESD)、瞬态脉冲响应等方面。它是一种双向的总线通信接口,通过一个电阻和一个二极管(仅主节点)偏置到车辆的电池电压,并连接到 LIN 集群中每个节点的收发器。
收发器负责促进总线与网络之间的通信。LIN 收发器将来自微控制器的位逻辑转换为更高的电压电平,以便在总线上传输,反之亦然。LIN 收发器的发送(TXD)和接收(RXD)引脚通过信号在收发器中传输时发生的电压转换,实现与总线之间的通信。TXD 连接到微控制器,消息从这里发送,然后在 LIN 总线上广播。RXD 监控总线,并将 LIN 总线上的消息转换为微控制器能够解读的电压电平,从而对总线上发生的通信做出响应。TXD 和 RXD 的典型电压电平与大多数微控制器的电平相同:3.3 伏和 5 伏。LIN 总线和 LIN 收发器通常在 9 伏至 18 伏的电压范围内工作,但有些可高达 30 伏(取决于应用)。典型的汽车采用 12 伏电池系统,但一些较大型车辆的电压可达 24 伏。


3.1 总线信令基础
考虑到总线上的这些电压电平,大多数收发器都遵循一定的阈值,不过有些公司会略有偏差。由于这是一种单端通信方案,且阈值不能通过电压差来设置,所以这些阈值是基于系统中电池电压的百分比。这些阈值决定了何时将位视为 “隐性” 或 “显性”。
隐性和显性分别只是表示总线上高电平和低电平的不同说法。这种命名方式源于总线与收发器相互作用的概念,以及集成电路内部信号的生成方式。
从宏观角度看,一个集群相当于一个开漏电路,这意味着总线需要一个上拉电阻,并且所有节点都通过收发器被动连接到总线上。在接收到指令时,收发器控制总线上的电压电平。上拉电阻确保当收发器的 TXD 控制处于关闭状态时,总线上的电压电平达到或接近电池电压电平。一旦收发器激活且 TXD 控制晶体管导通,总线被拉低至接近地电平,高电平状态被覆盖。因此,当收发器关闭或处于被动状态时,总线被拉高,即 “隐性”。当收发器 TXD 开始导通并激活时,总线被拉低,即 “显性”。

3.2 上拉电阻值
主节点和从节点的上拉电阻值不同。根据 LIN 规范,主节点需要一个外部上拉电阻和二极管。常见的值是 1 千欧(其他常见值为 600 欧和 500 欧)与一个二极管串联,用于反向极性保护,并连接到电池电压。LIN 从节点的典型上拉电阻值为 30 千欧,并且在所有现代 LIN 收发器中,该电阻已集成在集成电路内,因此在从节点配置中无需外部上拉电阻。
3.3 阈值
发送器和接收器有不同的电平来满足这些隐性和显性电压电平要求。对于显性脉冲(低电平),发送器必须将电压电平降低到电池电压电平的 20%,而接收器在其端电压电平达到 40% 时将其解读为显性位。
对于隐性脉冲(高电平),发送器必须将电压驱动到电池电压的 80%,而接收器在总线上电压电平达到 60% 时将其解读为隐性位。接收器和发送器之间的电平差异是由于外部电源电压与实际 LIN 总线电压的差异造成的。布线中可能出现的电压降、接地偏移,或者总线上滤波元件引起的变化,是外部电源与总线电平出现偏差的主要原因。

3.4 比特率容差和定时要求
LIN 的比特率范围为每秒 1k 到 20 k比特,比特率容差为 ±14%。这个 14% 的值源于使用低成本的片上振荡器这一事实,通过内部校准,可以实现优于 ±14% 的精度。这种精度能够检测消息流中的中断,并且通过使用同步字段进行定时校准,消息帧本身确保了消息的接收和传输。
温度变化和电压漂移会导致比特率发生变化,片上振荡器在测量比特率并生成消息帧的其余部分(同步字段之后)时,会考虑这些变化。
3.5 同步和位采样
除特殊用例外,所有位时间都以主节点的位定时作为参考。同步字节由‘0x55’(8 位交替的 1 和 0,从 0 开始)组成,本质上是一个给定频率的时钟信号。该模式的下降沿与起始位和停止位(共 10 位)结合用于同步,这为从节点的同步提供了总共 4 个下降沿。这也允许进行准确的位宽(TBIT)测量。然而,由于市场上在位采样方面使用了不同的同步方法(不一定在起始位的下降沿),LIN 2.2 规范取消了起始位采样的规定。这允许所有满足字节字段同步定时要求(tBFS,通常定义为 TBIT 的 1/16,最大为 2/16 TBIT)的起始位采样方法。

从节点同步完成后,必须准确采样每个位,以确保 LIN 集群正确解读消息。每个位应在最早位采样(tEBS)和最晚位采样(tLBS)之间进行采样;tLBS 通过公式 1 取决于 tBFS:
tLBS = 10/16 TBIT – tBFS (1)
tEBS 定义为最小为 7/16 TBIT。第一位之后的其余位随后以采样率(tSR)进行采样。这些基于前一位(n - 1)的最早位采样和当前位(n)的最早位采样,由以下公式给出:
tSR = tEBS (n) – tEBS (n – 1) = TBIT
3.6 占空比
为确保发送的消息能被正确解读,LIN 总线必须根据电池供电达到正确的电压电平,并且这些电压必须在接收器正确的位采样时间内达到。

3-5 总线占空比要求
图 3 - 5 来自具有显性状态超时功能的 TLIN1029 - Q1 本地互连网络(LIN)收发器,且参考了 LIN 规范。它将总线定时定义为正确采样每个位的要求。这样定义是为了在设计收发器时,当信号从 TXD 传输到 LIN 总线以及从 LIN 总线传输到 RXD 时,占空比不会失真。由于消息中不发送时钟信号,且同步是基于同步字段,如果占空比变化太大,主节点时钟或从节点时钟也会发生变化。这会影响该电源周期剩余时间内的定时。
4. 滤波、距离限制、总线上的节点
4.1 电磁干扰(EMI)与信号调理
强烈建议对 LIN 总线进行 EMI 滤波,这样做可以减轻任何 EMI 问题(来自收发器或进入收发器的干扰),同时有助于应对瞬态脉冲和静电放电冲击。除了 LIN 消息本身在上升沿和下降沿以及非对称波形时会辐射噪声外,车辆其他部分的噪声也可能穿透 LIN 总线。噪声可能通过线缆、接地或电池线路本身进入。
电池线路是特别严重的噪声源,因为它连接到车辆中的其他每个系统,不过来自其他电子控制单元(ECU)的隔离和强滤波有助于缓解这一问题。
总线滤波的最低要求是在主节点和每个从节点处设置一个并联电容。必须谨慎考虑,以免总线电容过载,因为这会使信号边沿变化过慢,从而导致总线上的位解读出现错误。从节点处的总线电容典型值为 220 皮法,主节点处的电容值可达从节点的十倍。其他常用方法包括在总线上串联电感、使用铁氧体磁珠以及电感 - 电容 - 电感(L - C - L)T 型滤波器。铁氧体磁珠和 T 型滤波器往往成本较高,所以电感是更常见的做法。这会在总线上形成一个 LC 滤波器,是一种合适的低成本抑制技术。
4.2 静电放电(ESD)与瞬态脉冲
对于 LIN 总线来说,抑制 ESD 冲击和瞬态脉冲也很重要。在任何应用中,都会存在 ESD 冲击和瞬态脉冲,而在汽车环境中尤其如此,因为汽车内有许多彼此靠近的 ECU。由于这些高压现象的存在,确保系统不受任何破坏或功能中断的影响就显得尤为重要。总线上的电容通过减缓脉冲边沿来帮助抑制 ESD 冲击,但这不足以阻止电流流入设备并可能干扰通信。专门设计的 ESD 保护器件和瞬态电压抑制(TVS)二极管可用于应对这些情况。LIN 收发器会经过测试,以验证它们能够承受这些冲击。这些测试的典型合格水平值为:ESD 直接接触为 ±6 千伏,瞬态脉冲为 ±100 伏。
4.3 距离和节点限制
LIN 规范定义了可连接到 LIN 总线的最大节点数量:1 个主节点和 16 个从节点,以及最大线缆长度为 40 米。与其他通信接口不同,由于有这些明确的定义,无需担心总线上节点过多或线缆过长的问题。不过,为了实现正常通信,总线上的电容仍需保持在合理范围内,而这可能会受到线缆长度、节点数量或总线滤波的影响。


由于线缆长度和节点数量已由规范限定,唯一需要记住的参数是任何增加的电容;一个不错的指导原则是,在 20 千比特每秒的通信速度下,总总线电容保持在 10 纳法以下或接近这个值。图 4 - 1、图 4 - 2 和图 4 - 3 展示了具有标称电容值的情况,以及电容过大时的情况。当电容过大时,上升沿无法及时达到下一位所需的全电压电平,因此正如 RXD 波形所示,这些位无法被正确解读。
(图 4 - 1:电容为 220 皮法、通信速度为 20 千比特每秒的 LIN 总线消息)
(图 4 - 2:电容为 10 纳法、通信速度为 20 千比特每秒的 LIN 总线消息)
(图 4 - 3:电容为 220 纳法、通信速度为 20 千比特每秒的 LIN 总线消息)
5. LIN 收发器特殊功能
大多数现代 LIN 收发器都具备一些特殊功能,以满足特定的应用需求。下面列出的大多数功能适用于注重低功耗的系统。这些功能的描述是针对德州仪器(TI)的器件,但在整个行业的所有收发器中也具有一定的通用性。不同公司的器件在模式的命名规范以及这些模式和功能下收发器的具体内部功能方面可能会有所不同。
5.1 低功耗模式
5.1.1 睡眠模式
睡眠模式是 LIN 收发器的低功耗模式。当系统的任何部分都不需要 LIN 收发器时,可使用此模式来节省功耗。通常通过将器件的使能引脚(如果有)置为逻辑低电平来进入该模式。睡眠模式这个名称意味着器件处于功能较弱的状态,但仍能够监测 LIN 总线,以接收任何唤醒信号(将在 5.2 节进一步解释)。
在睡眠模式下,LIN 驱动器被禁用,并且如果 LIN 总线因任何原因接地短路,内部的 LIN 总线终端会被关闭,以尽量减少电流消耗。低功耗接收器被启用,而正常的接收器功能被禁用,并且使能(EN)输入仍然有效。
5.1.2 待机模式
待机模式也是一种低功耗模式,当发送唤醒请求但 EN 引脚仍处于低电平状态时,收发器会转换到该模式。待机模式和睡眠模式的主要区别在于,在待机模式下,RXD 输出为低电平,而在睡眠模式下,RXD 输出为浮空状态。这向控制器表明,在发送唤醒请求后,器件处于待机模式,并且可以通过控制 EN 引脚转换到正常模式。如果在上电时 EN 引脚未保持高电平,LIN 收发器默认会在待机模式下启动。
5.2 唤醒
5.2.1 引脚唤醒
所有 LIN 收发器都有专门用于将器件从睡眠模式唤醒的引脚(如果器件具备睡眠模式),这些引脚可替代 LIN 总线唤醒请求。LIN 收发器上的唤醒(WAKE)引脚通常是一个高压引脚,可响应负跳变(高电平到低电平)、正跳变(低电平到高电平)或两者皆可。
EN 引脚是一个输入输出(IO)电平引脚,也可用于进入和退出睡眠模式,但跳变极性很重要。负跳变会使器件进入睡眠模式,而正跳变会使器件恢复到正常模式。
5.2.2 LIN 唤醒
当收发器处于睡眠模式时,LIN 唤醒是在 LIN 总线上发出的一个请求。这个请求是一种特定的模式,收发器在低功耗模式下监测总线时能够检测到该模式。该模式是一个从隐性到显性的跳变,其中显性状态会保持指定的时间。当显性脉冲保持正确的时间时,LIN 收发器会转换到待机模式,并且 RXD 保持低电平。图 5 - 1 展示了该过程的时序图。
5.2.3 显性超时
显性超时是作为 LIN 总线的一种故障保护机制出现的情况,但仅在正常模式下发生。如果 TXD 意外地长时间被驱动为低电平(显性),LIN 总线将超时。这意味着发送器被禁用,总线被拉高到隐性状态。对于 TI 的器件,这个延长的时间通常为 20 微秒,但根据设计意图的不同,不同器件可能会有所差异。一旦在 TXD 上检测到上升沿,保护机制就会解除,定时器也会重置。在这种情况下,发送器被禁用,器件保持在正常模式,并且 RXD 跟随 LIN 总线的状态。这种保护机制的存在是为了确保在 LIN 总线保持显性状态且出现电池短路的情况下,不会消耗过多的功率。
评论·0