《汽车电子控制单元bootloader刷新功能测试方法》由会员分享,可在线阅读,更多相关《汽车电子控制单元bootloader刷新功能测试方法(6页珍藏版)》请在金锄头文库上搜索。
1、汽车电子控制单元 Bootloader 刷新功能测试方法 李英 孙运玺 刘德利 谷原野 孙云 一汽轿车股份有限公司 摘 要: 电子控制单元可以通过 Bootloader 刷新功能快速实现应用软件、标定数据的更新, 在整车电子开发、生产、售后等环节发挥重要作用。因此需要对电子控制单元 Bootloader 刷新功能进行系统完整的功能验证, 以确保其满足设计要求。本文重点介绍电子控制单元 Bootloader 刷新测试流程及方法。关键词: Bootloader; 刷新; 测试方法; 作者简介:李英 (1978-) , 男, 辽宁沈阳人, 副高级工程师, 博士, 主要工作方向为汽车电气架构、电气系统
2、、主动安全、智能网联系统开发与验证;作者简介:孙运玺 (1984-) , 男, 辽宁鞍山人, 工程师, 硕士, 主要从事汽车电器单系统功能测试、电气功能测试硬件在环测试系统的设计与应用、整车电气功能测试等工作;作者简介:刘德利 (1987-) , 男, 吉林长岭人, 工程师, 硕士, 主要从事汽车电器单系统功能测试、电气功能测试硬件在环测试系统的设计与应用、整车电气功能测试等工作;作者简介:谷原野 (1984-) , 男, 吉林乾安人, 工程师, 硕, 主要从事汽车电器单系统功能测试、电气功能测试硬件在环测试系统的设计与应用、整车电气功能测试等工作;作者简介:孙云 (1989-) , 男, 内
3、蒙古呼伦贝尔人, 主要从事整车测试环境搭建、HIL 自动化测试环境搭建、整车电气功能测试等工作。收稿日期:2017-01-12ECU Bootloader Refresh Function Test MethodLY Ying SUN Yun-xi LIU De-li GU Yuan-ye SUN Yun FAW Car Co., Ltd.; Abstract: We can quickly update the ECU application software and calibration data through Bootloader refresh function, which pl
4、ays an important role in the vehicle electronic development, production and after-sales services. Therefore we need a complete functional test to the ECU Bootloader refresh function, in order to ensure that it will meet the design requirements. This article focuses on ECU Bootloader refresh function
5、 test process and method.Keyword: Bootloader; refresh; function test method; Received: 2017-01-12随着汽车电子技术的迅速发展, 电子控制单元在整车中得到越来越多的应用, 功能也变得越来越复杂, 其传统的程序更新方法已经不能满足开发要求。基于CAN 通信的电子控制单元 Bootloader 刷新功能由于操作简便、刷新速度快等优点, 得到了快速发展和大量应用。1 ISO 14229 与 ISO 15765 诊断通信标准目前, 电子控制单元 Bootloader 刷新功能普遍基于 ISO14229 及 I
6、SO15765 等国际汽车诊断通信标准进行开发设计。ISO14229, RoadvehiclesUnifieddiagnosticservices (UDS) -Part1:Specificationandrequirements, 称为道路汽车统一诊断服务第 1 部分:规范与需求, 主要对诊断服务进行了详细描述, 这其中包括用于刷新的诊断服务1。ISO14229 定义的可用于 Bootloader 刷新功能的诊断服务, 如表 1 所示。控制单元 Bootloader 刷新通信遵循 ISO15765 协议, 其中网络层的通信遵循ISO15765-2, Roadvehicles-Diagnost
7、icsonControllerAreaNetworks (CAN) Part2:Networklayerservices, 道路汽车CAN 诊断第 2部分:网络层服务。应用层的通信遵循 ISO15765-3, Roadvehicles-DiagnosticsonControllerAreaNetworks (CAN) -Part3:Implementationofunifieddiagnosticservices (UDSonCAN) , 道路汽车-CAN 诊断-第 3 部分:统一诊断服务的应用。ISO15765-2中定义了诊断数据通信传输方式2。ISO15765-3中定义了电子控制单元刷新流
8、程及相关的诊断服务3。表 1 刷新功能诊断服务表 下载原表 图 1 程序刷新流程图 下载原图2 电子控制单元 Bootloader 刷新流程各个主机厂会在 ISO15765 定义的刷新流程基础上, 结合具体实际情况, 定义各自的刷新流程。电子控制单元 Bootloader 刷新流程主要包括 3 个部分:预刷新、刷新程序、刷新后处理。电子控制单元 Bootloader 刷新流程如图 1 所示, 刷新流程中每一步骤均由相应的诊断服务实现。1) 预刷新主要步骤包括: (1) 通过 10 诊断服务, 进入扩展会话模式。 (2) 通过 85 诊断服务关闭记录诊断故障码功能:在扩展会话模式下, 通过功能寻
9、址, 向所有控制单元发送关闭记录诊断故障码功能指令, 使得所有控制单元在刷新期间不记录诊断故障码。 (3) 通过 28 诊断服务, 屏蔽非诊断相关总线通信:在扩展会话模式下, 通过功能寻址向所有控制单元发送屏蔽非诊断相关总线通信功能指令, 使得所有控制单元在刷新期间不进行非诊断相关的总线通信, 以降低负载率, 保证控制单元 Bootloader 刷新的正常进行。预刷新步骤如表 2 所示。表 2 预刷新步骤 下载原表 2) 刷新程序是整个刷新流程的主体, 将原有的应用程序或标定数据擦除, 写入新的应用程序或标定数据。常见刷新步骤分为以下几步: (1) 通过 10 诊断服务进入编程会话模式。 (2
10、) 通过 27 诊断服务完成安全访问:刷新之前需要验证刷新工具的合法性。电子控制单元向上位机发送 Seed, 上位机根据约定算法计算出 Key, 并发送给电子控制单元进行判断, 如果正确则允许刷新, 如果错误则拒绝刷新。 (3) 通过 2E 诊断服务写入识别信息:包括维修站代码或诊断仪序列号, 编程日期。 (4) 刷新驱动程序:驱动程序的主要作用为擦除原有程序, 引导安装新程序。通常驱动程序并不保存在电子控制单元内部, 需要通过此步骤下载到 RAM 存储器中。刷新过程需要时进行调用, 当刷新结束, 电子控制单元返回正常模式时, 此驱动程序就从 RAM中清除掉。有的电子控制单元, 其驱动程序是固
11、化在电子控制单元的 Flash存储器里面的, 因此就可以跳过此步骤4。在刷新过程中, 通过 34/36/37 诊断服务进行循环操作, 直至所有驱动程序刷新完成。完成后, 通过 31 诊断服务进行 CRC 校验, 以保证所有字节正确传输。 (5) 通过 31 诊断服务调用驱动程序, 擦除原程序。 (6) 刷新新程序:刷新新程序的过程与刷新驱动程序的过程完全相同。 (7) 通过 2E 诊断服务写入配置信息, 包括 VIN 码、系统配置信息、车辆模式。刷新程序步骤如表 3 所示。表 3 刷新程序步骤 下载原表 3) 刷新后处理在刷新程序完成后, 需对电子控制单元进行复位操作, 使新程序被激活生效,
12、同时擦除驱动程序。由于预刷新阶段对车辆所有电子控制单元进行了关闭诊断故障码记录功能, 并屏蔽了非诊断类的通信报文, 所以在刷新后处理阶段, 需先对车辆所有电子控制单元开启非诊断类报文的通信, 再重新开启诊断故障码的记录功能, 恢复车辆原来的正常状态。在进行刷新的电子控制单元进行复位后, 会话模式将自动切换到默认会话模式, 导致被刷新的电子控制单元在预编程阶段关闭的诊断故障码记录功能重新被开启, 而此时其他电子控制单元仍然保持在扩展会话模式, 在未开启非诊断类通信报文的这段时间里, 可能会导致被刷新的电子控制单元记录其他节点丢失的诊断故障码, 所以在所有控制单元开启非诊断类通信和诊断故障码记录后
13、, 需对进行刷新的电子控制单元进行清除诊断故障码操作。编程后处理阶段操作步骤见表 4。表 4 刷新后处理步骤 下载原表 3 Bootloader 刷新测试工具Bootloader 刷新测试硬件工具采用德国 Softing 公司 DTS (DiagnosticToolSet) 系列的汽车诊断测试工具集。该工具集支持DiagonCAN (ISO-15765) 和 UDS (ISO-14229) 等诊断协议。完全支持 ODX数据库。可满足电子控制单元诊断开发过程中开发、模拟、测试等工作需求。在此测试中, 硬件工具为 EDICusb, 是诊断数据库编译测试硬件, 使用 USB 接口连接测试电脑。软件主
14、要应用 DTS-Monaco, 是诊断分析及数据库验证工具。DTS-Monaco具有 2 种操作模式:配置模式和执行模式。在配置模式下, 用户可根据测试需要通过设计人机接口控制来编辑诊断测试界面。在执行模式下, 用户打开已设计好的诊断测试界面, 连接 ECU进行诊断测试。测试的设备连接图如图 2 所示。其中, 测试电脑通过 EDICusb 连接至车辆诊断接口, 通过车辆诊断接口中的 CAN 总线对电子控制单元进行刷新测试。电源的输出电压要求为12V。图 2 测试设备连接图 下载原图刷新过程中, 需要加载刷新程序文件, 常见的文件格式包括以下 3 种, 分别为Intelhex、MotorolaS
15、19 和 Bin。4 Bootloader 刷新测试内容电子控制单元 Bootloader 刷新程序的主要功能是实现应用程序和标定程序的擦除和刷新。在电子控制单元刷新过程中, Bootloader 刷新程序不可被擦除, 而应用程序和标定程序则可进行重复刷新。因此 Bootloader 刷新测试主要测试对象为 Bootloader 刷新程序, 其基本原则就是, 可以支持应用程序的无错误刷新, 而且无论刷新成功或失败, 都应支持重复刷新。在章节 2 中, 详细介绍了电子控制单元 Bootloader 刷新流程, 刷新流程中每一步骤均由相应的诊断服务实现, 这些诊断服务组合在一起即构成 Bootlo
16、ader 刷新测试序列。在测试过程中, 任一诊断服务出现负响应且该负响应不为负响应等待, 则退出刷新流程, 表示该项未通过, 需要确认是否由于电子控制单元Bootloader 刷新功能不满足设计要求所导致的。针对电子控制单元 Bootloader 刷新测试包括正向测试和误操作测试 2 类。4.1 正向测试的具体测试内容1) 正常刷新测试:按照刷新流程进行正常电子控制单元刷新, 如果刷新成功, 电子控制单元功能正常, 表示测试通过。2) 连续多次刷新:需要保证每一次均能正确完成刷新。作者曾测试某一电子控制单元, 当连续刷新时, 电子控制单元会出现死机情况, 导致第 2 次无法正常刷新。3) 刷新结束后, 需要读取之前写入的识别信息与配置信息, 以确保相关信息被正确写入电子控制单元之中。个别电子控制单元会误将此类信息写入 ROM 中, 导致刷新