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又分为Pflash(program flash)和Dflash(data flash)

Pflash用于存储程序代码和只读数据。而Dflash则用于存储应用程序中的可变数据(程序逻辑代码,宏定义,)

Dflash允许在运行时对数据进行擦除和编程。(全局变量,局部变量,Flash模拟EEPROM是在Dflash)

存储服务

存储服务(Memory Service)只包含一个模块,即NVRAM Manager(简称NvM),NvM负责管理非易失性数据的读写以及擦除等操作,是应用层访问非易失性数据的唯一接口,并提供非易失性数据管理机制,如保存、加载、校验、保护、验证以及可靠存储等。

存储硬件抽象

存储硬件抽象(Memory Hardware Abstraction)是从存储设备(片内或片外)和ECU硬件布局中抽象出来的一组模块,主要作用对EEPROM以及Flash存储器访问的抽象,并封装成抽象接口(MemIf),通过存储抽象接口实现对这两种硬件的通用访问,并提供一组相同的API接口实现对不同厂商、不同类型存储设备的读、写、擦除等操作。

存储驱动

存储驱动(Memory Drivers),片内或片外ROM(EEPROM或Flash)的驱动程序,一般由芯片厂商提供

Autosar模块交互与各模块作用模块(NVM 、FEE 、FLS)

①:NVM

NVM模块通过将数据元素抽象成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_NATIVE

Native block是最简单的Block形式,该类型包括1个NV Block,1个RAM Block,1个Administrative Blocks;

Redundant block该类型包括2个NV Block,1个RAM Block,1个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的写保护,以及上次数据操作的错误以及状态信息。

相关推荐
youyou-06061 天前
AUTOSAR‑COM 常见问题 QA (1)
java·linux·服务器·单片机·汽车
合米AI SOP系统1 天前
汽车零部件|连接器装配工位,合米科技AI SOP视觉筑牢安全级装配质量防线
人工智能·科技·汽车
制冷技术咨询与服务2 天前
纯电牵引车高压电源侧介绍
网络·汽车·纯电牵引车高压电源侧介绍
瞬间记忆2 天前
AUTOSAR基础概念学习
汽车·autosar
POMAGTOR2 天前
【磁吸 POGOPIN 连接器 汽车医疗机器人弹簧顶针】
嵌入式硬件·机器人·汽车
沐欣工作室_lvyiyi2 天前
基于单片机的汽车防碰撞刹车系统的设计与实现(论文+源码)
单片机·嵌入式硬件·汽车·单片机智能小车
工业机器人视觉检测设备3 天前
工序全流程自动化升级!云汇智能打造汽车天窗多机器人集成产线
机器人·自动化·汽车
提升汽车音响好物3 天前
斯巴鲁森林人音响升级记录:江门汇声的前后声场与低频搭配
汽车·音频
当下新鲜事3 天前
高压线束绝缘层在线测径为何成为新能源汽车线束制造的关键工序?简博斯JG-L系列测径仪解析
人工智能·汽车·制造
zsmydz8883 天前
新能源汽车TBOX(车载远程信息处理系统)的国家标准体系
汽车·汽车tbox·4g车载tbox·新能源汽车tbox