当前位置: 首页 > news >正文

FBL刷写

刷写

  • 1、刷写需求的理解
  • 2、刷写流程
    • 2.1、预编程阶段:保证在编程阶段的动作能够正常操作,控制器给响应。整车功能不会出现问题 刷写某一控制器时,避免其他控制器集DTC,85控制DTC; 28 通信控制.保证总线负载率不要过高(下发的数据流比较大),保证刷写的稳定性。
    • 2.2、主编程阶段:更新控制器的软件,数据的刷写,类似于手机APP升级。
    • 2.3、编程后阶段:保证更新的控制器功能恢复正常,整车的其他控制器恢复正常。为了避免误记DTC。
  • 3、刷写过程中,故障注入。线错误再次刷写成功

1、刷写需求的理解

开发诊断的目的:
1、车辆出现故障,快速定位。排查故障 售后;
2、利用uds在售后功能匹配,诊断功能,车辆下线 2F 下线。车钥匙和车的一个匹配学习的过程,保证钥匙与车辆的VIN码的匹配学习,胎压监测,四轮的学习过程;
3、为了刷写。
开发刷写的目的:
更新控制器的软件,不用换件,类似于手机APP升级。

每一辆车的控制器都需要刷写,那么刷写需要整车都每个进行刷写,还是供应商把控制器进行刷写之后,主机厂进行组装即可。
刷写的形式不定,可以统一也可以做定制刷写。
刷写的形式也是不一样的,可以通过T-Box远程进行升级;也可以车辆召回,进行刷写。如果是总线刷写,只能是一一进行刷写,而以太网可以进行一对多的刷写,速率更高。对于大文件传输 38;37服务只是对于数据的传输。

刷写测试,验证的就是刷写能否成功,但是刷写后,控制器能否按刷写的程序正常工作,属于功能测试,比如刷写后控制器新增语音识别。

刷写是对APP数据进行刷写,APP的数据类似于手机app,给每个控制器刷写相应的功能,一般刷写的flash文件为摩托罗拉S-record格式.s19结尾的文件或者英特尔格式 .hex结尾的文件。

2、刷写流程

正常刷写流程,验证控制器可以刷写成功。连续刷可以刷成功

2.1、预编程阶段:保证在编程阶段的动作能够正常操作,控制器给响应。整车功能不会出现问题 刷写某一控制器时,避免其他控制器集DTC,85控制DTC; 28 通信控制.保证总线负载率不要过高(下发的数据流比较大),保证刷写的稳定性。

1、功能寻址的 10 83;
2、告诉被刷写的控制器 31 01 DF 01 DF 01 例程DID,检查编程预条件,整车的车速检查;
3、功能寻址 停止DTC记录 先发 85 再发28。 先发28 已经记录DTC了 节点丢失DTC
4、功能寻址 停止通信。
注意:刷写过程中需要所有的控制器满足,上位机周期性发送7DF 02 3E 80诊断命令时,所有的控制器可以正常保持会话功能。
如果不发送诊断仪在线,会话会在5s超时之后,控制器的通信会重启,影响刷写的过程。所以要发送诊断仪在线,让控制器维持在通信关闭的状态,保证总线负载率不要过高(下发的数据流比较大),保证刷写的稳定性。

2.2、主编程阶段:更新控制器的软件,数据的刷写,类似于手机APP升级。

针对刷写的控制器,所以全部是物理寻址。
前提条件:会话和安全访问
下载flash driver 成本原因 flash放在板子里 程序不稳定。
若控制器有flash driver 请求下载flash driver、开始传输数据、请求退出传输、检查程序一致性则不需要。
app数据下载
程序依赖性检查

2.3、编程后阶段:保证更新的控制器功能恢复正常,整车的其他控制器恢复正常。为了避免误记DTC。

重启被刷件;
开启所有控制器的通信;
清除所有控制器DTC;

3、刷写过程中,故障注入。线错误再次刷写成功

核心:执行一个错误流程,再次执行正确流程,执行成功
故障注入:内存擦除(经典位置)
验证DUT在刷写FBL流程,在擦除内存程序过程前/中,注入各类故障后,恢复正常条件下ECU是否能够正常刷写。
故障注入:数据传输中(经典位置)
验证DUT在刷写FBL流程,应用数据传输中注入线错误。供电正常之后,执行正常的刷写流程,重编程成功。
故障注入:通信中断故障
验证DUT在刷写FBL流程,应用数据传输中通信中断。通信恢复正常之后,执行正常的刷写流程,重编程成功。
应用数据传输中到50%时上位机停发数据
通信恢复正常,执行正常的刷写流程。

