UDS Flash刷写流程介绍

news2024/9/30 17:35:17

一、刷写流程介绍

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.coloradmin.cn/o/1407116.html

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

相关文章

k8s的图形化工具---rancher

rancher是一个开源的企业级多集群的k8s管理平台。 rancher和k8s的区别:都是为了容器的调度和编排系统。但是rancher不仅可以调度还可以管理整个k8s集群。 rancher自带监控(普罗米修斯) 实验部署 master01 20.0.0.32 node01 20.0.0.34 node02 20.0.0.35 test …

嵌入式-stm32-江科大-EXTI外部中断

一:EXTI外部中断(external interrupt) 1.1 STM32 中断系统 中断是指在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前的程序,转而去处理中断程序,…

菜鸟初进stable diffusion

不知道是不是玩novelai被boss看到了,推荐了我学stable diffusion 扩散模型 DALL E Midjourney stable diffusion latent diffusion 说是改进点在于“给输入图片压缩降低维度,所以有个latent,从而减少计算量”,类似于下采样吧&…

消息队列RabbitMQ.01.安装部署与基本使用

目录 RabbitMQ的作用 Message queue 释义 问题思考 存在的问题 优化方案 案例分析 带来的好处 消息队列特点 Email邮件案例分析 Docker安装部署RabbitMQ 1.下拉镜像 2.运行RabbitMQ 3.打开防火墙端口号并重新运行防火墙 4.容器启动后,可以通过 docker logs 容器 查…

Servlet 与 MVC

主要内容 Servlet 重点 MVC 重点 Filter 重点 章节目标 掌握 Servlet 的作用 掌握 Servlet 的生命周期 掌握 JSP 的本质 掌握 MVC 的设计思想 掌握 Filter 的作用及使用场景 第一节 Servlet 1. Servlet 概念 Servlet 是在服务器上运行的能够对客户端请求进行处理&a…

leetcode 刷题2

二分查找的绝妙运用&#xff1a; 看到有序数列&#xff0c;算法复杂度 0033. 搜索旋转排序数组 class Solution { public:int search(vector<int>& nums, int target) {int left 0;int right nums.size() - 1;while (left < right) {int mid left (right - …

Debezium发布历史85

原文地址&#xff1a; https://debezium.io/blog/2020/03/05/db2-cdc-approaches/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 运行 Db2 更改数据捕获的方法 2020 年 3 月 5 日 作者&#xff1a; Luis Garcs…

JanusGraph图数据库的应用以及知识图谱技术介绍

目录 JanusGraph介绍 JanusGraph 的主要优势 JanusGraph的应用&#xff1a; JanusGraph 的行业应用&#xff1a; 架构概览 分布式技术应用 横向扩展能力 程序与janus的交互 Janus与图数据库相关概念 结构化存储 图结构存储 实体关系存储 知识存储技术 JanusGraph介…

数据结构<1>——树状数组

树状数组&#xff0c;也叫Fenwick Tree和BIT(Binary Indexed Tree)&#xff0c;是一种支持单点修改和区间查询的&#xff0c;代码量小的数据结构。 那神马是单点修改和区间查询&#xff1f;我们来看一道题。 洛谷P3374(模板): 在本题中&#xff0c;单点修改就是将某一个数加上…

销售额稳居行业第二!苏州金龙2023年跑出高质量发展加速度

2023年&#xff0c;苏州金龙海格客车销量同比去年增25.75%&#xff0c;实现销售11453辆、销售额78亿元的业绩&#xff0c;稳居行业第二位&#xff0c;更跑赢行业大盘&#xff01; 聚焦主业&#xff0c;及时呼应客户需求&#xff1b;聚力新能源技术提升&#xff0c;抓住商用车价…

LabVIEW高级CAN通信系统

LabVIEW高级CAN通信系统 在现代卫星通信和数据处理领域&#xff0c;精确的数据管理和控制系统是至关重要的。设计了一个基于LabVIEW的CAN通信系统&#xff0c;它结合了FPGA技术和LabVIEW软件&#xff0c;主要应用于模拟卫星平台的数据交换。这个系统的设计不仅充分体现了FPGA在…

时间序列大模型:TimeGPT

论文&#xff1a;https://arxiv.org/pdf/2310.03589.pdf TimeGPT&#xff0c;这是第一个用于时间序列的基础模型&#xff0c;能够为训练期间未见过的多样化数据集生成准确的预测。 大规模时间序列模型通过利用当代深度学习进步的能力&#xff0c;使精确预测和减少不确定性成为…

光流估计概念和算法

什么是光流&#xff1f; 光流就是物体和观测者之间的互相运动&#xff0c;亮度变化的速度矢量&#xff0c;下图两张图片表示了光流的原理。 光流的算法有几个基本不变的假设&#xff1a; 1&#xff0c;光强不变假设&#xff1b; 一元的n阶泰勒公式&#xff1a; 在这里插入图…

Mysql复习1--理论基础+操作实践--更新中

Mysql 索引索引的分类 索引InnoDB引擎MyISAM引擎Memory引擎Btree索引支持支持支持hash索引不支持不支持支持R-tree索引不支持支持不支持Full-text索引5.6版本以后支持支持不支持 索引 解释说明: 索引指的是帮助mysql高效的获取数据的结构叫做索引(有序) 没有建立索引的时候–…

Shell 虚拟机基线配置脚本示例

这是一个配置虚拟机基线的示例&#xff0c;包含关闭防火墙、禁用SElinux、设置时区、安装基础软件等。 这只是一个简单的模板&#xff0c;基线配置方面有很多&#xff0c;后续可以按照这个模板去逐步添加 代码示例 [rootbogon ~]# cat bastic.sh #!/bin/bashRED\E[1;31m GRE…

微信万能表单源码系统:自定义表单内容+自由创建多表单 附带完整的代码包以及安装部署教程

在当今信息化社会&#xff0c;在线表单已经成为收集、处理数据的重要工具。无论是企业还是个人&#xff0c;都需要通过表单来进行信息的收集、调查、报名等操作。然而&#xff0c;传统的表单系统往往功能单一&#xff0c;无法满足复杂多变的需求。为了解决这一问题&#xff0c;…

Hadoop3完全分布式搭建

一、第一台的操作搭建 修改主机名 使用hostnamectl set-hostname 修改当前主机名 关闭防火墙和SELlinux 1&#xff0c;使用 systemctl stop firewalld systemctl disable firewalld 关闭防火墙 2&#xff0c;使用 vim /etc/selinux/config 修改为 SELINUXdisabled 使用N…

【操作系统】实验五 添加内核模块

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

《Linux设备驱动开发详解》读书笔记

《Linux设备驱动开发详解》读书笔记 本书主要介绍linux设备驱动开发的方法&#xff0c;共有21章&#xff1a; linux设备驱动概述及开发环境搭建驱动设计的硬件基础linux内核及内核编程linux内核模块linux文件系统与设备文件字符设备驱动linux设备驱动中的并发控制linux设备驱…

Stable Diffusion学习

参考 Stable Diffusion原理详解_stable diffusion csdn-CSDN博客 Stable Diffusion是stability.ai开源的图像生成模型&#xff0c;可以说Stable Diffusion的发布将AI图像生成提高到了全新高度&#xff0c;其效果和影响不亚于Open AI发布ChatGPT。 图像生成的发展 在Stable D…