汽车OTA--Flash RWW属性为什么这么重要

目录

1. OTA与RWW

1.1 FOTA需求解读

1.2 什么是RWW

2.主流OTA方案

2.1 单Bank升级

2.2 基于硬件A\B SWAP的FOTA方案

2.3 基于软件实现的FOTA方案

3.小结


1. OTA与RWW

1.1 FOTA需求解读

CP AUTOSAR R19-11首次提出了FOTA的概念,针对FOTA Target ECU提出了多条需求:

  • FOTA Target ECU shall be capable to install, i.e. receive and store, a new SW image while the current image on the ECU is executed in its normal operating mode.
  •  An ongoing installation shall not disturb or reduce the functional scope of the
    respective FOTA Target ECU.

目的是为了缩短因为软件升级导致的汽车停机时间,文档里甚至要求汽车行驶过程中仍可以进行新程序的升级(但必须在汽车安全状态下进行激活),且在新程序升级时不能影响绝大部分汽车功能;

  • FOTA Target ECUs shall be capable to internally recover the SW image, being
    active before last (FOTA) activation. This may happen on a trigger by the FOTA
    Master instance.
  • FOTA Target ECU shall accept activation of new software in vehicle safe-state
    only.

为防止升级失败,必须有一个回滚机制能够保证汽车回到之前状态;升级成功后,必须让汽车在安全状态下才能激活新的软件进行运行,根据ECU在整车系统中的不同功能,这个安全状态根据OEM来定义。

可以看到,随着软件定义汽车的风越吹越大,升级整车系统以保持最新功能的需求也不断增加;以往在4S店线下召回升级软件的方式日渐落后,借助各种无线通信技术对整车进行升级的方式变成了当前乃至未来的趋势。

1.2 什么是RWW

在上述需求里,我们发现FOTA以以往线下召回最明显的区别在于无感:即ECU运行代码时仍可以实现对新软件的接收和存储。

所以这就对车控类ECU的主控芯片MCU提出了一个非常关键的需求:CPU在Flash取指运行时,可同时对另一区域的Flash进行擦除和编程以存放新软件。这就是Flash在分区上的RWW(Read While Write)特性;Read分区存放当前运行的软件,Write分区存放新的软件。

该特性是基于存储器哈佛结构诞生也发展出来,哈佛结构将系统存储分为程序存储器(Program Memory)和数据存储器(Data Memory),每个存取器有自己独立的总线,如下图:

这样我们就实现了CPU从Program Memory中读取指令的同时,对Data Memory进行读取或写入;但是缺点在于如果Program Memory中代码需要更新,CPU这时候就只能Halt,因为Program Memory Bus正在写入数据代码到Program Memory中,它很忙。

如何优化呢?我们按照总线这个思路,把Program Memory分成多个Bank(Block、Section都行),并拓展总线,这就能实现在当前Bank运行,同时刷写代码到另外一个Bank。如下图所示:

这个属性天然对OTA非常友好,CPU运行A Bank上的程序,A Bank上的程序提供刷写B Bank的驱动;刷写完成后切换Bank,CPU到B Bank取指运行。

所以,我们可以看到主流车规MCU里基本都支持RWW属性,例如:

  •  NXP S32K344支持最高4MB PFlash(Block size = 1MB),OTA时分为2x2MB,RWW属性在Active block和passive block之间实现;
  • 英飞凌TC37x支持最高6MB(2x3) PFlash,OTA是分为2x3,RWW属性在Active Bank与Inactive Bank里实现;
  • 意法半导体SPC58NH92,支持最高8个RWW Partitions,OTA可采用RWW P4\6和RWW P5\7互换

2.主流OTA方案

2.1 单Bank升级

这里我们首先回顾以前MCU资源不足,无法考虑A\B升级的方案,如下:

MCU启动后首先运行Bootloader,判断是否有升级请求,如没有则跳转至App运行;假设我们在App里收到升级请求了,立马设置升级请求标志位,并复位系统进入Bootloader;检查到请求Flag后,Bootloader将通信\flash驱动拷贝至RAM或者DFlash,然后开始进行升级流程,如下图:

很明显,这种升级方式不能提供回滚机制、也不能实现零停机升级,是不能满足如今FOTA需求。

