自嵌入式系統問世以來,現場固件更新一直是每個嵌入式系統的關鍵組件。訪問諸如JTAG或SWD編程器之類的編程工具以及對編程端口進行物理訪問通常需要使用額外接口(如USB,CAN,串行端口等)來更新固件。隨著許多設備現在可以訪問Internet并成為IoT設備,越來越需要執行無線更新。在今天的帖子中,我們將使用Amazon Web Services(AWS)和FreeRTOS看看如何進行OTA。
使用AWS的OTA概述
OTA更新可能會使開發人員第一次(或多次)遇到更新感到有些恐懼,該過程涉及很多部分,但總體而言,OTA流程可以分解為以下所示的簡單圖表:
如您所見,固件更新包含三個主要部分:
發布新固件更新的OEM
存儲并更新AWS
接收固件更新的已部署設備
顯然,在此示例中,AWS在整個過程中扮演著非常重要的角色。首先,將新的固件映像上傳到S3存儲桶,該存儲桶用于存儲固件映像。接下來,將新固件添加到S3存儲桶中,OEM將使用IoT核心版調度一項作業,該作業將通知已部署的設備有可用的固件更新。最后,已部署的設備下載新映像,對其進行驗證,然后更新其應用程序代碼。屆時,將更新設備并運行新的應用程序代碼,直到進程重新啟動并且有新的更新可用為止。
微控制器中的OTA支持
概述確實使OTA更新看起來很簡單,這是因為開發人員已經完成了所有繁重的工作。如果團隊決定他們要從頭開始構建自己的解決方案,他們會發現他們將投入大量的開發工作。團隊確實不想建立自己的OTA解決方案,而是利用現有的解決方案,以便他們可以專注于自己的產品功能和差異化因素。對于計劃使用FreeRTOS的團隊,他們可以利用Amazon的FreeRTOS庫和OTA示例來極其快速地啟動并運行OTA解決方案。
AWS OTA解決方案的一個好處是,許多微控制器供應商都支持該解決方案。例如,如果您要訪問AWS合作伙伴設備目錄,您會發現有數十家芯片供應商合作伙伴支持了近60種不同的開發板。現在,并非所有這些都支持OTA解決方案,但是相當一部分支持。這為開發人員提供了廣泛的設備可供選擇,此外,開發人員還可以將示例移植到其他處理器上。
OTA功能和能力
在過去的幾周中,我將特別在Infineon / Cypress PSoC 64 Standard Secure–AWS Wi-Fi BT Pioneer Kit上嘗試通過FreeRTOS來測試AWS OTA演示代碼。我提到此套件是因為從安全角度來看,它特別有趣,因為它們不僅支持“傳統” OTA或引導加載程序,而且還盡力確保不僅可以安全地更新固件,還確保引導微控制器上的處理過程建立了安全的信任根。
并非所有OTA或Bootloader解決方案都是一樣的,而且在許多情況下,還存在自定義和配置的空間。例如,默認情況下,PSoC 64 OTA演示被配置為為推送到S3存儲桶的固件提供標準二進制文件輸出。但是,在Cypress工具鏈中,有一個Secure SDK工具,其中包含可用于加密固件映像的幾種策略。然后,安全引導加載器上的設備會在對新固件映像進行寫入之前對其進行解密和驗證。
在查看適用于微控制器的潛在OTA解決方案時,應牢記以下幾個功能:
微控制器建立信任根
微控制器包括一個安全的引導程序(用于驗證完整性,驗證和解密映像)
固件映像可以加密
易于生成固件更新
易于管理已部署設備的數量
結論
OTA更新正迅速成為幾乎所有物聯網設備的要求。這些解決方案可幫助開發人員以最少的精力在現場更新固件,從而使他們比起引導加載程序和OTA等通用設備設計元素,將更多的精力放在產品上。在嘗試使用Cypress PSoC 64開發板和AWS OTA演示進行實驗時,我發現我能夠配置AWS和開發板在第一次進行固件更新的時間大約為一個小時,這很不錯,因為從頭開始啟動這樣的解決方案通常需要幾個月的時間。
編輯:lyn
-
微控制器
+關注
關注
48文章
7908瀏覽量
153719 -
OTA
+關注
關注
7文章
605瀏覽量
36213 -
AWS
+關注
關注
0文章
435瀏覽量
25097
發布評論請先 登錄
自動駕駛汽車需要頻繁OTA更新嗎?
LPC55S69JBD100通過SPI連接到WM02C時,是否支持通過bootloader進行OTA更新?
淺談車規MCU (MGEQ1C064) OTA升級
聚云科技榮獲亞馬遜云科技生成式AI能力認證
OTA軟件升級管理系統

評論