• [AutoSar NVM] 存储架构


    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存储设备的。

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


    参考

    METAAutosar NVM 介绍 - 知乎
    AutoSarAUTOSAR_SRS_MemoryServices.pdf
    AutoSarAUTOSAR_SWS_NVRAMManager.pdf
    汽车工程师谈技术Autosar nvm的机制原理是怎样的

    Autosar Architecture (Learn from Scratch with Demo)

    图片来源: COMIDOC

    免责声明

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

  • 相关阅读:
    微服务平滑迁移上云最佳实践
    android 开机动画制作
    【神经网络】【GoogleNet】
    简易机器学习笔记(十一)opencv 简易使用-人脸识别、分类任务
    渐变圆角边框css
    Java递归实现迷宫问题和八皇后
    设计模式之美——多组合少继承
    Oracle数据库----第七周实验____循环与游标
    【10.30】【VP】Codeforces Round #735 (Div. 2)
    STM32-LCD中英文显示及应用
  • 原文地址:https://blog.csdn.net/vagrant0407/article/details/134044394