加速汽车软件升级——堆栈刷写技术的应用与挑战

server/2025/2/10 9:29:33/

0e58a81c-d8b8-4325-a315-ee2558c05bd0

一、背景和挑战

| 背景:

当前汽车市场竞争激烈,多品牌并存,新车发布速度加快,价格逐渐降低,功能日益多样化。随着车辆功能的不断提升与优化,ECU(电子控制单元)的代码量也随之增加,这导致用户在每次车辆软件升级时需要等待较长时间,影响用户体验,进而影响各汽车制造商(OEM)的品牌声誉。为了解决这一问题,确保控制器稳定运行,提升软件刷写的效率,同时不断满足用户的多样化需求,堆栈刷写技术应运而生。

| 技术挑战:

1.确保刷写过程的稳定性:避免在刷写过程中出现中断或错误,导致ECU损坏、文件不完整等;

2.优化刷写的效率:缩短刷写时间,提升生产线和售后刷写的效率;

3.保证刷写数据的可靠性:确保数据在刷写的过程中不会被泄露。

二、什么是堆栈刷写

堆栈刷写也叫Queued Flash是一种快捷、有效的数据刷写。在运行刷写时,上位机对ECU同时发送多帧连续的诊断请求到控制器。与传统刷写不同的是,在传统的刷写流程中,上位机和ECU之间是一种一问一答的形式,这就意味着上位机必须等到上一个诊断请求响应后,才能发送下一个诊断响应,从而导致数据传输出现过剩的情况,刷写速度变缓。

堆栈刷写是在初个诊断请求发出去后,无需等待响应,即可接着发送诊断请求,直到缓存饱和,由此可大大提升刷写速率

1f68c152-a84f-453f-8850-b4154869f4ee
(图1 传统刷写和堆栈刷写区别)

三、堆栈刷写方案

| 方案概述:

本文讲述的堆栈刷写实现方案,是由风丘科技自研的工程诊断仪Q-Testr.Expert车辆通信卡MC800组成。其主要原理是,将车辆通信卡和电脑连接在一起,实现电脑和通信卡的连接,进而连接到车辆,实现诊断报文的收发。

5403cb95-d0a5-44db-99c5-fab5d0982851
(图2 方案逻辑图)

| 队列刷写原理:

下文将以一个堆栈刷写的流程示意图进行简单阐述。​​​​​​​

68590389-3d6f-4b87-b946-9ad9822cb5db
(图3 堆栈刷写原理图)

T1时刻:Tester(上位机)发送36 01用来请求,请求刷写数据的一个Block块,之后ECU(控制器)给出流控帧表明自己的诊断传输能力;

T2时刻:Tester发送完最后一个Block块后,没有等待ECU的响应,而是直接发送了下一个请求36 02;

T3时刻:ECU响应36 01正响应;

T4时刻:ECU响应7F 36 78,表示此刻在处理其他的诊断请求,需要等待一会儿。

堆栈刷写核心在于Tester多帧请求发送顺序不能乱,且接收的响应也应按照诊断请求的顺序。

| 优势:

1. 大大提升了刷写速率,尤其在生产线上,每个工位都是有固定的时间,避免因刷写速度缓慢而导致停线,并减少停线时间。

2. 堆栈刷写的大小可设置,便于用户更好管理刷写过程,并可根据实际情况调整刷写堆栈大小,优化资源利用。

3. 对于较大的软件更新包,用户往往需要等待较长时间来完成车辆的升级过程。然而,利用堆栈刷写技术,即可大大缩短这一等待时间,使用户能够更快获取软件新版本,确保汽车系统始终保持实时更新状态......

请点击此处,查看剩余30%精彩内容!

| 往期回顾

▶ 探索ECU升级:基于UDS的ECU诊断刷写流程

▶ “软件定义汽车”时代 | 产线海量数据刷写解决方案


http://www.ppmy.cn/server/166456.html

相关文章

22.2、Apache安全分析与增强

目录 Apache Web安全分析与增强 - Apache Web概述Apache Web安全分析与增强 - Apache Web安全威胁Apache Web安全机制Apache Web安全增强 Apache Web安全分析与增强 - Apache Web概述 阿帕奇是一个用于搭建WEB服务器的应用程序,它是开源的,它的配置文件…

【Flink快速入门-8.Flink Flink 架构介绍】

Flink 架构介绍 实验介绍 经过前⾯的⼏个实验,相信⼤家已经对 Flink 有了⼀定的认识。但是在学习⼀个技术框架 的时候,除了 API ,我们还必须了解其架构体系,这样我们才会对它有一个更加全面的认识。所以本节实验我们重点来学习 …

深度学习 OpenAI的DALL-E等模型可以根据用户输入的文字描述生成图像

要使用类似 OpenAI 的 DALL - E 模型根据文字描述生成图像,你可以借助 OpenAI 的 API 来实现。以下是详细步骤和代码示例: 1. 准备工作 1.1 安装必要的库 首先,你需要安装 openai 库,可使用以下命令进行安装: pip install openai1.2 获取 API 密钥 你需要在 OpenAI 平…

PAT甲级1053、 Path of Equal Weight

题目 Given a non-empty tree with root R, and with weight Wi​ assigned to each tree node Ti​. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the path from R to any leaf node L. Now given any weighted tree…

智慧停车场解决方案(文末联系,领取整套资料,可做论文)

一、方案概述 本智慧停车场解决方案旨在通过硬件设备与软件系统的深度整合,实现停车场的智能化管理与服务,提升车主的停车体验,优化停车场运营效率。 二、硬件架构 硬件设备说明: 车牌识别摄像机:安装在停车场入口和…

【Pytorch函数】PyTorch随机数生成全解析 | torch.rand()家族函数使用指南

🌟 PyTorch随机数生成全解析 | torch.rand()家族函数使用指南 🌟 📌 一、核心函数参数详解 PyTorch提供多种随机数生成函数(注意:无直接torch.random()函数),以下是常用函数及参数:…

数据分析如何做EDA

探索性数据分析(EDA,Exploratory Data Analysis)是数据分析过程中至关重要的一步,其目的是通过统计和可视化技术对数据进行初步分析,从而揭示数据的潜在模式、特征和异常值,并为后续的数据预处理、特征工程…

【函数题】6-9 二叉树的遍历

6-9 二叉树的遍历 1 题目原文2 思路解析2.1 层序遍历2.2 先序遍历2.2.1 递归实现2.2.2 使用栈将递归转为迭代2.2.3 Morris 前序遍历 2.3 中序遍历2.3.1 递归实现2.3.2 使用栈将递归转为迭代2.3.3 Morris 中序遍历 2.4 后序遍历2.4.1 递归实现2.4.2 使用栈将递归转为迭代2.4.3 M…