FLASH和EEPROMD对比
文章目录
1、简介
因为部分MCU不带片上程序存储器,可执行代码只能放在外面的EEPROM、FLASH(外扩)中。一般所说的EEPROM都是狭义上的EEPROM,FLASH也是广义上的EEPROM,本文所说的EEPROM都是指狭义上的EEPROM,具体如下图所示:
2、EEPROM
1.1、ROM的发展
1.1.1、ROM:
ROM:Read-Only Memory,只读存储器。最早的ROM是不能编程的,出厂时其存储内容(数据)就已经固定了,永远不能修改,也不灵活。
1.1.2、PROM
因为早起ROM的弊端,后来出现了PROM(Programmable read-only memory,可编程只读存储器),可以自己写入一次,要是写错了,只能换一块芯片。
1.1.3、EPROM
因为只能写一次,还是存在很多不方便,于是出现了EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器),这种存储器就可以多次擦除,但是EPROM擦除是通过紫外线进行擦除,很是不方便,耗时较长往往修改一点代码,就需要把单片机放紫外线灯下照半个小时。
1.1.4、EEPROM
随着技术的不断进步,**EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器)**的出现,解决了ROM过去历史中存在一些问题。
EEPROM的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1;具有较高的可靠性,但是电路更复杂,其成本较高,因此容量都很小,从几KB到几百KB不等。
至此,大家今天看到的EEPROM,基本都是发展的很成熟的EEPROM了。
2.2、EEPROM的作用和特点
- EEPROM是用来保存用户数据,运行过程中可以改变。
- 容量小、K字节级别
- 按bit操作,可读可写
- 一般保存当前工作状态,多用数据存储。
- 以字节byte为最小修改单元
3、FLASH
Flash,又叫Flash Memory,即平时所说的“闪存”,属于广义的EEPROM,因为它也是电擦除的rom。但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它FLASH。
FLASH擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上Mb的rom一般都是FLASH。
3.1、flash发展
Flash结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的功能,还可以快速读取数据,具有NVRAM的优势(NVRAM:Non-Volatile Random Access Memory,非易失性随机访问存储器)。
在过去,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,Flash的出现,全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘、固态硬盘)。
3.2、FLASH的分类
3.2.1、NOR Flash
Intel于1988年首先开发出NOR Flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。
nor flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦,因此用户可以直接运行装载在NOR Flash里面的代码,这样可以减少SRAM的容量从而节约了成本。因为其读取速度快,多用来存储程序、操作系统等重要信息。
3.2.2、NAND Flash
1989年,东芝公司发表了NAND Flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。
NAND Flash没有采取内存的随机读取技术,采用数据线和地址线复用,不能利用地址线随机寻址。读取只能按页(page)来读写,按块(block)擦除。
用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板,除了使用NAND Flash以外,还作上了一块小的NOR Flash来运行启动代码。NOR Flash存储引导代码,用一个大容量的NAND Flash存放文件系统和内核。
3.2.3、两种Flash的比较
- 相比于 NOR Flash,NAND Flash 写入性能好,大容量下成本低,但是不能直接运行程序。
- NAND Flash按块来擦除,按页来读写,NOR Flash没有页
- NAND Flash可以标记坏块,从而使软件跳过坏块。NOR Flash一旦损坏便无法再用。
目前,绝大部分手机和平板等移动设备中所使用的 eMMC 内部的 Flash Memory 都属于 NAND Flash。PC 中的固态硬盘中也是使用 NAND Flash。
4、EEPROM和FLASH区别联系
相同点:
-
FLASH和EEPROM都属于广义的ROM,掉电数据不丢失。
-
现在的 EEPROM 和 FLASH 都属于“可多次电擦除存储器”
区别点:
- 首先,他们最大差异就是:FLASH按块/扇区进行读写操作,EEPROM支持按字节读写操作。
- 其次,容量大小不同:FLASH容量可以做到很大,但EEPROM容量一般都很小。
- 再次,就是它们的应用场景不同:EERPOM存储零散小容量数据,比如:标志位、一组数据等。FLASH存储大容量数据,比如:程序代码、图片信息等。
- 读写速度不同,FLASH读写速度较快,读写的速度较快2.4Gbps**;EEPROM读写的速度比较慢**,一般20Mbps
- FLASH写之前必须擦除,最小擦除一个扇区block;EEPROM但是在写入时不需要擦除,最小可写一个字节byte
- 作用不同,Flash是用来存储程序、代码,在运行过程中不能改;EEPROM是用来保存用户数据,运行过程中可以改变
- 再次,内部结构不同,Flash结构更简单,成本更低,类似前面和大家分享的《单片机中RAM少的原因》。
当然,还有很多其他区别,但随着技术的提升,它们二者已经很接近了。以前它们不能满足的功能,现在基本都能满足了。
项目 | EEPROM | FLASH |
---|---|---|
接口 | IIC、SPI、Microwire | SPI、并行接口 |
速写速率 | 0-20Mbps | 最高2.4Gbps |
存储时间 | 100年 | 最大10年 |
擦写次数 | 100万 次 | 10万次 |
最小操作单元 | 字节 | block块操作 |
功耗 | 很低 | 高 |
容量 | 小,不超过1Mb | 大 |
5、单片机中为啥很少有EEPROM
通过上面的描述,相信大家基本都能明白,为什么单片机中很少有EEPROM了。
下面简单总结一下几点原因:
1.Flash容量更大,储存数据更多;
2.Flash速度更快,特别是读取速度;
3.同等容量,Flash成本更低;
4.Falsh体积更小,在单片机有限的空间Flash优势更明显;
5.随着RAM增加、CPU处理速度增快,能用Flash“模拟”EERPOM;