基于Bsdiff差分算法的汽车OTA升级技术研究(学习)

摘要

针对汽车OTA整包升级时,用户下载时间长,升级时间长,设备服务器端压力大等问题,本文提出了一种基于Bsdiff差分算法的汽车OTA升级技术。该算法能够对比新旧版本的差异,进行差分文件下载,减少软件包的下载量,提高用户满意度,在保证安全性的前提下实现更为轻量化的升级。

引言

在未来汽车竞争中,车载软件将占据未来汽车创新的90%,这一数据也充分的体现了软件对未来的影响,相比于从前,嵌入式软件更加复杂,迭代速度更快,嵌入式软件对于整体嵌入式系统性能越来越重要。

OTA(Over-the-Air Technology)空中数据下载技术,在智能手机上通过使用无线移动电话通信的空中下载接口可以进行数据远程管理,是一种无线技术。

作为一个智能终端,不可避免地需要对运行时的问题进行及时调整修复,并不断加入新的功能特性。随着系统新功能的加入,用户应用程序的大量下载,系统升级活动越来越频繁。若每次升级都采取整包升级的方式,每次都要下载数据量巨大的升级包,不仅降低系统的实时性,同样设备服务器也将承受巨大压力。

汽车OTA差分升级系统架构

在这里插入图片描述

  • 首先是最上层的云端,主要负责升级的交互工作,进行OTA的管理与服务,升级包的检测下载和OTA文件分发等流程。
  • 其次是管端,通过4G网络建立终端与服务器之间的安全连接,确保全新的、待更新的固件安全地传输到车辆。
  • 终端负责实施哥哥软件更新到汽车。

升级包是在升级任务中,用于真正下载和安装部署的文件。升级包由若干个文件组成,数量庞大。在FOTA升级中的整包下载过程中,需要逐个文件进行下载,每个文件会进入等待序列等待下载,前一个文件下载成功后则进入下载队列。所以整包下载一般耗时较长。

在这里插入图片描述
需要检测到对应软件包已经更新,然后通知下载任务开始。在传输初始阶段,需要上传第一个文件(版本信息文件),车辆对当前文件进行信息检测。当车端监测成功并接收文件后,服务器端将继续传送第二个文件,然后车端继续判断再接收。以此方式反复,直到最后一个文件接收完毕,完成升级包的下载功能。

在这里插入图片描述
从版本V1到V2的升级包下载,只需要分析其中差分部分,完成下载并升级。差分下载不但可以完成相邻版本之间的升级,跨版本也可以完成,只是时间略有增加,但整体相对整包下载更少。

汽车OTA差分升级流程

汽车OTA差分升级一般分为三步:

  1. 生成差分更新包
  2. 传输差分更新包
  3. 安装更新

汽车OTA差分升级流程共分为四点:

  1. 服务器端向终端发送版本检测请求进行升级包的检测,如果服务器端版本与终端版本一致,则提示无新版本需要更新,否则进行升级包的发送。
  2. 当检测到新的版本,应继续检测之前是否下载过,如果曾经下载过,进行OTA断点续传功能,否则全新下载。
  3. 升级。

实验方案与升级

差分升级性能主要指升级时间,升级时间主要包括如下三部分:

  1. 下载时间Td。
  2. 校验时间Tc。
  3. 数据擦写时间Tr。

升级时间Tu = Td + Tc + Tr。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mariadb高可用MHA

本节主要学习了Mariadb高可用MHA的概述,案例如何构建MHA 提示:以下是本篇文章正文内容,下面案例可供参考 一、概述 1、概念 MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。…

【图像分类】理论篇 (4)图像增强opencv实现

随机旋转 随机旋转是一种图像增强技术,它通过将图像以随机角度进行旋转来增加数据的多样性,从而帮助改善模型的鲁棒性和泛化能力。这在训练深度学习模型时尤其有用,可以使模型更好地适应各种角度的输入。 原图像: 旋转后的图像&…

复习1-2天【80天学习完《深入理解计算机系统》】第六天

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

Ubuntu 连接海康智能相机步骤(亲测,成功读码)

ubuntu20.04下连接海康智能相机 Ubuntu 连接海康智能相机步骤(亲测,已成功读码)输出的结果 Ubuntu 连接海康智能相机步骤(亲测,已成功读码) (就是按照海康的提供的步骤和源码连接相机,流水账) 安装Ubuntu20.04安装gcc和g,IDmvs只…

OpenHarmony Meetup 广州站 OpenHarmony正当时—技术开源

