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

news2024/11/23 3:08:10

目录

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机制

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

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

相关文章

从11个视角看全球Rust程序员2/4:深度解读JetBrains最新报告

讲动人的故事,写懂人的代码 5 Rust代码最常使用什么协议与其他代码交互? REST API: 2022年:51%2023年:51%看上去REST API的使用比例挺稳定的,没啥变化。语言互操作性(Language Interop): 2022年:53%2023年:43%语言互操作性的比例在2023年下来了一些,掉了10个百分点…

内外同趋 | 牵手AEye、ATI,灵途科技全球布局战略启航!

近日,灵途科技(LighTekton)与自适应高性能激光雷达解决方案全球领导者AEye公司(NASDAQ:LIDR)及光电器件规模化量产巨头Accelight Technologies(ATI)达成战略合作,这标志着灵途科技全…

全篇创新点!图像融合9大魔改创新方案,暴力涨点

在处理复杂图像数据和提升图像质量时,采用图像融合的技术是个更好的选择。 这是因为:图像融合能够整合来自不同图像源的信息,为我们提供比单一图像更丰富、更全面、更高质量的图像数据。这种技术不仅减少了数据冗余,还增强了图像…

【Nvidia+AI摄像头】面向机器人双目视觉相机

随着人工智能和机器人技术的不断发展,双目深度相机作为一种重要的传感器,正在被广泛应用于各种机器人系统中。双目深度相机作为机器人不可或缺的感知器件,其高精度深度信息为机器人提供环境感知、立体视觉、姿态识别等功能,让机器…

手把手安装教导安装QT开源版

第一步:下载安装安装程序 官网地址:试用Qt | 开发应用程序和嵌入式系统 | Qt 点击页面中的“选择开源版” , 之后页面往下拉,找到下载按钮,点击下载安装程序 第二步:安装 下载好了安装程序之后&#xff0…

Android笔记-安装Termux开启ssh,安装vim、android-tool、python等

背景 家里面有个老手机,想将此手机做成一个家庭服务器。控制各种家电。目前准备先控制电视机 流程 用电脑usb连接手机,下载好Termux,在安卓手机上安装好。这里就不记录笔记了,各个手机不一样。 安装好进入手机后: …

从《2024年人工智能指数报告》 看AI的最新发展趋势

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 《2024年人工智能指数报告》是由斯坦福大学的“以人为本”人工智能研究所(Stanford HAI)发布的,具体发布时间…

数据结构与算法笔记:基础篇 -字符串匹配(下):如何借助BM算法轻松理解KMP算法?

概述 上篇文章讲了 BM 算法,尽管他复杂,也不好理解,但确实工程中非常好用的一种高效字符串匹配算法。有统计说,它是最搞笑、最常用的字符串匹配算法。不过,在所有的字符串匹配算法里,要说最知名的一种的话…

【Linux命令行】从时间管理->文件查找压缩的指令详解

目录 1.date 命令&#xff08;显示时间&#xff09; 1.1 显示方面 1.2 设定时间 1.3 时间戳转换 1.4 cal&#xff08;日历&#xff09; 2. 重定向 2.1 输出重定向&#xff08;echo >&#xff09;cin 2.2 追加重定向 >> 2.3 输入重定向 < cout 3.find 指…

计算机网络-BGP路由优选原则六-优选MED属性值最小的路由

一、优选MED属性值最小的路由 BGP路由属性中的MED&#xff08;Multi-Exit Discriminator&#xff0c;多出口鉴别器&#xff09; 是一个可选的非传输属性&#xff0c;其设计目的是影响EBGP邻居的路由选择。MED是一个4字节的整数&#xff0c;其值的范围从0到4294967295。默认情况…

Elasticsearch:智能 RAG,获取周围分块(一)

