物聯(lián)網(wǎng) (IoT) 設(shè)備正在快速進入市場——從家用電器到醫(yī)療設(shè)備再到汽車——因為制造商必須通過新的創(chuàng)新和采用或集成新技術(shù)的靈活性保持領(lǐng)先于競爭對手。隨著新功能和法規(guī)的采用,設(shè)計人員必須在其產(chǎn)品中增加靈活性,以滿足不斷發(fā)展的物聯(lián)網(wǎng)生態(tài)系統(tǒng)。固件更新不僅允許在客戶站點的初始部署期間進行定制,而且還允許在產(chǎn)品投入使用后添加新功能/特性或允許在使用過程中修復(fù)任何固件問題。
諸如 NOR 閃存的非易失性存儲器 (NVM) 設(shè)備由于其可重編程性和可靠性而通常用作固件代碼存儲介質(zhì)。通過重寫駐留在設(shè)備中使用的 NVM 中的部分設(shè)備固件代碼,制造商可以輕松更新設(shè)備功能。
在尋求更新固件時,需要考慮三件事:
更新什么/多少代碼
多久更新一次
執(zhí)行更新所需的時間(速度)
要更新什么/多少固件代碼
在物聯(lián)網(wǎng)設(shè)備的初始設(shè)計階段,必須考慮更新什么以及更新多少固件代碼。固件的可更新部分必須與不可更新部分存儲在 NOR 閃存設(shè)備的單獨區(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 位),可以單獨擦除和重新編程。它們還可以組織成更大的 8 KB、32 KB 和 64 KB 塊,也可以單獨擦除。因此,1 個 8 KB 塊有 2 個扇區(qū),1 個 32 KB 塊有 8 個扇區(qū),1 個 64 KB 塊有 16 個扇區(qū)。圖 1 顯示了 SST26VF064B 在 8/32/64 KB 塊中的存儲器結(jié)構(gòu),每個塊都可以單獨保護。
【圖1 | SST26VF064B 的內(nèi)存組織(映射),由八個 8 KB 塊、兩個 32 KB 塊和 126 個 64 KB 塊組成。點擊放大。]
在對閃存的任何部分執(zhí)行任何更新之前,該部分中的塊必須不受保護以允許擦除和編程。完成更新后,謹慎的做法是再次保護這些塊,以防止對這些區(qū)域的任何無意寫入或擦除。
固件的可更新部分必須以扇區(qū)和塊的形式組織,以便有足夠的靈活性來允許有限和最大的特性/功能更新。由于更新的速度取決于需要擦除和重新編程的扇區(qū)和塊的數(shù)量,因此在組織固件的可更新部分時,最好同時考慮速度和靈活性。圖 2 顯示了將內(nèi)存組織為可更新和不可更新部分的示例。不可更新部分(例如引導(dǎo)代碼)存儲在受保護區(qū)域中,而固件的可更新部分(例如特性/功能)則根據(jù)靈活性要求分為更小或更大的塊??筛碌膱D像文件存儲在較大的塊中,可更新的變量/參數(shù)存儲在較小的塊中。
【圖2 | 在不可更新部分(例如引導(dǎo)代碼)和可更新部分(例如函數(shù)/特性、圖像文件和參數(shù)變量的代碼)中組織內(nèi)存。點擊放大。]
多久更新一次
您可能想要更新固件的頻率的主要限制是應(yīng)用程序中使用的內(nèi)存的耐用性限制。SST26VF064B 等 SuperFlash 技術(shù)存儲器具有 100,000 次耐久周期,這意味著每個扇區(qū)可以編程和擦除 100,000 次。更新固件 100,000 次的可能性聽起來很多;然而,許多物聯(lián)網(wǎng)設(shè)備在運行期間收集數(shù)據(jù)并將信息存儲在 NOR 閃存中,因此在計算最大耐用周期限制時必須考慮這一點。
在內(nèi)存中分配足夠的扇區(qū)以考慮耐用性也很重要。例如:
假設(shè)物聯(lián)網(wǎng)設(shè)備正在收集和存儲 16 字節(jié)的信息,并且在產(chǎn)品的生命周期內(nèi)預(yù)計會收集和存儲 1 億次信息。應(yīng)該分配的扇區(qū)數(shù)可以計算如下:
1 個扇區(qū) = 4 KB
假設(shè)扇區(qū)中的所有地址位置都用于存儲信息,一次 16 個字節(jié)的數(shù)據(jù),并被寫入一個新的地址位置,直到到達扇區(qū)的末尾(例如,0×0000-0x000F 然后 0×0010 -0x001F 然后 0×0020-0x002F 等)。
由于 4 KB/16 字節(jié) = 256,這是在達到扇區(qū)容量并擦除扇區(qū)中的任何數(shù)據(jù)之前可以寫入存儲的次數(shù)。如果一個扇區(qū)的耐久極限是100,000個周期,一個扇區(qū)可以寫256次100,000個周期,那么可以收集和存儲25,600,000次數(shù)據(jù)。
如果一個應(yīng)用程序需要收集和存儲 1 億次數(shù)據(jù),則要分配的扇區(qū)數(shù)計算為 100,000,000/25,600,000 = 3.9。因此,在此示例中,需要分配 4 個扇區(qū)來存儲應(yīng)用程序生命周期中的 16 個字節(jié)的數(shù)據(jù)。
物聯(lián)網(wǎng)設(shè)備工程師需要進行類似的計算,為數(shù)據(jù)記錄參數(shù)分配足夠的扇區(qū)和塊,以免超出其 NOR 閃存設(shè)備的耐用性限制。
更新速度
更新的速度可以根據(jù)需要擦除和重新編程的塊和扇區(qū)的數(shù)量來計算。假設(shè)需要重新編程存儲在 SST26VF064B 中幾個 64 KB 塊中的 1 Mb、2 Mb 或 4 Mb 固件代碼/數(shù)據(jù)。代碼/數(shù)據(jù)可以由固件代碼、圖像文件或其他需要更新的代碼組成。執(zhí)行更新涉及執(zhí)行一系列命令指令以進行閃存。該序列將從取消保護內(nèi)存塊開始,擦除這些塊,用更新的數(shù)據(jù)/代碼對這些塊進行編程,然后重新保護這些內(nèi)存塊。
對于 SST26VF064B,更新 1 Mb、2 Mb 或 4 Mb 存儲器所需的指令序列如表 1 所示。從表 1 可以明顯看出,兩個最重要的周期是擦除時間和編程時間。
[表 1 | 用于更新 1 Mb、2 Mb 或 4 Mb 內(nèi)存的閃存命令指令序列。點擊放大。]
SST26VF064B 采用 SuperFlash 技術(shù),可提供出色的擦除性能。SuperFlash 技術(shù)與傳統(tǒng)閃存的擦除和編程性能比較如表 2 所示。與傳統(tǒng)閃存相比,SuperFlash 技術(shù)提供的卓越擦除性能對于縮短更新時間非常有用。SST26VF064B 支持的最大時鐘頻率為 104 MHz,最大扇區(qū)擦除時間為 25 ms,最大塊擦除時間為 25 ms,最大頁面編程時間為 1.5 ms。每個命令指令與以 104 MHz 時鐘頻率運行的閃存之間也需要 12 ns 延遲(CE 高電平時間)。
[表 2 | SST26VF064B 和傳統(tǒng)閃存的編程和擦除時間。點擊放大。]
使用表 1 中所示的命令序列以及編程和擦除時間的知識,計算更新 1 Mb、2 Mb 或 4 Mb 的 SuperFlash 技術(shù)存儲器和傳統(tǒng)閃存所需的時間量如分別見表 3 和表 4。此類計算必須由物聯(lián)網(wǎng)設(shè)備工程師完成,以估計更新速度,以最大限度地減少物聯(lián)網(wǎng)設(shè)備在更新期間的停機時間。
[表 3 | 更新 1 Mb、2 Mb 或 4 Mb SuperFlash 技術(shù)內(nèi)存所需的時間。點擊放大。]
[表 4 | 更新 1 Mb、2 Mb 或 4 Mb 傳統(tǒng)閃存所需的時間。點擊放大。]
結(jié)論
物聯(lián)網(wǎng)設(shè)備設(shè)計工程師需要提供更新應(yīng)用程序代碼和數(shù)據(jù)的靈活性。更新什么和多少代碼、更新頻率以及更新速度是設(shè)計物聯(lián)網(wǎng)設(shè)備時需要解決的問題。NVM 的選擇會影響這些問題,并在計算代碼更新的時間和速度方面發(fā)揮關(guān)鍵作用。
審核編輯:郭婷
-
存儲器
+關(guān)注
關(guān)注
38文章
7403瀏覽量
163393 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2899文章
43793瀏覽量
369129 -
IOT
+關(guān)注
關(guān)注
186文章
4140瀏覽量
195655
發(fā)布評論請先 登錄
相關(guān)推薦
評論