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

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

3天內(nèi)不再提示

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

EEPROM的全稱是“電可擦除可編程只讀存儲器”,即ElectricallyErasableProgrammableRead-OnlyMemory。是相對于紫外擦除的rom來講的。但是今天已經(jīng)存在多種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里,不怕掉電,就算重新上電也不需要重新調(diào)整到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)在已基本上停產(chǎn)了。

在芯片的內(nèi)電路中,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,這里要強調(diào)的是白馬的“白”屬性而非其“馬”屬性以區(qū)別Flash和傳統(tǒng)EEPROM。

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

很多應用中,需要頻繁的改寫某些小量數(shù)據(jù)且需掉電非易失,傳統(tǒng)結構的EEPROM在此非常適合,所以很多MCU內(nèi)部設計了兩種EEPROM結構,F(xiàn)LASH的和傳統(tǒng)的,以期獲得成本和功能的均衡,這極大的方便了使用者。隨著ISP、IAP的流行,特別是在程序存儲地址空間和數(shù)據(jù)存儲地址空間重疊的MCU系中,現(xiàn)在越來越多的MCU生產(chǎn)商用支持IAP的程序存儲器來模擬EEPROM對應的數(shù)據(jù)存儲器,這是低成本下實現(xiàn)非易失數(shù)據(jù)存儲器的一種變通方法。為在商業(yè)宣傳上取得和雙EEPROM工藝的“等效”性,不少采用Flash程序存儲器“模擬”(注意,技術概念上并非真正的模擬)EEPROM數(shù)據(jù)存儲器的廠家紛紛宣稱其產(chǎn)品是帶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è)追求最大利益的原則,技術上也不可行,而對于技術人員而言。本質(zhì)的問題是Flash是一種存儲器類型而非MCU中的程序存儲器,即使MCU的程序存儲器用的是Flash,但其逆命題不成立。
責任編輯人:CC

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

    關注

    6040

    文章

    44592

    瀏覽量

    636832
  • FlaSh
    +關注

    關注

    10

    文章

    1640

    瀏覽量

    148289
收藏 人收藏

    評論

    相關推薦

    單片機在物聯(lián)網(wǎng)中的作用

    的核心組件,發(fā)揮著不可替代的作用。 一、單片機的定義與特點 單片機是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等集成在一個芯片上。單片機具有體積小、成本低、功耗低、可
    的頭像 發(fā)表于 11-01 14:27 ?659次閱讀

    51單片機(一款國產(chǎn)8位高性能Flash的接近感應單片機XD08M3232體驗感)

    給大家推薦一款在淘寶上發(fā)現(xiàn)的國產(chǎn)A/D型具有增強型1T8051內(nèi)核8位高性能Flash的接近感應單片機XD08M3232,測試下來總體的感覺還是比較強大的,以下是本人試用后總結下來比較滿意的幾個點
    發(fā)表于 09-25 15:15

    提高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>擦寫壽命的方法

    單片機boot0和boot1怎么設置

    單片機的啟動模式通常包括從內(nèi)部ROM啟動、從外部ROM啟動、從外部Flash啟動等。 不同的啟動模式對應不同的Boot0和Boot1設置。 Boot0和Boot1的設置方法 Boot0和Boot1通常通過
    的頭像 發(fā)表于 08-22 09:50 ?2862次閱讀

    ESP32-C6單片機支持哪些SPI Flash?

    開發(fā)環(huán)境:Windows11+VScode 使用的芯片型號:ESP32-C6 需要用到ESP32-C6的存儲功能,請問ESP32-C6單片機支持的片外SPI Flash,有沒有型號、品牌等要求,有沒有SPI Flash支持列表?
    發(fā)表于 06-07 06:42

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

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

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

    51單片機流水燈制作

    ?流水燈是學習51單片機的一個基本項目,是我們對單片機IO口輸出認識的基本項目。當然學會了花樣流水燈也很好玩。 下面就分享一種51單片機流水燈制作的方法。 一、流水燈原理圖 二、相關知識 1
    的頭像 發(fā)表于 02-26 10:06 ?1668次閱讀
    51<b class='flag-5'>單片機</b>流水燈制作

    單片機的最小系統(tǒng)由什么組成 單片機的最小系統(tǒng)包括哪些

    單片機(Microcontroller Unit,MCU)的最小系統(tǒng)包括以下幾個主要組成部分: 單片機芯片:單片機是整個最小系統(tǒng)的核心部分,它集成了中央處理器(Central Processing
    的頭像 發(fā)表于 02-02 11:27 ?1.1w次閱讀

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

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

    單片機最小系統(tǒng)包含哪幾部分 單片機最小系統(tǒng)的作用

    單片機最小系統(tǒng)包含以下幾部分:單片機芯片、時鐘電路、復位電路、電源電路、外圍電路和連接接口等。 單片機芯片:單片機是整個系統(tǒng)的核心部分,負責數(shù)據(jù)處理和控制任務。常見的
    的頭像 發(fā)表于 01-24 10:40 ?1.5w次閱讀

    51單片機開發(fā)板的主要功能 51單片機開發(fā)板能做什么

    具有多個通用輸入輸出引腳,可以連接各種外部設備和傳感器,實現(xiàn)數(shù)據(jù)的輸入和輸出。 時鐘管理:開發(fā)板通常會集成時鐘電路,包括晶振、時鐘發(fā)生器等,可以提供穩(wěn)定的時鐘信號給單片機使用。 存儲器管理:開發(fā)板通常會搭載閃存、EEPROM、SRAM等
    的頭像 發(fā)表于 01-23 15:52 ?3899次閱讀

    單片機最小系統(tǒng)的作用 單片機最小系統(tǒng)包含哪幾部分

    單片機最小系統(tǒng)是指能夠獨立工作的最基本的硬件組成,也是單片機的必備基礎。它的作用是為單片機提供工作所需的最基本的資源和功能,使單片機能夠正常
    的頭像 發(fā)表于 01-18 13:54 ?4208次閱讀

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

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