隨著物聯(lián)網(wǎng)節(jié)點(diǎn)變得越來(lái)越強(qiáng)大,處理要求可能會(huì)提升到全新的水平,需要 Linux 等完全嵌入式操作系統(tǒng) (OS) 才能正確管理所有正在運(yùn)行的復(fù)雜任務(wù)。雖然將此代碼存儲(chǔ)在閃存 microSDHC 卡上很方便,但大多數(shù)閃存 microSDHC 卡僅適用于數(shù)據(jù)存儲(chǔ)而非操作系統(tǒng)存儲(chǔ),不過(guò)供應(yīng)商已經(jīng)提出了一些創(chuàng)新的解決方案。
本文介紹了嵌入式操作系統(tǒng)的作用,以及為何將操作系統(tǒng)和應(yīng)用程序代碼同時(shí)放在物聯(lián)網(wǎng)節(jié)點(diǎn)中的 microSDHC 閃存卡上通常是明智之舉;然后解釋了閃存卡的性能下降模式,以及操作系統(tǒng)如何受到這種性能下降現(xiàn)象的特別影響;接下來(lái)展示了設(shè)計(jì)人員如何通過(guò)新的閃存實(shí)施辦法來(lái)克服這種性能下降,從而確保物聯(lián)網(wǎng)節(jié)點(diǎn)的實(shí)施高效且可靠。
為何使用嵌入式操作系統(tǒng)
對(duì)于某些物聯(lián)網(wǎng)應(yīng)用而言,可在遠(yuǎn)程物聯(lián)網(wǎng)節(jié)點(diǎn)上執(zhí)行的預(yù)處理越多,物聯(lián)網(wǎng)節(jié)點(diǎn)需要傳輸回中央集線器的數(shù)據(jù)就越少,這樣可釋放網(wǎng)絡(luò)帶寬。經(jīng)過(guò)預(yù)測(cè)試的嵌入式操作系統(tǒng)可通過(guò)有效處理大量單獨(dú)任務(wù)來(lái)支持復(fù)雜的預(yù)處理,并以可預(yù)測(cè)(確定性)的方式處理多重任務(wù)。當(dāng)然,這將對(duì)微控制器提出額外的要求,需要更快的時(shí)鐘速度,更重要的是,需要更多的程序存儲(chǔ)器。
商業(yè)或開(kāi)源成品嵌入式操作系統(tǒng)的另一優(yōu)勢(shì)在于采用經(jīng)預(yù)測(cè)試的可靠代碼,很少需要更新。例如,可用的嵌入式 Linux 操作系統(tǒng)可能只是每季度更新一次,或是僅安裝緊急安全補(bǔ)丁。嵌入式操作系統(tǒng)和所需應(yīng)用程序代碼可能需要 8 Gb 或更多的存儲(chǔ)空間,由于操作系統(tǒng)很少更新,因此將操作系統(tǒng)存儲(chǔ)在由技術(shù)人員手動(dòng)(物理)更新的 microSDHC 閃存卡上會(huì)更方便。這也適用于未來(lái)的內(nèi)存擴(kuò)展,因?yàn)橄麓渭夹g(shù)人員訪問(wèn)時(shí),現(xiàn)有的 4 GB 閃存卡可以根據(jù)需要輕松更換為 8 Gb 或容量更大的卡(圖 1)。
圖 1:Swissbit Class 10 microSDHC S-140u 存儲(chǔ)卡支持高達(dá) 104 Mb/s 的速度,足夠用于高速訪問(wèn)程序存儲(chǔ)器。
與通過(guò)無(wú)線網(wǎng)絡(luò)更新的閃存相比,在手動(dòng)更新的 microSDHC NAND 閃存卡上存儲(chǔ)千兆字節(jié)的嵌入式操作系統(tǒng)具有多個(gè)優(yōu)勢(shì)。在無(wú)線網(wǎng)絡(luò)中,根據(jù)所使用的仲裁方案,更新 4 GB 或更大的嵌入式操作系統(tǒng)可能會(huì)導(dǎo)致從操作通信中竊取無(wú)線帶寬。通過(guò)網(wǎng)絡(luò)更新還需要一個(gè)兩倍于正常容量的 microSDHC 卡,因?yàn)樾枰銐虻拇鎯?chǔ)空間來(lái)運(yùn)行操作系統(tǒng)和容納傳入的更新。
由于無(wú)線電活動(dòng)以及更高的閃存寫(xiě)入電壓和功率要求,通過(guò)無(wú)線方式更新閃存代碼也會(huì)縮短電池壽命。
與數(shù)據(jù)存儲(chǔ)相比,從閃存執(zhí)行的嵌入式操作系統(tǒng)對(duì)閃存單元也提出了不同的要求。大多數(shù)商用閃存 microSDHC 卡都是制造商設(shè)計(jì)用于數(shù)據(jù)存儲(chǔ)的。最常見(jiàn)的商業(yè)用途是移動(dòng)設(shè)備的多媒體存儲(chǔ)。雖然視頻、圖像或音頻文件中的多個(gè)位錯(cuò)誤可能會(huì)被最終用戶忽視,但關(guān)鍵嵌入式操作系統(tǒng)文件中只要有一個(gè)位錯(cuò)誤,就可能導(dǎo)致整個(gè)系統(tǒng)出現(xiàn)故障。
閃存的使用壽命有限制。對(duì)閃存陣列的每次寫(xiě)入操作都會(huì)縮短陣列的壽命。每個(gè)半導(dǎo)體閃存規(guī)范列出了有限數(shù)量的擦寫(xiě)周期。隨著閃存單元接近規(guī)定的限制,單元磨損并且不接受新編程狀態(tài)的可能性變得越來(lái)越大。
磨損均衡是防止由于寫(xiě)入操作引起閃存陣列性能下降的一種常見(jiàn)方法。寫(xiě)入并非寫(xiě)入相同的閃存位置,而是均勻地分布在整個(gè)閃存半導(dǎo)體存儲(chǔ)器陣列上,確保寫(xiě)入內(nèi)容在閃存矩陣中均勻分布。通過(guò)磨損均衡,當(dāng)微控制器寫(xiě)入物理存儲(chǔ)器中的單個(gè)位置時(shí),閃存控制器可以將該位置映射到閃存陣列中的不同位置。
讀取干擾錯(cuò)誤如何發(fā)生
操作系統(tǒng)文件的訪問(wèn)頻率比數(shù)據(jù)文件要高得多,因此無(wú)法容忍文件位錯(cuò)誤。在某些情況下,核心操作系統(tǒng)文件可能會(huì)被不斷讀取,進(jìn)而在閃存陣列中引入位錯(cuò)誤。
閃存以塊的形式排列,每個(gè)塊包含許多頁(yè)。對(duì)存儲(chǔ)器來(lái)說(shuō),塊是可擦除的最小部分,而頁(yè)是可讀取或編程的最小部分。閃存塊的一般大小為 256 KB,每個(gè)塊可包含 64 頁(yè),每頁(yè) 4 KB。每個(gè)頁(yè)還包括額外的 64 個(gè)字節(jié),用于糾錯(cuò)碼 (ECC)、擦除計(jì)數(shù)和到物理轉(zhuǎn)換信息的邏輯。
在一頁(yè)數(shù)據(jù)的閃存讀取操作期間,即使頁(yè)中僅有一個(gè)字節(jié)需要讀取,也會(huì)對(duì)頁(yè)所屬的整個(gè)塊施加較小的讀取電壓。由于閃存處理單元技術(shù),也會(huì)在塊中的周圍頁(yè)內(nèi)產(chǎn)生較小的電壓。這可以將電子注入到單元絕緣層中,類似于對(duì)單元進(jìn)行編程,這就是它被稱為“軟編程”的原因。將較小的讀取電壓重復(fù)施加到同一個(gè)塊可能最終干擾非正在讀取的閃存頁(yè)的編程。隨著時(shí)間的推移,這可能導(dǎo)致將相鄰單元的狀態(tài)改為不同的值。
雖然大多數(shù) NAND 閃存 microSDHC 卡都有某種形式的糾錯(cuò)功能來(lái)糾正單元錯(cuò)誤,但由軟編程引起的錯(cuò)誤數(shù)量可能很多,以至于達(dá)到無(wú)法糾正的臨界水平,從而導(dǎo)致微控制器從位位置讀取不同的值,造成文件損壞錯(cuò)誤。這些位錯(cuò)誤稱為讀取干擾錯(cuò)誤。
用于數(shù)據(jù)存儲(chǔ)的 NAND 閃存 microSDHC 卡很少出現(xiàn)讀取干擾錯(cuò)誤。在閃存陣列上執(zhí)行寫(xiě)入操作時(shí),磨損均衡操作過(guò)后,閃存位置被重新編程,因此消除了任何軟編程影響。但是,用于嵌入式操作系統(tǒng)的閃存陣列很少編程,這使得讀取干擾錯(cuò)誤成為現(xiàn)實(shí)。
單階存儲(chǔ)單元 (SLC) 閃存卡的額定讀取次數(shù)為一百萬(wàn)次,多階存儲(chǔ)單元 (MLC) 閃存卡在讀取干擾錯(cuò)誤發(fā)生之前的額定讀取次數(shù)為 100,000 次。對(duì)于數(shù)據(jù)閃存,讀取干擾錯(cuò)誤被認(rèn)為非常罕見(jiàn),以至于規(guī)格書(shū)中通常不指定這些數(shù)字。
使用 RDM 防止讀取干擾錯(cuò)誤
為了防止讀取干擾錯(cuò)誤,Swissbit 開(kāi)發(fā)了一種稱為讀取干擾管理 (RDM) 的功能。在 Swissbit 的 RDM 中,閃存卡控制器會(huì)跟蹤每個(gè)閃存塊的讀取操作次數(shù)。當(dāng)塊達(dá)到內(nèi)部定義的讀取操作次數(shù)時(shí),控制器將數(shù)據(jù)移動(dòng)到新塊,類似用于寫(xiě)入操作的磨損均衡。如有必要,在對(duì)新塊進(jìn)行寫(xiě)入操作期間,SD 控制器的糾錯(cuò)碼 (ECC) 會(huì)糾正任何損壞的數(shù)據(jù)。
Swissbit 的 SFSD8192N1BM1MT-I-QG-221-STD 8 GB S-450u UHS-I Class 10 microSDHC 閃存卡中已實(shí)施 RDM。S-450u 專為使用嵌入式操作系統(tǒng)的工業(yè)應(yīng)用而設(shè)計(jì),具有許多復(fù)雜的物聯(lián)網(wǎng)節(jié)點(diǎn)中嵌入式 Linux 操作系統(tǒng)和應(yīng)用程序代碼所需的足夠空間。在 SDR104 模式下,S-104u 可支持高達(dá) 104 Mb/s 的數(shù)據(jù)訪問(wèn)速度。
使用 microSDHC 卡執(zhí)行程序存儲(chǔ)器
如前所述,microSDHC 卡通常僅用于數(shù)據(jù)存儲(chǔ)器,因此大多數(shù) Harvard 架構(gòu)微控制器上的外設(shè)僅支持訪問(wèn)作為數(shù)據(jù)存儲(chǔ)器的 microSDHC 卡。這限制了可用選項(xiàng)。
現(xiàn)有解決方案會(huì)讀取 microSDHC 卡并將程序存儲(chǔ)器加載到 RAM 中,然后從 RAM 中執(zhí)行。RAM 芯片不僅增加了電路板的成本,而且程序擴(kuò)展僅限于 PC 板上可用的板載 RAM 數(shù)量。
MicroSDHC 卡能夠在 SD 模式或 SPI 模式下連接。
要將微控制器連接到作為程序存儲(chǔ)器的 S-450u microSDHC 卡,所選的微控制器需要支持兩種 microSDHC 總線協(xié)議之一:
圖 2:使用 SD 模式連接 microSDHC 卡時(shí),使用一個(gè)簡(jiǎn)單的六信號(hào)接口,以提供最快的內(nèi)存訪問(wèn)速度。
映射到程序存儲(chǔ)器的 SDHC 卡 SD 模式控制器外設(shè)(圖 2)。此外設(shè)可以是外部外設(shè),也可以是內(nèi)部微控制器外設(shè)。接口由六個(gè)信號(hào)組成:四位數(shù)據(jù) (DAT[0-3])、一個(gè)時(shí)鐘 (CLK) 和一個(gè)雙向指令/響應(yīng)信號(hào) (CMD)。數(shù)據(jù)一次傳輸四位,并提供最快的程序執(zhí)行速度。主機(jī)控制器或微控制器為 microSDHC 卡提供時(shí)鐘。
一個(gè)可配置 SPI 接口,支持芯片內(nèi)執(zhí)行 (XIP)??赏ㄟ^(guò)在 SPI 模式下訪問(wèn) microSDHC 卡來(lái)執(zhí)行卡中的代碼,提供快速數(shù)據(jù)傳輸,但傳輸速度不如 SDHC 卡模式。XIP 存儲(chǔ)器將卡的存儲(chǔ)器映射到微控制器的程序存儲(chǔ)器空間,使得 microSDHC 卡訪問(wèn)對(duì)主機(jī)固件保持透明。
microSDHC 卡在 SD 卡模式下啟動(dòng)。要選擇單位 SPI 模式,在開(kāi)機(jī)后的前六個(gè)時(shí)鐘,DAT3 信號(hào)必須上拉至 VDD,同時(shí)通過(guò)將 CMD 下拉至 VSS 發(fā)送 RESET(復(fù)位)命令 (000000b) 至卡。此后,卡將保持 SPI 模式,直至關(guān)機(jī)。
Maxim Integrated 的 MAX32652 Arm? Cortex?-M4F 微控制器是專為物聯(lián)網(wǎng)節(jié)點(diǎn)設(shè)計(jì)的低功耗微控制器。它有一個(gè)片載 QSPI XIP 接口,如果配置正確,能夠執(zhí)行 microSDHC 卡的代碼。
MAX32652 還有一個(gè)完整的 SDHC 接口,主要用于數(shù)據(jù)存儲(chǔ)器存儲(chǔ)。
需要注意的是,微控制器的這些接口必須是程序存儲(chǔ)器接口。無(wú)論使用何種總線協(xié)議或接口,微控制器都需要包含一些片載閃存啟動(dòng)代碼,以便初始化 microSDHC 卡的接口。
插座安全
用于工業(yè)應(yīng)用 microSDHC 卡的插座經(jīng)常被忽視。對(duì)于要求堅(jiān)固耐用的應(yīng)用,錫或類似觸頭材料會(huì)隨著時(shí)間的推移而變色或失去其拉伸強(qiáng)度。金觸點(diǎn)雖然價(jià)格稍貴,但是能提供穩(wěn)固的觸頭連接,確保其拉伸強(qiáng)度不會(huì)隨時(shí)間改變,因此物有所值。
Amphenol ICC 的 10101704J6#2A 通用閃存 (UFS) 和 microSDHC 連接器/插座可為任何 microSDHC 兼容卡提供穩(wěn)固的連接(圖 3)。該插座具有防磕碰觸點(diǎn),可防止存儲(chǔ)卡在插拔過(guò)程中卡住。
圖 3:10101704J6#2A UFS 和 microSDHC 卡連接器/插座支持現(xiàn)有的 microSDHC 和下一代 UFS 卡,數(shù)據(jù)傳輸速度高達(dá) 6 Gb/s。
此 Amphenol 插座兼容新的通用閃存 (UFS) 格式,因此還支持未來(lái)擴(kuò)展,UFS 外形尺寸與 microSDHC 類似,但觸點(diǎn)封裝不同(圖 4)。UFS 卡具有差分雙向數(shù)據(jù)傳輸功能,支持兩倍于 microSDHC 的傳輸速度。
圖 4:左側(cè)是 microSDHC 卡,右側(cè)是新的 UFS 卡。UFS 卡具有差分雙向數(shù)據(jù)傳輸功能,支持兩倍于 microSDHC 的傳輸速度。
一些聯(lián)網(wǎng)的物聯(lián)網(wǎng)節(jié)點(diǎn)可能位于 Wi-Fi 不可用或不實(shí)用的遠(yuǎn)程位置。對(duì)于上述情況,可通過(guò)無(wú)線蜂窩數(shù)據(jù)連接來(lái)執(zhí)行聯(lián)網(wǎng)。這需要使用一張用戶 SIM 卡,該 SIM 卡也需要插入。
節(jié)省電路板空間的一個(gè)簡(jiǎn)單方法是使用 microSDHC 和 SIM 卡插座組合,如 Molex 的 1041681620 雙插座,同時(shí)支持 SIM 卡和 microSDHC 卡(圖 5)。該插座還具有金觸點(diǎn),可在惡劣環(huán)境中實(shí)現(xiàn)穩(wěn)固的連接,并采用防磕碰觸點(diǎn)。
圖 5:1041681620 組合 SIM 卡和 microSDHC 卡插座可顯著減少板空間,提供防磕碰觸點(diǎn),防止插拔錯(cuò)誤。
總結(jié)
雖然閃存 microSDHC 卡過(guò)去常用于數(shù)據(jù)存儲(chǔ),但目前正在尋求改進(jìn),以支持嵌入式操作系統(tǒng)在芯片內(nèi)執(zhí)行程序存儲(chǔ)器的獨(dú)特需求。此演進(jìn)過(guò)程的一部分包括開(kāi)發(fā)可支持持續(xù)讀取請(qǐng)求的更快閃存。此外,微控制器正在演進(jìn),以支持可從外部 microSDHC 卡可靠執(zhí)行代碼的新存儲(chǔ)器接口,同時(shí)減少或消除閃存錯(cuò)誤。
-
嵌入式
+關(guān)注
關(guān)注
5149文章
19655瀏覽量
317316 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2930文章
46210瀏覽量
392116 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7142瀏覽量
125549
發(fā)布評(píng)論請(qǐng)先 登錄
實(shí)時(shí)操作系統(tǒng)和分時(shí)操作系統(tǒng)的區(qū)別
關(guān)于嵌入式操作系統(tǒng)和PC機(jī)的操作系統(tǒng)
鏡像對(duì)系統(tǒng)性能的影響有哪些?
如何提高FPGA的系統(tǒng)性能
實(shí)時(shí)操作系統(tǒng)(RTOS)是指什么
可重構(gòu)硬件操作系統(tǒng)技術(shù)
優(yōu)化BIOS設(shè)置提高系統(tǒng)性能
操作系統(tǒng)教程_孫鐘秀

操作系統(tǒng)原理_孫鐘秀
RTOS操作系統(tǒng)
歐拉(openEuler)系統(tǒng)峰會(huì)2021 麒麟軟件數(shù)字化系統(tǒng)性能要求

歐拉(openEuler)Summit 2021:基于AI的操作系統(tǒng)性能調(diào)優(yōu)引擎

openEuler Summit開(kāi)發(fā)者峰會(huì):基于AI的操作系統(tǒng)性能調(diào)優(yōu)引擎A-Tune

Linux操作系統(tǒng)運(yùn)行參數(shù)自動(dòng)調(diào)整技術(shù)

評(píng)論