單片機與存儲器的關(guān)系像什么?單片機里的存儲都是一樣的嗎?為什么有的單片機既有EEPROM又有Flash?
本期貿(mào)澤科普實驗室,就來扒一扒單片機與存儲器的那些事——
01單片機與存儲器的關(guān)系像什么?
請你用比喻來形容下存儲與單片機的關(guān)系,你會用什么呢?
我覺得他們很像大腦與大腦的記憶系統(tǒng),大腦(單片機)掌控著身體(嵌入式系統(tǒng))的各項活動和決策,記憶系統(tǒng)存儲那些與生俱來的本能反應(yīng)和經(jīng)過長期學(xué)習(xí)固化下來的知識(ROM),也短暫存儲當(dāng)前正在思考和處理的信息(RAM),比如剛剛看到的一個電話號碼,一旦注意力轉(zhuǎn)移(斷電),這個短期記憶就會遺忘(數(shù)據(jù)清除)。所以,如果存儲不工作了,無論性能多高的器件,都得“涼涼”。
02單片機里的存儲都是一樣的嗎?
以超低功耗32位MCU STM32L151R6-A為例,下圖是其電路框圖,標(biāo)紅的部分就是在MCU內(nèi)部集成的存儲器。
在單片機中,為什么會有這么多種類的存儲呢?捋一遍STM32L151R6-A單片機的工作過程就立刻清晰明了了。
1)在單片機上電復(fù)位之后,首先需要執(zhí)行的是引導(dǎo)代碼,就如電腦的系統(tǒng)一樣,引導(dǎo)程序的目的是初始化系統(tǒng)硬件,如時鐘、外設(shè)等,并將應(yīng)用程序從其他存儲器,如Flash,加載到SRAM中,然后跳轉(zhuǎn)到應(yīng)用程序的入口地址開始執(zhí)行。此外,引導(dǎo)程序還可以提供一些基本的調(diào)試和下載功能,方便開發(fā)者對MCU進(jìn)行程序燒錄和調(diào)試。Boot ROM是單片機正常工作使用的第一個存儲器。
當(dāng)然,并不是所有MCU都有Boot ROM,像一些簡單、低端的單片機本身是不需要復(fù)雜的引導(dǎo)過程的,還有一些自定義設(shè)計的特殊單片機,可以通過外部電路或者其他的特殊機制來實現(xiàn)程序的啟動和加載。
2)單片機啟動之后,需要去完成某個具體的應(yīng)用功能,比如智能家居應(yīng)用,單片機要控制燈光,實現(xiàn)這個功能的應(yīng)用代碼在PC編寫完成之后,會被燒錄到單片機里的存儲器中,這個存儲器就是Flash。除了所有的應(yīng)用程序之外,F(xiàn)lash存儲一些需要長期保存的數(shù)據(jù),如系統(tǒng)配置參數(shù)、校準(zhǔn)數(shù)據(jù)等,這些數(shù)據(jù)在設(shè)備運行過程中可能會被讀取或修改,但在斷電后依然能夠保留。
3)單片機系統(tǒng)在運行時,可能會產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)需要頻繁的修改,但又不能丟失,比如溫濕度的調(diào)節(jié),需要實時根據(jù)情況更新數(shù)據(jù),但數(shù)據(jù)保存后,在下次啟動時,不能丟失,這些數(shù)據(jù)就會被存儲在另外一種ROM,EEPROM里。
4)前面提到的控制燈光功能,假設(shè)需要根據(jù)光的強度進(jìn)行控制,就要使用光傳感器,單片機要對傳感器測得的光線數(shù)據(jù)進(jìn)行處理、運算,會產(chǎn)生臨時數(shù)據(jù)、中間結(jié)果,這些會被暫時存放在SRAM中,而且程序通常從Flash加載到SRAM執(zhí)行。
5)任何電子系統(tǒng)都有可能出現(xiàn)異常情況,比如電源故障。在故障修復(fù)之后,如何能夠保證系統(tǒng)恢復(fù)到正常狀態(tài)?這就需要Backup Data存儲器中存儲的關(guān)鍵備份數(shù)據(jù),比如運行狀態(tài)信息、配置信息等。
從單片機系統(tǒng)的運行過程來看,這些存儲器扮演著重要的角色,雖然種類多,但缺一不可。
03既有EEPROM又有Flash的單片機
這要從早期ROM說起,初始的ROM數(shù)據(jù)寫入方式是在ROM的制造工序中,芯片廠商用特殊的方法燒錄進(jìn)去的,一次性寫入內(nèi)容后,用戶只能驗證寫入的資料是否正確,不能再作任何修改。這,工程師怎么能忍,于是就有了可編程只讀存儲器(PROM),PROM允許在制造后由工程師使用編程器寫入數(shù)據(jù),但只能寫入一次,之后就不能再更改了,額,只能寫一次?這不相當(dāng)于人生下來,只能吃一頓飯一樣?還得改。
為了解決不能重復(fù)寫入的問題,EPROM出現(xiàn)了,EPROM芯片可重復(fù)擦除和寫入,它有一個很明顯的特征,就是它正面的陶瓷封裝上,開有一個玻璃窗口,透過這個窗口,可以看到其內(nèi)部的集成電路,當(dāng)紫外線透過這個窗口照射內(nèi)部芯片時,就可以擦除其內(nèi)的數(shù)據(jù)。由于使用紫外線擦除過程需要特殊的設(shè)備和操作,很繁瑣,還有可能因為擦除窗口遮光失效,導(dǎo)致數(shù)據(jù)被誤擦除。
是不是可用其他方式擦除呢?沒錯,用電信號也可以的,這就是電可擦除可編程只讀存儲器(EEPROM)。EEPROM的電可擦除,無疑是前進(jìn)了一大步。在數(shù)據(jù)讀取/寫入操作上,EEPROM允許以字節(jié)為單位進(jìn)行操作。不論是編程,還是擦除的過程,EEPROM非常靈活和方便。
雖然EEPROM的性能已經(jīng)非常不錯了,既可以電擦除,又能按字節(jié)讀寫,但是,隨著程序逐漸復(fù)雜,EEPROM的讀寫速度和容量就有點捉襟見肘,如果還是只能按照字節(jié)操作,就太慢太慢了,改幾行代碼,還得等半天,所以,在EEPROM的基礎(chǔ)上,又發(fā)展出了Flash存儲器,有更高的存儲密度、更低的成本和更快的擦寫速度。
要回答為什么有的單片機既有EEPROM又有Flash這個問題,還得看EEPROM和Flash的本質(zhì)區(qū)別,這里我們整理了EEPROM和Flash在數(shù)據(jù)讀取/寫入操作方式、使用次數(shù)以及容量大小這些數(shù)據(jù):
從擦除和寫入次數(shù)上看,EEPROM次數(shù)較高,以常用的AT24C02為例,它的擦除和寫入次數(shù)高達(dá)100萬,數(shù)據(jù)保存年限為100年。Flash的次數(shù)相對較少,以華邦的W25Q系列的SPI Flash為例,它的擦除和寫入次數(shù)可小至10萬,數(shù)據(jù)保存年限為在20年以上。
從讀寫方式上來看,EEPROM允許以字節(jié)為單位進(jìn)行擦除和寫入操作,而Flash則是以塊或扇區(qū)為單位進(jìn)行擦除和寫入操作。
從存儲容量上來看,EEPROM的容量都比較小,一般在幾K字節(jié)到幾百K字節(jié),而Flash的容量是非常大的,小到幾M,大到幾T。
EEPROM和Flash這些各自的特點,讓EEPROM在單字節(jié)數(shù)據(jù)的讀寫環(huán)境更有優(yōu)勢,而Flash適合存儲程序代碼和大量不頻繁更新的數(shù)據(jù)。
舉兩個單片機應(yīng)用的例子,第一個,比如要保存一個溫度值,范圍在0-100攝氏度,只占用1個字節(jié),每1分鐘需要把更新的溫度值寫入單片機的存儲器。
如果使用EEPROM,只需要操作存儲器中一個字節(jié)的空間,如果是Flash,就需要去操作一個塊或者一個扇區(qū),比如一個扇區(qū)有512字節(jié),操作一個字節(jié)的數(shù)據(jù),整個扇區(qū)都需要重新擦寫,這么高頻次的擦寫,F(xiàn)lash的這個扇區(qū)很快就會被干廢了,F(xiàn)lash廢了,單片機也就廢了。所以,這種場景使用EEPROM更適合。
第二個是在OTA升級系統(tǒng)固件時,為了防止系統(tǒng)升級失敗造成系統(tǒng)變磚,就要在系統(tǒng)升級前備份系統(tǒng)固件,一般OTA升級的周期都是以月或者年為單位的,數(shù)據(jù)量大且集中,這個時候就需要使用Flash,它的讀寫速度快且容量大,如果使用EEPROM,讀寫速度慢而且有可能容量不夠。
從這兩個例子,可以看出,F(xiàn)lash和EEPROM在功能上實現(xiàn)互補,他們的存在可以讓系統(tǒng)更好的工作。
如果你認(rèn)真仔細(xì)地讀到了這里,相信文章開頭提到的3個問題,你都已經(jīng)了解清楚了,那就說明我們本期的貿(mào)澤科普實驗室沒白做!
-
單片機
+關(guān)注
關(guān)注
6063文章
44931瀏覽量
647273 -
mcu
+關(guān)注
關(guān)注
146文章
17854瀏覽量
360789 -
FlaSh
+關(guān)注
關(guān)注
10文章
1668瀏覽量
151019 -
存儲器
+關(guān)注
關(guān)注
38文章
7637瀏覽量
166475 -
EEPROM
+關(guān)注
關(guān)注
9文章
1082瀏覽量
83311
原文標(biāo)題:單片機存儲之謎:Flash和EEPROM到底誰更強?| 貿(mào)澤科普實驗室
文章出處:【微信號:貿(mào)澤電子,微信公眾號:貿(mào)澤電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
51單片機存儲器內(nèi)存的講解
扒一扒那些年曾經(jīng)很火的單片機們
扒一扒與無線網(wǎng)絡(luò)相關(guān)的那些事
扒一扒我看過的那些Linux相關(guān)的書籍
扒渣機產(chǎn)品有哪些參數(shù)
單片機存儲器擴充與程序下載技巧
單片機存儲器,單片機存儲器結(jié)構(gòu)原理是什么?

單片機教程之單片機總線與存儲器的擴展資料說明

如何對單片機進(jìn)行片外程序存儲器設(shè)計
51單片機之存儲器

單片機的存儲器

扒一扒中斷為什么不能調(diào)printf?

評論