微控制器中的FLASH和EEPROM

2021-06-11 14:15:23 字數 2007 閱讀 4670

flash的全稱是flash eeprom,但跟常規eeprom的操作方法不同。

flash 和eeprom的最大區別是flash按扇區操作,eeprom則按位元組操作,二者定址方法不同,儲存單元的結構也不同,flash的電路結構較簡單,同樣容量佔晶元面積較小,成本自然比eeprom低,因而適合用作程式儲存器,eeprom則更多的用作非易失的資料儲存器。當然用flash做資料儲存器也行,但操作比eeprom麻煩的多,所以更「人性化」的mcu設計會整合flash和eeprom兩種非易失性儲存器,而廉價型設計往往只有 flash,早期可電擦寫型mcu則都是eeprm結構,現在已基本上停產了。

在mcu系統基本結構晶元的內電路中,flash和eeprom不僅電路不同,位址空間也不同,操作方法和指令自然也不同,不論馮諾伊曼結構還是哈佛結構都是這樣。技術上,程式儲存器和非易失資料儲存器都可以只用falsh結構或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,但其逆命題不成立。

28系列是最早的eeprom,28f則是最早的flash,甚至flash一詞是intel在1980s為推廣其28f系列起的「廣告名」,取其意 「快」,僅此而已。當年的器件手冊和廣告,2023年28f256當年剛剛進入大陸的《國際電子商情》上intel打的flash eeprom廣告,變體的flash字樣突出的就是flash的字面意義——「快」。當年的flash不比傳統eeprom容量更大只是容量起點稍高。至於現在的手冊中有無eeprom字樣並不重要,非要「較枝」的話,看看內容有無「電可擦除」儲存器的說法,至少我隨手開啟sst的flash手冊上都寫的很清楚,不過這些根本就是無意義的皮毛,典型的白馬非馬論。

為什麼微控制器中既有FLASH又有EEPROM?

20161227464036.html 微控制器執行時資料都儲存在ram中,在掉電後ram的資料是無法保留的,那麼怎麼使得在掉電後資料不丟失呢?這就需要使用eeprom或flashrom等儲存器來實現。rom最初不能程式設計,出廠什麼內容就永遠什麼內容,不靈活。後來出現了prom,可以自己寫入一次,...

為什麼微控制器中既有Flash又有EEPROM

微控制器執行時的資料都存在於ram 隨機儲存器 中,在掉電後ram 中的資料是無法保留的,那麼怎樣使資料在掉電後不丟失呢?這就需要使用eeprom 或flashrom 等儲存器來實現。插播一段 rom最初不能程式設計,出廠什麼內容就永遠什麼內容,不靈活。後來出現了prom,可以自己寫入一次,要是寫錯...

微控制器中為什麼有了Flash還有EEPROM?

時,然後才能再下一次,這麼折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的eeprom 出現了,拯救了一大批程式設計師,終於可以隨意的修改rom中的內容了。eeprom的全稱是 電可擦除可程式設計唯讀儲存器 即electrically erasable program mable read only...