CAN总线在汽车领域中的相关知识:程序烧写

UDS ON CAN烧写程序

通过UDS烧写程序时,通常会用到表1中的服务。

CAN总线在汽车领域中的相关知识:程序烧写_第1张图片

ECU刷新流程

刷新准备阶段
刷新准备阶段需要确认待刷新控制器的相关版本信息,设置刷新网络等。
这个阶段在整车各个控制器的APP程序中执行,此阶段,使用功能地址向网络上的各控制器发出诊断请求进行网络设置

STEP1:
22 DID 读软件版本号信息等
10 03  进入扩展模式(功能寻址方式),通过3E服务保持链路。(在扩展模式下,DTC 和非诊断消息允许被禁止)
85 02  控制DTC,停止DTC检测
28 03  停止非诊断消息的发送与接收(通过ID过滤帧类型)
87     改变传输波特率(可选)
27 03  请求种子
27 04  根据种子信息发送钥匙
31 01 DA03 检查ECU是否达到升级条件,如检查ECU电源状态,发动机运行状态等


刷新阶段
该阶段在Bootloader 中执行,诊断消息寻址方式均为物理地址

STEP2:
10 02 切换到编程模式(APP层接收到该信息后,直接跳到BootLoader程序处)
27 03  请求种子
27 04  根据种子信息发送钥匙(如果没有刷写驱动程序,紧接着可以调用34,36,37将驱动程序刷写至RAM区)
31 FF00  擦除FLASH内存(APP存储空间)
34     请求下载(标明此次数据块下载的地址与大小)
36     传输数据(传输该数据块)
37       退出传输(从response中的校验和判断已传数据块烧写是否正确,正确的话,可跳回34服务继续烧写)
31 FF01 检测数据块下载是否正确(传某段数据块的CRC给BootLoader)
31 DA04 所有数据CRC检验(传所有下载数据的CRC给BootLoader)
11 01  ECU RESET(中断向量表的偏移)

刷写后处理
该阶段是在复位后在APP程序中执行一些恢复整车网络通信以及写配置信息的操作

STEP3:
28        恢复通信(恢复非诊断消息的发送与接收)
85 01    恢复DTC检测功能
10 03    进入扩展模式(功能寻址方式)
27 03      请求种子
27 04      根据种子信息发送钥匙
2E        写DID
14        清楚DTC
10 01    恢复默认模式
 

后续更新中。。

参考资料:

https://blog.csdn.net/dongganxiao_maidou/article/details/75003896
 

你可能感兴趣的:(汽车电子)