下载后可任意编辑用于汽车网络的 LIN 协议分析LIN 协议适用于汽车内进行低成本、短距离、低速网络通信,其用途是传输开关设置状态以及对开关变化响应
本文详细分析了 LIN 总线协议的特性、消息协议的组成、检错机制等,并介绍如何基于 PICmicro器件来实现 LIN 总线从节点
LIN 协议是由欧洲车辆制造商协会开发用来进行低成本、短距离、低速网络通信,其用途是传输开关设置状态以及对开关变化响应,因此通信事件是在百毫秒以上时间内发生,而不像引擎管理等其它速度快得多的汽车应用
此协议支持在单根线上进行双向通信,使用由 RC 振荡器驱动的低成本微控制器,这样可以省去晶振或陶瓷振荡器的成本
另外,此协议实际上是以时间和软件上的代价换取硬件上成本的节约
LIN 协议的每一条消息都包含自动波特率步进的数据,最高可以支持波特率为 20k,同时低功耗睡眠模式可以关断总线,以避开产生不必要的功耗
总线可以由任意一个节点提供电源
LIN 总线特性下载后可任意编辑 图 1:典型的 LIN 协议配置
LIN 总线融合了 I2C 和 RS232 的特性:像 I2C 总线那样,LIN 总线通过一个电阻上拉到高电平,而每一个节点又都可以通过集电极开路驱动器将总线拉低;像 RS232 那样通过起始位和停止位标识出每一个字节,每一位在时钟上异步传输
图 1 给出了典型的 LIN 协议配置
当任意一个节点将总线拉低时,总线处于低电平,标识着总线进入占用状态;而当所有节点都使总线浮空时总线处于电池的电压(9-18V),则意味着总线处于非占用状态(Recessive state);在空闲状态下浮空的总线通过电阻被上拉到高电平
总线工作在 9 到 18 伏的电压下,但所有连接到总下载后可任意编辑线上的器件必须能承受 40V 的电压
一般情况下,微控制器通过线路驱动器或接收器与总线隔离
总线在每一个节点