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结构,现在已基本上停产了。
EEPROM、Flash有关知识的更多相关文章
- Nand Flash基础知识与坏块管理机制的研究
概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...
- ArduPilot存储管理 Storage EEPROM Flash
AP_HAL::Storage 此类可以应用于所有平台.PX4v1平台支持8k的EEPROM,Pixhawk平台支持16k的FRAM铁电存储器 存储大小定义:libraries/AP_HAL/AP_H ...
- Flash相关知识
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" wid ...
- FLASH的知识【转】
转自:http://blog.csdn.net/xgbing/article/details/18422691 版权声明:原创文章,转载请注明来自:http://blog.csdn.net/xgbin ...
- ESP32的Flash加密知识
一.Flash 加密功能用于加密与 ESP32-S2 搭载使用的 SPI Flash 中的内容.启用 Flash 加密功能后,物理读取 SPI Flash 便无法恢复大部分 Flash 内容.通过明文 ...
- nand flash详解及驱动编写
https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...
- 详解SPI中的极性CPOL和相位CPHA
SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间.即一个SPI的Master通过SPI与一个 ...
- Linux内核配置选项
http://blog.csdn.net/wdsfup/article/details/52302142 http://www.manew.com/blog-166674-12962.html Gen ...
- nRF52832之硬件I2C
这几天一直在折腾nRF52832的硬件I2C,到了今天最终出现了成果,在此也印证了那句话:"耕耘就有收获" 52832的硬件I2C尽管官方提供了demo,可是自己对I2C通信理解的 ...
- 深入linux kernel内核配置选项
============================================================================== 深入linux kernel内核配置选项 ...
随机推荐
- go和c#实现斐波那契数列
首先通过C#实现斐波那契数列: using System.Threading.Channels; namespace App001 { internal class Program { static ...
- 二:大数据架构回顾-Kappa架构
Kappa 架构是由 LinkedIn 的前首席工程师杰伊·克雷普斯(Jay Kreps)提出的一种架构思想.克雷普斯是几个著名开源项目(包括 Apache Kafka 和 Apache Samza ...
- 11.IO 流
1.IO 流引入 概述:以应用程序为参照物,读取数据为输入流(Input),写数据为输出流(Output),大量输入输出数据简称 IO 流 原理: 2.IO 流的分类 读写的文件分类 二进制文件:打开 ...
- CentOS加载yum源时报错 [Errno 14] HTTP Error 404 - Not Found Trying other mirror.
报错内容: [root@192 yum.repos.d]# yum repolist Loaded plugins: fastestmirror, product-id, search-disable ...
- Mac远程控制工具有哪些
适用于Mac的远程控制工具有很多,这里我们给大家列举五个常用软件. 1.Apple Remote Desktop 苹果自带远程桌面正如其名称所承诺的那样.作为 Apple 出品的应用程序,您可以想象它 ...
- pageoffice 6版本隐藏office工具栏和自定义按钮,并修改标题栏内容
在实际项目集成调用PageOffice的过程中: (1)有时需要把Office的工具栏隐藏,比如只读模式打开文件的时候,Office工具栏上的按钮几乎都是灰掉的,此时显示Office工具栏没有任何意义 ...
- 将自己喜欢的网页保存为单个文件包括图片(mhtml文件)
from selenium import webdriver driver = webdriver.Chrome(r'C:\chromedriver_win32\chromedriver.exe') ...
- JavaScript的数学计算库:decimal.js
An arbitrary-precision Decimal type for JavaScript. 功能 整数和浮点数 简单但功能齐全的 API 复制 JavaScript 和对象的许多方法Num ...
- 基于ADB Shell 实现的 Android TV、电视盒子万能遥控器 — ADB Remote ATV
ADB Remote ATV Android TV 的遥控器,基于 ADB Shell 命令 ADB Remote ATV 是一个 Android TV 的遥控器,基于 ADB Shell 命令,泛用 ...
- Java21 GA新特性-虚拟线程详解
本文转载至:虚拟线程 - VirtualThread源码透视 - throwable - 博客园 (cnblogs.com) 一. 前提 JDK19于2022-09-20发布GA版本,该版本提供了虚拟 ...