目录
2.1.4 停止发送一般通讯报文(28 01 01 XX XX)
2.2.4 写入指纹(2E XX XX YY YY ...)
2.2.5 擦除内存(31 01 FF 00 XX XX YY YY)
2.2.6 请求下载(34 XX YY ZZ ZZ AA AA)
2.3.2 启用发送一般通讯报文(28 00 01 XX XX)
汽车升级过程的就是针对ECU的升级,在ECU的刷写过程种定义了刷写前、刷写中、刷写后三个阶段, 负责将正确的刷写文件( S19 或者 HEX) 下载到 ECU 中。
一、UDS刷写的两种方式:
1.1普通刷写原理:
程序运行后首先在boot中运行,boot会对app程序进行校验,检查app程序是否正常,如果不正常会停留在boot区,正常则跳转到app区运行。程序在运行过程中会备份两份,如下图所示程序刷写会刷写右侧区域,刷写完成复位之前会未刷写区域和新程序进行互相拷贝。刷写过程中,当app收到刷写指令后会跳转到boot区对app进行刷写。
1.2强制刷写:
当app运行异常无法跳转到boot区,则执行强制刷写,ECU下电,上位机发送强制刷新指令,一般为31例程,然后下位机上电,ECU会停留在boot区,直接进行刷写。
二、刷写流程图

2.1 刷写前(设置刷写网络)
刷写前,刷写工具读取 ECU 的 Boot 软件版本号(F180)、软件版本(F188)、 VIN(F190)、 硬件版本(F191),根据从 ECU 获取到的相关信息到刷写数据库中查找对应的升级文件。维修店代码或诊断设备序列号(F198)、刷写日期(F199)在刷写启动时写入,用于追溯之前的刷写操作。
刷写准备阶段需要确认待刷写控制器的相关版本信息, 设置刷写网络等。这个阶段在整车各个控制器的应用程序中执行, 此阶段, 使用功能地址向网络上的各控制器发出诊断请求进行网络设置。
2.1.1 切换到扩展模式(10 03)
默认状态下 ECU 在 01 默认会话中,使用UDS 会话切换(10 03)进入拓展会话。
2.1.2 检查刷写前提条件(31 01 XX XX)
整车厂通常会定义一些控制器刷写的前提条件,比如车速要低于3km/h等,这一步就可以检查刷写前提条件是否满足。不同的OEM/Tier1可能有不同的检查条件。常见的前置条件如下:
- ECU 的电源电压不能太高或者太低(9V-16V)
- 车辆处于 IGN On 状态, 但不在 Ready 状态
- 车辆处于静止状态,车速为 0km/h
具体使用 31服务 执行检查编程条件的例程 routine,如条件不满足(比如车速过高等),则退出刷写。
2.1.3 停用故障码存储功能(85 02)
刷写过程中,控制器功能不正常,不能收发总线消息,这种情况下,需要避免在这个过程中触发故障码存储。使用85诊断故障码设置服务设置故障码设置类型为OFF(02)关闭DTC的存储。
2.1.4 停止发送一般通讯报文(28 01 01 XX XX)
刷写过程中,因为传输的数据较多,因此停用通讯报文的发送可以降低总线负载。
使用28服务关闭与诊断无关的报文,将节约出来的通信资源用于刷写软件,提升刷写速度。


1014

被折叠的 条评论
为什么被折叠?



