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