UDS Flash刷写流程介绍

一、刷写流程介绍

1.1刷写包含以下三个步骤:预编程,编程,后编程

1.2预编程步骤

此步骤是保证能够正常进入编程(10 02)会话下。

(1)如果无特殊要求,只保证刷写能够正常进行,直接从10 03(扩展会话)进入10 02(编程会话),不需要加入其他诊断服务。

(2)如果需要确保刷写过程中,不影响其他ECU,则需要加入28,85,31服务进行。

        28服务禁止总线上报文输出,减低总线负载,保证刷写过程正常进行(总线负载较高时,刷写可能无法正常运行,诊断ID优先级较低,可能存在无法发送)。

       85服务禁止DTC状态位更新,刷写过程中,APP报文无法发送,可能会触发通信类DTC,此情况是在刷写过程中不期望遇到,使用85服务可以禁止DTC状态位更新,可不引入新的DTC。

      31服务主要是保证,在异常情况下,不能够执行刷写操作。(此过程可选)

1.3编程步骤

此步骤是保证能够将S19/Bin/Hex文件正确下载进入ECU。

(1)在刷写过程中,可以写入指纹信息,来记录版本刷写日志(此过程可选)

(2)刷写主要过程分为:擦除内存,请求下载,软件下载,请求刷写退出,以及检查版本校验

(3)软件下载完成后,需要使用11服务进行复位(从10 02(编程会话)进入10 01(默认会话))

1.4后编程步骤

此步骤是保证软件下载之后,能够将之前85,28服务所关闭的功能打开(针对所刷写的ECU来说,在编程步骤结束后此功能立刻恢复;针对其他ECU来说使用后编程步骤,恢复之前所禁止功能)

二、刷写服务介绍

2.1预编程步骤

2.1.1 10服务

10 03:主要是给31,28,85,以及进入10 02提供环境。

2.1.2 85服务

85 02:禁止DTC标志位更新。

2.1.2 28服务

28 03 01:禁止总线上APP报文发送,这一步应该在85 02之后执行,禁止DTC更新。

2.1.3 10服务

10 02:从扩展会话进入编程会话,给刷写提供会话环境。

2.2编程步骤

2.2.1 27服务

27 xx(xx:boot下定义的解密等级):请求seed,

27 xx+1 yy yy ……(yy:根据seed计算的key)

请求:27 01 

返回:67 01 xx xx xx xx(返回4byteseed)

请求:27 02 xx xx xx xx(根据seed计算的4byte key)

返回:67 02

2.2.2 34服务

34 00 44 xx xx xx xx(4byte 地址) yy yy yy yy(4byte 数据长度):请求擦除所需要下载的区域

请求:34 00 44 01 01 01 01 11 11 11 11(请求擦除起始地址:01010101,长度为11111111的区域)

返回:74 40 xx xx xx xx(4byte 可下载数据最大长度,根据40的来判断后面使用字节)

2.2.3 36服务

36 xx(xx:请求下载的块序列号):请求数据下载 

块序列请求模式:36 01~36 FF,36 00~36 FF(后续以36 00~36 FF进行循环) 

请求:36 xx(xx:01~FF,00~FF)

响应:76 xx

2.2.4 37服务

37:请求下载退出

2.2.5 31服务

31 01 xx xx(RID) yy yy yy yy(校验值):判断刷写过程中,上位机传输与ECU中下载数据是否一致

请求:31 01 FF FF 01 01 01 01

返回:71 01 FF FF

2.2.6 11服务

11 01:刷写完成后,使用11 01进行硬复位,从而进入app中运行软件

2.3后编程步骤

2.3.1 10服务

10 03:为后续28 ,85提供会话环境

2.3.2 28服务

28 00 01:恢复APP通讯

2.3.3 85服务

85 01:开启DTC状态位更新,此步骤要在28服务之后,确保在刷写中不产生新的DTC

以上是UDS刷写步骤,执行完成可将软件刷写入ECU中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fluent 技巧:查找并修改隐藏的设置

