EEPROM,電可擦可編程只讀存儲器--一種掉電後數據不丟失的存儲晶片。 EEPROM 可以在電腦上或專用設備上擦除已有信息,重新編程。一般用在即插即用。
EEPROM(帶電可擦寫可編程讀寫存儲器)是用戶可更改的只讀存儲器EEPROM(ROM),其可通過高於普通電壓的作用來擦除和重編程(重寫)。不像EPROM晶片,EEPROM不需從計算機中取出即可修改。在一個EEPROM中,當計算機在使用的時候可頻繁地反覆編程,因此EEPROM的壽命是一個很重要的設計考慮參數。EEPROM是一種特殊形式的快閃記憶體,其應用通常是個人電腦中的電壓來擦寫和重編程。
EEPROM,一般用於即插即用(Plug & Play)。常用在接口卡中,用來存放硬體設置數據。也常用在防止軟體非法拷貝的「硬體鎖」上面。
FLASH 存儲器又稱快閃記憶體,根據內部架構和實現技術可以分為AND , NAND , NO R , NiNOR 等等,它結合了ROM和RAM的長處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會斷電丟失數據同時可以快速讀取數據(NVRAM 的優勢)。
與其他存儲介質相比 , Flash存儲器具有如下優點:
1、與低讀、寫延遲和包含機械部件的磁碟相比, Flash存儲器的讀 、寫延遲較低 ;
2、統一的讀性能 ,尋道和旋轉延遲的消除使得隨機讀性能與順序讀性能幾乎一致;
3、低能耗 ,能量消耗顯著低於RAM 和磁碟存儲器;
4、高可靠性,MTBF(mean time between failures)比磁碟高一個數量級;
5、能適應惡劣環境 ,包括高溫、劇烈震動等。
單片機運行時的數據都存在於RAM(隨機存儲器)中,在掉電後RAM 中的數據是無法保留的,那麼怎樣使數據在掉電後不丟失呢?這就需要使用EEPROM 或FLASHROM 等存儲器來實現。在傳統的單片機系統中,一般是在片外擴展存儲器,單片機與存儲器之間通過IIC 或SPI 等接口來進行數據通信。這樣不光會增加開發成本,同時在程序開發上也要花更多的心思。
在STC 單片機中內置了EEPROM(其實是採用IAP 技術讀寫內部FLASH 來實現EEPROM),這樣就節省了片外資源,使用起來也更加方便。下面就詳細介紹STC 單片機內置EEPROM 及其使用方法。
flash是用來放程序的,可以稱之為程序存儲器,可以擦出寫入但是基本都是整個扇區進行的。一般來說 單片機裡的flash都用於存放運行代碼,在運行過程中不能改;EEPROM是用來保存用戶數據,運行過程中可以改變,比如一個時鐘的鬧鈴時間初始化設定為12:00,後來在運行中改為6:00,這是保存在EEPROM裡,不怕掉電,就算重新上電也不需要重新調整到6:00。
下面是網上詳細的說法,感覺不錯:
FLASH 和EEPROM的最大區別是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可以獲取更大商業利益,所以在事實上,技術概念混淆的始作俑者正是他們。
從成本上講,用Flash「模擬」EEPROM是合算的,反之不會有人幹,用EEPROM模擬Flash是怎麼回事呢?這可能出在某些程序存儲空間和數據存儲空間連續的MCU上。這類MCU中特別是存儲容量不大的低端MCU依然採用EEPROM作為非易失存儲器,這在成本上反而比採用Flash和傳統EEPROM雙工藝的設計更低,但這種現象僅僅限於小容量前提下。
因Flash工藝的流行,現在很多商人和不夠嚴謹的技術人員將程序存儲器稱為Flash,對於那些僅採用傳統EEPROM工藝的MCU而言,他們不求甚解,故而錯誤的將EEPROM程序存儲器稱為「 模擬Flash」,根本的原因是他們未理解Flash只是一種存儲器結構而非存儲器的用途,錯誤的前提自然導致錯誤的結論。
商業上講,用EEPROM模擬 Flash是不會有人真去做的愚蠢行為,這違背商業追求最大利益的原則,技術上也不可行,而對於技術人員而言。本質的問題是Flash是一種存儲器類型而非MCU中的程序存儲器,即使MCU的程序存儲器用的是Flash,但其逆命題不成立
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