打印

关于单片机中的flash和eeprom

[复制链接]
14997|70
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hjgum409|  楼主 | 2008-4-8 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
来自 2楼
chunyang| | 2008-4-8 17:40 | 只看该作者

FLASH的全称是FLASH EEPROM,但跟常规EEPROM的操作方法不同

    FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。
    至于那个“总工”说的话如果不是张一刀记错了的话,那是连基本概念都不对,只能说那个“总工”不但根本不懂芯片设计,就连MCU系统的基本结构都没掌握。在芯片的内电路中,FLASH和EEPROM不仅电路不同,地址空间也不同,操作方法和指令自然也不同,不论冯诺伊曼结构还是哈佛结构都是这样。技术上,程序存储器和非易失数据存储器都可以只用FALSH结构或EEPROM结构,甚至可以用“变通”的技术手段在程序存储区模拟“数据存储区”,但就算如此,概念上二者依然不同,这是基本常识问题。
    没有严谨的工作精神,根本无法成为真正的技术高手。

使用特权

评论回复
来自 3楼
chunyang| | 2008-4-17 17:33 | 只看该作者

WIKI的资料很多不全,毕竟是来自网友,质量参差不齐

    EEPROM:电可擦除可编程只读存储器,Flash的操作特性完全符合EEPROM的定义,属EEPROM无疑,首款Flash推出时其数据手册上也清楚的标明是EEPROM,现在的多数Flash手册上也是这么标明的,二者的关系是“白马”和“马”。至于为什么业界要区分二者,主要的原因是Flash EEPROM的操作方法和传统EEPROM截然不同,次要的原因是为了语言的简练,非正式文件和口语中Flash EEPROM就简称为Flash,这里要强调的是白马的“白”属性而非其“马”属性以区别Flash和传统EEPROM。
    Flash的特点是结构简单,同样工艺和同样晶元面积下可以得到更高容量且大数据量下的操作速度更快,但缺点是操作过程麻烦,特别是在小数据量反复重写时,所以在MCU中Flash结构适于不需频繁改写的程序存储器。
    在很多应用中,需要频繁的改写某些小量数据且需掉电非易失,传统结构的EEPROM在此非常适合,所以很多MCU内部设计了两种EEPROM结构,FLASH的和传统的以期获得成本和功能的均衡,这极大的方便了使用者。随着ISP、IAP的流行,特别是在程序存储地址空间和数据存储地址空间重叠的MCU系中,现在越来越多的MCU生产商用支持IAP的程序存储器来模拟EEPROM对应的数据存储器,这是低成本下实现非易失数据存储器的一种变通方法。为在商业宣传上取得和双EEPROM工艺的“等效”性,不少采用Flash程序存储器“模拟”(注意,技术概念上并非真正的模拟)EEPROM数据存储器的厂家纷纷宣称其产品是带EEPROM的,严格说,这是非常不严谨的,但商人有商人的目的和方法,用Flash“模拟”EEPROM可以获取更大商业利益,所以在事实上,技术概念混淆的始作俑者正是他们。
    从成本上讲,用Flash“模拟”EEPROM是合算的,反之不会有人干,那么那位“总工”和楼上某网友所说的用EEPROM模拟Flash是怎么回事呢?这可能出在某些程序存储空间和数据存储空间连续的MCU上。这类MCU中特别是存储容量不大的低端MCU依然采用EEPROM作为非易失存储器,这在成本上反而比采用Flash和传统EEPROM双工艺的设计更低,但这种现象仅仅限于小容量前提下。因Flash工艺的流行,现在很多商人和不够严谨的技术人员将程序存储器称为Flash,对于那些仅采用传统EEPROM工艺的MCU而言,他们不求甚解,故而错误的将EEPROM程序存储器称为“模拟Flash”,根本的原因是他们未理解Flash只是一种存储器结构而非存储器的用途,错误的前提自然导致错误的结论。商业上讲,用EEPROM模拟Flash是不会有人真去做的愚蠢行为,这违背商业追求最大利益的原则,技术上也不可行,而对于技术人员而言,尤其是IC业内的“总工”如果再这么讲那只能说明他或她要么根本不了解相关技术细节,要么非常不严谨,这都不符合“总工”的身份。本质的问题是Flash是一种存储器类型而非MCU中的程序存储器,即使MCU的程序存储器用的是Flash,但其逆命题不成立。
    在此写此文,一方面是要澄清技术概念,另一方面更是不想令错误的说法误人子弟,搞技术也需要严谨的科学精神。 

使用特权

评论回复
地板
maychang| | 2008-4-8 15:38 | 只看该作者

还有RAM呢

用途不同。

使用特权

评论回复
5
zjh006| | 2008-4-8 15:42 | 只看该作者

谁告诉你的,单片机中一般要集成flash和eeprom两种存储器?

使用特权

评论回复
6
computer00| | 2008-4-8 15:44 | 只看该作者

等你真正有过就知道为什么了。

使用特权

评论回复
7
mohanwei| | 2008-4-8 15:55 | 只看该作者

同意

使用特权

评论回复
8
张一刀| | 2008-4-8 16:25 | 只看该作者

