「無線韌體更新」(Firmware over-the-air,FOTA)可支援系統錯誤的遠端修復,或為系統導入新功能和服務,適用於安裝在偏遠地區或需要持續更新的裝置,如無線基礎設施、智慧工廠和連網汽車。典型的系統包含透過非揮發性記憶體來啟動和配置的處理單元。

由於系統連線性不斷增強,可程式化晶片架構不斷發展,非揮發性記憶體更加可靠、安全和穩定,使無縫FOTA更新成為現實——這些趨勢和產業變革正在加速FOTA應用的發展。

20190724_FOTA_TA31P1

圖1:FOTA的優點。
(來源:Cypress)

任務關鍵型系統要求

對於不允許在更新過程中出錯的任務關鍵型應用,要求可靠的FOTA技術。也就是更新過程必須不受通訊故障影響,且更新過程中幾乎無需暫停系統。

對於多數應用來說,將技術人員派至現場對系統重新程式化從成本上不可行,召回所有受影響車輛進行軟體更新也是車廠無法負擔的;種種原因讓FOTA成為產業新寵。為確保可靠性,必須在系統層面實現這一功能,且系統晶片必須具有可靠的FOTA功能。圖1詳細說明了FOTA技術的諸多優勢。

快閃記憶體元件普遍用於系統的軟體/韌體程式碼儲存,執行FOTA的主要目的是更新快閃記憶體中的程式碼。目前的主機裝置通常只使用內部快閃記憶體,或內部與外部快閃記憶體組合來儲存資料和程式碼,然而隨著系統複雜度不斷上升,現代半導體技術面臨微縮和成本挑戰,使得在主機微控制器(MCU)嵌入快閃記憶體這種在汽車和工業應用中常見做法,變得越來越困難。嵌入式快閃記憶體很可能無法突破28奈米或22奈米的瓶頸。

除此之外,外部快閃記憶體將成為必備,主機也會需要具備僅透過外部快閃記憶體元件就能執行FOTA更新的能力。

FOTA更新方法

利用NOR快閃記憶體實施FOTA更新有幾種方法,第一種是沒有軟體/韌體備份的FOTA更新;在這種架構下,系統使用單個快閃記憶體元件或分區來儲存應用程式軟體。採用這種方法時,需在軟體更新過程中暫停應用,原因是系統只能從快閃記憶體執行應用程式或更新軟體。此類應用通常配置了具有基本功能和有限記憶體的主機MCU。

第二種FOTA更新方法包括軟體/韌體備份。這種方法運用更高階的MCU和附加快閃記憶體以避免更新過程中暫停系統的需要。在此架構下,系統使用兩個快閃記憶體元件或分區,其中一個快閃記憶體/分區執行應用程式,另一個同時進行更新。

第三種更新方法是採用「金級」(golden)軟體/韌體備份。採用這種FOTA更新方法時,系統會使用三個快閃記憶體元件或分區;一般情況下,其中一個分區(或晶粒)容納當前軟體,另一個分區用於更新程式碼(或已經完成FOTA更新),第三個分區用於儲存軟體的「金級」副本(在當前軟體和新軟體損壞的情況下,系統可以恢復至該副本)。

表1總結了上述三種方法各自的優缺點。

20190724_FOTA_TA31T1

表1:各種FOTA架構的優、缺點。
(來源:Cypress)

為FOTA量身打造的NOR快閃記憶體

NOR快閃記憶體技術日新月異,並具備專為實現可靠FOTA更新的創新設計,包括:

同步讀/寫

市場上部分最先進的NOR快閃記憶體元件具有靈活的bank架構(即磁區組),可從一個記憶體bank連續讀取資料,同時在另一個bank執行抹除/編程功能。這種功能被稱為同步讀/寫(Simultaneous Read/Write),是FOTA更新過程的理想選擇。

抹除/編程作業期間可以讀取任何閒置的bank,元件允許主機系統在單一bank內進行編程或抹除,然後立即從另一個bank同步讀取,從而提升系統整體性能。此功能可以防止系統因無限期等待抹除/編程作業完成而出現暫停。

某些供應商還提供多晶片堆疊形式的NOR快閃記憶體元件(例如SPI NOR S70FL-S),支援堆疊晶片之間的同步作業;有一些應用程式需要更高密度的快閃記憶體來儲存該程式,這些元件支援與高密度快閃記憶體元件之間的同步作業,系統可以執行並同步作業功能相同的更新程式序列,但此種情況下,系統讀取或更新的是相對應的晶片而非bank。

圖2中的波形顯示了NOR快閃記憶體元件中的軟體更新序列,證明了Bank 1或晶片1的讀取作業、以及Bank 2或晶片2的抹除/編程作業同步進行。

20190724_FOTA_TA31P2

圖2:同步讀/寫的FOTA更新。
(來源:Cypress)

編程/抹除 恢復/暫停

「編程/抹除 恢復/暫停」(Program/Erase Resume/Suspend)是NOR快閃記憶體的另一個重要功能,可大幅提升FOTA作業的可靠性。「編程/抹除 恢復」指令允許系統中斷嵌入式編程/抹除作業,以便從暫停的非編程/抹除磁區讀取資料。

讀取作業完成後,系統可以「恢復」,並繼續執行程式編程/抹除作業。此功能適用於不支援同步作業的單晶粒NOR快閃記憶體元件架構;該功能還會為正在作業的應用程式提供優先權,因此系統無需暫停,軟體更新過程可在閒置時間完成。圖3顯示了使用此功能的FOTA方法。

20190724_FOTA_TA31P3

圖3:使用「編程/抹除 恢復/暫停」功能的FOTA更新。
(來源:Cypress)

GUID磁碟分割表方法

NOR快閃記憶體另一個增強可靠性的功能,是採用全域唯一識別元(Globally Unique Identifiers, GUID)磁碟分割表(Partition Table),也就是GPT,以單一快閃記憶體元件執行FOTA作業。NOR快閃記憶體元件運用這一方法時,主機需要對快閃記憶體進行區域分割(如圖4)。

20190724_FOTA_TA31P4

圖4:使用GPT的FOTA更新。
(來源:Cypress)

快閃記憶體元件的頂部和底部包含分割表(主、次),用以描述如何對快閃記憶體進行分區。若主磁碟分割表損壞,就使用次分割表。其餘分割區(磁區)將在兩個應用程式之間進行劃分。分割表對儲存容量要求較低,因此NOR快閃記憶體元件頂部和底部較小的磁區架構是這類應用的一個優勢...

...繼續閱讀請連結EE Times Taiwan網站