通用某新能源车型总线数据获取策略研究
2020-03-14刘开元
刘开元,成 瀚,李 婕
(上汽通用汽车有限公司武汉分公司,湖北 武汉 430200)
随着科学技术的发展,现代汽车朝着电动化、智能化、网联化和共享化[1]的方向发展,由于大量新功能的出现以及旧技术的升级,汽车上配备了越来越多的ECU(Electronic Control Unit,电子控制模块),为了实现ECU之间的高效通信,1986年德国Bosch公司开发出了一种串行通信协议并命名为CAN(Controller Area Network)网络,成为了现代汽车应用最为广泛的总线通信协议[2]。随着ECU的增多,传统的CAN协议已经难以满足越来越多的总线传输的数据量需求,因此发展出来了CAN FD协议[3]以及车载以太网[4]。
随着车辆功能的不断更新升级以及网联化的发展趋势,基于车辆安全性考虑,汽车制造商在逐步更新汽车的总线架构,设置了车辆网关模块CGM(Communication Gateway Module)以及防火墙Firewall用以隔绝汽车总线数据与外界的联系以保证车辆的总线数据安全,而在此之前,无论是专业人员或者是普通消费者,持有相应设备即可直接从车辆的OBD(On Board Diagnostics)接口获取车辆的总线数据,车辆安全性不能得到保证。
而对于汽车制造商的工程技术人员来说,在车辆的开发测试阶段,整车的总线数据对于车辆的问题分析以及故障排查极为重要,因此通常情况下,车辆在工程开发测试阶段预留了工程接口,工程师可以通过该接口绕过Firewall模块直接获取到车辆的总线数据。但是在某些特殊情况下,由于整车架构定义等原因,会出现车辆在开发测试阶段没有预留工程接口的情况,这对工程技术人员分析问题与解决故障造成了很大障碍。
为了解决上述问题,工程技术人员通常采用解锁防火墙的办法来获取总线报文数据,但是该方法无法录取车辆在任何时候的所有数据,存在一定的局限性,为了彻底解决获取总线数据困难的问题,我们考虑采用“人造”工程接口的方法。
1 总线数据的需求
1)时间上的要求
车辆在工厂的开发测试阶段,有很多问题是在车辆的特殊工况下发生的,例如车辆的点火启动过程中、整车电子模块的在线刷新 (Flash)过程、静态测试 (SVT,Static Vehicle Test)过程以及动态测试 (DVT,Dynamic Vehicle Test)过程等,因此,需要车辆在任何时间、工况下的总线数据以支持问题的分析。
2)范围上的要求
车辆根据前期电子架构定义有多路总线,对于问题的分析和解决,要求所获取的总线数据足够充分,针对不同车型的总线架构以及不同的问题,需要具体分析。
2 解锁Firewall获取总线数据方法
图1所示为通用某新能源车型的总线拓扑图,从图中可知,该车型总线分为MS CAN和HS CAN两部分,MS CAN包括A CAN、B CAN等,HS CAN包括C CAN、D CAN等 (A,B,C,D均为化名)。MS CAN与HS CAN分别经过Firewall1与Firewall2连接到车辆的OBD接口,其中Firewall1集成于车身控制模块 (BCM,Body Control Module)中。
图1 通用某新能源车型总线拓扑图
基于安全性考虑,由于防火墙的拦截,用户无法直接从OBD口获取车辆的总线数据,但是可以通过使用诊断指令解锁防火墙,以获取防火墙白表 (White List)定义的合法路由数据。以本车型MS CAN总线使用的AUTOSAR总线协议为例,图2展示了解锁Firewall1模块以获取MS CAN总线报文的方法,HS CAN总线报文的获取方法同理。
图2 解锁Firewall1获取MS CAN总线报文的方法
虽然解锁车辆防火墙可以获取总线数据,但是该方法存在诸多局限性。
1)仅能获取防火墙白表上包含的合法路由数据,对于白表未包含的总线数据,即使解锁了防火墙依然无法看到,例如High Voltage Battery Maximum Temperature报文。因此该方法获取的总线数据不够全面,不满足上述总线数据范围上的要求。
2)不支持部分诊断服务,例如23服务:按地址读取内存Read Memory By Address。
3)根据PATAC UDS刷写规范要求,解锁防火墙使用的3E、10、27等诊断指令会对车辆在Flash、SVT、DVT等过程造成干扰,因此无法录取车辆在这些特殊工况下的总线数据,不满足上述总线数据时间上的要求。
4)解锁防火墙需要一定时间,因此无法录取车辆在启动瞬间的总线数据,不满足上述总线数据时间上的要求。
综上所述,采用解锁防火墙的方法来获取总线数据不是一个理想的策略。
3 使用跳线人造工程接口方法
由于解锁防火墙获取总线数据方法存在诸多弊端,而通过工程接口获取车辆的总线数据是较为常见和理想的解决方案,因此,针对该型车辆在开发测试阶段没有预留工程接口的情形,考虑使用跳线方法人造工程接口。
1)跳线原理
使用跳线的目的在于不破坏原线束连接的情况下创造出一个新的接口,新接口根据工程需求,可以复制部分或全部原线束上的信号,跳线原理如图3所示。
图3 跳线原理示意
2)跳线的安装
对于该车型,开发测试阶段所需要的总线数据为HS CAN和MS CAN,其中HS CAN包括C CAN与D CAN,对应跳线接口DLC1;MS CAN包括A CAN与B CAN,对应跳线接口DLC2,如图4所示。
图4 跳线安装操作指导
综合考虑实车线束布置与安装位置,以易于拆装为出发点,决定A CAN&B CAN的跳线安装位置为BCM模块接口处,C CAN&D CAN的跳线安装位置为驾驶位门槛板下的车身主线束接插件处,如图4所示。
3)跳线安装完成确认
跳线需要在保证原车线束正常连接的前提下提供一个新的接口,因此首先要检查跳线对原车状态是否有影响,除了在安装之前检查跳线每个端口PIN脚的通断以外,还要在跳线安装完成之后检查跳线与原车线束接插件的连接情况,但由于直接检查比较困难,可以通过车辆工作状态来间接判断跳线的安装是否正确,如果跳线与车辆线束接插件接触不良,会导致车辆仪表板警报灯异常点亮,某些模块无法正常工作,甚至车辆无法启动。
在确认跳线未影响车辆原线束连接后,需要确认跳线创造的新接口是否成功转接出了车辆A CAN&B CAN和C CAN&D CAN的总线报文数据,确认方法是通过设备读取新接口所导出的总线报文,检查报文的完整性;进一步地,通过新接口对车辆模块运行诊断服务,如果诊断服务能够正常运行,则认为新接口导出的总线状态正常。
4 总线数据实时监测与存储策略
在跳线能够导出所需车辆总线数据的情况下,工程人员获取总线数据的策略主要分为两种:第一种是使用电脑与汽车网络接口硬件从跳线接口获取车辆的实时总线数据,第二种是使用挂载在跳线接口上的黑匣子 (RMU,Remote Monitor Unit)记录存储车辆全时间、全过程的总线数据。通过这两种方法的结合,工程人员能够灵活而轻易地获取所需的车辆总线数据从而有助于问题的分析与解决。总线数据实时监测与存储策略如图5所示。
图5 总线数据实时监测与存储策略
5 总结
本文主要探讨了通用某新能源车型在测试开发阶段的总线数据录取策略,针对车辆在测试开发阶段没有预留工程接口,工程人员无法顺利获取车辆总线数据的问题,分析研究了几种录取总线数据的方法及其优缺点,结合车辆在测试开发阶段对总线数据的需求,提出了使用跳线人造工程接口的方法获取所需的总线数据,并且进一步地提出了两种总线数据的实时监测与存储策略,解决了车辆在测试开发阶段总线数据获取困难的问题,对相关从业人员具有参考和借鉴意义。
(编辑 章 子)