在1.2节里,我们明显观察到RWW属性是和OTA强相关的,因此上述MCU也支持硬件OTA机制;这也为我们设计OTA方案提供了便利。

目前主流的OTA方案可以分为基于硬件特性的FOTA方案和软件实现方案。

2.2 基于硬件A\B SWAP的FOTA方案

以英飞凌TC37x为例,它有两个地址映射模式: standard address map和alternate address map,其物理bank和逻辑地址映射关系如下:

而我们在上面提到使用硬件SWAP机制的好处就是只用维护一个工程以及对应链接脚本,因此从逻辑上讲,我们应该就使用standard address map的地址来设计链接文件并编译工程,整体逻辑如下:

从CPU的视角来看,它始终使用逻辑地址0x80000000(举例)来取指,而芯片硬件根据不同地址映射模式来给物理Bank0、1分配逻辑地址,例如0xAA模式下,分配0x80000000给到PFlash1,这样就能保证运行的是更新后的代码。 

2.3 基于软件实现的FOTA方案

即使硬件没有地址映射SWAP的功能,从软件角度也是可以实现上述功能,但前提是Flash的分区要支持RWW;

在软件实现角度里,由于逻辑地址和物理bank是一一对应的,要实现A\B SWAP,就必须维护两个工程,一个工程链接文件锚定Bank A,一个工程链接文件锚定Bank B,有BootManager根据需要选择运行A还是运行B,理论如下:

虽然这个实现了A\B 升级,但是从逻辑上将随着升级次数的增多,对于软件版本的维护和工程的维护是需要审慎进行的。

所以,Flash的RWW对于OTA来说是一个必选项,但是硬件地址映射模式的切换有最好,没有也能做。

3.小结

以上,我们分析了Flash RWW属性,目前汽车车控类MCU的主流OTA方案;对于具备自更新能力的控制器,例如座舱域控制器SOC端、智驾域SOC端、中央网关等等,还没有具体研究过,后面接触了再分享给大家。

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

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

相关文章

《计算机英语》 Unit 3 Software Engineering 软件工程

Section A Software Engineering Methodologies 软件工程方法论 Software development is an engineering process. 软件开发是一个工程过程。 The goal of researchers in software engineering is to find principles that guide the software development process and lea…

2024年全国青少信息素养大赛python编程复赛集训第九天编程题分享

整理资料解析答案非常不容易,感谢各位大佬给个点赞和分享吧,谢谢 今天题目较简单:适合小学组 大家如果不想阅读前边的比赛内容介绍,可以直接跳过:拉到底部看集训题目 (一)比赛内容: 【小学组】 1.了解输入与输出的概念,掌握使用基本输入输出和简单运算 为主的标准…

集合注意事项

目录 我们为什么要用到集合中的迭代器 List实现类的循环遍历 Set集合 HashSet TreeSet Map Hashmap Treemap Hashtable map的遍历方式 Collections的一些静态方法 我们为什么要用到集合中的迭代器 List实现类的循环遍历 如图我们对arraylist中加入了三个相同的“a”…

【软件工程】【22.04】p1

关键字: 软件需求规约基本性质、数据字典构成、内聚程度最高功能内聚、公有属性、RUP实体类、评审、测试序列、软件确认过程、CMMI能力等级 软件需求分类、DFD数据流图组成(实体)、经典详细设计、数据耦合、关联多重性、状态图、黑盒测试、…

使用ESP32和Flask框架实现温湿度数据监测系统

项目概述 在这个项目中,我们将使用ESP32微控制器读取温湿度传感器的数据,并将这些数据通过HTTP请求传输到基于Flask框架的服务器。Flask是一个轻量级的Python Web框架,非常适合快速开发和部署Web应用。通过这个项目,我们不仅可以了…

分享uniapp + Springboot3+vue3小程序项目实战

分享uniapp Springboot3vue3小程序项目实战 经过10天敲代码,终于从零到项目测试完成,一个前后端分离的小程序实战项目学习完毕 时间从6月12日 到6月22日,具有程序开发基础,第一次写uniapp,Springboot以前用过,VUE3也…

外部存储器

外部存储器是主存的后援设备,也叫做辅助存储器,简称外存或辅存。 它的特点是容量大、速度慢、价格低,可以脱机保存信息,属于非易失性存储器。 外存主要有:光盘、磁带、磁盘;磁盘和磁带都属于磁表面存储器…