好像挺某个业内人士说单片机内的都是eeprom,

flash 都是仿真的,做芯片的一个总工讲的

使用特权

评论回复
9
computer00| | 2008-4-8 16:27 | 只看该作者

那个总共在瞎扯……

使用特权

评论回复
10
hjgum409|  楼主 | 2008-4-8 16:30 | 只看该作者

re:

是不是flash一般用做程序存储器,而eeprom,ram用作数据存储器?

使用特权

评论回复
11
maychang| | 2008-4-8 16:36 | 只看该作者

回6楼

离你的总工远一点吧,跟着这样的总工学不到什么。

使用特权

评论回复
12
hjgum409|  楼主 | 2008-4-8 16:48 | 只看该作者

Re;eeprom用于存储一些参数什么的,掉电不丢失?

使用特权

评论回复
13
zjh006| | 2008-4-8 17:30 | 只看该作者

业内人士?

哪个行业的业内人士?看起来不像是电子行业的。

使用特权

评论回复
14
ch2003_23| | 2008-4-8 17:55 | 只看该作者

顶chunyang

没有严谨的工作精神,根本无法成为真正的技术高手

而且还要很热心,呵呵

使用特权

评论回复
15
sinanjj| | 2008-4-8 18:02 | 只看该作者

eeprom一直没用过

只用过flash...

今天学习了, 

还想知道在什么情况下用eeprom呢??

使用特权

评论回复
16
张一刀| | 2008-4-9 10:49 | 只看该作者

不敢怀疑,我们曾经想委托他们设计一款处理器

看那个总工的资料:
xxxx先生。拥有 x 项美国专利。在美国硅谷 , 从事微处理器的架构研究、设计以及项目管理超过 xx年。是 xxxx 及 xxxx 公司的创始人。

xxxx是以芯片设计与生产为主的 IC 企业。
xxxx公司现拥有国内外、优秀的专业设计工程师xx多人。IC 设计工程师xx人,系统应用及软件工程师xx人,其中,博士:x 人;硕士:xx人;本科:xx人。 
xxxx涉及的技术领域包括:各种规模集成电路设计与生产。
已经开发及参与开发了xxxx 微处理器、 xxxxxx处理器以及xxxx处理器。

"至于那个“总工”说的话如果不是张一刀记错了的话,那是连基本概念都不对,只能说那个“总工”不但根本不懂芯片设计,就连MCU系统的基本结构都没掌握。"

我希望是我记错了,哈哈。

使用特权

评论回复
17
110xia| | 2008-4-9 12:59 | 只看该作者

学习,

使用特权

评论回复
18
kl818bc| | 2008-4-16 22:29 | 只看该作者

FLASH 全称不是FLASH EEPROM

FLASH全称是FLASH MEMORY,翻译成中文就叫"闪存",和EEPROM一点关系也没有

FLASH就是FLASH , EEPROM就是EEPROM , 倆者是没有什么关系

FLASH EEPROM这个名词是不存在的,是错的!


还有,那位总工说的是指一些小容量又需要有EEPROM的MCU(如AVR),因为容量小,

一个芯片要同时放下FLASH和EEPROM实在不划算(因为这二者的制造和测试过程实在差太多了)

为了省下麻烦,就用EEPROM替代FLASH,也就是AVR存程序的"所谓FLASH"和存数据的"EEPROM"其实都是EEPROM

这样作只是成本会高一些,用起来没差别,这也是大容量AVR比同容量的ARM贵的原因

而且只有EEPROM才适合作到1K,2K,4K(TINY AVR或89C2051,89S51)的小容量

所以我认为那位总工说的没错

使用特权

评论回复
19
chunyang| | 2008-4-16 23:21 | 只看该作者

楼上还是先把相关名词的含义搞清楚

再研究一下Flash的电路结构。
顺便一说,持楼上(或者还包括那位总工)观点的人不是个别现象,到底谁说的对,但求甚解一下就够了,需要的仅仅是耐心和细心。

使用特权

评论回复
20
kl818bc| | 2008-4-17 10:19 | 只看该作者

刚刚查了一下WIKI百科

部分取自 http://en.wikipedia.org/wiki/Flash_memory

Although technically a type of EEPROM, the term "EEPROM" is generally used to refer specifically to non-flash EEPROM which is erasable in small blocks, typically bytes.

FLASH也是EEPROM技术的一种

只不过上面也说,一般称的"EEPROM",是指不包含FLASH的其它EEPROM

所以FLASH EEPROM也勉强算是一种正确的说法,特此更正我上面的说法

不过在WIKI百科里查Flash_EEPROM这个名词,也是Redirect到Flash_memory来的

所以那种名词才是最适当的说法,网友们可以自行判断


撇开这些名词上的问题,我还是认为那位总工说的没错,很多小MCU内部都是用EEPROM来存程序的

虽然数据手册上写的是FLASH,但是实际上芯片内部是用EEPROM来仿真成FLASH的

还有,从现在还能买到的主流FLASH芯片容量都在512K位(64K字节)以上,而EEPROM可以买到1K的24C01

就更能证明小容量的MCU用EEPROM来仿真FLASH的说法是对的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

120

帖子

0

粉丝