基于LIN总线的换挡指示器设计
2018-06-28张天园高明福
张天园 高明福
富奥汽车零部件股份有限公司研发中心 吉林省长春市 130013
随着汽车电子系统日益复杂,汽车电子技术蓬勃发展的同时也带来了很多有关车辆网络的问题:随着车内电控单元数目的增长而导致的汽车布置空间的缩小;数目庞大的线束无形中增加了制造成本;各个电控单元之间的连接器也降低了车辆的可靠性。因此,汽车总线需要从点到点的通信转变为网络通信,这样既能实现复杂的功能,也能降低成本,同时提高可靠性。
国际汽车工程师学会SAE(Society of Automotive Engineers)根据位速率的不同,将车用网络分为A、B、C、D、E五大类。每一种网络都包含多种网络协议,目前主流的协议有:LIN、CAN、FlexRay和MOST。其中,CAN总线是普遍使用的网络协议,高速的FlexRay和MOST由于价格昂贵主要用于高端车型,而LIN网络标准则由于其低廉的通信成本和便捷的开发方式在车身控制方面,如座椅控制、车窗升降控制、后视镜控制、滑动天窗等,得到了广泛的应用。
1 LIN总线概述
LIN(Local Interconnect Network)总线是一种低速、低成本的A类总线标准,是CAN总线的一种补充。随着1997年开放的LIN总线标准产生以来,LIN总线已经广泛地被世界上的大多数汽车公司以及零配件厂商所接受。
LIN2.1规范于2006年发表,包括物理层规范、协议规范、传输层规范、节点配置和标识规范、诊断规范、应用程序接口规范、节点能力语言规范和配置语言规范八个部分。LIN2.2规范于2010年发表,更正了一些细微的错误,同时减弱了比特取样的规则。
LIN网络是一种主从网络,网络中包含一个主节点和至多15个从节点,因此无需仲裁。网络中由主节点控制各个消息的时序调度,各个从节点则负责发送和接收消息。每个节点中的微控制器通过SCI接口与LIN收发器相衔接,而几乎所有的微控制器均具备SCI接口,使得LIN通信具有广泛的硬件基础。同时,串行通信还具有线间干扰小,节省线束,传输距离长等优点。在LIN网络中,信号采用单线传输,传输速率最高可达20kbps。LIN网络的从节点无须晶振或陶瓷震荡器就可以实现同步,因而大幅度降低成本。当增加或减少从节点时,无需改变其他节点的硬件电路,因此使用灵活。LIN网络支持基于ISO15765-2的传输层规范和基于ISO14229-1的诊断服务。
2 系统方案
本文所设计的换挡指示器,是安装在自动挡车型上的,与换挡手柄配合工作并构成总成,用来显示换挡手柄当前切换到的档位。换挡手柄作为网关,主要功能是对各种信息进行分析处理,并发出指令,协调换挡指示器的工作。它接收来自TCM的CAN消息,经过解析,转换成相应的LIN消息,通过LIN总线向换挡指示器发出指令。换挡手柄作为LIN总线的主节点,换挡指示器作为LIN总线的从节点,从节点接收到主节点发送的档位显示信号后,点亮相应档位的发光二极管。LIN总线是直接面向执行机构的。
换挡指示器工作流程如下:
(1)TCM向换挡手柄发送CAN消息,请求当前的档位信息。
(2)换挡手柄将当前的档位信息通过CAN消息发送给TCM。
(3)TCM收到档位信息后,向换挡手柄发送CAN消息,要求换挡手柄点亮换挡指示器相应档位的发光二极管。
(4)换挡手柄收到要求点亮换挡指示器相应档位的发光二极管的CAN消息后,将CAN消息转换成LIN消息,将档位显示信息包含在LIN消息中,向换挡指示器发送档位信息。
(5)换挡指示器收到档位显示的LIN消息后,点亮相应档位的发光二极管。
3 硬件设计
换挡指示器主要有以下两个功能:
3.1 网络传输功能
换挡指示器作为LIN总线从节点,接收LIN总线上各种控制命令,如点亮相应档位的发光二极管的信息,睡眠指令等。
3.2 控制点亮相应档位的发光二极管功能
换挡指示器接收到LIN总线上控制命令后,通过脉宽调制来控制点亮哪一个档位的发光二极管,以及该发光二极管是何亮度。
为满足需求,主控MCU采用NXP公司的16位单片机9S12ZVLS32。S12ZVL系列是S12 MagniV混合信号微控制器组合的一部分,提供智能、优化集成的高电压组件。S12ZVL产品系统集成了一个LIN物理层、受ESD保护的12V输入引脚(能够进行ADC测量)以及在3.5V至40V之间操作的汽车稳压器(为霍尔传感器或RGB LED等片上和片外功能提供稳定的电源)。
S12ZVL系列结构框图如下图所示:
S12ZVL系列主要特性有:
(1)S12Z内核,25MHz总线:与S12内核比较,提高了代码效率和内核性能。
(2)8KB至32KB的闪存:提供片上闪存来存储代码,无需外部闪存/ROM。
(3)高达128 B EEPROM:提供易于使用的界面,通过数据闪存支持4字节可擦除页面。
(4)所有内存(闪存、R A M和EEPROM)带ECC:纠错码(ECC)功能提供高可靠性。
(5)内置汽车稳压器,可在3.5V至40V之间运行:直接由汽车电池驱动,无需额外稳压器,可节省PCB板卡空间。解决汽车设计问题,如双电池、起动电压突变和负载突降情况。
(6)内置LIN物理层:无需外部LIN物理层器件,可节省空间和设计时间。满足汽车OEM规格,符合LIN一致性和EMC要求。
(7)EVDD和NGPIO:EVDD能够提供5 V/20mA片外供电,N-GPIO能够提供高达3x25mA片外驱动电流(对RGB-LED驱动有用)。
(8)受保护的12 V输入(HVI):支持汽车电池的电压电平输入(具有ADC功能)。
(9)片上RC振荡器,可调整至1.3%公差:无需外部晶体振荡器或共振器,生成精确的片上时钟生成,可进行LIN通信,也不需要进行软件密集的同步。
4 软件设计
换挡指示器软件设计包括以下几个模块:
4.1 系统时钟及定时器模块
系统时钟模块决定了MCU使用内部振荡器还是外部振荡器、锁相环倍频倍数以及总线频率是多少。定时器模块的设定,则用来控制程序调度。本换挡指示器使用的是MCU内部皮尔斯振荡器,震荡频率为1MHz,锁相环经过64倍频而后再8分频得到8MHz的总线频率。定时器模块设置为1ms定时器,来控制程序的执行。
4.2 脉宽调制模块
本换挡指示器使用了8路PWM,每路PWM均使用8比特计数器,初始电平为低电平,频率为244Hz,通过解析收到的LIN消息中的亮度值来控制PWM的占空比,进而控制发光二极管的亮度。
4.3 LIN总线接收模块
本换挡指示器作为LIN总线上的从节点,主要作用是接收并解析主节点发送的控制信息。通过使用MCU的SCI接口配合MCU集成的LIN物理层,来实现LIN通信。当换挡指示器的LIN总线上收到消息时,触发SCI接收中断,在中断处理函数中,需要判断接收到消息的同步间隔场、同步场和标识符场是否符合LIN2.1规范,同时,还需判断接收到的标识符,是否是换挡指示器和换挡手柄之间用来交互信息的标识符。如果是合法的标识符,则继续判断接收到的数据长度是否合法。如果数据长度合法,则取出LIN消息中的数据段进行解析。需要从数据段解析出点亮哪个档位的发光二极管以及这个发光二极管的亮度值。
4.4 电源电压监测模块
换挡手柄需要了解换挡指示器的电源电压是否工作在正常工作范围,如果超出正常范围,需要进行预警处理。本换挡指示器所使用的MCU包含电源电压传感器模块,这个传感器通过内部通道,与1路A/D转换器相连,将电源电压值传递给A/D转换器。在使用时,读取这路A/D转换器的值,来判断电源电压是否工作在正常工作范围。当换挡手柄,也就是LIN主节点,通过LIN消息向换挡指示器请求电源电压状态时,换挡指示器将电源电压是正常、过压还是欠压通过LIN消息,发送给LIN主节点,也就是换挡手柄。
4.5 低功耗模块
为了降低换挡指示器的功耗,根据LIN 2.1规范,当LIN总线上持续4s及以上没有交互LIN消息时,则LIN总线进入睡眠状态,进一步,换挡指示器进入低功耗模式,来减少对汽车电瓶电量的损耗。另外,需要将SCI设置为唤醒源,当LIN总线上出现LIN消息时,需要将换挡指示器从低功耗模式中唤醒,并恢复正常工作状态。
5 结语
LIN总线在成本方面,比CAN总线具有明显的优势。同时,LIN总线具有高灵活性和高可靠性等优点,当系统功能相对简单、网络中节点数目不是很多的情况下,LIN总线是优于CAN总线的选择。本文开发的换挡指示器已应用在一汽红旗H7轿车上,并投入市场,本设计运行稳定,达到了预期的功能。