国产车规MCU OTA方案总结

目录

1. 旗芯微FC4150 OTA

2. 云途YTM32B1MD OTA

3.小结


今天没有废话,啪一下很快,把目前接触到的国内带eFlash的车规MCU硬件OTA方案做一个梳理。

1. 旗芯微FC4150 OTA

旗芯微FC4150是基于ARM Cortex(快去审核下官网介绍,少了个T)-M4F内核的车规MCU,ASIL-B功能安全等级,内置HSM,支持国际、国家密码标准,基本框架如下:

注意这个96 KB Rom,这大小很有意思。

由于其主频、Memory容量、功能安全等级的限制,主要面向车身相关应用,例如车窗、座椅、车门等等。

该产品系列支持P-Flash分别为2M、1M、1Msuperfit、512K,有意思的是仅1Msuperfit、512K支持OTA功能,容量高一点如2M反而还不支持OTA,不知道是不是和最初flash ip选型有关。

FC4150F512 支持双bank swap功能,当开启该功能后,硬件OTA控制器支持 2x256KB Flash,每个Bank包含256个Sector。

相较于英飞凌整个Bank的A\B切换,FC4150的OTA Flash地址是可以进行配置,颗粒度为8K,与之相关的配置项为:OTA_EN, OTA_START_ADDR, OTA_END_ADDR, OTA_VER_LOC。

当然,配置方法和大厂车规MCU的UCB、OptionByte、DCM差不多,只是换了个说法叫NVR。

 上电后,FMC会把上述配置信息读取到内部对应寄存器里,总结如下:

在使用上有个点需要注意在OTA_CTRL里面,需要设置OTA Active Bank,它是依据OTA_VER_LOC里定义地址存放的版本信息来进行对比,

  • 当OTA_CTRL.OTA_ACTIVE = 0,PFlash0 为Active Bank;
  • 当OTA_CTRL.OTA_ACTIVE = 1,PFlash1为Active Bank。

示意如下:

OTA的区域是根据OTA_Start address、End Address进行配置,那这是否可以认为假设PF0只配置128K用于OTA,那么PFlash0、1后面的128KB是可以使用的,这就变成了局部OTA,示意如下:

2. 云途YTM32B1MD OTA

YTM32B1MD是一款功能安全ASIL B的车规MCU,使用ARM Cortex-M33内核,最高主频120MHz,PFlash 共512KB,分为2*256KB两个Bank,支持RWW属性,因此也支持OTA。

在该片子里使用EFM(Embedded Flash Module)来管理A\B SWAP,通过设置EFM CMD寄存器中 指令Boot Swap来进行切换;切换后需要进行系统复位后才有效,可以用过EFM STS.BOOT_INFO状态来进行判断当前处于哪个Bank,逻辑如下:

 3.小结

目前看起来,最近几年新出的国产MCU普遍都会把A\B Swap硬件特性作为一个需求进行实现,为汽车ECU软件升级和回滚机制做准备,从原理上看起来是比较清晰的,设计和使用起来也比较方便。

不过在这种A\B Swap在功能安全和信息安全上的设计,我并没有看到国产MCU在这方面的考虑,从0到1的过程非常艰辛,也非常需要理论基础和经验。

就这样!今天很快!

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

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

相关文章

openGauss Developer Day 2024丨MogDB实现数据库技术跨越,Ustore引擎革新存储新境界

openGauss Developer Day 2024 6月21日,openGauss Developer Day 2024在北京昆泰嘉瑞文化中心成功召开。大会聚集学术专家、行业用户、合作伙伴和开发者,共同探讨数据库面向多场景的技术创新,分享基于 openGauss 的行业联合创新成果及实践案例…

探索PHP中的魔术常量

PHP中的魔术常量(Magic Constants)是一些特殊的预定义常量,它们在不同的上下文中具有不同的值。这些常量可以帮助开发者获取文件路径、行号、函数名等信息,从而方便调试和日志记录。本文将详细介绍PHP中的魔术常量,帮助…

web前端——javaScript

目录 一、javaScript概述 1.javaScript历史 2.JavaScript与html,css关系 二、基本语法 ①放在head中 ②放在 body中 ③写在外部的.js文件中 1.变量 2.数据类型 3.算术运算符 4.逻辑运算符 5.赋值运算 6.逻辑运算符 7.条件运算符 8.控制语句 三、函数 1…

Arduino - 按钮 - 长按短按

Arduino - Button - Long Press Short Press Arduino - 按钮 - 长按短按 Arduino - Button - Long Press Short Press We will learn: 我们将学习: How to detect the button’s short press 如何检测按钮的短按How to detect the button’s long press 如何检测…

重大进展!微信支付收款码全场景接入银联网络

据中国银联6月19日消息,近日,银联网络迎来微信支付收款码场景的全面接入,推动条码支付互联互通取得新进展,为境内外广大消费者提供更多支付选择、更好支付体验。 2024年6月,伴随微信支付经营收款码的开放,微…

