0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機里Flash和EEPROM的作用

h1654155282.3538 ? 來源:與非網(wǎng) ? 作者:Flash ? 2020-10-11 09:40 ? 次閱讀

單片機運行時的數(shù)據(jù)都存在于RAM(隨機存儲器)中,在掉電后RAM中的數(shù)據(jù)是無法保留的,那么怎樣使數(shù)據(jù)在掉電后不丟失呢?這就需要使用EEPROM或FLASHROM等存儲器來實現(xiàn)。

插播一段:ROM最初不能編程,出廠什么內容就永遠什么內容,不靈活。后來出現(xiàn)了PROM,可以自己寫入一次,要是寫錯了,只能換一片。隨著不斷改進,終于出現(xiàn)了可多次擦除寫入的EPROM,每次擦除要把芯片拿到紫外線上照一下,想一下你往單片機上下了一個程序之后發(fā)現(xiàn)有個地方需要加一句話,為此你要把單片機放紫外燈下照半小時,然后才能再下一次,這么折騰一天也改不了幾次。歷史的車輪不斷前進,偉大的EEPROM出現(xiàn)了,拯救了一大批程序員,終于可以隨意的修改ROM中的內容了。

EEPROM的全稱是“電可擦除可編程只讀存儲器”,即ElectricallyErasableProgrammableRead-OnlyMemory。是相對于紫外擦除的rom來講的。但是今天已經存在多種EEPROM的變種,變成了一類存儲器的統(tǒng)稱。

狹義的EEPROM:

這種rom的特點是可以隨機訪問和修改任何一個字節(jié),可以往每個bit中寫入0或者1。這是最傳統(tǒng)的一種EEPROM,掉電后數(shù)據(jù)不丟失,可以保存100年,可以擦寫100w次。具有較高的可靠性,但是電路復雜/成本也高。因此目前的EEPROM都是幾十千字節(jié)到幾百千字節(jié)的,絕少有超過512K的。

Flash:

Flash屬于廣義的EEPROM,因為它也是電擦除的ROM。但是為了區(qū)別于一般的按字節(jié)為單位的擦寫的EEPROM,我們都叫它Flash。

既然兩者差不多,為什么單片機中還要既有Flash又有EEPROM呢?

通常,單片機里的Flash都用于存放運行代碼,在運行過程中不能改;EEPROM是用來保存用戶數(shù)據(jù),運行過程中可以改變,比如一個時鐘的鬧鈴時間初始化設定為12:00,后來在運行中改為6:00,這是保存在EEPROM里,不怕掉電,就算重新上電也不需要重新調整到6:00。

但最大區(qū)別是其實是:FLASH按扇區(qū)操作,EEPROM則按字節(jié)操作,二者尋址方法不同,存儲單元的結構也不同,F(xiàn)LASH的電路結構較簡單,同樣容量占芯片面積較小,成本自然比EEPROM低,因而適合用作程序存儲器,EEPROM則更多的用作非易失的數(shù)據(jù)存儲器。當然用FLASH做數(shù)據(jù)存儲器也行,但操作比EEPROM麻煩的多,所以更“人性化”的MCU設計會集成FLASH和EEPROM兩種非易失性存儲器,而廉價型設計往往只有FLASH,早期可電擦寫型MCU則都是EEPRM結構,現(xiàn)在已基本上停產了。

在芯片的內電路中,F(xiàn)LASH和EEPROM不僅電路不同,地址空間也不同,操作方法和指令自然也不同,不論馮諾伊曼結構還是哈佛結構都是這樣。技術上,程序存儲器和非易失數(shù)據(jù)存儲器都可以只用FALSH結構或EEPROM結構,甚至可以用“變通”的技術手段在程序存儲區(qū)模擬“數(shù)據(jù)存儲區(qū)”,但就算如此,概念上二者依然不同,這是基本常識問題。

EEPROM:電可擦除可編程只讀存儲器,F(xiàn)lash的操作特性完全符合EEPROM的定義,屬EEPROM無疑,首款Flash推出時其數(shù)據(jù)手冊上也清楚的標明是EEPROM,現(xiàn)在的多數(shù)Flash手冊上也是這么標明的,二者的關系是“白馬”和“馬”。至于為什么業(yè)界要區(qū)分二者,主要的原因是FlashEEPROM的操作方法和傳統(tǒng)EEPROM截然不同,次要的原因是為了語言的簡練,非正式文件和口語中FlashEEPROM就簡稱為Flash,這里要強調的是白馬的“白”屬性而非其“馬”屬性以區(qū)別Flash和傳統(tǒng)EEPROM。

