今日头条
单片机语音芯片运行时的数据存在于RAM (随机存储器)中,停电后无法保留RAM的数据时,如何在停电后不丢失数据呢?这需要使用EEPROM和FLASHROM等存储器来实现。
EEPROM
EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。是相对于只外擦除的rom来讲的。但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。
这类rom的特性是它可以随机存取和修改任何字节,并将0或1写入每个位。这是传统的EEPROM,也是被称为狭义EEPROM。断电后数据不会丢失。它可以储存100年,擦除100瓦次。具备较高的可靠性,可是电源电路繁杂/成本费也高。因而现阶段的EEPROM全是一百多千字节数到好几百千字节数的,很少有超出512K的。
Flash
Flash归属于理论的EEPROM,由于它都是可擦除的ROM。可是以便差别于通常的按字节数为企业的擦写的EEPROM,我们叫它Flash。
既然两者差不多,为什么单片机中还要既有Flash又有EEPROM呢?
通常,单片机语音芯片里的Flash都用于存放运行代码,在运行过程中不能改;EEPROM是用来保存用户数据,运行过程中可以改变,比如一个时钟的闹铃时间初始化设定为12:00,后来在运行中改为6:00,这是保存在EEPROM里,不怕掉电,就算重新上电也不需要重新调整到6:00。
但大区别是其实是:FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更人性化的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有 FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。
在芯片的内电路中,FLASH和EEPROM不仅电路不同,地址空间也不同,操作方法和指令自然也不同,不论冯诺伊曼结构还是哈佛结构都是这样。技术上,程序存储器和非易失数据存储器都可以只用FALSH结构或EEPROM结构,甚至可以用变通的技术手段在程序存储区模拟数据存储区”,但就算如此,概念上二者依然不同,这是基本常识问题。
EEPROM:电可擦除可编程只读存储器,Flash的操作特性完全符合EEPROM的定义,属EEPROM无疑,Flash推出时其数据手册上也清楚的标明是EEPROM,现在的多数Flash手册上也是这么标明的,二者的关系是“白马”和“马”。至于为什么业界要区分二者,主要的原因是 Flash EEPROM的操作方法和传统EEPROM截然不同,次要的原因是为了语言的简练,非正式文件和口语中Flash EEPROM就简称为Flash,这里要强调的是白马的白属性而非其马属性以区别Flash和传统EEPROM。
Flash:Flash的特点是结构简单,同样工艺和同样晶元面积下可以得到更高容量且大数据量下的操作速度更快,但缺点是操作过程麻烦,特别是在小数据量反复重写时,所以在MCU中Flash结构适于不需频繁改写的程序存储器。
在许多应用中,一些少量数据需要频繁重写,并且电源故障是非易失性的。传统结构的EEPROM非常适合这里。因此,许多单片机语音芯片设计了闪存和传统两种EEPROM结构,以达到成本和功能的平衡,使用非常方便。随着ISP和IAP的普及,特别是在程序存储地址空间和数据存储地址空间重叠的单片机系统中,越来越多的单片机语音芯片制造商现在使用IAP支持的程序存储器来模拟对应于EEPROM的数据存储器,以低成本实现非易失性数据存储。为了在商业宣传中实现与双EEPROM工艺的等效,许多使用闪存编程存储器(Flash program memory)来模拟(注意技术概念并非真正模拟)EEPROM数据存储器的制造商都声称他们的产品配备了EEPROM,严格来说,这不是很严谨,但是商人有商人的目的和方法,通过用闪存模拟EEPROM可以获得更大的商业利益。因此,事实上,是他们造成了技术概念的混乱。
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !