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

news2024/9/20 14:54:22

在这里插入图片描述

从0开始学习CANoe使用
从0开始学习车载测试
相信时间的力量
星光不负赶路者,时光不负有心人。

在这里插入图片描述

目录

  • 流程概述
  • UDS流程详解释
  • 前编程
    • ①诊断会话控制 - 切换到扩展会话(10 03)
    • ②例程控制-预编程条件检查(31 01 02 03)
    • ③DTC设置控制 - 关闭DTC(85 02)
    • ④通讯控制 -关闭收发(28 01 03)
  • 主编程
    • ⑤诊断会话控制 - 切换到扩展会话(10 02)
    • ⑥ 安全访问 - 请求种子/密钥(27 07/08)
    • ⑦指纹信息写入 - (2E xx)
    • ⑧Flash Driver下载-请求下载(34 00 44(地址+长度))
    • ⑨ Flash Driver下载-数据传输(36 01+驱动数据长度)
    • ⑩Flash Driver下载-请求退出(37)
    • ⑪例程控制-完整性检查(31 01 02 02+校验算法)
    • ⑫例程控制-擦除内存(31 01 FF 00 44+(地址+长度))
    • ⑬软件下载-请求下载(34 00 44(地址+长度))
    • ⑭软件下载-数据传输(36 01+驱动数据长度)
    • ⑮软件下载-请求退出(37)
    • ⑯例程控制-完整性检查(31 01 02 02+校验算法)
    • ⑰例程控制-检查编程依赖性(31 01 FF 01)
    • ⑱ECU重置 - 硬件重置(11 01)
  • 后编程
    • ⑲诊断会话控制 - 切换到扩展会话(10 03)
    • ⑳通讯控制 -打开收发(28 00 03)
    • ㉑DTC设置控制 - 打开DTC(85 01)
    • ㉒清除DTC(14FFFFFF)
    • ㉓诊断会话控制 - 切换到默认会话(10 01)

流程概述

在这里插入图片描述
基于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)

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

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

相关文章

ClickHouse分布式部署搭建单分片二副本集群

搭建单分片二副本集群,使用MergeTree引擎测试数据同步 服务器: 127.0.0.1 clickhouse 127.0.0.2 clickhouse + keeper 结构图 1.修改hosts vi /etc/hosts 添加需要部署的ip和名字 127.0.0.1 node1 127.0.0.2 node2 2. node1配置文件修改 2.1 修改/etc/clickhouse-se…

Excel中使用VBS自定义函数将中文转为拼音首字母

1、在“开发工具”中&#xff0c;点击“Visual Basic”。如果没有“开发工具”&#xff0c;则添加。 2、添加“模块”&#xff0c;在窗口中添加自定义函数。 Function MyGetPYChar(char) MyCodeNumber 65536 Asc(char) If (MyCodeNumber > 45217 And MyCodeNumber <…

【网络安全】缓存配置错误导致授权绕过

未经许可,不得转载。 文章目录 正文复现正文 一个电子商务网站,它有 2 个资产:target.com和admin.target.com target.com是面向用户的门户,用户可以去那里购买物品。admin.target.com是卖家的管理门户,卖家可以在其中列出他们的物品,跟踪订单、客户信息等。 我正在测试…

有希带你深入理解指针(3)

前言 本篇文章是对指针知识的进一步讲解&#xff0c;如果对部分知识有不了解的地方可以移步前文进行学习&#xff01; 1.字符指针变量 该内容我们在前面的文章中已提到过&#xff0c;想必大家对它应该不陌生吧&#xff01;这里我们会对它进行详细的介绍。 一般情况下&#xf…

FPGA开发——IIC实现简单的串口回环

一、概述 在我们进行日常开发时&#xff0c;不管是进行MCU、单片机、还是FPGA&#xff0c;都会使用到IIC通信协议。采用串行总线可以简化系统硬件结构、减小系统体积、提高系统可靠性。常 用的串行总线有单总线&#xff08;1-Wire Bus&#xff09;、IIC&#xff08;Inter-Integ…

Codeforces Round 926 (Div. 2) C. Sasha and the Casino (博弈论*1400)

这里的意思是想让我们求得是否是能够实现不停地无上限的赚钱。 这里注意避开一个思维误区&#xff0c;如果你想的是前x次一直用1枚硬币然后吃第x1次保底&#xff0c;那么就是错误的。你应该考虑到如果前x次里面出现了胜利呢&#xff1f;这时候你拿着一枚硬币根本赚不回本。 所…

全志H616系统启动和登录

一、系统启动 刷完机烧入镜像&#xff0c;直接用MobaXterm软件串口登陆 约定固定的波特率115200。 默认登录&#xff1a; 用户&#xff1a;orangepi 密码&#xff1a;orangepi 或用户&#xff1a;root 密码&#xff1a;orangepi 在输入密码时…