Rust: duckdb和polars读csv文件比较

一、文件准备 样本内容,N行9列的csv标准格式,有字符串,有浮点数,有整型。 有两个csv文件,一个大约是2.1万行;一个是64万行。 二、toml文件 [package] name "my_duckdb" version "0.1.0&…

VSCode安装OpenImageDebugger

VSCode安装OpenImageDebugger 1. 官网2. 编译2.1 依赖项2.2 编译 OpenImageDebugger2.3 配置 GDB 和 LLDB 3. 验证安装是否成功 1. 官网 下载路径:OpenImageDebugger 2. 编译 2.1 依赖项 官网上描述, Qt 5.15.1Python 3.10.12 这两个其实配置并不需…

图解HTTP笔记整理(前六章)

图解HTTP 第一章 web使用HTTP (HyperText Transfer Protocol,超文本传输协议)协议作文规范,完成从客户端到服务器端等一系列运作流程。 协议:计算机与网络设备要相互通信,双方就必须基于相同的方法。比如…

【论文阅读】--Popup-Plots: Warping Temporal Data Visualization

弹出图:扭曲时态数据可视化 摘要1 引言2 相关工作3 弹出图3.1 椭球模型3.1.1 水平轨迹3.1.2 垂直轨迹3.1.3 组合轨迹 3.2 视觉映射与交互 4 实施5 结果6 评估7 讨论8 结论和未来工作致谢参考文献 期刊: IEEE Trans. Vis. Comput. Graph.(发表日期: 2019&…

HQChart使用教程30-K线图如何对接第3方数据41-分钟K线叠加股票增量更新

HQChart使用教程30-K线图如何对接第3方数据40-日K叠加股票增量更新 叠加股票叠加分钟K线更新Request 字段说明Data.symbol 协议截图返回json数据结构overlaydata HQChart代码地址交流 叠加股票 示例地址:https://jones2000.github.io/HQChart/webhqchart.demo/samples/kline_i…

可以一键生成热点营销视频的工具,建议收藏

在当今的商业环境中,热点营销已经成为了一种非常重要的营销策略。那么,什么是热点营销呢?又怎么做热点营销视频呢? 最近高考成绩慢慢公布了,领导让结合“高考成绩公布”这个热点,做一个关于企业或产品的营销…

鸿蒙NEXT开发:工具常用命令—install

安装三方库。 命令格式 ohpm install [options] [[<group>/]<pkg>[<version> | tag:<tag>]] ... ohpm install [options] <folder> ohpm install [options] <har file> alias: i 说明 group&#xff1a;三方库的命名空间&#xff0c;可…

sys.stdin对象——实现标准输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 sys.stdin是一个标准化输入对象&#xff0c;可以连续输入或读入文件所有内容&#xff0c;不结束&#xff0c;不能直接使用。输入完成后&am…

print()函数——打印输出

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 print()函数是Python编程最常见的函数&#xff0c;常用于输出程序结果&#xff0c;默认输出到屏幕&#xff0c;也可以输出到指定文件。 语法参考 pr…

吉他谱制作软件哪个好 吉他弹唱谱制作软件推荐

在市面上存在着多种吉他谱制作软件&#xff0c;如何选择一款适合自己需求的软件成为了许多人面临的挑战。下面来看看吉他谱制作软件哪个好&#xff0c;吉他弹唱谱制作软件推荐的相关内容。 一、吉他谱制作软件哪个好 吉他谱制作软件在现代音乐创作中扮演着重要角色&#xff0c…

调频信号FM的原理与matlab与FPGA实现

平台&#xff1a;matlab r2021b&#xff0c;vivado2023.1 本文知识内容摘自《软件无线电原理和应用》 调频(FM)是载波的瞬时频率随调制信号成线性变化的一种调制方式&#xff0c;音频调频信号的数学表达式可以写为&#xff1a; Fm频率调制&#xff0c;载波的幅度随着调制波形…

open()函数——打开文件并返回文件对象

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 open()函数用于打开文件&#xff0c;返回一个文件读写对象&#xff0c;然后可以对文件进行相应读写操作。 语法参考 open()函数的语法格式如下&…

【K8s】专题六(2):Kubernetes 稳定性之健康检查

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、基本介绍 二、工作原理 三、探针类型 1、存活探针&#xff08;LivenessProbe&#x…

docker入门配置

1、创建配置镜像 由于国内docker连接外网速度慢&#xff0c;采用代理 vi /etc/docker/daemon.json添加以下内容 {"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com","https://dockerproxy.com","https://hub-mirror.c.163.co…

SOA和ESB介绍

SOA&#xff08;面向服务的架构&#xff09; 面向服务的架构&#xff08;Service-Oriented Architecture&#xff0c;SOA&#xff09;是一种设计理念&#xff0c;用于构建松耦合的、可互操作的、模块化的服务。在SOA架构中&#xff0c;应用程序被划分为一系列的服务&#xff0c…