基于手动测试硬件的BUS OFF自动化测试解决方案
2021-08-05李林泽黄祖朋谢佶宏
李林泽,孟 鑫,徐 嫚,黄祖朋,谢佶宏,邵 杰
(上汽通用五菱汽车股份有限公司,广西 柳州 545007)
引言
科学技术的发展带动了汽车电子技术的进步,其在汽车行业中得到了广泛应用,使汽车操作更为安全、稳定。CAN网络是汽车普遍使用的一种通信技术,在系统内汽车能够接收不同的数据信息,以及发送数据信息,CAN 网络推动了汽车计算机网络走向了更高的发展领域[1]。随着新能源汽车的崛起,越来越多的新功能、新科技搭载在新能源汽车上,从而导致上 CAN节点增多。各主机厂为了管理数量庞大的CAN节点,会根据ISO 11898及ISO 11595标准协议制定更符合整车项目的 CAN通讯策略来管控 CAN网络上的各节点。为了保证零部件厂商开发出的上 CAN节点软件及硬件能够满足主机厂的CAN通讯策略,需要对CAN节点进行零件级、系统级、整车级三项 CAN网络测试。为了更好地完成这项工作,本文结合工作实践经验,提出了一种新的测试方案,该方案具有搭载简单、操作简单、拓展性强、可自动化等优点,不仅解放人力和物力上的投入,大大减少测试周期,提高效率,降低成本,而且使测试更加规范化、标准化,减少由于人为的操作失误引起的错误结果[2]。
1 BUS OFF简介
CAN总线的协议规定,ECU在总线上发送报文,若出现发不出去的情况,ECU会立刻尝试重新发送,当连续255次无法发送,ECU自己进入总线关闭模式,即BUS OFF,该状态下,ECU是无法发送报文的。ECU在自己内部检测到BUS OFF后,从逻辑上退出了总线,暂时不影响其他节点通讯,由于ECU自身也不明白是什么原因导致BUS OFF,于是在内部记录“xx年xx月xx日xx时xx分xx秒,汽车电量、里程、xx是多少”,“我”BUSOFF了,即故障诊断。然后ECU开始计时,达到特定时间后,重启自身的CAN模块,这一套具体的恢复规则,即故障恢复机制。
2 测试方案系统搭建
以零件级测试为例,如表1所示,所述系统包括:并联在双绞线即 CAN总线上的一个以上的 CAN节点和型号为VH6501的CAN总线干扰仪、供电的电源及开关,通过USB线与CAN总线干扰仪相连的安装了CANoe软件的上位机。
表1 硬件单元表
若为整车级测试,电源、开关替换为整车KL30电源,CAN节点替换为整车节点,即CAN总线干扰仪直接接入整车CAN网段。
以零件级测试举例说明,连接方式如图1所示,CAN节点是连接在 CAN总线上的电子设备,如汽车上的车身控制器、防制动抱死控制器和电机控制器等。CAN节点的数量可以是一个,也可以是多个,并且可以同时对多个 CAN节点进行故障检测。因此,为了提高检测效率,一般会设置多个CAN节点。
图1 硬件连接图
电源是为 CAN节点工作供电的,一般采用稳压电源。开关用来控制电源供电的通断,串联在电源正极和 CAN节点之间。
CAN总线干扰仪连接在 CAN总线上,通过干扰 CAN节点发送的报文数据中的特定的位或者特定位的特定长度(最小6.25 ns),如某个位是“1”的,将其干扰为“0”,实现其干扰功能。通过验证 CAN节点发送错误数据所处的状态(主动错误状态、被动错误状态、总线关闭Bus Off状态)、采样点位置是否符合规范定义判断其受干扰情况。CAN总线干扰仪可采用德国Vector公司生产的VH6501。VH6501的前身CANstress是Vector早期针对传统CAN的总线干扰仪产品,只有干扰功能,不能同时监控总线上的CAN报文数据,如果采用CANstress进行Bus Off故障检测,还需要设置一个CAN报文监控设备。由于干扰设备与监控设备分离,使CANstress对一个CAN节点实施干扰后,需重新进行干扰配置才能对其它CAN节点实施干扰。VH6501是新一代总线干扰仪,在CANstress的功能上进行了升级和扩展。一方面,VH6501可用作干扰仪,在上位机上导入事先编写好的软件脚本、DBC数据库,然后打开软件脚本相关的panel工具,输入待测试 CAN节点,发送干扰信号对报文进行干扰;另一方面,VH6501可在上位机的CANoe软件控制下,监控总线上的CAN报文数据,生成记录文件(Trace文件)。
3 测试方案系统软件实现
如上所述,VH6501要实现干扰,需要导入事先编写好的软件脚本、DBC数据库,然后打开软件脚本相关的panel工具,其中软件脚本是本测试方案系统的主要软件部分。没有脚本就无法驱动 VH6501,它不像 CANstress有个专属的APP去操控,所以通过编写CANoe脚本,包括操作界面设计,即可实现操作的逻辑(干扰模式、干扰报文信息、运行、停止、保存等等),再导入数据库,结合调用干扰报文相关的函数并设置循环,即可实现自动化测试甚至自动化解析。具体操作流程为:连接VH6501硬件,在CANoe总线仿真界面创建VH6501的仿真节点,从仿真节点进入CANoe软件自带的脚本编辑器CAPL Browser,也可以导入编写好的脚本。脚本使用CALP语言编写,协议中有相关函数直接调用来配置干扰模式及作出干扰动作,然后还要使用CANoe内部的panl设计工具设计一款对应脚本软件的人机交互界面,使用环境变量将脚本代码和界面关联起来,这只是对ECU简单地进行干扰,由于用代码进行的驱动,可以继续丰富代码来实现自动化测试,即将运行、监控、停止、保存的逻辑代码写好,导入待测车型的整车DBC数据库文件,DBC里面定义好车型中的节点 ID及收发报文的信息,程序中设置每次测试干扰的报文就从 DBC中读取,以及测试完成后以节点名称、报文ID命名trce文件及自动保存,此过程代替了手动输入节点名称和报文ID的操作。过程如图2所示。
图2 干扰流程图
4 分析测试结果
在测试过程中在上位机上保存了trce文件,对其中的数据进行分析,判断是否满足标准要求。图3为BUS OFF恢复时序图,标准中对BUS OFF故障通讯行为及恢复机制有以下评价标准:(1)上电/复位后,连续BUS OFF标志被设置为0,第1次BUS OFF属于首次BUS OFF,所以要求T1小于 40 ms,越快越好。(2)如果t6大于 100 ms,则连续BUS OFF标志位被设置为0,那么第6次BUS OFF仍然属于首次BUS OFF。(3)如果t6小于100 ms,则连续BUS OFF标志位被设置为1,那么第6次BUS OFF仍然属于连续BUS OFF。(4)在极限情况下,当BUS OFF恢复后无正常报文发送时,即报文发送与下一次BUS OFF之间的时间不等于0 ms(t 6=0 ms),所以要求 T2、T3、T4、T5、T7、T8、T9、均在200±30 ms范围内。
图3 BUSOFF恢复时序图
用 CANoe软件回放功能,可分析数据是否满足标准定义。
5 结束语
CAN网络测试的自动化,不仅节省了人力物力,还很大程度地提升了测试效率。虽说自动化测试能带来的好处很多,但是由于成本的原因,实际上部分测试项的复杂度还很高,自动化程度并不是越高越好。比如,整车的CAN网络测试,问题点变化大,自动化测试设备很难分析得出预期的结果。本文描述的自动化测试系统,实际上就是基于纯手动测试的硬件实现的。导入自动化的脚本,成本上没有增加,却比使用网络自动化测试的板卡的设备性价比更高。本文提出的低成本自动化测试方案,为主机厂提高测试能力提供了的新方向。