为什么如今的单片机有了Flash作为ROM,还要用EEPROM?
目录
前言
一.ROM的介绍
1.ROM的概念
2.ROM的种类
二.EEPROM的大致介绍
三.Flash的大致介绍
四.ROM、Flash、EEPROM三者的关系
五.为什么如今的单片机有了Flash作为ROM,还要用EEPROM?
前言
事实上,从专业的角度这个问题本身是存在错误的。
想要搞清楚具体的原因还需明白Flash、EEPROM、ROM这三者的关系和概念。
一.ROM的介绍
1.ROM的概念
只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息,信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。
由于ROM存数据稳定 ,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。
2.ROM的种类
一般我们可以将ROM大致分为5种:
1)掩膜编程的只读存储器MROM(Mask-programmedROM)
2)可编程的只读存储器PROM(Programmable ROM)
3)可擦除可编程的只读存储器EPROM(Erasable Programmable ROM)
4)可电擦除可编程的只读存储器 EEPROM(Elecrically Erasable Programmable ROM)
5)快擦除读写存储器(Flash Memory)
这里不再阐述这五种ROM的具体细节了,下面会大致说一下EEPROM和Flash的细节,感兴趣的读者可以看下面这篇博客,里面详细讲述了这五种ROM的方方面面。
https://pantang.blog.csdn.net/article/details/111682297?fromshare=blogdetail&sharetype=blogdetail&sharerId=111682297&sharerefer=PC&sharesource=xiuxingzhe01&sharefrom=from_link
二.EEPROM的大致介绍
电可擦可编程序只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)是一种随时可写入而无须擦除原先内容的存储器。这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次,具有较高的可靠性。
由于其修改时只需使用普通的控制、地址和数据总线,所以它具有修改灵活的优点,可以随机访问和修改任何一个字节,即可以往每个bit中写入0或者1。
但其缺点是集成度低,电路复杂,成本较高,因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。
三.Flash的大致介绍
快擦除读写存储器( Flash Memory)是英特尔公司90年代中期发明的一种高密度、非易失性的读/写半导体存储器它既有EEPROM的特点,又有RAM的特点,是一种全新的存储结构,俗称快闪存储器。“闪存”芯片采用单一电源(3V或者5V)供电,擦除和编程所需的特殊电压由芯片内部产生,因此可以在线系统擦除与编程。“闪存”也是典型的非易失性存储器,在正常使用情况下,其浮置栅中所存电子可保存100年而不丢失。
与 EEPROM一样,快闪存储器使用电可擦技术;但与EEPROM不一样的是它只能擦除存储器中的某些块(扇区),而不能字节级的擦除。
四.ROM、Flash、EEPROM三者的关系
首先毫无疑问的是Flash、EEPROM属于ROM;
但此次要说的重点是Flash在早期也是EEPROM的一个类别,即Flash属于EEPROM。从这点就可以理解为什么我在前言说标题是存在错误的。
具体解释如下:
Flash的操作特性完全符合EEPROM的定义,属EEPROM无疑,首款Flash推出时其数据手册上也清楚的标明是EEPROM,现在的多数Flash手册上也是这么标明的。至于为什么业界要区分二者,主要的原因是 Flash EEPROM的操作方法和传统EEPROM截然不同,次要的原因是为了语言的简练,非正式文件和口语中Flash EEPROM就简称为Flash。
五.为什么如今的单片机有了Flash作为ROM,还要用EEPROM?
Flash的特点是结构简单,同样工艺和同样晶元面积下可以得到更高容量且大数据量下的操作速度更快,但缺点是操作过程麻烦,特别是在小数据量反复重写时,所以在MCU中Flash结构适于不需频繁改写的程序存储器。
由于EEPROM修改操作起来比较简便,所以在很多应用中,需要频繁的改写某些小量数据且需掉电非易失,传统结构的EEPROM在此非常适合。(即EEPROM更多的用作非易失的数据存储器)
通常,单片机里的Flash都用于存放运行代码,在运行过程中不能改;EEPROM是用来保存用户数据,运行过程中可以改变,比如一个时钟的闹铃时间初始化设定为12:00,后来在运行中改为6:00,这是保存在EEPROM里,不怕掉电,就算重新上电也不需要重新调整到6:00。
所以很多MCU(单片机)内部设计了两种EEPROM结构,FLASH的和传统的以期获得成本和功能的均衡,这极大的方便了使用者。
感觉有用的话,点个赞再走呗!
作者:河南硬件菌