绝大部分 Fluent 设置可以通过图形界面或者命令行内置的命令按照提示处理。少部分设置因为种种原因被隐藏,需要在命令行中使用 scheme 语句进行处理。例如关闭温度的二阶梯度,需要在命令行中完整输入如下 scheme 语句(包括英文括号部分&#…

编译安装Nginx健康检查模块和echo模块

1、编译安装Nginx健康检查模块和echo模块 -rw-r--r-- 1 root root 482 1月 20 09:51 1.sh -rw-------. 1 root root 1060 11月 26 09:12 anaconda-ks.cfg -rw-r--r-- 1 root root 370929 1月 16 18:02 bash.txt drwxrwxr-x 5 root root 174 8月 1 2022 ec…

网站将http升级到https大概要多少费用

随着网络安全意识的不断提升,越来越多的网站正从传统的HTTP协议转向更安全的HTTPS协议。这一转变的核心在于部署SSL(Secure Sockets Layer)或TLS(Transport Layer Security)证书,以实现数据加密传输&#x…

【算法专题】动态规划之路径问题

动态规划2.0 动态规划 - - - 路径问题1. 不同路径2. 不同路径Ⅱ3. 珠宝的最高价值4. 下降路径最小和5. 最小路径和6. 地下城游戏 动态规划 - - - 路径问题 1. 不同路径 题目链接 -> Leetcode -62.不同路径 Leetcode -62.不同路径 题目:一个机器人位于一个 m …

论 Solon 开源框架的意义!

Solon 是一个国产的生态级 Java 应用开发框架(已发具备全球第二级别的生态)。七年时间打磨。14 万行代码。两三百个生态扩展呢。 国内第一个 从零开始构建,有自己的标准规范与开放生态。尤其没有使用 javaee 的接口规范(它改包名…

srs5.0.205编译启动

官方有教程了,但是我编译的时候出了很多错误,记录一下。 官方文档:https://ossrs.net/lts/zh-cn/docs/v4/doc/getting-started-build 拉取源码 git clone -b 4.0release https://gitee.com/ossrs/srs.git进入文件夹 cd srs/trunk配置 ./c…

【apollo在springboot中运行原理】

系列文章目录 Springboot源码分析之apollo配置 文章目录 系列文章目录前言一、apollo是如何完成初始化的,拉取配置的呢1. apollo的初始化阶段2.初始化RemoteConfigRepository3.同步远程配置4.发布ConfigFileChangeEvent事件 总结 前言 配置中心我相信有一年开发经验的程序员都…

【STM32】STM32F4中USB的CDC虚拟串口(VCP)使用方法

文章目录 一、前言二、STM32CubeMX生成代码2.1 选择芯片2.2 配置相关模式2.3 设置时钟频率2.4 生成代码2.5 编译并下载代码2.6 结果2.7 问题 三、回环测试3.1 打开工程3.2 添加回环代码3.3 编译烧录并测试 四、出现问题和解决方法4.1 烧录总是要自己插拔USB4.2 自己生成的工程没…

【win】Windows下MSI Afterburner如何让其不在某个软件中显示帧数

本文首发于 慕雪的寒舍 Windows下MSI Afterburner如何让其不在某个软件中显示帧数 1.问题说明 总所周知,MSI Afterburner这个软件可以在游戏里面展示你当前电脑的各项生命体征,包括GPU/CPU功耗频率温度,内存占用,当前帧数等等数据…

java重写与重载的区别详细讲解通俗易懂

重写(Override)和重载(Overload)是Java中的两个重要概念,它们都涉及到方法的使用和定义。下面我会通俗易懂地解释它们的区别。 重写(Override)指的是在子类中重新定义父类中已经存在的方法&…

OpenKruiseGame × KubeSphere 联合发布游戏服运维控制台,推动云原生游戏落地

作者:云原生游戏社区 近日,云原生游戏开源社区旗下 OpenKruiseGame(以下简称:OKG)基于 KubeSphere 4.0 LuBan 架构开发的游戏服运维控制台 OKG Dashboard 正式发布!现已上架 KubeSphere Marketplace 云原生…

32、WEB攻防——通用漏洞文件上传二次渲染.htaccess变异免杀

文章目录 一、点过滤二、文件删除三、二次渲染四、.htaccess五、过滤php关键函数 一、点过滤 不能写带文件后缀的文件名;IP转数字 二、文件删除 文件依据规则进行删除,删除有两种删除的类型: 什么文件都删除,条件竞争进行绕过…

宠物热潮席卷欧美:探秘宠物经济的蓬勃发展与增长动力

近年来,宠物经济在欧美地区蓬勃发展,成为经济体系中一股不可忽视的力量。从宠物食品到医疗护理,从宠物用品到服务业,整个产业链日益完善,呈现出多元化、高度专业化的趋势,不仅满足了宠物主人的需求&#xf…

Node.JS CreateWriteStream(大容量写入文件流优化)

Why I Need Node.JS Stream 如果你的程序收到以下错误,或者需要大容量写入很多内容(几十几百MB甚至GB级别),则必须使用Stream文件流甚至更高级的技术。 Error: EMFILE, too many open files 业务场景,我们有一个IntradayMissingRecord的补…

LeetCode2865. Beautiful Towers I

文章目录 一、题目二、题解 一、题目 You are given a 0-indexed array maxHeights of n integers. You are tasked with building n towers in the coordinate line. The ith tower is built at coordinate i and has a height of heights[i]. A configuration of towers i…

TDengine 十大行业案例汇总,总有一款适合你!

伴随着产品的六载创新与发展,TDengine 的全球用户实例以日增 500 例在持续扩大。截至 2024 年初,TDengine 全球运行的实例数已经超过了 46 万,在物联网、车联网、工业互联网等多个领域都有了广泛的应用,越来越多的企业和组织选择使…

Java数据结构与算法:图算法之深度优先搜索(DFS)

Java数据结构与算法:图算法之深度优先搜索(DFS) 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,一个热爱编程的程序猿。今天,让我们一起探索图算法中的深度优先搜索(DFS&…

《WebKit 技术内幕》学习之十二(1):安全机制

第12章 安全机制 安全机制对于浏览器和渲染引擎来说至关重要。一个不考虑安全机制的HTML5规范体系肯定不会受到广泛地使用,同时一个不安全的浏览器也不会得到广大用户的青睐。本章介绍的安全机制分成两个不同的部分,第一个部分是网页的安全,…

详解Mockito

详解Mockito 1. Mockito简介 在我们的编程世界中,测试是一个非常重要的环节,它能帮助我们确保代码的质量和稳定性。而在众多的测试方法中,Mock测试是一种非常有效的手段。 1.1 什么是 Mock 测试 Mock测试,顾名思义,…

gtest 单元测试

文章目录 前言一、Google Test介绍1.1 gtest源码下载编译1.2 gtest运行参数介绍 二、Google Mock参考资料 前言 Google Test(简称gtest)是一个开源的C单元测试框架。和常见的测试工具一样,gtest提供了单体测试常见的工具和组件。比如判断各种…