YOLO 单目测距:原理、方法与代码

一、原理 单目测距的一个常见方法是假设物体的尺寸已知。通过测量物体在图像中的高度&#xff08;或宽度&#xff09;&#xff0c;并结合物体的实际高度&#xff08;或宽度&#xff09;&#xff0c;最简单的一种方式就是利用相似三角形的原理来计算物体的距离。 二、相似三角…

使用深度学习来进行击剑动作识别的裁判工作

在击剑比赛中&#xff0c;当双方几乎同时击中对方时&#xff0c;记分板两边都会亮起。这时裁判需要决定哪一方得分。一般而言&#xff0c;谁更主动或控制了局势就会得分。我尝试训练了一个模型来辅助裁判做这样的判断&#xff01;目前该模型在花剑测试集上的准确率大约为60%&am…

Vue开发者工具安装详细教程

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 前言一、下载二、安装三、调试 前言 Vue 是一个框架&#xff0c;也是一个生态&#xff0c;其功能覆盖了大部分前端开发常见的需求。本文详细讲解了 Vue 开发者工具的安装。 …

ES7.17.5 float类型 terms带来的隐患

背景 1.用户在mapping中加一个字段 testid&#xff0c;结果写数据的时候使用 testId&#xff0c;同时也没有strict限制动态mapping&#xff0c;只是使用了默认的 true&#xff0c;即允许动态生成mapping 2.动态生成的字段 testId 被识别成了 float&#xff0c;用户为了方便&a…

【Netty 一】

Netty是什么 Netty 是一个高性能、异步事件驱动的 NIO 框架&#xff0c;基于 JAVA NIO 提供的 API 实现。它提供了对 TCP、 UDP 和文件传输的支持&#xff0c;作为一个异步 NIO 框架&#xff0c; Netty 的所有 IO 操作都是异步非阻塞 的&#xff0c; 通过 Future-Listener 机制…

ssrf漏洞之——漏洞复现

漏洞介绍 SSRF漏洞&#xff1a;SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由恶意访问者构造url&#xff0c;由服务端对此url发起请求的一个安全漏洞。 漏洞原理 SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&#xff0c;并且没有对目…

Autosar(Davinci) --- 创建一个Implementation Data Types

前言 这里我们讲一下如何创建一个Implementation Data Types&#xff08;IDT) 一、什么是IDT 二、如何创建一个IDT 鼠标右键【Implementation Data Types】,选择【new Type Reference...】 起一个名字【IdtDoorState】&#xff0c;Data Types选择【boolean】&#xff0c;这里…

RFID光触发标签应用于制造业供应链管理的应用与探索

制造业作为国民经济的支柱产业&#xff0c;其供应链管理的复杂性和重要性日益凸显&#xff0c;在全球化竞争的背景下&#xff0c;企业需要更高效、更精准、更智能的供应链解决方案来满足市场需求&#xff0c;提高客户满意度&#xff0c;降低运营成本&#xff0c;RFID光触发标签…

【mysql】mysql的卸载和安装

mysql的卸载 mysql是否安装&#xff1a; 首先我们先来看看mysql是否安装&#xff1a; 快捷键winR输入cmd&#xff0c;进入命令输入框 输入mysql --version 查看mysql的版本 如果出现了mysql的版本就说明你已经安装了 系统用户root -p就是输入密码所以代码如下 mysql -ur…

AI大模型编写多线程并发框架(六十一):从零开始搭建框架

系列文章目录 文章目录 系列文章目录前言一、项目背景二、第一轮对话-让AI大模型理解我们的诉求二、第二轮对话-优化任务处理方法和结果处理方法三、参考文章 前言 在这个充满技术创新的时代&#xff0c;AI大模型正成为开发者们的新宠。它们可以帮助我们完成从简单的问答到复杂…

模拟实现STL中的unordered_map和unordered_set

目录 1.unordered_map和unordered_set简介 2.unordered_map和unordered_set设计图 3.迭代器的设计 4.哈希表的设计 5.my_unordered_map和my_unordered_set代码 1.unordered_map和unordered_set简介 unordered_map和unordered_set的使用非常类似于map和set&#xff0c;两…

【Linux】日志函数

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 引言日志内容日志等级日志函数的编写函数原型参数说明功能描述使用场景示例代码 引言 日志在程序设计中扮演着至关重要的角色&#xff0c;它不仅是程序运行情况的记录者&#xff0c;还是问题诊断、性…

【机器学习】智驭未来:机器学习如何重塑现代城市管理新生态

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#xff1a;迈向智能城市的新时代&#x1f4d2;2. 智驭交通&#xff1a;机器学习在智能交通管理中的应用&#x1…