[AutoSar NVM] 存储架构

Source

依AutoSAR及公开知识辛苦整理,禁止转载。  专栏 《深入浅出AutoSAR》, 全文 1600 字.


图片来源: 知乎


汽车的ECU内存中有很多不同类型的变量,这些变量包括了车辆各个系统和功能所需的数据。大部分变量在ECU掉电后就会丢失,因为它们是易失性数据,无法长期保存。然而,在这些易失性数据之外,还存在一些非常重要的变量,它们被称为非易失性数据, 比如 防盗钥匙信息。


为管理和维护所有这些重要而又不可丢失的非易失性数据,Autosar NVM模块应运而生。Autosar NVM(Non-Volatile Memory)模块专门负责处理与非易失性数据相关的存储、备份、读取和写入等任务。通过合理地管理NVM模块,可以有效地确保这些关键数据得到正确地保存,并在需要时能够快速访问。


Autosar NVM支持两种NV(Non-Volatile)变量存储方式:静态存储区域(Static Storage Area)和动态存储区域(Dynamic Storage Area)。

静态存储区域主要用于保存那些:

  • 固定不变
  • 只偶尔更新但占据空间较小
  • 访问频率相对低的NV变量

而动态存储区域则适用于那些:

  • 经常发生改变
  • 更高访问频率
  • 占据空间较大
     

NVM 内部软件架构

AUTOSAR,存储模块软件架构分层依次是:

NVM->MemIf->Fee->FLS->FLASH

1. NVM(NVRAM Manager)是存储服务层,也就是存储模块最上层,该层是对外提供的接口。抽象数据存储,上电读取和下电存储。

2. MemIf是接口层,区分下面是Fee还是Ea。实现上层和下层flash or EEPROM 的分离, 上层不需要知道下面是哪种存储设备

3. Fee是Flash模拟EEPROM的抽象层。实现对 flash 数据的存储抽象和数据结构

Fls是flash驱动。

4. EA: EEPROM Abstraction, EEPROM 抽象模块, 定义它的存储抽象和数据结构

5. FEP: External EEPROM Abstraction, 它的外部操作接口和驱动

NVM 和外部交互

NVM 内部交互

存储模块接口调用栈

存储系统数据写入的过程

AutoSar NVM存储服务层是应用层访问非易失性数据的唯一接口。

如下图所示,用户在应用层通过RTE调用NvM模块的NvM_WriteBlock(NvM_BlockIdType,const void*)接口即可实现非易失性数据的写入功能,数据写入完成后,NvM会通过NvM_JobFinishedNotification(NvM_ServiceIdType,NvM_RequestResultType)通知用户数据写入结果。在整个写入过程中,用户无需关心NvM是如何将数据写入Fls或者Eep存储设备的。

图 非易失性数据的写入时序示例


参考

META Autosar NVM 介绍 - 知乎
AutoSar AUTOSAR_SRS_MemoryServices.pdf
AutoSar AUTOSAR_SWS_NVRAMManager.pdf
汽车工程师谈技术 Autosar nvm的机制原理是怎样的

Autosar Architecture (Learn from Scratch with Demo)

图片来源: COMIDOC

免责声明

本文根据公开信息整理,旨在介绍更多的汽车知识,所载文章仅为作者观点,不构成投资或商用建议。本文仅用于学习交流, 不允许商用。若有疑问或有侵权行为请联系作者处理。