物聯(lián)網(wǎng) (IoT) 設(shè)備正在快速進(jìn)入市場(chǎng)——從家用電器到醫(yī)療設(shè)備再到汽車——因?yàn)橹圃焐瘫仨毻ㄟ^(guò)新的創(chuàng)新和采用或集成新技術(shù)的靈活性保持領(lǐng)先于競(jìng)爭(zhēng)對(duì)手。隨著新功能和法規(guī)的采用,設(shè)計(jì)人員必須在其產(chǎn)品中增加靈活性,以滿足不斷發(fā)展的物聯(lián)網(wǎng)生態(tài)系統(tǒng)。固件更新不僅允許在客戶站點(diǎn)的初始部署期間進(jìn)行定制,而且還允許在產(chǎn)品投入使用后添加新功能/特性或允許在使用過(guò)程中修復(fù)任何固件問題。
諸如 NOR 閃存的非易失性存儲(chǔ)器 (NVM) 設(shè)備由于其可重編程性和可靠性而通常用作固件代碼存儲(chǔ)介質(zhì)。通過(guò)重寫駐留在設(shè)備中使用的 NVM 中的部分設(shè)備固件代碼,制造商可以輕松更新設(shè)備功能。
在尋求更新固件時(shí),需要考慮三件事:
更新什么/多少代碼
多久更新一次
執(zhí)行更新所需的時(shí)間(速度)
要更新什么/多少固件代碼
在物聯(lián)網(wǎng)設(shè)備的初始設(shè)計(jì)階段,必須考慮更新什么以及更新多少固件代碼。固件的可更新部分必須與不可更新部分存儲(chǔ)在 NOR 閃存設(shè)備的單獨(dú)區(qū)域中。
更新任何一塊 NOR 閃存首先要擦除內(nèi)存的該部分,然后將新信息編程到該部分中。NOR閃存被組織成不同大小的部分,稱為扇區(qū)和塊。NOR 閃存設(shè)備,例如 SST 的 64 Mb SuperFlash SST26VF064B 技術(shù),被組織成統(tǒng)一的 4 KB 扇區(qū)(4 KB = 4 * 1024 * 8 位 = 32,762 位),可以單獨(dú)擦除和重新編程。它們還可以組織成更大的 8 KB、32 KB 和 64 KB 塊,也可以單獨(dú)擦除。因此,1 個(gè) 8 KB 塊有 2 個(gè)扇區(qū),1 個(gè) 32 KB 塊有 8 個(gè)扇區(qū),1 個(gè) 64 KB 塊有 16 個(gè)扇區(qū)。圖 1 顯示了 SST26VF064B 在 8/32/64 KB 塊中的存儲(chǔ)器結(jié)構(gòu),每個(gè)塊都可以單獨(dú)保護(hù)。

【圖1 | SST26VF064B 的內(nèi)存組織(映射),由八個(gè) 8 KB 塊、兩個(gè) 32 KB 塊和 126 個(gè) 64 KB 塊組成。點(diǎn)擊放大。]
在對(duì)閃存的任何部分執(zhí)行任何更新之前,該部分中的塊必須不受保護(hù)以允許擦除和編程。完成更新后,謹(jǐn)慎的做法是再次保護(hù)這些塊,以防止對(duì)這些區(qū)域的任何無(wú)意寫入或擦除。
固件的可更新部分必須以扇區(qū)和塊的形式組織,以便有足夠的靈活性來(lái)允許有限和最大的特性/功能更新。由于更新的速度取決于需要擦除和重新編程的扇區(qū)和塊的數(shù)量,因此在組織固件的可更新部分時(shí),最好同時(shí)考慮速度和靈活性。圖 2 顯示了將內(nèi)存組織為可更新和不可更新部分的示例。不可更新部分(例如引導(dǎo)代碼)存儲(chǔ)在受保護(hù)區(qū)域中,而固件的可更新部分(例如特性/功能)則根據(jù)靈活性要求分為更小或更大的塊??筛碌膱D像文件存儲(chǔ)在較大的塊中,可更新的變量/參數(shù)存儲(chǔ)在較小的塊中。

