基于XC2268N的独立网关设计与实现
2019-07-23汤自宁张玉稳白稳峰吕冬慧
汤自宁,张玉稳,白稳峰,吕冬慧
(1.中国汽车技术研究中心,天津 300300;2.天津中德应用技术大学,天津 300350)
1 引言
汽车中电子产品的成本比重逐渐提高,从20世纪70年代的4%增加到现在的30%左右,预计到2030年这一比重将上升为50%。日益增加的电子零部件对网关系统的实时性、可拓展性和不同通信协议间转换的能力提出了更高的要求。
汽车网络拓扑的结构决定了使用集成网关还是独立网关。集成网关集成度较高,综合成本较低,但通信数据量较小,且一旦出现问题,必须同时更换集成网关及其载体,增加了系统的维护成本。独立网关因具有通信数据量大、信息安全性高、整车UDS诊断和BT下载方便、产品开发和布置方式灵活的特点,而成为整车电子化的发展趋势。
基于整车信息化多种网络和多网段数据信息交流的需求,本文以XC2268N为核心处理器,TLE9262为系统基础芯片,并基于USIC(ASC)技术开发以XC2268N为主控制器的车载独立网关,以实现整车基于网关数据和信号交换的功能,达到路由信息在不同通信协议间进行转换的目的。经过对某车辆独立网关系统进行台架试验与实车验证,证明该系统具有实时性好、可靠性高、成本低的优点。
2 独立网关系统总体方案设计
独立网关系统由电源管理模块、通用I/O输入采集模块、CAN总线收发模块、LIN总线收发模块和XC2268N外围电路构成。其系统结构如图1所示。
该独立网关主要技术要求:额定电压12 V;工作电压9~16 V;工作温度-30~80℃;暗电流≤0.5 mA;CAN/LIN通信速率可配置。
该独立网关主要实现的功能:①CAN/CAN路由功能,包含报文及信号路由;②CAN/LIN路由功能,实现通信协议转换;③网络管理功能OSEK;④UDS诊断功能;⑤BT刷写功能;⑥报文映射:诊断CAN能够查看任何一路CAN报文;⑦电源管理功能;⑧EOL下线检测功能。
3 硬件电路设计与实现
3.1 电源系统设计
图1 独立网关系统构成
基于XC2268N的独立网关系统电源模块采用TLE9262集成芯片进行设计。TLE9262是一款单片式集成电路,采用PG-VQFN-48-31电源封装。该芯片面向各种CAN-LIN车身应用,可以充当微控制器的电源和CAN总线与LIN总线网络的接口[1]。TLE9262系统基础芯片 (SBC)除为微控制器提供5 V低压差稳压器LDO电源外,还带有用于数据传输的CAN、LIN收发器、4路高边输出、16 Bit SPI同步串行通信接口[2]、自带硬件看门狗输出和失效检测输出。该芯片有多种模式可以选择,且在休眠模式下可以将CAN/LIN收发器设置为具有远程唤醒监控功能。其资源能够很好满足低功耗、拓展性以及安全性的要求。TLE9262电源模块原理图如图2所示。
3.2 XC2268N外围电路设计
单片机最小系统直接影响着控制器运行的稳定性,对独立网关控制器的设计至关重要。本文根据XC2000系列芯片的特点,以系统可靠性和稳定性为出发点设计了独立网关控制器最小系统电路,如图3所示。
本文中选择使用XC2268N作为独立网关控制器的微处理器芯片。XC2268N是具有5级流水线和MPU的高性能CPU[3],在80 MHz的主频下,单周期执行指令仅仅12.5 ns的时间;带有可编程多项式的硬件CRC检查器可以对片上存储区域进行监控;高达16 Kbytes片上DSRAM和320 Kbytes的Flash存储区域。此外,片上集成6个符合CAN2.0B标准的CAN控制器和6个全部可以用于异步串行通信 (ASC)的串行接口[4]。其外设通信接口资源较多,处理性能较高,非常适应于独立网关系统的开发。
3.3 LIN通信电路设计
基于XC2268N的独立网关控制器具有4个LIN通道,通信速率高达20 kb/s,每个LIN通道既可作为主节点也可作为从节点,方便网络配置。收发器选型采用TLE7257SJ,方案采用标准LIN总线模块进行设计。为兼容多款处理器,该收发器RXD引脚默认漏极开路输出,本设计使用4.7 K上拉电阻R111连接到单片机VDD_5 V供电电源。电容负载C67用来改善EME和EMI特性。为实现自动故障防护功能,将主机端电阻R113和反向二极管VD3串联到INH引脚。ESD防护选用TVS管MMBZ27VCLT1G。LIN通信电路如图4所示。
3.4 CAN通信电路设计
CAN收发器在CAN控制器和物理传输线之间起着逻辑电平与差分电压信号转换的作用。本文采用TJA1042 CAN收发器,方案采用标准CAN总线模块进行设计。
CAN通信电路中预留有共模电感,可根据EMC试验情况选择共模电感是否焊接。ESD防护选用TVS管MMBZ27VCLT1G。为稳定总线电压,降低总线EME,将SPILT引脚连接到拆分式网络终端 (R27、R30),并通过C12电容将直流电泄放到GND。C11与C20电容值为22 pF,用于滤除总线上的高频干扰,并且具有一定的抗电磁辐射能力。CAN通信电路如图5所示。
4 软件设计与实现
4.1 软件整体架构设计
图2 系统基础芯片 (SBC)TLE9262电源模块
图3 独立网关外围电路设计
图4 独立LIN收发器通信电路
图5 CAN通信电路
网关软件架构总体上分为3层:应用逻辑层 (APP)、接口层 (RTE)和基础软件层 (BSW)。软件总体架构设计如图6所示。APP层是应用功能逻辑实现层,分模块并独立于硬件平台运行。RTE层是连接BSW层和APP层的接口层,其优点是在接口定义明确的条件下,底层基础软件和上层应用功能逻辑软件可以独立开发。BSW层与硬件关系紧密,该层细分为Function Service、Communication Service、ECU Driver、MCU Driver 4个层次。
4.2 TLE9262电源驱动软件设计
SBC上电初始化流程如图7所示。
图6 软件总体架构设计
图7 SBC上电初始化流程
网关系统技术要求在休眠时网关只能工作在低功耗模式 (Standby)。一般情况下,微控制器在Standby模式只能在RAM中运行一些简单的指令,如周期查询任务 (判断是否有本地IG唤醒请求)和外部中断触发任务 (判断是否有外部中断ESR触发)。因此,在网关进入Standby模式前,必须先设置看门狗处于STOP模式,否则SBC RO PIN脚的复位信号输出时会导致微控制器直接复位。
网关系统上电后,SBC进入INIT模式 (默认):VCC1低压差稳压电源处于开启状态,向微控制器提供5 V电源;VCC2和VCC3外部电源供电处于关闭状态;看门狗处在Long open window模式,溢出时间默认为200 ms。微控制器需要在200ms超时周期内完成SBC的初始化工作,否则SBC看门狗溢出后将导致整个系统复位。控制器上电以后,微处理器通过SPI接口发送指令使SBC进入Normal模式,使能SBC内部自带的CAN/LIN收发器,设置看门狗为Long open window模式,溢出时间为100 ms,至此完成SBC的全部初始化工作。
SBC看门狗只有在Normal模式下才可以被禁用。出于安全考虑,禁用看门狗时要严格遵循如图8所示的工作流程。在Normal模式下,首先设置WD_STM_EN_1为1,然后触发1次看门狗,再设置SetBit WD_STM_EN0为1;紧接着进入Stop模式。如果在进入Stop模式时被喂狗中断,或者被WD Trigger_1触发,错过设置Bit WD_STM_EN0,都会返回失败的结果。
图8 SBC看门狗禁用流程
4.3 CAN通信软件设计
基于XC2268N的独立网关CAN通信软件设计主要包括CAN/CAN路由功能与报文映射功能。
XC2268N包含6个CAN节点,256个Message Object。通过配置软件Dave可以将每个MO分配到任意CAN节点。CAN Message Object分配如图9所示。通过MO对报文的属性(ID、标准帧、扩展帧、报文长度、是否允许接收中断或者发送中断等)进行配置。通过设置MO掩码,对总线上不相关的报文进行初步过滤,以降低MCU负荷。此外,XC2268N自带的网关模式允许2个独立的CAN总线系统之间建立自动信息传递,无需微处理器介入[5]。
图9 CAN Message Object分配
CAN/CAN路由功能:该网关在处理CAN/CAN报文路由和信号路由时采用接收中断的方法。对于优先级比较高的ID,因实时性要求较高,软件为每个ID分配2个或者多个MO,并将其中1个MO设置为接收,其余MO设置为发送。对于优先级不高的ID,按照一定规则进行分类,并通过设置MO掩码使其能够共用1个MO接收对象。实践证明:在总线负载率较高的情况下,此方法比硬件路由 (自带网关功能)方式的实时性更高,灵活度更强。
报文映射功能:即在诊断CAN通道上可以监控任意CAN通道的报文,通过诊断服务可以开启或者关闭映射功能。综合诊断CAN负载率的特点,报文映射功能采用发送FIFO的方法,即在目标CAN网络中,将多个发送对象级联成1个公共发送缓存 (FIFO)。此方法既能满足报文映射功能又可以提高MO利用率。
4.4 LIN通信软件设计
LIN数据帧结构由间隔场、同步场、标识符场、数据场和校验场组成[6]。LIN[7]总线的通信原理为:主任务发送报文头,主任务或者从任务用响应来补充报文头从而形成完整的报文。LIN调度表负责调度网络报文发送顺序,调度表在网络系统设计阶段确定,LIN通信严格按照调度表执行。LIN通信帧格式如图10所示。
图10 LIN通信帧格式
本文根据LIN数据帧结构的特点,并基于USIC(ASC)编写了LIN总线数据收发驱动程序。该程序可实现数据接收、发送、数据超时处理、数据校验和位流错误检测等功能。其工作流程如图11所示。
5 功能测试与验证
为满足功能安全的需求,应用程序在SBC的监控下运行时,任何原因导致应用程序不能及时触发看门狗都会引起SBC看门狗复位。Normal模式下应用软件周期性触发看门狗SPI的通信波形如图12所示。
借助CANstress、CANoe和示波器等工具对总线物理层进行测试,测试结果表明该设计能够满足技术规范的要求。CAN总线物理层测试报告和LIN总线物理层测试报告分别如图13和图14所示。
通过CANoe Interractive Generator模拟干扰报文对目标网络报文在源网络总线负载率严重超标情况下的周期波动情况进行测试。测试结果表明,目标网络报文的当前周期曲线与源网络报文发送周期曲线波动完全吻合;经Trace统计,源网络实际发送报文条数与目标网络实际接收条数相等,且报文无乱序。网络负载率较高情况下总线丢帧测试结果如图15所示。
图11 LIN发送数据工作流程
图12 周期性触发看门狗SPI通信波形
图13 CAN总线物理层测试报告
图14 LIN总线物理层测试报告
图15 网络负载率较高情况下总线丢帧测试
6 台架与实车测试
台架和实车试验验证了车载独立网关的UDS诊断、网络管理[8]、报文路由、信号路由、BT刷写和休眠唤醒等功能。并利用vFlash对Bootloader刷写功能进行了极限测试,未出现报文乱序、报文超时和乱码等问题。测试结果表明,该系统满足技术协议中规定的各项性能要求。台架、实车测试验证如图16所示,实车测试报告如图17所示。
7 结论
本文基于XC2268N开发并设计了车载独立网关[9]控制系统,该网关实现了6路CAN之间的信号路由、CAN与LIN之间的信息路由,并兼有整车网络管理、UDS诊断、BT下载、休眠唤醒等功能。通过对某车辆独立网关系统的台架试验与实车验证,证明了该系统具有实时性好、可靠性高、成本低和可维护性好的优点,符合汽车电子化发展方向。
图16 台架测试与实车验证
图17 网关实车测试结果