LIN主从节点设计与实现
扫描二维码
随时随地手机看文章
摘要:LIN是一种串行通讯协议,用于实现汽车中的分布式电子系统控制。介绍了具体的LIN主从节点硬件组成和软件实现方法,同时提出若干抗千扰措施。测试证明按照这种方法设计的LIN网络能正确实现通信。
关键词:LIN总线;主节点;从节点;CAN总线
LIN(LocalInterconnect Network)是一种低速汽车网络,采用单主多从、异步串行通信方式,定位于现有汽车网络(如CAN总线)的辅助和补充,目的是以低廉的价格联接车上的传感器、执行器和处理器,并且允许不同厂家的模块随时添加进来。LIN的主要特点有:低成本,基于通用UART接口,几乎所有微控制器都具备LIN必须的硬件;传输速率最高可达20 Kb/s;从节点不需晶振或陶瓷震荡器就能实现自同步,节省了从设备的硬件成本;单主控器/多从设备模式,无需仲裁机制;不需要改变LIN从节点的硬件和软件就可以在网络上增加节点等。
1 主从节点硬件设计
LIN网络由一个主节点和最多15个从节点构成。设计LIN节点可以有三种方法:用普通I/O口线模拟异步串行通信;用UART和定时器实现;用专门的LIN模块来实现。第一种方法成本最低,但CPU负担最重,代码较多;第二种方法成本适中,CPU负担较轻;第三种方法成本较高,但CPU负担最轻,代码最少。这里采用最常用的一种,即基于UART和定时器的LIN节点设计和实现。LIN网络拓扑结构如图1所示。
在LIN网络中所有的通信都由主节点发起,同时还承担与CAN总线通信的任务,因此主节点硬件电路主要包括微控制器、LIN收发器和CAN收发器。LIN收发器将协议控制器向TXD引脚输入的传输数据流转换成总线信号并由收发器控制回转速率和波形以减少EME;CAN收发器作为CAN总线与控制器之间的接口以及提供CAN总线的差动发送和接收功能。需要注意的是主节点电路中必须连接一个1 kΩ的上拉电阻和一个二极管。采用Microchip公司的PICl8系列单片机作为主节点的微控制器,MCP2551作为CAN总线收发器,MCP201作为LIN总线收发器。主节点硬件原理图如图2所示。在实际设计过程中还要注意EMI(电磁干扰)和ESD(静电危害)对LIN总线的干扰,为了避免EMI的影响,LIN协会把LIN的最高位速率限制在20 Kb/s,同时最大传输距离不能超过40 m;ESD表现为短暂而幅度迅速衰减的高压、大电流放电,而LIN总线收发器最容易受到:ESD的冲击,因此设计时可以在电源线和地线之间串联电阻和电容,也可以把地线加粗,并与其他大面积接地导体就近、低阻抗连接。
从节点采用PIC18F1320作为主控制器,MCP201作为LIN总线收发器;需要注意的是从节点中必须连接一个30 kΩ的上拉电阻,当然串联二极管也是必须的,它可以防止电子控制单元在本地电池掉电的情况下通过LIN总线上电。从节点电路原理图与主节点相似,去掉CAN收发器,其余不再赘述。
2 软件设计
LIN主节点是LIN总线的控制者,它将决定在什么时候发送哪个报文到LIN总线上,同时它需要检测从节点和总线的工作状态。因为LIN主节点是通讯的发起者,在每个报文帧开始时它需要发送出同步间歇,同步字段以及标识字段。如果这个报文帧是发送控制命令到从节点,主节点接着将发送出数据字段及校验和字段;而如果这个报文帧是发送查询命令到从节点,此时主节点将从LIN总线读取从节点发送的数据字段和校验和字段。
LIN从节点用UART实现通讯,从中检出主节点发送给本从节点的命令,并执行相应动作。要正确实现LIN总线的通信,主从节点的初始化是非常重要的,图3、图4给出了主从节点的初始化流程图。其余还有LIN主节点UART接收数据流程图,LIN从节点中断服务流程图等限于篇幅不一一列出。
3 LIN总线通信测试
如前所述,一个LIN网络由一个LIN主节点和多个从节点组成,报文的传送方向和时间由主节点决定。从节点是根据报头中的ID号来决定是否接收一帧数据,在检测到正确的报文ID号后,从节点将根据ID号判断后续操作:是否接收后续数据或者发送数据到LIN总线,并初始化相应操作。在本子系统中,设计了两个从节点,定义的报文ID号如表1所示。
在LIN总线波特率设为9 600 b/s时,利用数字存储示波器对LlN从接点通信过程进行了测试。另外,还利用ZLGCANtest软件对LIN网络的通信功能做了测试,一切结果显示均正常,证明设计LIN网络的通信程序设计是正确的。
4 结语
在欧美、日本等发达国家,LIN总线被越来越多地应用到车身网络中,但在我国LIN总线的应用还处在起步阶段,因此对LIN总线通信的研究显得尤为重要。本文设计了基于PIC单片机的LIN总线主从节点,并实现了主从节点间的通信,其中,位定时的设定是影响通信速度的重要因素。该研究为下一步将LIN总线应用到汽车的联合装配控制单元中打下良好的基础。