基于UDS的ECU软件刷写流程

2020年10月22日
评论
2,802 1333字

 简介

ISO-14229-1在定义了所有的UDS诊断服务之后,还用了一章内容描述了基于这些诊断服务给ECU刷写软件的流程。14229写得很详细,内容较多,我在这里就讲一下核心的一些步骤,具体细节如有需要或感兴趣可以去看规范原文。

ECU的软件可以从Application和Boot的角度区分,如下图所示:

基于UDS的ECU软件刷写流程

ECU Power-On之后首先会进入Boot Manager,然后Boot Manager会对Application进行Check,如果Application没问题,则进入Application正常运行,如果Application有问题(比如软件与硬件兼容问题),则会进入Reprogramming Software(也叫Bootloader),等待用户写入正确的软件。在Application中的时候,也可以通过转换Session的命令,进入到Bootloader中进行软件的重新刷写。也就是说,刷软件的过程就是在Bootloader中进行的。14229建议Boot Software不应该被更改,或至少是不应该被轻松地更改。

 软件刷写步骤

软件刷写总体上分为三个步骤:

1  Pre-Programming
2  Programming
3  Post-Programming

从名字上也大概可以猜到它们都是做些什么了。

1  Pre-Programming

Step 1:进入Extended Session

Step 2:使用31服务执行检查编程条件的Routine,如条件不满足(比如车速过高等),则退出刷写。

Step 3:使用85服务关闭DTC的存储

Step 4:使用28服务关闭与诊断无关的报文,将节约出来的通信资源用于刷写软件,提升刷写速度。

2  Programming

基于UDS的ECU软件刷写流程

Step 1:进入Programming Session

Step 2:使用27服务进行安全访问

Step 3:写入指纹信息,即标记写软件人的身份

Step 4:执行31服务,删除存储空间

Step 5:按照我在以前的文章里写的,调用34,36,37服务完成数据的写入。

Step 6:执行31服务,检查刚刚写入的数据块是否正确,典型的就是执行Checksum验证。如果还有数据块要写,则再跳回Step 5,如果没有,则进入Step 7。

Step 7:写入所有数据块之后,一个完整的软件也就写好了,此时需要ECU检查一下这个软件是否可用,比如软硬件兼容问题。

3  Post-Programming

基于UDS的ECU软件刷写流程

这个过程非常简单,我直接引用14229的图了,在软件刷写并且验证完成之后,只需要执行11命令进行重启或者10命令回到Default Session就可以了。

总结

本文对14229中定义的流程进行了简化,但是主干部分几乎一致。毕竟完整地解释规范的确工作量太大,业余时间没有那么多。如有疑问或建议,欢迎留言评论。

作者介绍:张大侠,一汽大众资深攻城狮。主要从事汽车诊断刷新方面的工作,在UDS诊断、车载以太网等方面都有独到的见解,对这块感兴趣的朋友,请关注张大侠个人公众号:汽车ECU网络诊断技术。

推荐阅读:

基于CAN总线实现的UDS诊断(DoCAN)

基于CAN-FD的诊断通信传输层

E/E系统架构开发指南-电子电器系统开发流程 E/E System Development

weinxin
立即关注公众号:
1、免费领取线束设计资料包(资源); 2、进入线束技术交流专家群(进群);3、免费获取发布求职招聘信息。
车载以太网基础扫盲 网络架构

车载以太网基础扫盲

随着汽车网络开始连接车辆中的更多计算资源,转向以太网是很自然的事情。 2016年,IEEE发布了第一个汽车以太网标准IEEE 802.3bw,也称为100Base-T1。虽然100M bit / se...
如何实现CAN与CAN FD组网通信? 网络架构

如何实现CAN与CAN FD组网通信?

CAN升级到CAN FD势在必行,如何实现CAN与CAN FD组网通信? 对于新能源车而言,随着局域网内节点,电控单元的功能以及节点间交互信号增多,CAN总线的局限性越来越突出,主要体现在: 1、节点...
XCP协议是什么?一文看懂,保证明白(上) 网络架构

XCP协议是什么?一文看懂,保证明白(上)

XCP协议在汽车电子开发中起着重要的作用,可能每天都在用,但是确并不清除XCP协议到底是什么。 本文将说明XCP协议的前世今生,并分析其具体是如何通信的,以及XCP的功能和协议内容。 为了避免文章太长...
匿名

发表评论

匿名网友 填写信息