【圖2 | 在不可更新部分(例如引導(dǎo)代碼)和可更新部分(例如函數(shù)/特性、圖像文件和參數(shù)變量的代碼)中組織內(nèi)存。點(diǎn)擊放大。]
多久更新一次
您可能想要更新固件的頻率的主要限制是應(yīng)用程序中使用的內(nèi)存的耐用性限制。SST26VF064B 等 SuperFlash 技術(shù)存儲(chǔ)器具有 100,000 次耐久周期,這意味著每個(gè)扇區(qū)可以編程和擦除 100,000 次。更新固件 100,000 次的可能性聽起來(lái)很多;然而,許多物聯(lián)網(wǎng)設(shè)備在運(yùn)行期間收集數(shù)據(jù)并將信息存儲(chǔ)在 NOR 閃存中,因此在計(jì)算最大耐用周期限制時(shí)必須考慮這一點(diǎn)。
在內(nèi)存中分配足夠的扇區(qū)以考慮耐用性也很重要。例如:
假設(shè)物聯(lián)網(wǎng)設(shè)備正在收集和存儲(chǔ) 16 字節(jié)的信息,并且在產(chǎn)品的生命周期內(nèi)預(yù)計(jì)會(huì)收集和存儲(chǔ) 1 億次信息。應(yīng)該分配的扇區(qū)數(shù)可以計(jì)算如下:
1 個(gè)扇區(qū) = 4 KB
假設(shè)扇區(qū)中的所有地址位置都用于存儲(chǔ)信息,一次 16 個(gè)字節(jié)的數(shù)據(jù),并被寫入一個(gè)新的地址位置,直到到達(dá)扇區(qū)的末尾(例如,0×0000-0x000F 然后 0×0010 -0x001F 然后 0×0020-0x002F 等)。
由于 4 KB/16 字節(jié) = 256,這是在達(dá)到扇區(qū)容量并擦除扇區(qū)中的任何數(shù)據(jù)之前可以寫入存儲(chǔ)的次數(shù)。如果一個(gè)扇區(qū)的耐久極限是100,000個(gè)周期,一個(gè)扇區(qū)可以寫256次100,000個(gè)周期,那么可以收集和存儲(chǔ)25,600,000次數(shù)據(jù)。
如果一個(gè)應(yīng)用程序需要收集和存儲(chǔ) 1 億次數(shù)據(jù),則要分配的扇區(qū)數(shù)計(jì)算為 100,000,000/25,600,000 = 3.9。因此,在此示例中,需要分配 4 個(gè)扇區(qū)來(lái)存儲(chǔ)應(yīng)用程序生命周期中的 16 個(gè)字節(jié)的數(shù)據(jù)。
物聯(lián)網(wǎng)設(shè)備工程師需要進(jìn)行類似的計(jì)算,為數(shù)據(jù)記錄參數(shù)分配足夠的扇區(qū)和塊,以免超出其 NOR 閃存設(shè)備的耐用性限制。
更新速度
更新的速度可以根據(jù)需要擦除和重新編程的塊和扇區(qū)的數(shù)量來(lái)計(jì)算。假設(shè)需要重新編程存儲(chǔ)在 SST26VF064B 中幾個(gè) 64 KB 塊中的 1 Mb、2 Mb 或 4 Mb 固件代碼/數(shù)據(jù)。代碼/數(shù)據(jù)可以由固件代碼、圖像文件或其他需要更新的代碼組成。執(zhí)行更新涉及執(zhí)行一系列命令指令以進(jìn)行閃存。該序列將從取消保護(hù)內(nèi)存塊開始,擦除這些塊,用更新的數(shù)據(jù)/代碼對(duì)這些塊進(jìn)行編程,然后重新保護(hù)這些內(nèi)存塊。
對(duì)于 SST26VF064B,更新 1 Mb、2 Mb 或 4 Mb 存儲(chǔ)器所需的指令序列如表 1 所示。從表 1 可以明顯看出,兩個(gè)最重要的周期是擦除時(shí)間和編程時(shí)間。

