AUTOSAR NVM存储服务

1. 存储基础知识

2. AUTOSAR存储

3. TC397 Flash编程

1、存储基础知识

RAM又称随机存取存储器,存储单元的内容可以按照需要随机取出或者存入,存取数据比较快。这种存储器在断电时,会丢失其存储内容,所以一般是CPU运行时会把程序从ROM拷贝到RAM里面执行。所以一般RAM是作为和CPU直接交换数据的内部存储器,也叫主存或者内存。

SRAMStatic RAM的缩写,它具有静态存取功能。静态随机存取存储器采取多重晶体管设计,不需要刷新电路即能保存它内部存储的数据,特点是高性能、低集成度、速度快,一般在MCU或者SOC会内置一小块SRAM。

DRAM是动态随机存取存储器,每隔一段时间固定对DRAM刷新充电一次,否则内部数据会消失。像现在的内存条DDR都属于DRAM。

ROM全称是Read Only Memory,顾名思义,它是一种只能读出事先所存的数据的固态半导体存储器。ROM存储的数据掉电不会丢失,可以用来存储各种固化程序和数据。最初的ROM是不能编程的,出厂是什么内容就永远是什么内容,非常不灵活。后面出现了prom,可以自己写入一次,写错了,只能再换一片,后面又出现了可多次擦除写入的EPROM,每次擦除都要把芯片拿到紫外线上照一下。

EEPROM(Erasable Programmable Read-Only Memory)是在EPROM的基础上进一步发展形成的电可擦除可编程只读存储器,不需要擦除的时候去照紫外线,它可以按照字节操作,但是集成度不高、价格比较贵。

FLASH又称为闪存,属于广义的EEPROM,因为它也是电擦除的ROM,它和EEPROM最大的区别就是,FLASH只能按照扇区(block)操作,而EEPROM可以按照字节操作。FLASH的电路结构比较简单,同样容量占芯片面积较小,成本比EEPROM低很多。FALSH分为NOR FLASH 和 NAND FLASH。

NOR FLASH数据线和地址线分开,可以实现ram那样随机寻址功能,也就是说程序可以在norflash上面直接运行,不需要拷贝到ram中。

NAND FLASH同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。

2、AUTOSAR存储

图中是AUTOSAR的BSW整体架构,其中存储功能从下层到上层依次是存储驱动、存储硬件抽象、存储服务。

注意:Autosar的存储模块主要是针对用户存放data数据的,也就是那些会经常变化,需要实时存储起来的数据。比如一些故障码,当ECU检测到一些故障码就需要实时存储起来,在维修的时候就可以通过工具读取出来分析。

Autosar的存储模块介质主要是两种:EEPROM 和 FALSH仿EEPROM,分为片内和片外存储,因此就有2 * 2 = 4种存储方式:

  • 主芯片片内FLASH仿EEPROM
  • 主芯片片内EEPROM
  • 板载片外FLASH仿EEPROM
  • 板载片外EEPROM

注意:前面讲了EEPROM和FLASH最大的不同就是EEPROM可以操作的最小单位是字节,也就是可以直接擦除编程一个字节。FLASH的最小擦除单元是扇区,最小编程单元是page页,TC397芯片的DFLASH的逻辑扇区就有4K大小,page页大小是8字节。

当前AUTOSAR项目开发中,使用最多的就是TC397芯片,该芯片是使用397芯片的DFLASH来模拟EEPROM,用于NVM存储服务使用。

下图是AUTOSAR存储模块具体分层:

NVRAM Manager:简称NVM,是应用层访问非易失性数据的唯一接口,提供非易失数据的管理服务。这一层会统一按block编号,不关心底层是什么存储类型。

Memory Abstraction Interface:简称MemIf,主要作用就是将读写的信息解耦,分别分派给EEPROM或FLASH。

EEPROM Abstraction: 简称Ea,EEPROM的抽象层,主要作用就是进一步封装片外或片内EEPROM驱动,给上层提供统一的API接口。

Flash EEPROM Emulation: 简称Fee,Flash模拟EEPROM的抽象层。

EEPROM Drv: 片内EEPROM的驱动

Flash Drv: 简称fls,片内flash驱动

这个图很清晰的描述了AUTOSAR存储的几种情况:

片内存储:

1、NVM->MemIf->Ea->EEPROM Drv->EEPROM

2、NVM->MemIf->Fee->FLS->FLASH(TC397上使用的方案)

片外存储:

  1. NVM->MemIf->Ea->EEPROM Drv->SPI->EEPROM
  2. NVM->MemIf->Fee->FLS->SPI->FLASH

3、TC397的Flash编程

当前AUTOSAR项目用到的主要芯片是英飞凌的TC397芯片,介绍一下TC397芯片上面硬件FLASH相关知识。

  • TC397芯片存储分为PFLASH(Program Flash Memory)和DFLASH(Data Flash memory)。
  • TC397有5个3MB大小PFx(PF0...PF4)和一个1MB大小的PF5。每个PFx被划分为1024KB大小的物理扇区,每个物理扇区又被划分为16KB大小的逻辑扇区(Logical Sector)。
  • TC397有两个数据闪存存储区DFLASH0和DFLASH1,就是用这个DFLASH来模拟eeprom,来作为autosar的存储服务使用的。DFLASH0还包含了用于数据保护的用户配置块(UCBs,User Configuration Blocks)和1个配置扇区(CFS),用户无法直接访问该配置扇区。
  • DFLASH逻辑扇区可以配置4KB或者2KB,DFLASH的页有8字节组成,也就是DFLASH最小擦除单元为4/2K,最小编程单元为8字节。
  • PFLASH逻辑扇区16KB,PFLASH的页有32字节组成,也就是PFLASH最小擦除单元为16K,最小编程单元为32字节。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值