基于UDS的ECU软件刷写流程

网络架构评论字数 1333阅读模式
线束工程师必备资料包

 简介

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

ECU的软件可以从Application和Boot的角度区分,如下图所示:文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

ECU Power-On之后首先会进入Boot Manager,然后Boot Manager会对Application进行Check,如果Application没问题,则进入Application正常运行,如果Application有问题(比如软件与硬件兼容问题),则会进入Reprogramming Software(也叫Bootloader),等待用户写入正确的软件。在Application中的时候,也可以通过转换Session的命令,进入到Bootloader中进行软件的重新刷写。也就是说,刷软件的过程就是在Bootloader中进行的。14229建议Boot Software不应该被更改,或至少是不应该被轻松地更改。文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

 软件刷写步骤

软件刷写总体上分为三个步骤:文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

1  Pre-Programming
2  Programming
3  Post-Programming文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

从名字上也大概可以猜到它们都是做些什么了。文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

1  Pre-Programming

Step 1:进入Extended Session文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

Step 2:使用31服务执行检查编程条件的Routine,如条件不满足(比如车速过高等),则退出刷写。文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

Step 3:使用85服务关闭DTC的存储文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

Step 4:使用28服务关闭与诊断无关的报文,将节约出来的通信资源用于刷写软件,提升刷写速度。文章源自线束工程师之家-https://www.suncve.com/uds-based-brush-writing-flow-of-ecu-software/

2  Programming

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

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

总结

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

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

推荐阅读:

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

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

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

weinxin
我的微信
立即关注公众号线束工程师:
1、免费领取线束设计资料包(资源); 2、进入线束技术交流专家群(进群);3、免费获取发布求职招聘信息。
线束工程师进群
 
电子电气架构设计的取与舍 网络架构

电子电气架构设计的取与舍

我理想中的电子电气架构是什么样子的?这个课题我自己思考过很多次,但是每次都是一些零散的想法,然后因为一些偶然的发现,又自己否定了自己。然后我发现这个事情就跟一千个人眼中就有一千个哈姆雷特一样,没有标准...
线束工程师必备资料包

发表评论