招募令 OpenHarmony Meetup 广州站 火热招募中,等待激情四射的开发者,线下参与OpenHarmonyMeetup线下交流 展示前沿技术、探讨未来可能、让你了解更多专属OpenHarmony的魅力 线下参与,先到先得,仅限20个名额! 报名截止时间8月23日…

python_PyQt5运行股票研究python方法工具V1.2_增加折线图控件

承接【python_PyQt5运行股票研究python方法工具V1.1_增加表格展示控件】 地址:python_PyQt5运行股票研究python方法工具V1.1_增加表格展示控件_程序猿与金融与科技的博客-CSDN博客 目录 结果展示: 代码: 示例py文件代码(低位股…

STM32 F103C8T6学习笔记4:时钟树、滴答计时器、定时器定时中断

今日理解一下STM32F103 C8T6的时钟与时钟系统、滴答计时器、定时器计时中断的配置,文章提供原理,代码,测试工程下载。 目录 时钟树与时钟系统: 滴答计时器: 定时器计时中断: 测试结果: 测…

时序预测 | MATLAB基于扩散因子搜索的GRNN广义回归神经网络时间序列预测(多指标,多图)

时序预测 | MATLAB基于扩散因子搜索的GRNN广义回归神经网络时间序列预测(多指标,多图) 目录 时序预测 | MATLAB基于扩散因子搜索的GRNN广义回归神经网络时间序列预测(多指标,多图)效果一览基本介绍程序设计学习小结参考资料效果一览

大数据_SLA,SLO,SLI 名词解读

参考 : SLI、SLO和SLA,一文彻底搞懂!!!_木给哇啦丶的博客-CSDN博客 前言 SLO和SLA是大家常见的两个名词:服务等级目标和服务等级协议。 云计算时代,各大云服务提供商都发布有自己服务的 SLA 条…

【CHI】(三)网络层

网络层负责确定目标节点的NodeID。本章包含以下部分: 系统地址映射,SAM节点ID目标ID确定网络层flow示例 1. System address map 系统中每个Requester(包括RN和HN)必须有一个System Address Map(SAM)来决定一个request的target ID。SAM的范围可能只是简…

基于PSO-KELM的时间序列数据预测(含对比实验)

前段时间有粉丝私信想让我出一期对时间序列预测的文章,所以今天它来了。 时间序列数据,如股指价格,具有波动性、非线性和突变的特点,对于这类数据的预测往往需要可靠强健的预测模型,而传统的机器学习算法如SVM、BP等…

c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)

//这个发送端代码 #include "reg51.h" #include "myheader.h" #define uchar unsigned char long int sleep_i0; long int main_i0; void main() {uchar sendx[6]{2,0,2,3,8,1};sleep(2000);TMOD0x20;TH10XF4;//根据波特率计算公式这里需要设置为这么多才能…

02 基于51单片机的LED闪烁实验

目录 前言 一、整体目录结构 二、代码展示 三、main.c代码解析 四、下载到单片机中 总结 前言 前面我们已经学会了点亮一个led的实验,今天我们来实现LED闪烁。前面我们讲到想要让LED亮的话,只要给单片机引脚高电平就好了,如果给LED低电平的话…

竞赛项目 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

Android 面试笔记整理-Binder机制

作者:浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道…

LeetCode 1631. Path With Minimum Effort【最小瓶颈路;二分+BFS或DFS;计数排序+并查集;最小生成树】1947

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

流量日志分析--实操

[鹤城杯 2021]流量分析 <--第一道流量分析不难,主要就是布尔盲注的流量包分析,直接查看http请求包即可我们可以通过观察看到注入成功的响应长度不同,这里成功的为978字节,失败的994字节.不要问为什么.其实也可以直接判断.978的流量比994的少了非常多 显然就是成功的(因为这里…

LeetCode--HOT100题(26)

目录 题目描述&#xff1a;142. 环形链表 II&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;142. 环形链表 II&#xff08;中等&#xff09; 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返…

antd中Switch组件的使用

<Switch> 是 Ant Design 中的一个组件&#xff0c;用于在开关之间切换。checkedChildren 是 <Switch> 组件的一个属性&#xff0c;用于指定在开关打开时显示的文本或 React 元素。 以下是 <Switch> 组件的基本语法&#xff1a; import { Switch } from ant…

【大数据】一些基本概念

一、数据库、数据仓库、数据湖 1.什么是数据库 (Database, DB) 数据库是指长期储存在计算机中的有组织的, 可共享的数据集合 就是存储数据的仓库 数据库有三个特点: 永久存储, 有组织, 可共享 数据库是一种结构化数据存储技术&#xff0c;用于存储和管理有组织的数据。数据库…