 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入【相亲相爱一家人】 玩转CANoe,博客目录大全,点击跳转

目录

 流程概述 UDS指令详解 编程前(PreProgramming)步骤1:进入拓展会话(10 83)步骤2:会话保持(3E 80)步骤3:编程前条件预检查(31 01 02 03)(可选)步骤4:禁用 DTC功能(85 82 FF FF FF)步骤5:停止通讯报文(28 81 03) 编程过程(MainProgramming)步骤6:进入Boot(10 02)步骤7:Boot下的安全解锁(27 xx)步骤8:写入指纹信息(2E F1 5A 01 01 01 01 02 03 04 05 06 07 08 09)(可选)步骤9:刷写Driver文件步骤10:完整性检查(31 01 02 02)步骤11:擦除APP文件的内存(31 01 FF 00 44 01 00 00 00 00 3C 00 00 )步骤12:刷写APP文件步骤13:APP文件完整性检查(31 01 02 02)步骤14:最后全部文件下载完毕后,进行编程依赖性检查(31 01 FF 01)步骤15:硬件重启(11 01) 编程后(PostProgramming)步骤16:进入拓展会话(10 03)步骤17:使能通讯(28 80 03)步骤17:解除DTC控制(85 81 FF FF FF)

总结

 流程概述

网上找了张图,基本描述了刷写的流程 我也截图了Vflash 刷写的一个过程图,辅佐理解

 UDS指令详解

 编程前(PreProgramming)

步骤1:进入拓展会话(10 83)

这没什么好说的,因为下面的服务不支持默认会话功能寻址,没响应

步骤2:会话保持(3E 80)

开启ECU的会话保持,因为我们知道有个S3 Server 的时间一般是5000ms ,如果没有开启会话保持,5000m后ECU就会切回默认会话。而我们刷写要保持在Boot下的。功能寻址,没响应

步骤3:编程前条件预检查(31 01 02 03)(可选)

编程前条件预检查,检查待测ECU的自身条件是否满足刷写,一般情况下会检查电压是否正常,车速信号是否接收到且<3km/s,不同的Tier1/OEM可能有不同的检查条件。物理寻址

步骤4:禁用 DTC功能(85 82 FF FF FF)

禁止ECU产生各种DTC.功能寻址,没响应

步骤5:停止通讯报文(28 81 03)

停止通讯报文.,降低总线负载。01 表示 enableRxAndDisableTx03表示停掉APP和网络报文都停掉功能寻址,没响应

 编程过程(MainProgramming)

步骤6:进入Boot(10 02)

物理寻址

步骤7:Boot下的安全解锁(27 xx)

物理寻址

步骤8:写入指纹信息(2E F1 5A 01 01 01 01 02 03 04 05 06 07 08 09)(可选)

写入指纹可能不太好理解,就是在4S店刷件的时候,写入年月日信息和4S店的编码物理寻址

步骤9:刷写Driver文件

刷写引导文件 UDS 14229 -1 刷写34,36,37服务简介 和刷写APP文件的不同之处,Driver文件一般很小,且无需刷写前擦除内存。

步骤10:完整性检查(31 01 02 02)

文件刷写完,要进行完整性校验前些年ECU的校验方式多是CRC的,近几年看到的都是RSA文件验签的。如果时CRC,可能发送的指令是 31 01 02 02 + 3个字节的校验码如果是RSA,则 31 01 02 02 + 128/256字节的校验码

步骤11:擦除APP文件的内存(31 01 FF 00 44 01 00 00 00 00 3C 00 00 )

再刷写非Flash文件时,需要先执行擦除内存的操作注意,一般情况,ECU要擦很久,对这个指令的响应就比较久。10秒到300多秒我都遇到过,这取决于擦除地址的大小。

步骤12:刷写APP文件

app的地址有可能是不连续的 地址不连续的情况

地址连续的情况,就一个Block块

如果地址不连续那么刷写的过程的逻辑就是这样的,涉及到多次34地址和长度的请求了。

for(i=0;i

{

34 00 44 52 80 90 00 00 00 16 00

36 01 xx xx

36 02 xx xx

....

37

}

步骤13:APP文件完整性检查(31 01 02 02)

同 步骤10

步骤14:最后全部文件下载完毕后,进行编程依赖性检查(31 01 FF 01)

最后全部文件下载完毕后,进行编程依赖性检查(31 01 FF 01)

步骤15:硬件重启(11 01)

全部检查都通过后,硬件重启,进入APP模式下

 编程后(PostProgramming)

步骤16:进入拓展会话(10 03)

步骤17:使能通讯(28 80 03)

步骤17:解除DTC控制(85 81 FF FF FF)

总结

虽然Flash刷写流程是个业内常规的流程,但是只给一张流程图,对于刚入门的同学,理解还是有障碍的,希望我加了一些辅助的资料能够帮助大家理解。

要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡! 如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。