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可以獲取更大商業利益,所以在事實上,技術概念混淆的始作俑者正是他們。
微控制器中為什麼有了Flash還有EEPROM?
時,然後才能再下一次,這麼折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的eeprom 出現了,拯救了一大批程式設計師,終於可以隨意的修改rom中的內容了。eeprom的全稱是 電可擦除可程式設計唯讀儲存器 即electrically erasable program mable read only...
微控制器中為什麼有了Flash還有EEPROM?
時,然後才能再下一次,這麼折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的eeprom 出現了,拯救了一大批程式設計師,終於可以隨意的修改rom中的內容了。eeprom的全稱是 電可擦除可程式設計唯讀儲存器 即electrically erasable program mable read only...
為什麼微控制器中既有FLASH又有EEPROM?
20161227464036.html 微控制器執行時資料都儲存在ram中,在掉電後ram的資料是無法保留的,那麼怎麼使得在掉電後資料不丟失呢?這就需要使用eeprom或flashrom等儲存器來實現。rom最初不能程式設計,出廠什麼內容就永遠什麼內容,不靈活。後來出現了prom,可以自己寫入一次,...