uds下载服务流程图_UDS---ECU刷写(Software Update)那回事

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:22   2835   0

鉴于篇幅原因,上篇没有多描述ECU刷写过程中所执行的那些动作。这里通过实例以及UDS建议刷写序列内容,一起解读刷写过程中的内容。

如下图,ISO 14229对于刷写过程所需Action所给出的推荐步骤。

0d413b84661fb0cc147016b05f4098c6.png

1、 若ECU当前处于Application中,想要完成对ECU的刷写,需进入到对应的Boot模式下。在诊断范畴,通过会话模式(10 02 Programming Session)切换进入Boot模式。在Bootloader代码作用下完成对ECU的刷写动作;

2、 出于对ECU的保护,需要安全认证后才有刷写ECU的权力。在UDS协议中推荐使用Service 27(Security Access Service),解锁成功后允许对ECU进行下一步的刷写行为;

3、 Fingerprint在UDS中的定义是:车辆制造商特定于在任何数据(例如应用程序软件)下载到ECU之前,将“指纹”写入服务器内存中。“指纹”标识谁修改了服务器内存。如下图定义DID 0xF198为Fingerprint,里面包含3个信息:

1) Serial number of flash tool:刷写上位机工具序列号;

2) Repair Shop Identification: 维修店识别号;

3) Programming Date:更新软件的时间(年月日)

06fe3112744bf605be3d56568aafb919.png

通过2E服务将Fingerprint写入到ECU内存中。

4、 在ECU软件刷写时,若内存中没有存储擦除驱动,需要下载擦除驱动。通过特定的下载序列进行下载:

RequestDownload (…):请求下载,UDS协议中定义格式如下:

09fcf23ad3371132ca64271c904785ca.png

4fc3603d8a51586ae4f2336ec64b4398.png

8b259a3487d89e07cb3876450d333dfe.png

Service 34请求以及响应格式如上所表述。下图以实际例子来说明Service 34的帧格式:

2c8bdd1d5a205dc7500a3444123a1e0e.png

根据上面介绍:

0x00可知该块数据没有采用加密和压缩方法;

0x44表示数据存放的地址和数据长度都是用4Bytes表示;

0x00000030数据存放的起始地址;

0x0484该块数据的大小;

TransferData:UDS协议中定义该服务请求和响应格式如下:

0bec42245dc43280f264b826b8ef0f30.png

5be488905e1088e0beae056578479a6a.png

RequestTransferExit:请求退出传输

41a9e9fc16bfd18507aa04f8b8c253a5.png

5、 Routine Control用于检查下载是否完整,关于Routine Control,UDS协议中格式定义如下:

ffb518933c20a6ada95137a1e4b6f5ff.png

其中对应SubFunction定义如下:

964b3b591e1f0f19fc0b11e38e5dc7a5.png

其中通过Routine DID定义一系列检测动作(也可称例程)验证数据下载结果。而对于SubFunction(01/02/03)分别表示对于检测例程的开始执行、停止执行和请求执行结果。

例如定义DID 1314 Check Programming Integrity :通过数学方法计算data内容中CRC值,校验刷写前后数据是否一致;

DID 5201 Check Programming Dependencies:校验刷写后的数据,查看版本号是否一致?内容是都一致?

步骤6、7、8跟上述动作一致,个人认为这里UDS协议将Driver区分开(一个负责擦除内存,一个负责在内存上写入数据)。

9、对ECU所需更新的App data进行下载(例如:校验和、签名、DTC、硬件/软件兼容性等);

步骤10、11是验证下载结果。

12、写入ECU培训信息,比如VIN码、软硬件版本号等

b01879f1ff87e4537e969d0a998f58ea.png

以上是个人对于ECU刷写整体流程的认识。

由于现阶段车企对OTA越发重视,所以要求Bootloader功能具有很高的稳健性,能够保证在不同极端条件下都可以对ECU进行刷写。因此Bootloader刷写测试的重要性越来越凸显。如下举常见几种测试策略,方便大家理解:

1) 在刷写过程中突然中断刷写,后再继续刷写,检测ECU Bootloader处理策略;

2) 在刷写过程中突然掉电,后上电继续刷写,检擦ECU Bootloader处理策略;

3) 在一定电压阈值内进行刷写,检测ECU处理策略;

4) 刷写过程中,只对ECU内存进行擦除,不写入ECU App数据内存,看看ECU Bootloader处理策略;

……

内容纯属个人见解,欢迎留言交流,我会及时回复!

感兴趣可关注微信公众号:汽车控制器诊断技术

-----------------------------------------

作者简介 | 穿拖鞋的汉子

汽车电子工程师

来,每天进步一点点!

扩宽自己人生的护城河!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP