硬件相关基础知识0(EEPROM和flash的区别)


需求说明:因视频处理模块需要根据查找表的数值确定位置信息,所以需要存储设备将UART接收的数据进行存储以备下次上电直接读取使用。查阅相关资料整理如下。

                      第一部分以MCU应用角度分析EEPROM和FLASH的区别,可以从感性上认识两者的用途和区别

                      第二部分从工艺,构架等角度对EEPROM和FLASH进行分析

                      第三部分是我自己针对查阅资料的一个小结


第一部分

来自:http://zhidao.baidu.com/link?url=ae9wpiNfxhAyz20S24xSf50eML0uSwzvf9Ellrb70N3RXd_V0DZDPYWF2Z3dreq5WHOhr31rNdtUVRDrxvkVLa


问:单片机里EEPROM与flash有什么区别?在程序中的用处有什么大的区别吗?


解答一:flash是用来存储代码的,在运行过程中不能改;EEPROM是用来保存用户数据,
        运行过程中可以改变,比如一个时钟的闹铃时间初始化设定为12:00,后来在
        运行中改为6:00,这是保存在EEPROM里,不怕掉电,就算重新上电也不需要
        重新调整到6:00.


解答二:两者都是非易失性存储器FLASH的全称是FLASH EEPROM,但跟常规EEPROM的操作
        方法不同FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,
        二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容
        量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM
        则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比
        EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失
        性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,
        现在已基本上停产了。一般来说eeprom中存放开机是用到的参数,不可丢失的变
        量等,而FLASH中会存放程序,记录文件等。
        
解答三:一般来说flash是用来放程序的,可以称之为程序存储器使用的时候,我们是把
        所编写的程序烧录到flash中去。而EEPROM 是用来存放掉电后不希望丢失的数据
        的,可以理解为数据存储器。当然flash也可以存放数据,我们可以把不发生改变
        的数据,以代码的形式存放到flash中。而偶尔会修改,掉电还不希望其丢失的数
        据存放到EEPROM中。        


解答四:eeprom可位操作目前容量最大的好像256K,串行并行都有。flash都是块操作,容
        量很大很大,我现在用的是64M的,串行并行都有。它俩都掉电保存。


解答五:都能掉电储存,制作工艺不一样,在体积相等情况下FLASH的容量大。一般EEPROM能擦
        写10万次以上,而FLASH一般为1万次以下,各有优缺点。所以档次稍微高的单片机两
        样都有,EEPROM用于存储经常修改的一些参数,如用户的一些设定值,而FLASH用于
        存储程序。
        
        

第二部分



来自:http://blog.csdn.net/yuanlulu/article/details/6163106
标题: EEPROM和flash的区别


    之前对各种存储器一直不太清楚,今天总结一下。
 
    存储器分为两大类:ram和rom。
 
    ram就不讲了,今天主要讨论rom。
 
    rom最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了prom,可以自己写入一次,
要是写错了,只能换一片,自认倒霉。人类文明不断进步,终于出现了可多次擦除写入的EPROM,
每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要
加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几
次。历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意的修改rom
中的内容了。
 
    EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。
是相对于紫外擦除的rom来讲的。但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。
 
狭义的EEPROM:


    这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。这是最传统的一种EEPROM,掉
电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM
都是几十千字节到几百千字节的,绝少有超过512K的。
 
flash:


    flash属于广义的EEPROM,因为它也是电擦除的rom。但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫
它flash。flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了
成本。上M的rom一般都是flash。
 
    flash分为nor flash和nand flash。nor flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。
nand flash同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(nandflash按块来擦除,按页来读,norflash没有页)
由于nandflash引脚上复用,因此读取速度比nor flash慢一点,但是擦除和写入速度比nor flash快很多。nand flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。
使用寿命上,nand flash的擦除次数是nor的数倍。而且nand flash可以标记坏块,从而使软件跳过坏块。nor flash 一旦损坏便无法再用。
 
    因为nor flash可以进行字节寻址,所以程序可以在nor flash中运行。嵌入式系统多用一个小容量的nor flash存储引导代码,用一个大容量的nand flash存放文件系统和内核。



第三部分
    应用方向:EEPROM -> 数据存储器   
              FLASH  -> 程序存储器
    
    存储容量:EEPROM -> ST可以提供业内最大的存储容量,2 Mbits
              NOR FLASH(数据线和地址线分开)    -> 容量一般为1~16M用于单片机代码存储
              NAND FLASH(数据线和地址线不分开) -> 最小的是8M最大的现在听说有90G还可
                                                  能更大,一般用在大容量存储方面
              
    读写速度:EEPROM -> 一般为IIC总线方式(400kbps)
              FLASH  -> 一般为SPI总线方式(我使用过45Mbps)
    
    总结    :通过分析,最终需用存储芯片应该是NOR FLASH.


整理来自:时间的诗


你可能感兴趣的:(Flash,vs,eeprom,硬件相关)