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