Flash的特點是結構簡單,同樣工藝和同樣晶元面積下可以得到更高容量且大數(shù)據(jù)量下的操作速度更快,但缺點是操作過程麻煩,特別是在小數(shù)據(jù)量反復重寫時,所以在MCU中Flash結構適于不需頻繁改寫的程序存儲器。

很多應用中,需要頻繁的改寫某些小量數(shù)據(jù)且需掉電非易失,傳統(tǒng)結構的EEPROM在此非常適合,所以很多MCU內部設計了兩種EEPROM結構,F(xiàn)LASH的和傳統(tǒng)的,以期獲得成本和功能的均衡,這極大的方便了使用者。隨著ISP、IAP的流行,特別是在程序存儲地址空間和數(shù)據(jù)存儲地址空間重疊的MCU系中,現(xiàn)在越來越多的MCU生產商用支持IAP的程序存儲器來模擬EEPROM對應的數(shù)據(jù)存儲器,這是低成本下實現(xiàn)非易失數(shù)據(jù)存儲器的一種變通方法。為在商業(yè)宣傳上取得和雙EEPROM工藝的“等效”性,不少采用Flash程序存儲器“模擬”(注意,技術概念上并非真正的模擬)EEPROM數(shù)據(jù)存儲器的廠家紛紛宣稱其產品是帶EEPROM的,嚴格說,這是非常不嚴謹?shù)?,但商人有商人的目的和方法,用Flash“模擬”EEPROM可以獲取更大商業(yè)利益,所以在事實上,技術概念混淆的始作俑者正是他們。

從成本上講,用Flash“模擬”EEPROM是合算的,反之不會有人干,用EEPROM模擬Flash是怎么回事呢?這可能出在某些程序存儲空間和數(shù)據(jù)存儲空間連續(xù)的MCU上。這類MCU中特別是存儲容量不大的低端MCU依然采用EEPROM作為非易失存儲器,這在成本上反而比采用Flash和傳統(tǒng)EEPROM雙工藝的設計更低,但這種現(xiàn)象僅僅限于小容量前提下。因Flash工藝的流行,現(xiàn)在很多商人和不夠嚴謹?shù)募夹g人員將程序存儲器稱為Flash,對于那些僅采用傳統(tǒng)EEPROM工藝的MCU而言,他們不求甚解,故而錯誤的將EEPROM程序存儲器稱為“模擬Flash”,根本的原因是他們未理解Flash只是一種存儲器結構而非存儲器的用途,錯誤的前提自然導致錯誤的結論。商業(yè)上講,用EEPROM模擬Flash是不會有人真去做的愚蠢行為,這違背商業(yè)追求最大利益的原則,技術上也不可行,而對于技術人員而言。本質的問題是Flash是一種存儲器類型而非MCU中的程序存儲器,即使MCU的程序存儲器用的是Flash,但其逆命題不成立。
責任編輯人:CC

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6023

    文章

    44376

    瀏覽量

    628404
  • FlaSh
    +關注

    關注

    10

    文章

    1598

    瀏覽量

    147338
