LIN总线简介
LIN(Local Interconnect Network)是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN 总线是一种辅助的总线网络。在不需要CAN 总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN 总线可大大节省成本。LIN 技术规范中除定义了基本协议和物理层外还定义了开发工具和应用软件接口。LIN 通讯是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式。仅使用一根12V 信号总线和一个无固定时间基准的节点同步时钟线。这种低成本的串行通讯模式和相应的开发环境已经由LIN 协会制定成标准。LIN 的标准化将为汽车制造商以及供应商在研发应用操作系统降低成本。
典型的LIN 总线应用是汽车中的联合装配单元,如:门、方向盘、座椅、空调、照明灯、湿度传感器,交流发电机等。对于这些成本比较敏感的单元,LIN 可以使那些机械元件如智能传感器、制动器或光敏器件得到较广泛的使用。这些元件可以很容易的连接到汽车网络 中并得到十分方便的维护和服务。在LIN 实现的系统中通常将模拟信号量用数字信号量 所替换,这将使总线性能优化。在以下的汽车电子控制系统中使用LIN 来实现将得到非常完美的效果:
LIN节点硬件设计
1 LIN接口总体设计
LIN 节点硬件上主要包括LIN接口电路部分、控制输入部分、显示电路或负载驱动输出等,其中LIN接口为节点的核心。以Microchip公司的 PIC16F87为控制器、TJA1020为LIN收发器、SA57022 为开关电源的LIN接口电路如图1所示。SA57022电源输出的打开与关断由LIN收发器控制通过INH引脚控制。
图1 LIN接口原理图
因主机节点需为网络中的从机节点提供时钟基准,故在主机节点中为PIC16F87配置了外部晶振。在从机节点中,从机节点可通过主机节点发送帧头中的同步场来校准自身波特率,故可省去外部晶振而使用PIC16F87内置的RC振荡器。
2 LIN收发器应用设计
TJA1020 为LIN收发器,它是LIN 协议控制器和LIN传输媒体之间的接口,是节点的核心器件,负责收发数据时总线的波形调整和电平转换及节点多种工作模式的实现。TJA1020按LIN物理层规范集成了片内从机端电阻,在从机节点应用中无须再外接从机端电阻,在主机节点应用中按图1所示在其INH引脚和LIN引脚之间串接主机端电阻和二极管可提高总线的驱动能力,并在总线对地短路时使节点自动进入睡眠状态,减少电流损耗。
以TJA1020为收发器构造的LIN节点具有普通、低斜率、睡眠、准备四种工作模式,以尽可能降低功耗和电磁辐射,各种模式下的节点状态和模式间转换如图2所示。
图2 工作模式的节点状态以及模式间的切换
LIN节点软件设计
1 LIN主机节点软件设计
LIN主机节点行使帧处理和LIN网络的通信管理职能,程序流程如图3所示。
图3 主机程序流程
LIN规范规定,同步间隔场为至少13个连续的显性位(低电平)。LIN 通信基于通用UART/SCI接口,字节传送使用8N1编码,无法直接产生这样一个显性序列。
总线的正常通信波特率为9.6k,从机节点始终以此波特率工作,主机节点在需要发送同步间隔场时将波特率降低到4.8k,并发送0x00,则工作于9.6k 波特率的从机节点将检测到18个连续的显性位,从而判断一个新报文帧的到来。主机节点在发送完同步间隔场后将波特率恢复到9.6k.