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

作者: Hardik Patel
2018 年 04 月 22 日

韌體更新能力不僅能夠在客戶現場的初始安裝期間進行客製化,還可以在產品安裝完成後在現場添加新的功能/特性,並且可在使用過程中修復任何韌體問題。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區段組成。
圖1 SST26VF064B的記憶體構成(映射)由8個8KB區段、2個32KB區段和126個64KB區段組成。

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

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

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

圖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設備時須要解決的問題;非揮發性記憶體的選擇會影響這些問題,並在計算程式碼更新的時間和速度方面起到關鍵作用。

(本文作者為Microchip記憶體產品部主任應用工程師)

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

加上觸控式人機介面 廚房電器更美觀/易操作

2019 年 07 月 29 日

感測器連線更靈活/高效 新型ADC為MCU運算分憂

2021 年 09 月 06 日

共用模組優化資源配置 嵌入式系統效能邁大步

2010 年 09 月 20 日

無線通訊/功耗處理革新加持 IoT結合能源擷取將成趨勢

2017 年 11 月 20 日

虛擬CAN系統力助車輛診斷 整合通訊模擬/App介面(1)

2024 年 09 月 10 日

貿澤供貨Microchip射頻就緒多重通訊協定MCU模組

2024 年 10 月 23 日
前一篇
有賴AOT控制電源IC 穿戴式裝置功耗損失再降低
下一篇
基礎建設待完善 東南亞智慧方案需求大