收藏 人收藏

    評論

    相關推薦

    提高MSP430G系列單片機Flash擦寫壽命的方法

    電子發(fā)燒友網(wǎng)站提供《提高MSP430G系列單片機Flash擦寫壽命的方法.pdf》資料免費下載
    發(fā)表于 08-28 11:51 ?0次下載
    提高MSP430G系列<b class='flag-5'>單片機</b>的<b class='flag-5'>Flash</b>擦寫壽命的方法

    用stm32f103RC的flash模擬EEprom, 執(zhí)行到EE_Init()時候單片機沒有反應是怎么回事?

    我用stm32f103RC的flash模擬EEprom, 執(zhí)行到EE_Init()時候(之前還有一個FLASH_Unlock()函數(shù)),單片機沒有反應,沒法往下執(zhí)行,我是用SWD下載程
    發(fā)表于 05-17 07:19

    8-Bit 觸控式 Flash 單片機中文資料

    而又有效的實現(xiàn)方法。 觸摸按鍵功能完全集成于單片機內,使用較少的外部元件便可實現(xiàn)觸摸按鍵的 應用。該系列單片機除了 Flash 程序存儲器,還包括 RAM 數(shù)據(jù)存儲器和用于存 儲串列數(shù)據(jù)、校準數(shù)據(jù)等非易失性數(shù)據(jù)的
    發(fā)表于 02-28 10:01 ?4次下載

    FLASHEEPROM的區(qū)別和擴展【硬件干貨】

    EEPROMFLASH總體差異 ????部分MCU片內不帶程序存儲器ROM,可執(zhí)行代碼只能放在外面的EEPROMFLASH(外擴)中; ????
    的頭像 發(fā)表于 02-27 08:37 ?1411次閱讀
    <b class='flag-5'>FLASH</b>、<b class='flag-5'>EEPROM</b>的區(qū)別和擴展【硬件干貨】

    單片機晶振電路原理及作用 51單片機晶振怎么接

    單片機是一種集成電路芯片,內部包含了微處理器核心、存儲器和各種周邊接口電路。晶振是單片機工作的時鐘源,為單片機提供穩(wěn)定的時鐘信號。在單片機的設計中,晶振電路起著重要的
    的頭像 發(fā)表于 01-24 15:14 ?6043次閱讀

    單片機為何需要FlashEEPROM?它們有何作用?

    單片機為何需要FlashEEPROM?它們有何作用? 單片機是一種集成電路,具有處理器核心、內存和外設等功能,通常用于嵌入式系統(tǒng)中。
    的頭像 發(fā)表于 01-18 11:43 ?2737次閱讀

    stm32f103 flash模擬eeprom

    STM32F103是意法半導體(STMicroelectronics)推出的一款32位單片機系列,該系列芯片具有高性能和豐富的外設接口,廣泛應用于工業(yè)控制、消費電子、汽車電子等領域。其中
    的頭像 發(fā)表于 01-09 11:21 ?1636次閱讀

    eepromflash的區(qū)別的作用

    等方面。在本文中,我們將詳細探討EEPROMFlash Memory的作用和區(qū)別。 EEPROM是一種可編程讀寫存儲器。它使用一種特殊的電子器件來存儲和擦除信
    的頭像 發(fā)表于 12-07 16:10 ?1628次閱讀

    為什么晶振不集成到單片機?

    為什么晶振不集成到單片機? 晶振與單片機的分離設計涉及到電路設計、性能和可靠性等方面的考慮。 1. 電路設計方面: 晶振是單片機主時鐘源,負責提供穩(wěn)定的時鐘信號,以保證
    的頭像 發(fā)表于 11-17 11:31 ?636次閱讀

    CW32單片機I2C接口讀寫EEPROM芯片介紹

    CW32單片機I2C接口讀寫EEPROM芯片介紹
    的頭像 發(fā)表于 11-09 17:42 ?875次閱讀
    CW32<b class='flag-5'>單片機</b>I2C接口讀寫<b class='flag-5'>EEPROM</b>芯片介紹

    講講STM32單片機Flash的讀保護和寫保護

    講講STM32單片機Flash的讀保護和寫保護
    的頭像 發(fā)表于 10-26 15:52 ?7418次閱讀
    講講STM32<b class='flag-5'>單片機</b><b class='flag-5'>Flash</b>的讀保護和寫保護

    單片機常有Flash,而不常有EEPROM原因

    單片機常有Flash,而不常有EEPROM原因
    的頭像 發(fā)表于 10-24 15:38 ?546次閱讀
    <b class='flag-5'>單片機</b>常有<b class='flag-5'>Flash</b>,而不常有<b class='flag-5'>EEPROM</b>原因

    單片機復位電路的作用和實現(xiàn)原理

      單片機復位電路是單片機系統(tǒng)中的一個重要組成部分,它的作用是在系統(tǒng)上電或異常情況下對單片機進行復位操作,使單片機能夠從初始狀態(tài)開始工作。
    的頭像 發(fā)表于 10-20 17:31 ?4634次閱讀

    使用MCU Flash模擬EEPROM

    使用MCU Flash模擬EEPROM
    的頭像 發(fā)表于 10-18 18:01 ?591次閱讀

    單片機的復位電路是怎樣工作的 單片機中復位電路的作用及方式

    單片機的復位電路是怎樣工作的 單片機中復位電路的作用及方式? 單片機的復位電路又稱為系統(tǒng)復位電路,其主要作用是使
    的頭像 發(fā)表于 10-17 18:17 ?2811次閱讀