基于UDS的ECU诊断刷写流程 助力汽车智能化发展

预览图

ECU(Electronic Control Unit)是电子控制单元的简称,也就是车辆上的微型计算机。现代汽车行业发展的速度越来越快,车辆的功能也越来越丰富,其中很多功能都是通过ECU来实现的,而ECU的诊断刷写无疑是各大厂商重点关注的方向。


方案概述

软件刷写通常是指将软件程序烧录到ECU芯片内存的特定地址段,然后ECU就会运行该软件程序以实现其特有的功能。本篇文章是围绕这一烧录刷写过程展开介绍。

方案优势

当前,风丘诊断工具链,可实现从诊断数据配置到完整刷写测试的一体化流程支持,全面满足基于 UDS的 ECU 诊断与软件刷写需求。借助 Q-Tester 能够稳定实现与 ECU 控制器的可靠数据交互,高效完成软件烧录与刷写校验等关键步骤。整套方案功能完整、流程覆盖全面,可贯穿车辆诊断与软件刷写的全开发周期,并且可根据车企及供应商的实际需求,灵活定制刷写流程与诊断功能。

方案介绍

整个诊断刷写流程分为三个大步骤,分别是预刷写步骤、刷写中步骤和刷写后步骤。在这三个步骤中,我们将讲解关于UDS诊断刷写流程的详细过程。

1. 预刷写

会话模式转换图

(图1 会话模式转换图)

这一步的主要工作是做刷写前的准备工作。诊断议Tester先向ECU发出22服务来读取ECU的版本信息。然后,Tester再发出1003,使ECU从默认会话转到拓展会话模式,在拓展会话模式下,Tester将进行一系列刷写前的检查。

刷写前指令流程图

(图2 刷写前指令流程图)

先,Tester会使用31服务来检测一些车辆状态。整车厂通常会定义一些控制器刷写的前置条件,这一步可检查刷写前提条件是否满足,若设定条件未满足,则将退出刷写。其次,如果在刷写过程中没有关闭DTC,则会记录不必要的DTC,因此需在预编程步骤关闭DTC存储——发送85服务指令即可关闭DTC存储功能。之后还需使用28服务关闭与诊断无关的报文,以降低总线负载。这个操作,一是可节约总线上的通信资源,提升刷写效率;二是可排除其他报文对刷写的干扰,防止刷写失败。

2. 刷写中

经过上述的预编程,接下来将进入正式的刷写进程。

| 安全算法验证

安全算法验证流程图

(图3 安全算法验证流程图)

Tester先发送10 02服务从拓展会话切换到编程会话。在执行刷写这种较高层的诊断服务之前,需先进行27安全访问服务,完成身份验证。诊断仪向ECU发送27 01请求种子“Seed”,这时ECU回复诊断仪发送Seed。接着诊断仪根据刚刚得到的Seed使用算法进行计算得到安全密钥,并向ECU发送。ECU同样通过算法得到密钥,并将其与从诊断仪发出的密钥进行对比并判断是否通过。若通过,则将进入下一步——使用2E写入刷写时间以及刷写人身份信息。

| 数据传输

刷写数据流程图

(图4 刷写数据流程图)

Tester 首先发送31服务,启动目标 ECU 的内存擦除操作,为后续程序刷写清理空间(根据厂商自己定义是否执行这一擦除操作)。接着,Tester 发送34服务,向 ECU 请求确认刷写地址、传输数据块大小等信息。配置确认完成后,Tester 发送36 服务,开始向 ECU 传输第一块程序数据。ECU 收到后回复76 01,表示当前数据块接收成功。随后 Tester 继续发送36 02 xx xx、36 03 xx xx… 依次传输后续数据块,直到整段程序数据发送完毕。所有数据块传输完成后,Tester 发送37服务请求退出传输,通知 ECU 结束本次数据传输会话。传输结束后,Tester 使用31 服务检查数据传输是否正确。如果本次刷写包含多个数据块,则会重复执行34(请求下载)、36(传输数据)、37(退出传输)、31(例程校验)的流程,依次完成其他数据块的刷写与校验。所有数据块刷写、校验全部完成后,Tester 发送31 01 FF 01服务,确认目标 ECU 的内存编程依赖关系,验证各程序段之间的兼容性与完整性。最后,Tester 发送11 01服务,请求 ECU 重启,至此,第二步骤刷写全部结束。

3. 刷写后

这一步骤是刷写完成后的收尾与状态恢复工作,确保 ECU 回归正常运行。

刷写后流程图

(图5 刷写后流程图)

首先,诊断仪 Tester 10 03指令切换至拓展会话,随后发送28 服务指令,重新开启刷写前关闭的非诊断报文,恢复整车总线通信;同时发送85 服务指令,重新开启 DTC 存储功能,恢复故障诊断能力。最后,Tester 发送10 01指令,将 ECU 从拓展会话切回默认会话,完成整个刷写流程。

总结

以上就是一般的基于UDS诊断的ECU刷写流程。诊断的刷写流程架构基本一致,但会存在部分差异,视具体情况而定。Q-Tester.Expert是基于ODX(ASAM MCD-2D/ISO 22901-1)国际标准的工程诊断仪,内置Sequence序列可以支持各种刷写流程。通过此诊断仪,用户可实现与ECU控制器之间的数据交互,高效完成软件烧录这一过程,同时Q-Tester.Expert还支持以太网诊断(DoIP),也可根据用户需求进行扩展开发。

| 刷写实例

6f5814bf-15fb-4fdc-8702-ef62fcb0e734

往期回

UDS诊断在整车测试中的应用与解决方案

突破限制,简化流程 | ECU单件诊断测试(DoIP on 1000BASE-T1)创新方案

(素材使用声明:本网站素材使用力求合法,若不慎侵权请联系我们删除;本网站内容未经授权使用,将依法追究责任。)