TC3xx A\B SWAP机制的小细节(1)

目录

1.汽车OTA背景

1.1 汽车为什么需要OTA

1.2 汽车OTA概念

2. MCU的硬件A\B Swap机制

3.小结


1.汽车OTA背景

1.1 汽车为什么需要OTA

谈到英飞凌TC3xx的A\B SWAP硬件机制,我们首先要搞懂它的应用场景--OTA。

在手机或者电脑上,我们几乎每天都可以收到应用程序的OTA推送,现如今随着智能网联的发展,汽车更像是一台大型的智能移动终端。据统计,当前一台智能网联汽车内部可能部署了多达上百个ECU,代码行数以亿为单位,其复杂程度可想而知。

有软件的地方就有bug,那么在汽车这种生命周期长达数十年的终端上,OEM如何去更新和维护汽车里各种ECU的Bug修复、功能迭代和更新?

回想一下,大约在10年以前,汽车还不具备网联功能,手机流量也是贵的可怕,要想使用导航,只能使用车载导航巨头凯立德;而要想升级地图信息只能跑到4S店,还得付费才能更新。

同样,在以前各大车企要升级汽车软件功能或者修复Bug,通常也是要求汽车物理召回,通过线下OBD升级的方式来实现,这样不仅费时费力,还不能保证每台汽车都能升级。

换句话说,在汽车网联化未发展前,OEM将汽车生产并卖出后,基本就失去了售后市场这块价值洼地。

如今,随着网络的飞速发展,OTA被引用到汽车行业。Tesla利用OTA来实现付费升级、软件召回,节省大量成本,在汽车后市场掀起了软件付费的趋势。不难看出,汽车OTA会在今后越来越重要。

1.2 汽车OTA概念

当前汽车一个比较典型的OTA架构如下:

待更新的数据通过OEM OTA云端下发给车端的T-Box,然后经由检验或者透传给网关,网关作为升级主节点来管理控制车内所有的ECU升级,对于具备自更新能力的ECU,它可以直接将数据发送至目标ECU,只需要负责收集反馈更新结果;对于不具备更新能力的ECU,网关还需要充当升级Master阶段,待升级ECU作为Slave,双方通过UDS完成升级。

OTA根据升级内容的不同可以分为SOTA和FOTA:

  • SOTA(Software over-the-air)多用于座舱系统,例如IVI主题、导航等升级,这部分内容最容易被用户感知
  • FOTA(Firmware over-the-air)则面向汽车其他ECU的功能升级,包括车身、底盘、智驾等ECU,例如23年汉兰达利用OTA修复了发动机控制器燃油喷射修正程序不完善的问题,这部分升级更为专业,同时涉及到整车网络中多个节点,升级难度也剧增

我们今天主要讨论的就是FOTA。

2. MCU的硬件A\B Swap机制

OEM对于OTA的升级在大方向上有如下需求:

  • 升级时要求无感,即系统在运行时仍可下载程序,零待机时间
  • 针对升级异常处理要求始终有一个可工作的备份程序用于回滚

因此很多芯片厂就从硬件上提供利于OTA升级的机制,例如英飞凌TC3xx A\B SWAP机制,ST SPC58NH92 Hardware flash A/B context swapping机制、NXP S32K3 AB_SWAP机制等等,在该机制下,Flash需要支持RWW(Read While Write)属性,它的空间根据芯片厂的设计分为两个Bank(也有称partitions),这两个物理Bank可以由硬件交替分配一个统一的逻辑地址,在系统运行时,有且只有一个Bank 可以运行代码(称为Actife Bank),而另一个Bank 则称为inactive Bank,我们就可以在A运行时去刷写新的代码到B Bank上,下次系统重新上电后自动切换到最新的B Bank开始取指运行,从而实现了零待机时间,其原理如下图所示:

上述方案的好处在于我们只需要使用同一个链接文件,编译一个工程即可,这样利于维护。

从上面我们可以知道,芯片硬件A\B SWAP机制通常需要两块相同大小的Flash,所以例如英飞凌TC37x在不使用SWAP机制最高有6MB Flash供大家使用,一旦开启SWAP机制,则容量减半,只能用3MB了,因此在设计时我们需要特别考虑程序大小。

3.小结

本文主要把OTA的概念,以及MCU的硬件A\B Swap机制做了简单介绍,下面我们来聊聊TC3xx的SWAP机制

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaEE进阶----SpringBoot快速入门

文章目录 前言一、了解Maven1.1 Maven功能- 项⽬构建- 管理依赖 1.2Maven仓库 二、第一个SpringBoot项目总结 前言 Spring Boot是一个用于构建快速、简单和可扩展的生产级应用程序的框架。它基于Spring框架,提供了开发微服务和独立的应用程序所需的一切。 一、了解…

一、开发环境安装 Avalonia

1、概述 官网中是这么介绍Avalonia的,Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序。它使用自己的渲染引擎绘制UI控件,确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。这…

2024年8款最受欢迎的开源看板系统

