zoukankan      html  css  js  c++  java
  • EEPROM、Flash有关知识

    存储器分为两大类:RAM(Random Access Memory,任意地址访问储存器)和ROM(Read-Only Memory,只读储存器)。

    发展历史

    ROM

    Read-Only Memory,只读储存器。

    微机的发展初期,BIOS都存在在ROM中。ROM的资料都是原产用特殊方法烧录进去的。其中的内容只能读不能改。

    PROM

    Programmable Read-Only Memory,也称为:One-Time Programmable (OTP)ROM,一次性可编程只读储存器。

    跟ROM一样,也是只能读不能改,但跟ROM区别在于:用户可以用专用的编程器将自己的资料烧录,但机会只有一次(One-Time)

    EPROM

    Electrical Programmable Read Only Memory,可擦除可程式只读存储器。

    类似于PROM,不同的是:EPROM烧写次数增加了,但烧写的条件相比PROM较为苛刻。

    是一种断电后仍能保留数据的计算机储存芯片。它是一组浮栅晶体管,被一个提供比电子电路中常见电压更高电压的电子器件分别编程。一旦变成完成后,EPROM只能用强紫外线照射来擦除。
    识别EPROM,可以通过封装顶部的硅片的透明窗口。这个窗口是用来擦除紫外线。可以将EPROM的玻璃窗对准阳光直射一段时间就可以擦除。完成芯片擦除的操作要用到EPROM擦除器。
    EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压。
    EPROM的型号是以27开头的。
    EPROM芯片在写入资料后,还要用不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料被擦除。
    EPROM芯片在空白状态时,内部的每一个存储单元的数据都为1,即高电平。

    EEPROM

    Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器。

    因为EPROM操作的不便,后来出的主板BIOS ROM芯片大部分都采用EEPROM。
    跟EPROM的区别主要在于擦除不需要借助其他设备,写入资料也是。
    用电子信号来修改其内容。

    EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM 的Eraser和编程器的束缚。

    因此目前的EEPROM都是几十千字节到几百千字节的,很少有超过512K的。

    EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用厂商提供的专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。

    FLASH

    flash属于广义的EEPROM(全称是FLASH EEPROM),因为它也是电擦除的rom。但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它flash。

    flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上M的rom一般都是flash。

    flash分为nor flash和nand flash。

    • nor flash数据线和地址线分开,可以实现ram一样的任意寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。

    • nand flash同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(nandflash按块来擦除,按页来读;norflash没有页的概念)

    因为nor flash可以进行字节寻址,所以程序可以在nor flash中运行。

    由于nandflash引脚上复用,因此读取速度比nor flash慢一点,但是擦除和写入速度比nor flash快很多。nand flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。

    使用寿命上,nand flash的擦除次数是nor的数倍。而且nand flash可以标记坏块,从而使软件跳过坏块。nor flash 一旦损坏便无法再用。

    嵌入式系统多用一个小容量的nor flash存储引导代码,用一个大容量的nand flash存放文件系统和内核。

    写flash时为什么需要先擦除?

    Flash 的编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在 Flash 编程之前,必须将对应的块擦除,而擦除的过程就是把所有位都写为 1 的过程,块内的所有字节变为 0xFF。

    总结

    FLASH和EEPROM的最大区别是:FLASH按扇区操作,EEPROM则按字节操作 (二者寻址方式不同)。

    一般来说:

    • EEPROM中存放开机是用到的参数,不可丢失的变量等
    • 而FLASH中会存放程序,记录文件等。

    FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,

    EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。

  • 相关阅读:
    突破
    leetcode刷题 538~
    leetcode刷题 519~
    Docker练习之镜像更新方法1
    十二 Linux之tar解压缩
    十一 Linux软件包管理yum
    十 Linux指令之grep
    九 linux指令之find
    八 Linux ps指令查看进程和kill杀进程
    七 Linux top命令
  • 原文地址:https://www.cnblogs.com/schips/p/eeprom_and_flash.html
Copyright © 2011-2022 走看看