李治民 林杰 张东波 李俊儒 刘臣园
(中国第一汽车股份有限公司 智能网联开发院,长春 130013)
主题词:车身域控制器 硬件在环 自动化测试
随着汽车芯片计算能力的提升,域控制器逐步成为汽车电子行业的研究热点[1]。相比于分布式架构,即不同的电子电气功能放在不同的电控系统上,域控制器更加专注于系统方案和软件集成控制,有效克服了分布式架构中嵌入式软件和底层驱动交互不一致和冗余的缺点[2-4]。车身域控制器集成了车身电子的所有基础驱动,整合了钥匙、灯、车门、车窗等电控系统的功能,规避了控制器之间通讯不一致带来的风险。
硬件在环(HIL)测试技术,又叫半实物仿真测试技术,可完成设计初期时域控制器的错误和缺陷等验证工作[5]。HIL测试设备是一个闭环测试系统,通过仿真模型和实时硬件系统仿真控制器所需要的输入输出信号[6-7]。硬件在环测试技术无需真实车辆,允许开发和测试交叉进行,有效地减少了车型开发周期,同时能够实现自动化测试,节约了人力和时间成本[8]。
本车身域控制器通用测试系统基于硬件在环技术开发,控制器的输入、输出信号均采用虚拟仿真方案,可完成各种复杂极端工况下控制器的功能测试和故障注入测试。系统在软件和硬件上配置了丰富的电气接口,实现了不同车型车身域控制器的快速切换,极大缩短了设备改造周期。同时,系统设计了自动化测试管理系统,可达到24小时无人值守连续运行,自动生成测试报告和日志,节省人力和时间成本。
测试系统总体分为上位机系统、HIL仿真系统和车身域控制器测试装置等三个部分。将车身域控制器接入该测试系统后,测试人员通过操作上位机系统控制HIL仿真系统模拟车身域控制器所需要的开关、传感器、总线等输入信号;同时,HIL仿真系统可实时监测车身域控制器的输出信号以及测试装置中仿真负载的运行状态,如图1所示。
图1 通用测试系统原理
上位机系统包括4个子系统,分别为虚拟仪表系统、故障注入系统、自动化测试系统和测试管理系统,见图2。
图2 自动化测试流程
3.1.1 虚拟仪表系统
虚拟仪表系统是利用NI公司Veristand软件设计的上位机界面,是车身域控制器功能测试的可视化操作界面。通过操作虚拟仪表界面上的按键,可控制HIL仿真系统模拟控制器所需的各种开关、传感器等输入信号,同时实时显示HIL仿真系统采集的车身域控制器的输出信号和测试装置中仿真负载的状态信号。
3.1.2 故障注入系统
故障注入系统是车身域控制器故障注入测试的可视化操作界面,通过串口协议和HIL仿真系统交互,用于制造控制器输入、输出信号短路、过流、开路等电气故障。配合自动化测试系统,可实现故障注入功能的自动化测试。
3.1.3 自动化测试系统
自动化测试系统用于实现车身域控制器的逻辑功能和故障注入的自动化测试,主要包括:序列库、动作库、用例库和评价库。
为了提高自动化测试序列的通用性,自动化测试序列和HIL仿真系统中的仿真模型采用映射文件连接,降低了耦合程度。
动作库采用图形化语言设计,用于编写自动化序列中的功能模块;评价库内嵌Python语言,用于编写复杂逻辑功能的检测脚本;用例库用于连接动作模块和评价模块,搭建各种用户场景测试用例;序列库用于创建和执行自动化测试序列,负责传递参数。
3.1.4 测试管理系统
测试管理系统用于管理整个测试流程,包括:计划管理、缺陷管理、报告管理和序列管理。
用例管理用于传递测试用例参数,实现测试用例最大化复用;计划管理用于管理不同车型的测试任务,传递自动化序列参数;缺陷管理用于管理不同车型的测试问题版本,记录试验问题的整个处理过程;报告管理用于管理不同车型测试任务的测试报告,避免测试人员重复工作。
HIL仿真系统包括实时处理器、I/O板卡、CAN通讯板卡、LIN通讯板卡、故障注入板卡和信号调理板卡,见图3。
图3 HIL仿真系统设计方案
实时处理器中加载MATLAB编写的仿真模型,用于实时响应上位机的操作指令以及控制I/O板卡。I/O板卡用于模拟和采集被测控制器的各种输入和输出信号,包括数字I/O板卡、模拟I/O板卡等。CAN通讯板卡用于模拟和接收CAN网络通讯信号。LIN通讯板卡用于模拟和接收LIN网络通讯信号。信号调理板卡用于将I/O板卡和被测控制器之间的电平转换,同时也起到保护和隔离作用。故障注入板卡用于仿真控制器输入、输出信号的过流、短路、开路等电气故障。其中,仿真模型包括:车辆模型,用于仿真车辆中传感器、执行器等复杂时序逻辑信号;I/O模型,用于仿真车辆中开关、控制等简单逻辑信号;虚拟控制器模型,用于仿真和控制器交互的其他控制器。
为了满足不同车身域控制器的快速切换和复杂外部接口的测试需求,测试装置采用虚拟仿真方案设计,集成了丰富的电气接口,见图4。
图4 测试装置设计方案
仿真输入装置用于接收HIL仿真系统发送的控制信号,集成了控制器高有效开关、低有效开关、数字信号传感器、模拟信号传感器、电阻类开关、占空比信号传感器、网络信号等常用输入信号。仿真负载装置用于模拟控制器常用的电器负载,包括灯泡负载、电机负载、LED负载、锁负载、数字输出、占空比输出、模拟输出、继电器负载等。实际操作时,控制器只需匹配相应的电气接口,即可实现不同型号控制器的快速切换。
实际工作时,测试人员需要根据控制器的逻辑功能和故障注入的测试需求完成测试用例的开发。然后,将测试用例录入测试管理系统,并且完成测试用例和测试序列的参数赋值。在自动化测试系统中,通过调用动作库和评价库中的功能模块,完成自动化测试序列中前提条件、测试步骤和预期结果等内容。通过操作上位机系统启动自动化测试序列,序列控制HIL仿真系统模拟控制器的输入信号,并且实时采集控制器和仿真负载的状态。序列自动调用评价库中的检测函数,确认测试结果是否符合预期结果。测试管理系统可自由添加序列,完成测试后自动生成测试报告。
以远程开启车窗功能为例,工作流程如下:在上位机系统中完成序列的开发,然后启动自动化序列。序列调用HIL仿真系统中的虚拟T-BOX控制器,模拟远程开启命令至车身域控制器。控制器成功接收命令后,驱动仿真电机负载,模拟开窗动作。上位机系统实时采集控制器输出信号和仿真负载的状态信号,用于判断测试结果与预期结果是否一致。最后,自动生成测试报告,如图5所示。与此同时,在序列中可以模拟T-BOX命令信号错误、仿真电机负载过流或短路等特殊工况,以此增加测试覆盖度。
图5 测试系统示意图
本文介绍的车身域控制器通用测试系统已在实际项目中应用。通过将测试系统的硬件接口平台化和测试用例松耦合等方法,有效提高了整个测试系统的通用性。相比于分布式车身控制器测试设备,本系统设计了丰富的电气接口和高效的自动化测试系统,可实现复杂场景和极限工况下车身域控制器的逻辑功能测试和故障注入测试,提高了测试覆盖度,缩短了验证周期。