之前有读者问过类似这样的问题:
1.EEPROM 和 FLASH有什么区别?
2.单片机中为什么很少有EEPROM呢?
2.ROM不是只读存储器吗?为什么 EEPROM 可以读写操作呢?
今天就来围绕EEPROM 和 FLASH展开描述,希望能解决你心中的疑惑。
ROM的发展
ROM:Read-Only Memory,只读存储器。
以非破坏性读出方式工作,只能读出无法写入信息,信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。
---来自百度百科
最早的ROM是不能编程的,出厂时其存储内容(数据)就已经固定了,永远不能修改,也不灵活。
因为存在这种弊端,后来出现了PROM(Programmable read-only memory,可编程只读存储器),可以自己写入一次,要是写错了,只能换一块芯片。
因为只能写一次,还是存在很多不方便,于是出现了EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器),这种存储器就可以多次擦除,但是这种可擦除的存储是通过紫外线进行擦除,擦除的时候也不是很方便。
引用一个比如:如果你往单片机下载一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次。
随着技术的不断进步,EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器)来了,解决了ROM过去历史中存在一些问题。
至此,大家今天看到的EEPROM,基本都是发展得很成熟的EEPROM了。
Flash的发展
Flash,又叫Flash Memory,即平时所说的“闪存”。
1.NOR Flash
EEPROM和FLASH区别
现在的 EEPROM 和 FLASH 都属于“可多次电擦除存储器”,但他们二者之间还是有很大差异。
首先,他们最大差异就是:FLASH按块/扇区进行读写操作,EEPROM支持按字节读写操作。
其次,容量大小不同:FLASH容量可以做到很大,但EEPROM容量一般都很小。
再次,就是它们的应用场景不同:EERPOM存储零散小容量数据,比如:标志位、一组数据等。FLASH存储大容量数据,比如:程序代码、图片信息等。
再次,内部结构不同,Flash结构更简单,成本更低,类似前面和大家分享的《单片机中RAM少的原因》。
当然,还有很多其他区别,但随着技术的提升,它们二者已经很接近了。以前它们不能满足的功能,现在基本都能满足了。
单片机中为啥很少有EEPROM?
通过上面的描述,相信大家基本都能明白,为什么单片机中很少有EEPROM了。
下面简单总结以下几点原因:
1.Flash容量更大,储存数据更多;
2.Flash速度更快,特别是读取速度;
3.同等容量,Flash成本更低;
4.Falsh体积更小,在单片机有限的空间Flash优势更明显;
5.随着RAM增加、CPU处理速度增快,能用Flash“模拟”EERPOM;
6.···