简介
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网络诊断技术。
推荐阅读: