即使是最早的嵌入式系統,現場更新固件也一直是一個關鍵組件。嵌入式開發人員訪問 JTAG 或 SWD 編程器等硬件接口工具可提供對嵌入式系統編程端口的物理訪問。固件更新的其他訪問方法包括 USB、汽車 CAN、串行端口等接口。隨著越來越多的嵌入式設備成為物聯網的一部分,無線端口連接變得越來越重要。在今天的文章中,我們將探討使用 Amazon Web Services (AWS) 和 FreeRTOS 的無線、空中 (OTA) 通信。
使用 AWS 的 OTA 概述
OTA 更新在開發人員第一次遇到它們時可能會有點嚇人。雖然這個過程有些復雜,但它可以分解成相當簡單的組件。
將 OTA 流程分解為簡單的元素
固件更新包括三個主要部分:
發布新固件更新的 OEM。
存儲固件映像并促進更新的 AWS。
接收固件更新的已部署設備。
AWS 在整個過程中扮演著非常重要的角色。新的固件映像上傳到用于存儲固件映像的簡單存儲服務 (S3) 存儲桶。接下來,OEM 使用 IoT Core 安排一個作業,通知已部署的設備有可用的固件更新。最后,部署的設備下載新鏡像,對其進行驗證,然后更新其應用程序代碼。此時,設備會更新并運行新的應用程序代碼,直到進程重新啟動并且有新的更新可用。
微控制器中的 OTA 支持
老實說,概述使 OTA 更新看起來很簡單,這是因為所有繁重的工作都已經為嵌入式開發人員完成了。如果一個團隊決定從頭開始構建自己的解決方案,他們會發現他們將投入大量的開發工作。團隊真的不想構建自己的 OTA 解決方案,而是利用現有的解決方案,以便他們可以專注于自己的產品功能和差異化。對于計劃使用 FreeRTOS 的團隊,他們可以利用 Amazon 的 FreeRTOS 庫和 OTA 示例以極快的速度啟動和運行 OTA 解決方案。
AWS OTA 解決方案的一個優點是它得到了許多微控制器供應商的支持。例如,如果你訪問 AWS 合作伙伴設備目錄,你會發現有近三成芯片供應商合作伙伴,支持近 60 種不同的開發板!現在,并非所有這些都支持 OTA 解決方案,但有不少支持。這為開發人員提供了相當廣泛的設備可供選擇,并且確實沒有什么可以阻止嵌入式開發人員將示例移植到不受支持的處理器上。
OTA 特性和功能
并非所有 OTA 或引導加載程序解決方案都是平等的,而且在許多情況下,都有定制和配置的空間。例如,PSoC 64 OTA 演示默認配置為為推送到 S3 存儲桶的固件提供標準二進制文件輸出。但是,在Cypress工具鏈中,有一個 Secure SDK 工具,其中包含多個可用于加密固件映像的策略。然后,板載安全引導加載程序的設備在將新固件映像寫入閃存之前對其進行解密和驗證。
在查看適用于微控制器的潛在 OTA 解決方案時,應牢記以下幾個特性:
微控制器建立信任根
微控制器包含一個安全引導加載程序(用于驗證完整性、驗證和解密圖像)
固件鏡像可以加密
易于生成固件更新作業
易于管理已部署設備的隊列
結論
OTA 更新正迅速成為幾乎所有物聯網設備的要求。這些解決方案可幫助嵌入式開發人員以最小的努力在現場更新他們的固件,這使他們能夠更多地關注產品,而不是引導加載程序和 OTA 等常見設備設計元素。