0 引言
现代汽车的E/E架构越来越重要,OTA成为了汽车厂商让你花全款的钱买个半成品回来的重要借口。现在让我们来弄懂OTA刷写的主要框架吧,一个完整刷写中主要分为三个部分:预编程,主编程,后编程。
1 预编程
主要做一些刷写前的准备工作,首先进入10 01,然后发送10 83(功能寻址)此处使用让所有的ECU都进入拓展会话中,发送31 01 02 03检查预编程条件,通过后继续使用功能寻址发送28和85,以免出现干扰刷写的情况,最后使用22读取版本信息。
2 主编程
在预编程结束后就进入主编程阶段,在这里就要正式开始刷写了,首先发送10 02进入编程会话,然后27解锁安全等级,通过2E写入指纹信息。第一步要下载的是Flash,34/36/37服务依次进行,下载完成后需要通过安全校验/擦除内存/依赖性检查三个步骤确保程序的正确性,然后才开始进行APP的下载,同样是34/36/37,下载完成后只需要通过安全性校验和依赖性检查即可。需要注意的是擦除内存只在Flash下载完后进行。
到这里我们ECU中的程序就已经焕然一新。
3 后编程
后编程的步骤和预编程的步骤基本对称,首先28打开通讯,然后发送10 03,使用14清除掉所有的DTC(虽然我们使用85关闭了DTC的记录,但是为了安全起见还是要清除一次)。使用85重新开始记录DTC,通过10 81让ECU回到初始状态,同样,最后在这里使用22读取版本信息,检查是否是我们所下载的。到这里一个简易的刷写流程就结束了。
刷写的流程其实不难理解,但是其中有许多细节需要去斟酌。后期,我将会将在实际项目中碰到的细节问题分享给大家~