UTP系统通过CAN协议对汽车ECU的自动化测试介绍
宏控UTP协同自动化测试系统(简称UTP测试系统)是一款通用的自动化测试系统,支持对总线通信(如串口、CAN、以太网等)、信号测试(AD、DA、IO等)、无线通信(蓝牙、WiFi、4G/5G)、显示识别(设备屏幕、按钮、LED等)、设备操控、软件功能等各方面进行自动化测试,能够进行各种复杂时序的自动化测试。
接下来,我将通过一个具体的发动机控制单元(ECU)实例来详细说明我们如何使用UTP通过CAN协议对伺服电机进行自动化测试的。
在汽车发动机控制系统中,发动机控制单元(ECU)通过CAN协议与主控制器实时交互:当需要启动或停止发动机时,主控制器发送 ID 0x0C0 的CAN数据帧(例如数据字节1为 0x01 表示启动,0x00 表示停止),ECU收到指令后通过 ID 0x180 的响应帧反馈状态(如字节1为 0xAA 表示运行中,0x55 表示已停止);在调节转速时,主控制器通过 ID 0x0C0 发送目标转速值(实际转速值除以4后编码,如2000rpm转换为 0x01F4),ECU驱动喷油器执行控制,并通过 ID 0x180 回传实际转速(同样编码)和喷油量参数(如 0x64 表示10mg/stroke)。

汽车ECU涉及的数据帧ID和主要用途:

为验证汽车发动机控制单元(ECU)在CAN协议下的通信与控制性能,我们将通过发动机启停及转速调节开展系统性测试。具体流程如下:首先,主控制器通过ID 0x0C0的CAN数据帧发送启停指令,触发发动机执行动作;随后,ECU通过ID 0x180的响应帧实时反馈状态,以此验证指令执行结果。在转速控制环节,主控制器向同一ID 0x0C0写入目标转速值,ECU驱动喷油器执行转速调节,同时通过ID 0x180回传实际转速及喷油量参数,实现转速精度与喷油量的闭环验证。最后,发送停止指令并监控发动机停机过程,确保运行平稳无异常。接下来,将对这一测试过程展开详细分析。
主控制器通过ID 0x0C0发送CAN数据帧(数据字节1为0x01启动,0x00停止),触发发动机启停动作。ECU通过ID 0x180返回响应帧(如数据字节1为0xAA表示运行中,0x55表示已停止),实时验证发动机状态。

主控制器向ID 0x0C0写入目标转速值(如2000rpm编码为0x01F4),ECU驱动喷油器执行控制,并通过ID 0x180回传实际转速(同编码规则)及喷油量参数(如0x64表示10mg/stroke),确保转速与喷油量符合预期。

发送停止指令,监控ECU反馈状态及发动机停机平稳性。

- 手动构建报文并观察电机响应的方式效率极低,每个操作步骤都需人工介入,使得完整测试流程耗时漫长。
- 人工编码报文容易因对协议理解不足或操作疏忽而产生错误,影响测试准确性。
- 手动操作无法保证报文发送的精确时序,难以模拟真实工业环境下的实时通信需求。并且,复杂工况和异常场景的模拟存在局限性,可能遗漏潜在问题。
- 手动记录和分析数据不仅效率低下,还容易出错,难以从大量数据中快速提取关键信息,不利于故障排查与性能评估。
下图为UTP测试系统与伺服电机的连接方式图示。图中展示了如何将ECU的控制接口与UTP测试系统的输出端口相连。连接时需确保信号线的正确对接,以及电源线的正确连接,以保证测试的准确性和安全性。

作为整个测试系统的基础平台,为串口通信测试提供一个稳定的运行环境,用于模拟各种测试场景、生成测试数据以及对测试结果进行初步的处理和分析等。
专门用于测试CAN通信的测试机器人,它可以生成和发送CAN报文,接收并解析从CAN总线上传来的报文,通过与其他设备的通信来验证CAN通信的正确性、稳定性以及性能等指标。
实现USB接口与CAN总线接口之间的转换。它使得计算机(通过USB接口)能够方便地与CAN总线进行通信,将从USB接口接收到的数据转换为符合CAN协议规范的信号发送到CAN总线上,同时将从CAN总线上接收到的信号转换为USB数据格式传送给计算机。
被测设备,根据从CAN总线上接收到的控制指令(如转速控制、启停控制等)来进行相应的动作。
基于预设时序,通过CAN报文自动配置ECU运行参数(如发动机转速阈值0x0C0、故障码触发条件0x7DF),并通过高速CAN通道实现实时控制指令传输(如ID 0x100发送油门开度0x50表示50%,ID 0x200发送启停指令0x01启动)。
动态解析与验证被测设备响应,实时解析ECU反馈的CAN报文(如ID 0x180返回发动机转速0x1388表示5000rpm,ID 0x7E8反馈OBD-II故障码0x0131),自动提取关键字段(转速、温度、故障码)。
闭环判定测试结果,对接收的CAN报文进行协议合规性校验(如DLC长度、CRC校验位)及业务逻辑判定(故障码与预设条件匹配)。
UTP协同测试系统提供图形化的自动化用例编辑功能,支持设计出满足各种业务场景和时序要求的测试用例,通过测试用例调度各种不同的测试机器人执行测试,实现“多输入多输出”的协同自动化测试能力。
下图是一个自动化测试用例,实现了测试系统自动向汽车ECU发送命令:

下面是测试系统对汽车ECU回复的消息的检查,测试系统自动按时序接收并检查被测产品发出的CAN消息内容,自动判定是否成功或失败:

下图展示的是测试系统的总线数据监测界面,该界面具备对总线数据进行实时监控与深度解析的功能。在这个界面中,能够对总线协议里出现的各类消息开展细致解析,并进行全面记录。

UTP协同自动化测试系统可有效解决手动测试汽车ECU的CAN通信的问题。它能自动化构建和发送各类CAN报文,极大提升测试效率,节省大量时间。系统依据预设协议规则生成报文,避免人为编码错误,确保报文准确性。凭借高精度时序控制,可模拟真实工业环境下的实时通信,满足实时性测试需求。还能全面模拟复杂工况与异常场景,如CAN总线丢包、干扰等。同时,自动采集和分析数据,快速提取关键信息,助力高效故障排查与性能评估。