问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于UDS的Flash 刷写——BootLoad刷写流程详解

创作时间:
作者:
@小白创作中心

基于UDS的Flash 刷写——BootLoad刷写流程详解

引用
CSDN
1.
https://blog.csdn.net/LOVE135149/article/details/141574911

在汽车电子领域,UDS(Unified Diagnostic Services)协议被广泛应用于车辆诊断和软件刷写。本文将详细介绍基于UDS的Flash刷写流程,特别是BootLoad刷写的具体步骤。从诊断会话控制到软件下载,再到完整性检查和ECU重置,每个步骤都配有详细的解释和指令代码,帮助读者深入理解这一复杂但关键的技术流程。

流程概述

基于CANoe的CAPL+Panel实现,图示如下:

UDS流程详解释

主要配合实际指令发送与恢复,进行详解讲解每个步骤

前编程

这部分主要目的是为后面的编程做准备。

①诊断会话控制 - 切换到扩展会话(10 03)

0x10 03:为了禁止ECU间的正常通信和控制DTC设置,而这些指令都需要在扩展会话下完成。

②例程控制-预编程条件检查(31 01 02 03)

0x31 01 xx:编程条件检查-确保APP升级过程中,系统的安全性,如果不安全将拒绝编程(可选步骤)

③DTC设置控制 - 关闭DTC(85 02)

0x 85 02:在刷写过程中,禁止DTC更新

④通讯控制 -关闭收发(28 01 03)

0x28 03 03:服务是为了减少在刷写过程中总线负载率——禁止app报文发送与接收

主编程

这部分主要目的是完成软件的下载和更新。

⑤诊断会话控制 - 切换到扩展会话(10 02)

0x10 02:进入编程会话(bootLoad)中,为后面的APP下载准备

⑥ 安全访问 - 请求种子/密钥(27 07/08)

0x27 07/08:软件下载前必须通过安全访问操作

⑦指纹信息写入 - (2E xx)

0x2E XX :写入指纹信息 ,主要指的是重编程的日期,一般在4S店刷写需要(可选步骤)

//驱动下载

驱动下载前不需要擦除操作

关于相关服务可点击【UDS诊断】——0x34、0x36、0x37服务查看

⑧Flash Driver下载-请求下载(34 00 44(地址+长度))

0x34 00 44(地址+长度):请求下载

⑨ Flash Driver下载-数据传输(36 01+驱动数据长度)

0x36 01+数据:数据 传输

⑩Flash Driver下载-请求退出(37)

0x37 :请求退出

⑪例程控制-完整性检查(31 01 02 02+校验算法)

0x31 01 02 02 + 4byte crc32:.完整性检查,检查逻辑块的完整性

完整性检查方式:CRC算法、RSA文件验签等方式,本次举例为CRC算法

⑫例程控制-擦除内存(31 01 FF 00 44+(地址+长度))

0x31 01 FF 00 44 + (地址+长度):内存

再APP下载时需要先进行擦除内存

//软件下载

⑬软件下载-请求下载(34 00 44(地址+长度))

⑭软件下载-数据传输(36 01+驱动数据长度)

⑮软件下载-请求退出(37)

⑯例程控制-完整性检查(31 01 02 02+校验算法)

0x31 01 0202 + 4byte crc32:完整性检查,检查逻辑块的完整性

⑰例程控制-检查编程依赖性(31 01 FF 01)

0x31 01 FF 01:检查编程依赖性

⑱ECU重置 - 硬件重置(11 01)

0x11 01:硬件重置

后编程

软件升级之后,恢复软件的正常工作状态,主要进行一些指令的服务,DTC的清除等操作

⑲诊断会话控制 - 切换到扩展会话(10 03)

⑳通讯控制 -打开收发(28 00 03)

㉑DTC设置控制 - 打开DTC(85 01)

㉒清除DTC(14FFFFFF)

㉓诊断会话控制 - 切换到默认会话(10 01)

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号