作者&#xff1a;来自 Elastic Sunile Manjee 在检索增强生成 (RAG) 领域&#xff0c;一个持续存在的挑战是找到输入大型语言模型 (LLM) 的最佳数据量。数据太少会导致响应不足或不准确&#xff0c;而数据太多会导致答案模糊。这种微妙的平衡启发我开发了一个专注于智能分块和利…

超参数优化(网格搜索简介)

网格搜索简介 1、 网格搜索优化2、随机网格搜索 1、 网格搜索优化 在所有超参数优化&#xff08;HypeParameter Optimization&#xff0c;HPO&#xff09;中&#xff0c;枚举网格搜索&#xff08;GridSearchCV&#xff09;是最为基础和经典的方法 在搜索开始之前&#xff0c;我…

List实现类——ArrayList、LinkedList及迭代器(并发修改异常错误)源码分析

1、ArrayList本质及源码分析 两种情况&#xff1a;加一个和很多个 底层原理&#xff1a;elementData是底层数组的名字 再次满了的话&#xff0c;在扩容1.5倍 如果利用addAll一次添加多个元素&#xff0c;按实际元素数进行扩容 源码分析&#xff1a; 1、空参构造&#xff0c;…

【源码】Spring事务之事务失效及原理

Spring事务 1、【源码】SpringBoot事务注册原理 2、【源码】Spring Data JPA原理解析之事务注册原理 3、【源码】Spring Data JPA原理解析之事务执行原理 4、【源码】SpringBoot编程式事务使用及执行原理 5、【源码】Spring事务之传播特性的详解 6、【源码】Spring事务之…

语音识别相关文章整理目录

一、语音大模型架设与功能实现 使用sherpa-ncnn进行中文语音识别&#xff08;ubuntu22&#xff09;-CSDN博客文章浏览阅读953次&#xff0c;点赞30次&#xff0c;收藏26次。请注意&#xff0c;需要首先安装安装了所有必要的依赖项&#xff0c;包括 CMake、Git 和一个合适的 C/…

风控中的文本相似方法之余弦定理

一、余弦相似 一、 余弦相似概述 余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1&#xff0c;而其他任何角度的余弦值都不大于1&#xff1b;并且其最小值是-1。 从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。结…

vite|webpack环境变量-多模式配置

vite官方文档&#xff1a;环境变量和模式 | Vite (vitejs.net) &#xff08;https://www.vitejs.net/guide/env-and-mode.html&#xff09; 一、工程根目录创建env文件如下&#xff1a; 文件中参数书写格式&#xff1a; VITE_XXXXXX XXXXXX。必须使用等号。必须以VITE_开头…

《地下城与勇士》新手攻略,开荒必备!云手机多开教程!

《地下城与勇士》&#xff08;DNF&#xff09;是一款广受欢迎的多人在线动作角色扮演游戏。玩家将在游戏中扮演不同职业的角色&#xff0c;通过打怪、做任务、PK等方式不断提升自己&#xff0c;探索广阔的阿拉德大陆。游戏中设有丰富的副本、装备、技能系统&#xff0c;玩家可以…

程序员画图工具?那必然是你了!!【送源码】

作为一个程序员&#xff0c;画图是必不可少的技巧。当然此画图不是搞艺术&#xff0c;而是画各种架构图、流程图、泳道图以及各种示意图。 平时我不论是记笔记、写技术文章&#xff0c;还是工作中写文档&#xff0c;都需要配上各种各样的示意图。不管是帮助自己更好的掌握知识…

「6.18福利」精选大厂真题|笔试刷题陪伴|明天正式开屋啦 - 打卡赢价值288元丰厚奖励

&#x1f370;关于清隆学长 大家好&#xff0c;我是清隆&#xff0c;拥有ACM区域赛 银牌&#x1f948;&#xff0c;CCCC天梯赛 国一&#xff0c;PTA甲级 98 分。 致力于算法竞赛和算法教育已有 3 年&#xff0c;曾多次 AK 互联网大厂笔试&#xff0c;大厂实习经验丰富。 打卡…