前言
传统的汽车ECU通过诊断刷写来实现软件更新,数据量较小,一般在几十KB到几十MB;随着汽车的新四化进程持续推进,汽车上的域控制器或中央计算器的架构已经演变为MPU/SOC+MCU的方案,而针对MPU/SOC软件升级的数据量往往是几百MB甚至几GB,使用DoIP加诊断服务(0x34、0x36)来传输升级包数据,过程比较繁琐,并且带宽利用率较低。通过DoIP发送36服务,需等待传输层的应答即TCP ACK,再等待DoIP的0x8002 文(简化版不使用0x8002),最后必须等待控制器的诊断肯定响应才能继续发送数据。因此,针对数据量较大的升级包,各厂商纷纷采用多种新的方法来实现域控制器软件升级。
上海北汇信息根据既有的经验,为大家介绍其中一种抛弃了传统方案,一种新型软件升级技术及测试方案,该方案基于“一种支持SOA的协议 + 传统IT的传输协议”组合实现。以下简称“SOA协议”和“IT协议”。
域控制器升级流程简介
图1 升级流程示意图
如上图所示,实现从节点域控升级,是由主节点来发起升级任务,此流程主要在车内进行。主节点首先通过“SOA协议”给从节点建立升级任务,再将升级包通过”IT协议”发送给从节点,同时通过”SOA协议”控制升级流程;相比使用诊断服务实现升级,此流程简洁高效,能快速实现升级软件的目的。
测试用例的构成
针对从节点的升级测试,主要分为以下几个部分:1.正向流程测试;2.状态跳转测试;3.故障码测试;4.场景测试
测试分类 测试内容
正向流程测试 验证DUT是否可以完成正向升级,重点测试DUT正常升级过程中的响应格式是否满足要求
状态跳转测试 验证DUT的状态跳转是否满足要求,遍历所有路径。
故障码测试 验证DUT在升级过程中,产生故障后是否响应正确的故障码
场景测试 验证DUT在不同场景下的升级,如传输数据过程中断电、升级过程中断电等
图2 部分测试用例
域控制器升级测试的主要环境
北汇主要使用Vector的CANoe+VN56xx来开发测试用例与执行测试,加上基本外设,如程控电源等,可以快速搭建好测试环境,示意图如下所示:
图3 测试环境示意图
在测试脚本中,使用CANoe仿真主节点,主要实现的是”SOA协议”与”IT协议”两个模块功能;1.仿真CANoe作为主节点,发送”SOA协议”请求给DUT,来控制升级流程;2.仿真CANoe作为”IT协议” Server,收到DUT的”IT协议”请求后,将升级包通过”IT协议”发送给DUT;
图4 测试脚本框图
域控制器升级测试实例
数据传输过程
CANoe仿真主节点给从节点建立升级任务后,从节点便发送”IT协议” 请求升级包路径,仿真主节点响应升级包路径,从节点则发送”IT协议” 获取升级包。仿真主节点使用”IT协议”发送升级包,在传输过程中可以使用SOA协议周期读取传输进度,等待传输完成后,仿真主节点发送安装请求,在安装过程中周期读取安装进度。以下是测试 告和测试数据的示例。
图5 建立任务与传输过程测试 告
图6 安装升级包测试 告
总结
1. 升级流程简洁高效
2. 传输升级包效率更高
北汇信息紧跟技术发展的脉搏,在此领域已经积累了测试规范开发、测试脚本开发、测试执行的经验,同时根据北汇在汽车电子丰富的测试经验,开发具有深度的用例覆盖不同场景,为客户的汽车电子产品软件升级质量保驾护航,加快车型研发进度!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!