微控制器執行時的資料都存在於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,但其逆命題不成立
EEPROM 和 FLASH的區別
eeprom,eprom,flash都是基於一種浮柵管單元 floating gate transister 的結構。eprom的浮柵處於絕緣的二氧化矽層中,充入的電子只能用紫外線的能量來激出,eeprom的單元是由flotox floating gate tuneling oxide transi...
EEPROM和flash的區別
之前對各種儲存器一直不太清楚,今天總結一下。儲存器分為兩大類 ram和rom。ram就不講了,今天主要討論rom。rom最初不能程式設計,出廠什麼內容就永遠什麼內容,不靈活。後來出現了prom,可以自己寫入一次,要是寫錯了,只能換一片,自認倒霉。人類文明不斷進步,終於出現了可多次擦除寫入的eprom...
EEPROM和flash的區別
之前對各種儲存器一直不太清楚,今天總結一下。儲存器分為兩大類 ram和rom。ram就不講了,今天主要討論rom。rom最初不能程式設計,出廠什麼內容就永遠什麼內容,不靈活。後來出現了prom,可以自己寫入一次,要是寫錯了,只能換一片,自認倒霉。人類文明不斷進步,終於出現了可多次擦除寫入的eprom...