新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 国产车规MCU OTA方案总结

国产车规MCU OTA方案总结

作者:快乐的肌肉 时间:2025-03-25 来源:汽车MCU软件设计 收藏

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

本文引用地址:https://www.eepw.com.cn/article/202503/468597.htm

1. 旗芯微FC4150

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

image.png

注意这个96 KB Rom,这大小很有意思,它把Flash Driver存放到里面,天然就具备了RWW属性,针对单bank来说,当我们要擦PFlash时,省却了copy driver到ram这一步,这也看到了他们对于自己芯片和代码非常自信。

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

image.png

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

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

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

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

image.png

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

image.png

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

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

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

示意如下:

image.png

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

image.png

这么一看,确实吸纳了很多前人的经验。

2. 云途YTM32B1MD OTA

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

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

image.png

3.小结

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

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



关键词: 汽车MCU OTA

评论


相关推荐

技术专区

关闭