朱东南
(1.江苏联合职业技术学院南京分院,南京 210019;2.南京高等职业技术学校,南京 210019)
汽车网关控制器作为不同网络间信息传递的枢纽,可以接收来自不同CAN(Controller Area Network)总线和LIN(Local Interconnect Network)总线的信号,能实现不同网络之间数据、信号直接路由功能,也可以完成将接收信号加工处理后再转发的任务[1]。网关控制器还具备一些应用功能,如能够实现多路模拟信号和多路数字信号的采集,并根据某些条件实现外部高端输出控制。
系统设计思想:本网关控制系统具有5路数字信号输入,5路模拟信号输入,5路高端驱动输出,3路高速CAN总线和2路LIN总线组成。其中CAN1为动力CAN总线,波特率为500Kbps,CAN2为车身CAN总线,波特率为250Kbps,CAN3为诊断CAN总线,波特率为500Kbps,LIN1的波特率为19200bps,LIN2的波特率为19200bps。
系统总体结构如图1所示,其主要有以下功能组成:
1)网络报文和信号路由;
2)采集硬线信号并转发到总线上;
3)软件在线刷新;
图1 系统总体结构
4)支持诊断功能及数据管理;
5)高端输出控制。
本系统采用汽车级飞思卡尔32位MPC5604微控制器作为中央处理芯片,MPC56XX系列微控制器采用了先进的交叉连接模块,该模块简化了原来的系统架构,片上存储器以及输入输出外设资源,而其有高速的e200z0处理核、eDMA模块、外部总线控制器、丰富的外围模块(FLEXCAN、SCI、DSPI、I2C、ADC等),使其功能和性能更加强大,由于其拥有6路CAN控制模块,所以在汽车网络总线设计方面应用的很广泛[2,3]。本系统主要元器件选型如表1所示。
系统电源电路如图2所示,其中KL30为电瓶正极12V的电压输入,KL31为电瓶的负极GND。电源芯片采用为英飞凌TLE4278G芯片,输出VDD为5V电压,该芯片自带外部看门狗,需要MCU定时喂狗操作,否则芯片输出复位信号,使MCU进行复位操作[4]。
CAN总线收发器电路设计如图3所示,采用的芯片为NXP的TJA1042T,该芯片为高速CAN收发器芯片,最高可支持1Mbit/s速度,且具有更强的EMC(electromagnetic compatibility)和ESD(electrostatic discharge)性能[5]。
LIN总线收发器电路如图4所示,采用的芯片为NXP的TJA1020T,最高可支持20Kbit/s速度,且具有很低的EME(electromagnetic emission)性能指标和很强的EMI(electromagnetic interference)性能以及很强的抗干扰能力[6]。
高端驱动控制电路如图5所示,本系统采用的芯片为英飞凌的TLE7234,该芯片具有4路高端驱动控制、2路低端驱动控制、还有2路可配置的高低端控制,其与MCU间通讯方式为SPI通讯,且通过SPI通讯可读出每路的故障诊断信息,本系统设计为5路高端驱动输出。
OSEK(open systems and the corresponding interfaces for automotive electronics)是一款被广泛用于汽车电子领域的操作系统,其稳定高效的特点,给汽车电子领域的软件开发设计工作带来了很大便捷。其又是一种汽车电子类开放系统,有对应的接口标准。该系统由四个部分组成,包括:实时的操作系统(OSEK OS)、通信子系统(OSEK COM)、网络管理系统(OSEK NM)和OSEK实现语言(OIL)。
图2 系统电源电路
图3 CAN总线收发器电路
OSEK规范为实现其制定的初衷并满足汽车控制领域对系统安全性和节省有限资源的特殊要求,制定了系统而全面的操作系统规范。其特点主要有以下七个方面。
由于越来越多的微处理器被应用到汽车控制领域,如汽车刹车的防抱死系统、动力设备的安全控制等。这些系统直接关系着人的生命安全,即出现丝毫的差错也会导致危及生命安全的严重后果,因此要求操作系统具有严格的实时性。OSEK操作系统通过静态的系统配置、占先式调度策略、提供警报机制和优化系统运行机制以提高中断响应速度等手段来满足用户的实时需求。
OSEK规范[7]详细规定了操作系统运行的各种机制,并在这些机制基础上制定了标准的应用程序编程接口,使那些独立编写的代码能够很容易地整合起来,增强了应用程序的可移植性。
为了适用于广泛的目标处理器,支持运行在广泛硬件基础上的实时程序,OSEK操作系统具备高度模块化和可灵活配置的特性[8,9]。
本网关软件系统是基于OSEK标准的实时操作系统,其实时性、可移植性、高效性极大地提高了项目开发的效率。网关软件系统包含了满足OSEK标准的操作系统、CAN/LIN通讯模块、网关的休眠唤醒模块、应用功能模块、诊断和刷新模块。
网关总体软件架构如图6所示,本系统采用Mentor Graphics公司的Volcano通讯基础软件,实现CAN/LIN总线通讯及诊断刷新功能[10]。网关OS系统周期性的调用5ms、10ms、50ms的任务,实现整个软件系统功能。软件底层的驱动模块包含CAN/LIN的COM模块、DSPI通讯模块、EEPROM的驱动模块(EED)、高低端驱动模块(HLSD)、模拟信号采集模块(ADC)、数字信号采集模块(DIO)。为了应用层能够方便的调用底层驱动模块,软件设计时,根据每个驱动模块,相应的设计了接口层模块,如EED模块的接口层模块为EEH模块、ADC模块的接口层模块为ADH模块。
图6 总体软件架构
关于网关休眠唤醒策略状态转换如图7所示,网关根据硬线唤醒信号和CAN总线网络唤醒信号来决定网关的休眠和唤醒。根据网关的休眠唤醒状态,进而管理CAN、LIN总线的通信状态和各路高端驱动的控制状态。
图7 网关休眠唤醒状态转换图
随着电子控制单元在汽车中的应用越来越来广泛,在各汽车电子控制系统中,都需要带有故障自诊断功能,即汽车故障自诊断系统,该功能包括故障检测、故障码记录、强制输入输出功能、软件刷新功能等[11,12]。本网关系统本身具有自诊断功能,外部Tester可以通过CAN3总线对网关进行故障诊断及软件刷新。同时通过CAN1/CAN2总线接入网关系统的其他ECU单元,也可以通过网关实现故障诊断及软件刷新功能,诊断测试框架如图8所示。本网关控制系统采用的是基于CAN总线的统一诊断服务(UDS),网关诊断功能的实现符合ISO 15765、ISO14229等国际诊断标准。
图8 诊断测试框架
网关通讯测试数据如图9所示,通过软件集成,编译、调试,最后在硬件平台上测试,达到了初始设计目的,能够实现不同总线上信号路由功能、采集硬线信号并转成网络信号功能、故障诊断功能、在线刷新功能等。并通过专业的总线测试工具,测试了CAN/LIN通讯,网关接收CAN1上EM(发动机管理单元)节点信号,再将其路由到CAN2网络上,CAN2上对应的信号为EnSpdHSC3(值为1378)。本系统可以成功的实现信号报文的路由转发功能。
图9 通讯测试数据
目前国内自主品牌汽车厂商在引进国外成熟平台后进行二次设计开发时,需要融入自身的设计理念,如增加一些功能(ECU网络节点),此时就需要网关作为网络桥梁实现新增节点与原网络间的信号路由功能。本网关系统硬件设计采用主流的汽车级芯片和应用成熟的电路;软件设计是基于OSEK的软件架构,可以很好的解决新增网络节点与原网络间的网络通讯问题,缩短整车开发时间,避免所有网络重新规划设计,降低开发成本。通过实车的功能验证,本系统已经具有商业化的价值。
[1]唐凯.基于MPC5668G多功能车载网关的设计与实现[D].杭州:浙江大学,2013.
[2]司建玉,吴光强.基于32位微控制器MPC5604的双离合器自动变速器控制系统[J].汽车技术,2012,438(3):13-17.
[3]Freescale Semiconductor.MPC5604B/C Microcontroller Reference Manual[EB/OL].(2012-05-15).http://www.freescale.com.
[4]邓英英.基于LIN总线的汽车车灯控制系统研究[D].北京:中国农业大学,2006.
[5]丁茜.深海传感器搭载平台CAN总线系统的设计与实现[D].青岛:中国海洋大学,2013.
[6]陈舒.电动汽车LIN总线车身网络高层协议研究[D].杭州:浙江大学,2005.
[7]OSEK/VDX Group.OSEK/VDX operating system[EB/OL].(2004-07-05).http://www.osek-vdx.org.
[8]张宝民,孙晓民.基于OSEK规范的嵌入式实时操作系统研究[J].计算机应用研究,2004,21(04):32-35.
[9]李银国,叶家盛,蒋建春.OSEK/VDX OS服务调用的规范一致性检测方法[J].重庆邮电大学学报(自然科学版),2010,22(06):786-790.
[10]王亮.基于CAN/LIN总线的汽车车身控制模块设计[D].长沙:湖南大学,2011.
[11]吴广.汽车故障诊断系统研究[D].长春:吉林大学,2009.
[12]陈艳.汽车故障系统中实时显示及ECU模块的关键技术研究[D].成都:成都理工大学,2013.