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 …

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…

【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功耗频率温度,内存占用,当前帧数等等数据…

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的补…

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

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

详解Mockito

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

Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程

CSDN 成就一亿技术人! 今天出一期Centos下安装Mysql(详细教程)包括数据库密码跳过修改 CSDN 成就一亿技术人! 目录 1.获取安装包 2.安装程序 安装下载的rpm包 查看安装包 修改5.7版本(重要) 安装M…

远程git开发

两种本地与远程仓库同步 """ 1)你作为项目仓库初始化人员:线上要创建空仓库 > 本地初始化好仓库 > 建立remote链接(remote add) > 提交本地仓库到远程(push)2)你作为项目后期开发人员:远程项目仓库已经创…

4.php开发-个人博客项目登录验证cookiesession验证码安全​

目录 知识点 本节大纲思路 ——这里以我自己的为例—— cookie验证——————> login1.php-登录后台界面 login_check.php-检查,作为包含文件 add_news.php-后台界面 php编码 如何创建 Cookie?--setcookie() 语法 实例 1 php header跳转…

(学习日记)2024.01.23:结构体、位操作和枚举类型

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

《WebKit 技术内幕》学习之八(1):硬件加速机制

《WebKit 技术内幕》之八(1):硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页,因为GPU的作用主要是用来绘制3D图形并且性能特别好,这是它的专长所在,它…

成熟的内外网数据交换方案,如何实现跨网传输?

网络迅速发展,我们可以从网络上查找到各式各样的信息,但是同时网络安全问题也随之严重。近几年,各种有关网络安全的新闻不断被报道,数据泄露给很多企业带来了严重打击,不仅是经济损失,严重者还会对企业的声…

Go 基本数据

第 2 章 基本数据类型 Go 的数值类型包括了不同大小的整数 、浮点数 、复数; 各种数值类型分别有自己的大小,对正负号支持也各不相同; 1. 整数(OK) 整数类型(整型)整数类型Go 语言同时支持 有…