2.3、刷写过程中的验证:数据的校验
刷写过程中的验证(执行一个错误的流程,再次执行正确流程,执行成功)
地址错误和长度错误验证,比如flash的地址错误,重复刷写某一块的数据。

不可重编程ECU的通用需求
例子:要刷写PT子网的VCU,但是ECM不支持刷写。

3、刷写的测试报告
连续刷写
对于刷写测试,目前熟悉整个刷写的流程。正常刷写流程:验证控制器可以刷写成功且可以连续刷写;刷写过程中,故障注入:执行某个错误流程,再次执行正确流程,刷写成功;刷写过程中的验证:进行数据的校验。刷写是对APP数据进行刷写,更新控制器的软件,不用换件,类似于手机APP升级。
内存擦除前断电
内存擦除之前,根据流程应该是检查程序一致性后,控制器回复了一个正响应。
现象:注入故障重启之后,发送10 03 返回负响应 7E,子功能在当前会话不支持。
原因:控制器还在编程会话,没有返回默认会话。
在这里插入图片描述
现象:请求密钥种子时,控制器回复seed全部是00 什么含义
安全访问还未退出,
在这里插入图片描述
现象:发送27 02 时 控制器回复负响应 24 ,顺序不对
原因:控制器一直处于安全等级状态下,而27 02给正响应的前提,27 01 必须是过的。安全访问下,发送27 01 控制器没有回复密钥种子,在进行 27 02 的访问 故是负响应。
在这里插入图片描述
内存擦除中CAN_H和地短接
擦除的过程中,会回复nrc 78 等待 就是正在内存擦除中。

相关文章:

FBL刷写