跌倒识别:守护公共安全的AI技术应用场景-免费API调用

随着科技的不断进步,人工智能在各个领域的应用日益广泛,其中在公共安全领域,智能跌倒识别系统正逐渐成为守护人们安全的重要工具。本文将分享智能跌倒识别系统在不同场景下的应用及其重要性。 产品在线体验地址-API调用或本地化部署 AI算法模…

4、MFC:菜单栏、工具栏与状态栏

菜单栏、工具栏与状态栏 1、菜单栏1.1 简介1.2 创建属性设置菜单消息成员函数 1.3 实例 2、工具栏2.1 简介工具栏属性2.2 创建消息CToolBar类的主要成员函数 2.3 实例 3、状态栏3.1 简介3.2 创建CStatusBar类状态栏创建 3.3 实例 1、菜单栏 1.1 简介 菜单在界面设计中是经常使…

【AWS SMB】关于AWS 中小型企业 (SMB) 能力介绍及注意事项

文章目录 前言一、什么是 SMB?📢二、如何识别中小企业的需求三、中小企业营销活动的类型四、AWS 合作伙伴可获得的其他 AWS 机会4.1 AWS IQ4.2 APN 客户参与 (ACE) 计划 前言 AWS 中小型企业 (SMB) 能力合作伙伴专注于帮助中小型…

荒野大镖客2启动找不到emp.dll的7个修复方法,轻松解决dll丢失的办法

一、emp.dll文件丢失的常见原因 安装或更新问题:在软件或游戏的安装过程中,可能由于安装程序未能正确复制文件到目标目录,或在更新过程中文件被意外覆盖或删除,导致emp.dll文件丢失。 安全软件误删:某些安全软件可能…

甘肃旅游服务平台的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,公告信息管理,景点管理,酒店管理,基础数据管理,美食管理 前台账户功能包括:系统首页,个人中心&#xff0…

在 Equinix 上使用 MinIO 控制云数据成本

公有云改变了公司构建、部署和管理应用程序的方式,主要是向好的方向发展。在您刚开始使用时,公有云会提供基础架构、服务、支持和维护,以便快速启动和运行。它以几乎无限的方式提供最终的可伸缩性,无论应用程序的负载如何&#xf…

小米15系列将首发骁龙8 Gen4 SoC

高通已确认2024年骁龙峰会定于10月21日举行。在这次峰会中高通将推出其最新的移动芯片Snapdragon 8 Gen4 SoC。著名科技博主DigitalChatStation今天证实,骁龙8 Gen4将以小米15系列首次亮相。这意味着小米15系列将是第一款使用这款新旗舰处理器的手机。 这不是小米第…

和琪宝的厦门之旅~

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 引言 承接去年国庆的遗憾,我们将这次的旅行城市定为厦门。 琪宝是下午四点左右到…

湖南(市场调研)源点咨询 新产品上市前市场机会调研与研究分析

湖南源点调研认为:无论是创业公司,还是在公司内部探索新的项目或者新的产品线等,首先都要做“市场机会分析与调研“,要真正思考并解答以下疑问: 我们的目标客户群体是谁,他们如何决策? 我们所…

长尾式差分放大电路调零

长尾式放大电路用了两个参数相同的三极管,但实际上并没有完全相同的三极管,所以为了提高差分放大电路的对称性(一边电流增加多少,另一边电流减小多少,即能在电阻Re上产生的压降不变(后面做虚地处理)),在下图中加入可调…

FaceFusionSharp OnnxRuntime版 视频换脸

FaceFusionSharp OnnxRuntime版 视频换脸 目录 效果 项目 代码 下载 其他 效果 FaceFusionSharp OnnxRuntime版效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Threading; using System.Window…

vivado、vitis2022安装及其注意事项(省时、省空间)

1、下载 AMD官网-资源与支持-vivado ML开发者工具,或者vitis平台, 下载的时候有个官网推荐web安装,亲测这个耗时非常久,不建议使用,还是直接下载89G的安装包快。 注意:安装vitis平台会默认安装vivado&…

Android补间动画、帧动画、属性动画详解

View Animation: 视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。 Drawable Animation: 这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显…