時,然后才能再下一次,這么折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的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又有EEPROM呢?
通常,單片機里的Flash都用于存放運行代碼,在運行過程中不能改;EEPROM是用來保存用戶數據,運行過程中可以改變,比如一個時鐘的鬧鈴時間初始化設定為12:00,后來在運行中改為6:00,這是保存在EEPROM里,不怕掉電,就算重新上電也不需要重新調整到6:00。
但最大區別是其實是:FLASH按扇區操作,EEPROM則按字節操作,二者尋址方法不同,存儲單元的結構也不同,FLASH的電路結構較簡單,同樣容量占芯片面積較小,成本自然比EEPROM低,因而適合用作程序存儲器,EEPROM則更多的用作非易失的數據存儲器。當然用FLASH做數據存儲器也行,但操作比EEPROM麻煩的多,所以更“人性化”的MCU設計會集成FLASH和EEPROM兩種非易失性存儲器,而廉價型設計往往只有 FLASH,早期可電擦寫型MCU則都是EEPRM結構,現在已基本上停產了。
在芯片的內電路中,FLASH和EEPROM不僅電路不同,地址空間也不同,操作方法和指令自然也不同,不論馮諾伊曼結構還是哈佛結構都是這樣。技術上,程序存儲器和非易失數據存儲器都可以只用FALSH結構或EEPROM結構,甚至可以用“變通”的技術手段在程序存儲區模擬“數據存儲區”,但就算如此,概念上二者依然不同,這是基本常識問題。
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可以獲取更大商業利益,所以在事實上,技術概念混淆的始作俑者正是他們。
-
單片機
+關注
關注
6032文章
44516瀏覽量
632981 -
FlaSh
+關注
關注
10文章
1621瀏覽量
147749 -
EEPROM
+關注
關注
9文章
1010瀏覽量
81405
原文標題:詳解單片機為什么既有Flash又有EEPROM?
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論