物聯(lián)網(wǎng)(IoT)設(shè)備正迅速引入各大市場,從家用電器到醫(yī)療設(shè)備、再到汽車,應(yīng)用范圍十分廣泛;制造商必須通過不斷創(chuàng)新和靈活地采用或集成新技術(shù)來領(lǐng)先于競爭對手。為了滿足新功能的需求和新法規(guī)的要求,設(shè)計人員必須將靈活性納入其產(chǎn)品中,以適應(yīng)不斷發(fā)展的IoT生態(tài)系統(tǒng)。固件更新不僅能夠在客戶現(xiàn)場的初始部署期間進行定制,還可以在產(chǎn)品部署到現(xiàn)場后添加新功能/特性,并且支持在使用過程中修復(fù)任何固件問題。NOR閃存等非易失性存儲器件具有可重復(fù)編程能力且可靠性極高,通常可用作固件代碼存儲介質(zhì)。通過重新編寫器件固件代碼(位于器件使用的非易失性存儲器中)的一部分,制造商可輕松更新器件功能。想要更新固件時,有三件事情需要考慮:更新哪些/多少代碼、更新頻率以及執(zhí)行更新所需的時間(速度)。
更新哪些/多少固件代碼
在IoT設(shè)備的初始設(shè)計階段,必須考慮更新哪些/多少固件代碼。相對于不可更新部分,固件的可更新部分必須存儲在NOR閃存器件的獨立區(qū)域中。更新NOR閃存的任何片段都需要先擦除存儲器的這一部分,然后將新信息編程到該部分中。NOR閃存分為稱為扇區(qū)和塊的多個部分,它們的大小各有不同。NOR閃存器件(如采用SST SuperFlash?技術(shù)的器件(部件編號SST26VF064B(64 Mb)))分為多個均一的4 KB扇區(qū),各個扇區(qū)可單獨擦除和重新編程(4 KB = 4 * 1024 * 8位 = 32,762位)。它還可分為更大的8 KB、32 KB和64 KB塊,這些塊也可單獨擦除。因此,一個8 KB塊有2個扇區(qū),一個32 KB塊有8個扇區(qū),一個64 KB塊有16個扇區(qū)。圖1給出了采用8 KB/32 KB/64 KB塊的SST26VF064B的存儲器構(gòu)成。各個塊也可以單獨進行保護。在對閃存的任何部分執(zhí)行任何更新前,必須取消保護該部分中的塊,以允許擦除和編程操作。完成更新后,謹慎地再次對這些塊進行保護,以避免意外寫入或擦除這些區(qū)域。固件的可更新部分必須以足夠靈活的方式劃分為扇區(qū)和塊,以便同時支持有限數(shù)量和最大數(shù)量的特性/功能更新。由于執(zhí)行更新的速度由需要擦除和重新編程的扇區(qū)和塊數(shù)決定,因此在組織固件的可更新部分時,最好同時考慮速度和靈活性。圖2給出了將存儲器組織為可更新和不可更新部分的示例。引導(dǎo)代碼等不可更新部分存儲在受保護區(qū)域中。固件的可更新部分(如特性/功能)根據(jù)靈活性要求分為較小的塊或較大的塊??筛碌溺R像文件存儲在較大的塊中,可更新的變量/參數(shù)存儲在較小的塊中。
【圖1:SST26VF064B的存儲器構(gòu)成(映射)——由8個8 KB塊、2個32 KB塊和126個64 KB塊組成】
【圖2:將存儲器組織為多個不可更新部分(例如:引導(dǎo)代碼)和可更新部分(例如:功能/特性代碼、鏡像文件代碼和參數(shù)變量代碼)】
更新頻率
固件更新頻率的主要限制是應(yīng)用中所使用存儲器的耐擦寫次數(shù)限制。SuperFlash技術(shù)存儲器(如SST26VF064B)的耐擦寫次數(shù)可達100,000次,這意味著每個扇區(qū)可編程和擦除100,000次。固件可以更新100,000次聽起來很多;然而,許多IoT設(shè)備會在使用期間收集數(shù)據(jù)并將信息存儲在NOR閃存中,因此在計算最大耐擦寫次數(shù)限制時必須考慮這一點??紤]到耐擦寫次數(shù),必須在存儲器中分配足夠多的扇區(qū)。下面將舉例說明:假設(shè)IoT設(shè)備正在收集和存儲16個字節(jié)的信息,并且信息預(yù)計在產(chǎn)品的使用壽命期間收集和存儲1億次??梢园慈缦路绞接嬎銘?yīng)當分配的扇區(qū)數(shù):
1個扇區(qū) = 4 KB
假設(shè)扇區(qū)中的所有地址單元用于存儲信息(一次存儲16個字節(jié)的數(shù)據(jù)),然后寫入到一個新的地址單元,直至達到扇區(qū)末尾(例如,0x0000-0x000F、0x0010-0x001F、0x0020-0x002F等)
由于4 KB/16字節(jié) = 256,這即是達到扇區(qū)容量并擦除扇區(qū)中任何數(shù)據(jù)之前可以寫入存儲介質(zhì)的次數(shù)
1個扇區(qū)的耐擦寫限值 = 100,000次
因此,如果1個扇區(qū)可以寫入256次且耐擦寫次數(shù)為100,000次,則可以收集和存儲數(shù)據(jù)2560萬次
如果一個應(yīng)用需要收集和存儲數(shù)據(jù)1億次,則要分配的扇區(qū)數(shù)量為100,000,000/25,600,000 = 3.9。因此,在本例中,需要分配4個扇區(qū)以在應(yīng)用的生命周期內(nèi)存儲16個字節(jié)的數(shù)據(jù)。
IoT設(shè)備工程師需要進行類似的計算,以便為數(shù)據(jù)記錄參數(shù)分配足夠多的扇區(qū)和塊,以免超出其NOR閃存器件的耐擦寫限值。
更新速度
可根據(jù)需要擦除和重新編程的塊和扇區(qū)數(shù)來計算更新速度。假設(shè)需要重新編程SST26VF064B的幾個64 KB塊中存儲的1 Mb、2 Mb或4 Mb固件代碼/數(shù)據(jù)。代碼/數(shù)據(jù)可以由固件代碼、鏡像文件或需要更新的其他代碼組成。更新過程涉及對閃存執(zhí)行一系列命令指令。序列將從取消保護存儲器塊開始,然后擦除這些塊、用更新的數(shù)據(jù)/代碼進行編程,最后重新進行保護。對于SST26VF064B,更新1 Mb/2 Mb/4 Mb存儲器所需的指令序列如表1所示。從表1中可以看出,兩個最重要的時間是擦除時間和編程時間。SST26VF064B采用可提供出色擦除性能的SuperFlash技術(shù)。SuperFlash技術(shù)與傳統(tǒng)閃存的擦除和編程性能的比較如表2所示。與傳統(tǒng)閃存相比,SuperFlash技術(shù)提供的優(yōu)異擦除性能對于縮短更新時間非常有用。SST26VF064B支持的最大時鐘頻率為104 MHz,最大扇區(qū)擦除時間為25 ms,最大塊擦除時間為25 ms,最大頁編程時間為1.5 ms。此外,從發(fā)出每條命令指令到閃存以104 MHz時鐘頻率工作,中間還需要12 ns延時(CE高電平時間)。表1所示的命令序列與編程和擦除時間的知識結(jié)合使用時,可計算更新1 Mb/2 Mb/4 Mb SuperFlash技術(shù)存儲器和傳統(tǒng)閃存所需的時間,具體方法分別如表3和表4所示。這些計算必須由IoT設(shè)備工程師完成以估算執(zhí)行更新的速度,目的是最大程度縮短更新期間的IoT設(shè)備停機時間。
【表1:更新1 Mb/2 Mb/4 Mb存儲器的閃存命令指令序列】
【表2:SST26VF064B和傳統(tǒng)閃存的編程和擦除時間】
【表3:更新1 MB/2 Mb/4 Mb SuperFlash技術(shù)存儲器所需的時間】
【表4:更新1 MB/2 Mb/4 Mb傳統(tǒng)閃存所需的時間】
結(jié)論
IoT設(shè)備設(shè)計工程師需要在更新應(yīng)用程序代碼和數(shù)據(jù)時提供一定的靈活性。更新哪些/多少代碼、更新頻率和更新速度是設(shè)計IoT設(shè)備時需要解決的問題。非易失性存儲器的選擇會影響這些問題,并在計算代碼更新的時間和速度方面起到關(guān)鍵作用。
責(zé)任編輯:gt
-
存儲器
+關(guān)注
關(guān)注
38文章
7438瀏覽量
163529 -
編程
+關(guān)注
關(guān)注
88文章
3573瀏覽量
93545 -
IOT
+關(guān)注
關(guān)注
186文章
4163瀏覽量
196026
發(fā)布評論請先 登錄
相關(guān)推薦
評論