开源看板系统有哪些?本文将盘点国内外主流的8款看板系统:PingCode、Kanboard、Worktile、Wekan、OpenProject、TAIga、Focalboard。 今天想和大家探讨的是开源看板系统。作为一个热衷于项目管理和效率提升的爱好者,我在这方面也是小有研究。开…

基于DPU的云原生裸金属服务快速部署及存储解决方案

1. 背景介绍 1.1. 业务背景 在云原生技术迅速发展的当下,容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择,但裸金属服务器依然有其独特的价值和应用场景,是云原生架构中不可或缺的一部分。 裸金属服务器是一种高级…

抛光粉尘可爆性检测 打磨粉尘喷砂粉尘爆炸下限测试

抛光粉尘可爆性检测 抛光粉尘的可爆性检测是一种安全性能测试,用于确定加工过程中产生的粉尘在特定条件下是否会爆炸,从而对生产安全构成威胁。如果粉尘具有可爆性,那么在生产环境中就需要采取相应的防爆措施。粉尘爆炸的条件通常包括粉尘本身…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 字符串筛选排序(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

【深度学习】智能手写数字识别系统

文章目录 一.实验课题背景说明1.1实验目的1.2实验环境1.2.1安装PyTorch1.2.2安装其他必要的库 二.模型说明2.1模型概述2.2模型结构 三.数据说明3.1 输入数据3.1.1输入数据特征3.1.2输入数据维度3.1.3输入数据预处理 3.2 数据格式3.2.1输出数据…

qt 实现模拟实际物体带速度的移动(水平、垂直、斜角度)——————附带完整代码

文章目录 0 效果1 原理1.1 图片旋转1.2 物体按照现实中的实际距离带真实速度移动 2 完整实现2.1 将车辆按钮封装为一个类:2.2 调用方法 3 完整代码参考 0 效果 实现后的效果如下 可以显示属性(继承自QToolButton): 鼠标悬浮显示文字 按钮…

Bagging与Boosting的应用与优势

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

Excel 常用技巧(四)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测,并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

【Python高级编程】Pickle实现AI算法训练的权重数据的保存

任务描述 代码实现 import pickle import time import os import numpy as np# 模拟耗时的权重计算过程 def calculate_weights():print("开始计算权重...")time.sleep(5) # 模拟耗时操作,暂停5秒以模拟计算过程weights np.random.rand(10, 10) # 随机…

python实践笔记(三): 异常处理和文件操作

1. 写在前面 最近在重构之前的后端代码,借着这个机会又重新补充了关于python的一些知识, 学习到了一些高效编写代码的方法和心得,比如构建大项目来讲,要明确捕捉异常机制的重要性, 学会使用try...except..finally&…

小区噪音监测管理系统设计

一、引言 随着城市化进程的加快,小区居民对于居住环境的要求日益提高。其中,噪音污染已成为影响居民生活质量的重要因素。因此,设计一套小区噪音监测管理系统,对于提升居民的生活品质和小区管理效率具有重要意义。本文将详细阐述…

如何拥有自己的微信小程序

如何拥有自己的微信小程序 ~~话先放在这里~~ 写在前面申请一个属于自己的小程序先去[微信开放平台](https://open.weixin.qq.com/home)申请一个你的小程序扫码申请新小程序小程序该记好的个人信息 安装微信开发者工具下载工具关联你的小程序请求域名配置发布小程序 BUY一个自己…

SQL:按用户名复制权限

生产系统中有一个模块是管理用户及菜单权限,它们是由3个数据表组成,关系及字段如下: 原来为每个用户添加菜单的访问权限时都是一个一个添加,但今天遇到有个新来的员工,需要具有与另一个员工相同的权限。新建一个用户后…

PS插件创成式填充功能全面测评:轻松实现AI修图新高度

大家好,我是你们的AIGC测评博主。今天,我将为大家带来一款ps插件创成式填充功能——深度体验 在图像处理领域,AI技术的应用已经越来越广泛。而创成式填充功能,无疑是其中的佼佼者。它利用AI技术,能够根据用户输入的关…

c语言——c51单片机——数码管

数码管: #include "reg51.h"void delay(unsigned int n) {while (n)--n; }void main(void) { //unsigned char num[] {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,0x39, 0x5e, 0x79, 0x71, 0x00};unsigned int i 0…

坚持刷题|合并有序链表

文章目录 题目思考代码实现迭代递归 扩展实现k个有序链表合并方法一方法二 PriorityQueue基本操作Java示例注意事项 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,消失了一段时间,我又回来刷题啦,今天…

雪花算法和UUID

目录 雪花算法概念优点和不足优点:缺点:解决方案代码示例 UUID优点与不足优点不足 两种算法的比较应用场景区别 雪花算法 概念 雪花算法是一个分布式id生成算法,它生成的id一般情况下具有唯一性。由64位01数字组成,第一位是符号位,始终为0。…

【leetcode刷题】面试经典150题 , 27. 移除元素

leetcode刷题 面试经典150 27. 移除元素 难度:简单 文章目录 一、题目内容二、自己实现代码2.1 方法一:直接硬找2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 2.2 方法二:排序整体删除再补充2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 三、…