SuperFlash技術記憶體助陣 | IoT設備韌體更新更靈活

物聯網設備正迅速引入各大市場, 從家用電器到醫療設備, 再到汽車, 應用範圍十分廣泛; 製造商必須透過不斷創新和靈活地採用或整合新的技術來領先競爭對手. 為了滿足新功能的需求和新法規的要求, 設計人員必須將靈活性納入其產品中, 以適應不斷髮展的IoT生態系統.

韌體更新能力不僅能夠在客戶現場的初始安裝期間進行客制化, 還可以在產品安裝完成後在現場添加新的功能/特性, 並且可在使用過程中修複任何韌體問題. NOR快閃記憶體等非揮發性記憶體組件具有可重複刻錄能力, 且可靠性極高, 通常可用作韌體程式碼儲存媒介.

透過重新編寫組件韌體並變更部分的程序(組件使用非揮發性記憶體), 如此製造商便可輕鬆更新裝置的功能或升級. 想要更新韌體時, 有三件事情須考慮, 分別為更新哪些/多少程式碼, 更新頻率, 以及執行更新所需的時間(速度).

首先考慮韌體程式碼更新數

在IoT設備的初始設計時間, 必須考慮更新哪些/多少韌體程序. 相對於不可更新部分, 韌體的可更新部分必須儲存在NOR快閃記憶體組件的獨立區域中. 更新NOR快閃記憶體的任何片段都須要先抹除記憶體的這一部分, 然後將新資訊程序刻錄到該部分中. NOR快閃記憶體分為稱為區段和區塊的多個部分, 它們的大小各有不同.

NOR快閃記憶體組件(如採用SST SuperFlash技術的組件), 分為多個4KB區塊, 每個區塊可單獨抹除和重新刻錄(4KB=4×1024×8位=32,762位). 它還可分為更大的8KB, 32KB和64KB區段, 這些區段也可單獨抹除.

因此, 一個8KB大小有2個區塊, 一個32KB大小有8個區塊, 一個64KB大小有16個區塊. 圖1顯示出SST26VF064B採用8KB/32KB/64KB區域的記憶體組成, 且各個區域也可以單獨進行保護. 在對快閃記憶體的任何部分執行任何更新前, 必須取消保護該部分中的區域, 以允許抹除和刻錄操作.

圖1 SST26VF064B的記憶體構成(映像)由8個8KB區段, 2個32KB區段和126個64KB區段組成.

完成更新後, 謹慎地再次對這些區段進行保護, 以避免意外寫入或抹除這些區域. 韌體的可更新部分必須以足夠靈活的方式劃分為區段和區塊, 以便同時支援有限數量和最大數量的特性/功能更新.

由於執行更新的速度由須要抹除和重新刻錄的區段和區塊數決定, 因此在組織韌體的可更新部分時, 最好同時考慮速度和靈活性.

圖2給出了將記憶體組織為可更新和不可更新部分的範例. 引導程式碼等不可更新部分儲存在受保護區域中.

圖2 將記憶體組織分為多個不可更新部分(例如載入程式碼)和可更新部分(例如功能/特性程式碼, 映像檔程式碼和參數變數程式碼).

韌體的可更新部分, 例如特性/功能等, 根據靈活性要求分為較小的區段或較大的區段. 可更新的映像檔儲存在較大的區段中, 可更新的變數/參數儲存在較小的區段中.

韌體更新頻率的主要限制是應用中所使用記憶體的耐抹寫次數限制. SuperFlash技術記憶體(如SST26VF064B)的耐抹寫次數可達100,000次, 這意味著每個區段可刻錄和抹除100,000次.

計算韌體耐抹寫次數確認更新頻率

韌體可以更新100,000次聽起來很多; 然而, 許多IoT設備會在使用期間搜集數據並將資訊儲存在NOR快閃記憶體中, 因此在計算最大耐抹寫次數限制時必須考慮這一點.

考慮到耐抹寫次數, 必須在記憶體中分配足夠多的區段. 下面將舉例說明, 假設IoT設備正在搜集和儲存16個位元組的資訊, 並且資訊預計在產品的使用壽命期間須搜集和儲存1億次.

這樣就可以按底下方式計算應當分配的區段數:

. 1個區段=4 KB

. 假設區段中的所有地址單元用於儲存資訊(一次儲存16個位元組的數據), 然後寫入到一個新的地址單元, 直至達到區段尾端(例如, 0×0000-0×000F, 0×0010-0×001F, 0×0020-0×002F等).

. 由於4 KB/16位元組=256, 這即是達到區段容量並抹除區段中任何數據之前可以寫入儲存介質的次數.

. 1個區段的耐抹寫限值=100,000次.

. 因此, 如果1個區段可以寫入256次且耐抹寫次數為100,000次, 則可以搜集和儲存數據2560萬次.

. 如果一個應用須要搜集和儲存數據1億次, 則要分配的區段數量為100,000,000/25,600,000=3.9. 因此, 在本例中, 須要分配4個區段以應對在一億生命周期內儲存16個位元組的數據.

IoT設備工程師須要進行類似的計算, 以便為數據記錄參數分配足夠多的區段和區塊, 以免超出其NOR快閃記憶體組件的耐抹寫限值.

縮短更新速度降低設備停機時間

可根據須要抹除和重新刻錄的區段和區塊數來計算更新速度. 假設須要重新刻錄SST26VF064B的幾個64KB區段中儲存的1Mb, 2Mb或4Mb韌體程式碼/數據; 程式碼/數據可以由韌體程式碼, 映像檔或需要更新的其他程式碼組成.

更新過程涉及對快閃記憶體執行一系列命令指令. 序列將從取消保護記憶體區段開始, 然後抹除這些區段, 用更新的數據/程式碼進行刻錄, 最後重新進行保護.

SST26VF064B採用可提供較佳抹除性能的SuperFlash技術, 與傳統快閃記憶體相比, SuperFlash技術提供的較佳抹除性能對於縮短更新時間非常有用.

SST26VF064B支援的最大頻率頻率為104MHz, 最大區段抹除時間為25ms, 最大頁刻錄時間為1.5ms. 此外, 從發出每條命令指令到快閃記憶體以104MHz頻率頻率工作, 中間還需要12ns延時(CE高電平時間).

具體方法分別如表1和表2所示. 這些計算必須由IoT設備工程師完成以估算執行更新的速度, 目的是最大程度縮短更新期間的IoT設備停機時間.

選擇合適揮發性記憶體提升IoT設備靈活度

IoT設備設計工程師需要在更新應用程式碼和數據時提供一定的靈活性. 更新哪些/多少程式碼, 更新頻率和更新速度是設計IoT設備時須要解決的問題; 非揮發性記憶體的選擇會影響這些問題, 並在計算程式碼更新的時間和速度方面起到關鍵作用.

2016 GoodChinaBrand | ICP: 12011751 | China Exports