刷写 1、刷写需求的理解2、刷写流程2.1、预编程阶段:保证在编程阶段的动作能够正常操作,控制器给响应。整车功能不会出现问题 刷写某一控制器时,避免其他控制器集DTC,85控制DTC; 28 通信控制.保证总线负载率不要过高(下…...

OpenCV-Python(24):模板匹配

原理及介绍 模板匹配是一种常用的图像处理技术,它用于在一幅图像中寻找与给定模板最匹配的区域(在一副大图中搜寻查找模版图像位置的方法)。模板匹配的基本思想是将模板图像在目标图像上滑动,并计算它们的相似度,找到相似度最高的位置即为匹配…...

机器学习--回归算法

🌳🌳🌳小谈:一直想整理机器学习的相关笔记,但是一直在推脱,今天发现知识快忘却了(虽然学的也不是那么深),但还是浅浅整理一下吧,便于以后重新学习。 &#x1…...

计算机网络——多址复用技术

1. 频分多址(FDMA) 1.1 基本原理 频率分配:在FDMA系统中,整个可用的频带被分割成多个较小的频带或通道。每个通道分配给一个用户。 时间利用:用户在分配给他们的频道上持续进行通信,不受时间限制。 1.2 优…...

stm32 HAL库 4096线ABZ编码器

[TOC]目录 ABZ编码器 4096线 买的是这个 AB相代表计数方向,Z代表过零点 cubemx配置 定时器Encoder 也可以选上DMA 中断 Z相GPIO中断 找一个空闲管脚 打开对应中断 代码 不用DMA int main(void) {short Enc_cnt 0;HAL_TIM_Encoder_Start_IT(&ht…...

Java爬虫之Jsoup

1.Jsoup相关概念 Jsoup很多概念和js类似,可参照对比理解 Document :文档对象。每份HTML页面都是一个文档对象,Document 是 jsoup 体系中最顶层的结构。 Element:元素对象。一个 Document 中可以着包含着多个 Element 对象&#…...

如何在 C# 12 中使用主构造函数

C# 12 中最引人注目的新功能之一是对主构造函数的支持。主构造函数的概念并不新鲜。包括 Scala、Kotlin 和 OCaml 在内的多种编程语言都支持直接在声明类的位置集成构造函数参数。 在本文中,我们将仔细研究主构造函数以及如何在 C# 12 中使用它们。若要运行本文中提…...

Zookeeper之Java客户端实战

ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。可供选择的Java客户端API有: ZooKeeper官方的Java客户端API。第三方的Java客户端API,比如Curator。 接下来我们将逐一学习一下这两个java客户端是如何操作zookeeper的。 1. ZooKe…...

将文本文件导入Oracle数据库的简便方法:SQL Loader Express

需求 我有一个文本文件dbim.txt,是通过alert log生成的,内容如下: 2020-09-11 2020-09-11 ... 2023-12-03 2023-12-03 2023-12-26我已经在Oracle数据库中建立了目标表: create table dbim(a varchar(16));我想把日志文件导入Or…...

element-ui table-自定义表格某列的表头样式或者功能

自带表格 自定义表格某列的表头样式或者功能 <el-table><el-table-column :prop"date">//自定义表身每行数据<template slot-scope"scope">{{scope.row[scope.column.label] - ? - : scope.row[scope.column.label]}}</template>…...

Android 13.0 SystemUI状态栏居中显示时间和修改时间显示样式

1.概述 在13.0的系统rom定制化开发中,在systemui状态栏系统时间默认显示在左边和通知显示在一起,但是客户想修改显示位置,想显示在中间,所以就要修改SystemUI 的Clock.java 文件这个就是管理显示时间的,居中显示的话就得修改布局文件了 效果图如下: 2.SystemUI状态栏居中显…...

讲解eureca和nacus的区别

Eureca和Nacus都是远程过程调用&#xff08;RPC&#xff09;框架&#xff0c;用于实现分布式系统中不同节点之间的通信。它们之间的主要区别如下&#xff1a; 架构设计&#xff1a;Eureca是一个基于JavaScript的RPC框架&#xff0c;它使用了WebSockets作为传输层协议。Eureca C…...

python中parsel模块的css解析

一、爬虫页面分类 1.想要爬取的内容全部在标签中&#xff0c;可以使用xpath去进行解析如下图 2.想要爬取的内容呈现json的数据特征&#xff0c;用.json()转换为字典格式 3.页面不规则&#xff0c;标签中包含大括号&#xff0c;如下面想要获取键值内容怎么做&#xff0c;先用re正…...

Oracle OCP怎么样线上考试呢

大家好&#xff01;今天咱们就来聊聊Oracle OCP这个让人又爱又恨的认证。为啥说又爱又恨呢&#xff1f;因为它既是IT界的“金字招牌”&#xff0c;又是一块硬骨头&#xff0c;不是那么容易啃下来的。好了&#xff0c;废话不多说&#xff0c;我们直奔主题&#xff0c;来看看关于…...

如何让自己的写的程序在阿里云一直运行

购买了阿里云服务器后&#xff0c;每次要用自己写在阿里云的服务器程序都要连接到云端 然后./运行该程序&#xff0c;而且每次一断开终端&#xff0c;该服务器就会自动停止&#xff0c;这样使用相当麻烦。那怎样才能让我们的服务器一直在云端后台运行&#xff0c;即便退出终端…...

【计算机图形学】NAP: Neural 3D Articulation Prior

文章目录 1. 这篇论文做了什么事&#xff0c;有什么贡献&#xff1f;2. Related Work铰接物体建模3D中的Diffusion model扩散模型 3. Pipeline铰接树参数化基于Diffusion的铰接树生成去噪网络 4. 实验评价铰接物体生成——以往做法与本文提出的新指标NAP捕捉到的铰接物体分布质…...

知识付费平台搭建?找明理信息科技,专业且高效

明理信息科技知识付费saas租户平台 在当今数字化时代&#xff0c;知识付费已经成为一种趋势&#xff0c;越来越多的人愿意为有价值的知识付费。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。同时&#xff0c;开发和…...

CentOS7部署Kafka

CentOS7部署Kafka 一、部署1、前置条件2、下载与解压3、修改配置4、启动kafka二、使用详解1、创建一个主题2、展示所有主题3、启动消费端接收消息4、生产端发送消息三、代码集成pom.xmlapplication.propertiesKafkaConfiguration.javaKafkaConsumer.javaKafkaProducer.javaVehi…...

JS的防抖和节流

目录 防抖 搜索框带来的问题 实现的思路 案例 封装防抖函数 节流 滚动条加载带来的问题 实现的思路 案例 封装节流函数 防抖 搜索框带来的问题 需求&#xff1a;根据输入框内容来请求数据 <!DOCTYPE html> <html lang"en"> <head><…...

互联网加竞赛 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类

文章目录 0 简介1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径&#xff0c;图像尺寸&#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...