AUTOSAR 存储

📅 发布时间:2026/8/5 22:51:31
AUTOSAR 存储
目前用户能用的ROM存储方式一般有两种EEPROM简称Eep和FLASH仿EEPROM简称Fls。这些存储部件可以是片内的也可以是片外的如果是片外存储则一般需要通过SPI实现主芯片与片外ROM的通信。EEPROM (Electrically Erasable Programmable Read Only Memory)电可擦可编程只读存储器–一种掉电后数据不丢失的存储设备简称Eep。可以随机访问和修改任何一个字节可以往每个bit中写入0或者1。掉电后数据不丢失具有更高的可靠性但是电路复杂成本也高。Flash表示Flash Memory的意思是存储芯片的一种即平时所说的“闪存”可以通过特定的程序修改里面的数据全名叫Flash EEPROM Memory简称Fls。它的最大特点是必须按块Block擦除但成本相对较低。按照Classic AUTOSAR的分层架构思想存储模块在BSW中主要分为存储服务、存储硬件抽象以及存储驱动组成AUTOSAR 存储协议栈注MCU微控制器将FLASH又分为Pflashprogram flash和Dflashdata flashPflash用于存储程序代码和只读数据。而Dflash则用于存储应用程序中的可变数据程序逻辑代码宏定义Dflash允许在运行时对数据进行擦除和编程。全局变量局部变量Flash模拟EEPROM是在Dflash存储服务存储服务Memory Service只包含一个模块即NVRAM Manager简称NvMNvM负责管理非易失性数据的读写以及擦除等操作是应用层访问非易失性数据的唯一接口并提供非易失性数据管理机制如保存、加载、校验、保护、验证以及可靠存储等。存储硬件抽象存储硬件抽象Memory Hardware Abstraction是从存储设备片内或片外和ECU硬件布局中抽象出来的一组模块主要作用对EEPROM以及Flash存储器访问的抽象并封装成抽象接口MemIf通过存储抽象接口实现对这两种硬件的通用访问并提供一组相同的API接口实现对不同厂商、不同类型存储设备的读、写、擦除等操作。存储驱动存储驱动Memory Drivers片内或片外ROMEEPROM或Flash的驱动程序一般由芯片厂商提供Autosar模块交互与各模块作用模块(NVM 、FEE 、FLS)①NVMNVM模块通过将数据元素抽象成Block 进行统一管理NvM所有的功能都是以Block为单元主要负责管理和从非易失性内存中读写数据在上电和下电阶段同步应用程序RAM区的数据RTE提供了简单灵活的接口NvData Interface用于非易失内存的数据处理。在AutoSAR中NvM与多个模块存在关联。1、RTE提供与APP交互的接口2、CRCLib用于NV Data存储时CRC校验3、SchM用于NvM API调度4、MemIf提供下层的内部还是外部存储的区分5、BswM在上、下电阶段调用ReadAll和WriteAll接口6、Dem负责相关DTC等诊断数据的存储7、Det用于检测开发过程中相关的错误。在AutoSAR架构中NvM主要功能可以概述为以下几点:1、提供了三种Block的管理类型Native、Redundant、DataSet Block 分类2、支持16bit和32bit的CRC校验3、支持数据操作的优先级机制支持Immediately写操作4、用于DCM诊断的数据操作Block分类项目中 使用 Block 分类为NVM_BLOCK_NATIVENative block是最简单的Block形式该类型包括1个NV Block1个RAM Block1个Administrative BlocksRedundant block该类型包括2个NV Block1个RAM Block1个Administrative Blocks通过该类型可以实现数据的冗余备份存储。Dataset block 是由多个大小相等的数据组成APP在一次操作中获得其中的一个元素每一个DataSet的位置可以通过Administrative Blocks获得NvM可以读取选择的ROM Block。Dataset NVRAM类型的设计可以根据需要对一个数据在NvRAM中以一定的循环偏移进行存储每一次存储位置可以不同实现对NvRAM的寿命延长。Ram Block : 位于 RAM 中 存放应用待读/待写的数据Rom Block : 位于 PFlash 中存放 Block 默认数据 用于数据读取失败后恢复默认数据Administrative Block位于 RAM 中保存所有Data Block 的错误/状态/Crc 等信息NV Block: 位于非易失性存储器中 用于保存非易失数据NV Block一般包含了用户定义的数据其中相关的header以及CRC作为可选项使用。NV RAM一般和NV Block对应实现数据到NV Block的读写操作NV ROM数据存在DFlash或者外部的EEPROM中在程序执行中数据不会改变在空的或者破坏的ROM中为默认的数据。Administrative Block是NV RAM中必须使用的包含了DataSet类型的NvM数据管理相关的NV RAM Block的属性、状态以及错误信息能管理NV Block的写保护以及上次数据操作的错误以及状态信息。