[表 1 | 用于更新 1 Mb、2 Mb 或 4 Mb 內(nèi)存的閃存命令指令序列。點(diǎn)擊放大。]
SST26VF064B 采用 SuperFlash 技術(shù),可提供出色的擦除性能。SuperFlash 技術(shù)與傳統(tǒng)閃存的擦除和編程性能比較如表 2 所示。與傳統(tǒng)閃存相比,SuperFlash 技術(shù)提供的卓越擦除性能對(duì)于縮短更新時(shí)間非常有用。SST26VF064B 支持的最大時(shí)鐘頻率為 104 MHz,最大扇區(qū)擦除時(shí)間為 25 ms,最大塊擦除時(shí)間為 25 ms,最大頁(yè)面編程時(shí)間為 1.5 ms。每個(gè)命令指令與以 104 MHz 時(shí)鐘頻率運(yùn)行的閃存之間也需要 12 ns 延遲(CE 高電平時(shí)間)。

[表 2 | SST26VF064B 和傳統(tǒng)閃存的編程和擦除時(shí)間。點(diǎn)擊放大。]
使用表 1 中所示的命令序列以及編程和擦除時(shí)間的知識(shí),計(jì)算更新 1 Mb、2 Mb 或 4 Mb 的 SuperFlash 技術(shù)存儲(chǔ)器和傳統(tǒng)閃存所需的時(shí)間量如分別見表 3 和表 4。此類計(jì)算必須由物聯(lián)網(wǎng)設(shè)備工程師完成,以估計(jì)更新速度,以最大限度地減少物聯(lián)網(wǎng)設(shè)備在更新期間的停機(jī)時(shí)間。

[表 3 | 更新 1 Mb、2 Mb 或 4 Mb SuperFlash 技術(shù)內(nèi)存所需的時(shí)間。點(diǎn)擊放大。]

[表 4 | 更新 1 Mb、2 Mb 或 4 Mb 傳統(tǒng)閃存所需的時(shí)間。點(diǎn)擊放大。]
結(jié)論
物聯(lián)網(wǎng)設(shè)備設(shè)計(jì)工程師需要提供更新應(yīng)用程序代碼和數(shù)據(jù)的靈活性。更新什么和多少代碼、更新頻率以及更新速度是設(shè)計(jì)物聯(lián)網(wǎng)設(shè)備時(shí)需要解決的問題。NVM 的選擇會(huì)影響這些問題,并在計(jì)算代碼更新的時(shí)間和速度方面發(fā)揮關(guān)鍵作用。
審核編輯:郭婷
-
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7753瀏覽量
172146 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2950文章
48091瀏覽量
418022 -
IOT
+關(guān)注
關(guān)注
190文章
4418瀏覽量
209491
發(fā)布評(píng)論請(qǐng)先 登錄
Kinetis? K8x MCU 家族:助力物聯(lián)網(wǎng)智能設(shè)備開發(fā)的理想之選
80 MHz帶寬IF接收器AD6677:高性能與靈活性的完美結(jié)合
慧能泰HP1010A:高靈活性數(shù)字圖騰柱PFC控制器的卓越之選
ADSP-218xN系列DSP微計(jì)算機(jī):高性能與靈活性的完美結(jié)合
CDCM1802時(shí)鐘緩沖器:高性能與靈活性的完美結(jié)合
探索PCM186x-Q1音頻ADC:高性能與靈活性的完美結(jié)合
TLV320ADC3140音頻ADC:高性能與靈活性的完美結(jié)合
TLV320ADC5120音頻ADC:高性能與靈活性的完美結(jié)合
深入解析 RENESAS SLG51003 PMIC:高性能與靈活性的完美結(jié)合
探索XMC7000工業(yè)微控制器:高性能與靈活性的完美結(jié)合
沁恒網(wǎng)絡(luò)芯片,自研技術(shù)解鎖集成度與靈活性
芯源半導(dǎo)體在物聯(lián)網(wǎng)設(shè)備中具體防護(hù)方案
請(qǐng)問如何協(xié)同工作來(lái)保障物聯(lián)網(wǎng)設(shè)備固件安全的?
EtherCAT熱插拔技術(shù):提升工業(yè)自動(dòng)化系統(tǒng)靈活性的關(guān)鍵
更新固件的靈活性 物聯(lián)網(wǎng)設(shè)備的關(guān)鍵
評(píng)論