自嵌入式系統(tǒng)問(wèn)世以來(lái),現(xiàn)場(chǎng)固件更新一直是每個(gè)嵌入式系統(tǒng)的關(guān)鍵組件。訪問(wèn)諸如JTAG或SWD編程器之類的編程工具以及對(duì)編程端口進(jìn)行物理訪問(wèn)通常需要使用額外接口(如USB,CAN,串行端口等)來(lái)更新固件。隨著許多設(shè)備現(xiàn)在可以訪問(wèn)Internet并成為IoT設(shè)備,越來(lái)越需要執(zhí)行無(wú)線更新。在今天的帖子中,我們將使用Amazon Web Services(AWS)和FreeRTOS看看如何進(jìn)行OTA。
使用AWS的OTA概述
OTA更新可能會(huì)使開(kāi)發(fā)人員第一次(或多次)遇到更新感到有些恐懼,該過(guò)程涉及很多部分,但總體而言,OTA流程可以分解為以下所示的簡(jiǎn)單圖表:
如您所見(jiàn),固件更新包含三個(gè)主要部分:
發(fā)布新固件更新的OEM
存儲(chǔ)并更新AWS
接收固件更新的已部署設(shè)備
顯然,在此示例中,AWS在整個(gè)過(guò)程中扮演著非常重要的角色。首先,將新的固件映像上傳到S3存儲(chǔ)桶,該存儲(chǔ)桶用于存儲(chǔ)固件映像。接下來(lái),將新固件添加到S3存儲(chǔ)桶中,OEM將使用IoT核心版調(diào)度一項(xiàng)作業(yè),該作業(yè)將通知已部署的設(shè)備有可用的固件更新。最后,已部署的設(shè)備下載新映像,對(duì)其進(jìn)行驗(yàn)證,然后更新其應(yīng)用程序代碼。屆時(shí),將更新設(shè)備并運(yùn)行新的應(yīng)用程序代碼,直到進(jìn)程重新啟動(dòng)并且有新的更新可用為止。
微控制器中的OTA支持
概述確實(shí)使OTA更新看起來(lái)很簡(jiǎn)單,這是因?yàn)殚_(kāi)發(fā)人員已經(jīng)完成了所有繁重的工作。如果團(tuán)隊(duì)決定他們要從頭開(kāi)始構(gòu)建自己的解決方案,他們會(huì)發(fā)現(xiàn)他們將投入大量的開(kāi)發(fā)工作。團(tuán)隊(duì)確實(shí)不想建立自己的OTA解決方案,而是利用現(xiàn)有的解決方案,以便他們可以專注于自己的產(chǎn)品功能和差異化因素。對(duì)于計(jì)劃使用FreeRTOS的團(tuán)隊(duì),他們可以利用Amazon的FreeRTOS庫(kù)和OTA示例來(lái)極其快速地啟動(dòng)并運(yùn)行OTA解決方案。
AWS OTA解決方案的一個(gè)好處是,許多微控制器供應(yīng)商都支持該解決方案。例如,如果您要訪問(wèn)AWS合作伙伴設(shè)備目錄,您會(huì)發(fā)現(xiàn)有數(shù)十家芯片供應(yīng)商合作伙伴支持了近60種不同的開(kāi)發(fā)板。現(xiàn)在,并非所有這些都支持OTA解決方案,但是相當(dāng)一部分支持。這為開(kāi)發(fā)人員提供了廣泛的設(shè)備可供選擇,此外,開(kāi)發(fā)人員還可以將示例移植到其他處理器上。
OTA功能和能力
在過(guò)去的幾周中,我將特別在Infineon / Cypress PSoC 64 Standard Secure–AWS Wi-Fi BT Pioneer Kit上嘗試通過(guò)FreeRTOS來(lái)測(cè)試AWS OTA演示代碼。我提到此套件是因?yàn)閺陌踩嵌葋?lái)看,它特別有趣,因?yàn)樗鼈儾粌H支持“傳統(tǒng)” OTA或引導(dǎo)加載程序,而且還盡力確保不僅可以安全地更新固件,還確保引導(dǎo)微控制器上的處理過(guò)程建立了安全的信任根。
并非所有OTA或Bootloader解決方案都是一樣的,而且在許多情況下,還存在自定義和配置的空間。例如,默認(rèn)情況下,PSoC 64 OTA演示被配置為為推送到S3存儲(chǔ)桶的固件提供標(biāo)準(zhǔn)二進(jìn)制文件輸出。但是,在Cypress工具鏈中,有一個(gè)Secure SDK工具,其中包含可用于加密固件映像的幾種策略。然后,安全引導(dǎo)加載器上的設(shè)備會(huì)在對(duì)新固件映像進(jìn)行寫入之前對(duì)其進(jìn)行解密和驗(yàn)證。
在查看適用于微控制器的潛在OTA解決方案時(shí),應(yīng)牢記以下幾個(gè)功能:
微控制器建立信任根
微控制器包括一個(gè)安全的引導(dǎo)程序(用于驗(yàn)證完整性,驗(yàn)證和解密映像)
固件映像可以加密
易于生成固件更新
易于管理已部署設(shè)備的數(shù)量
結(jié)論
OTA更新正迅速成為幾乎所有物聯(lián)網(wǎng)設(shè)備的要求。這些解決方案可幫助開(kāi)發(fā)人員以最少的精力在現(xiàn)場(chǎng)更新固件,從而使他們比起引導(dǎo)加載程序和OTA等通用設(shè)備設(shè)計(jì)元素,將更多的精力放在產(chǎn)品上。在嘗試使用Cypress PSoC 64開(kāi)發(fā)板和AWS OTA演示進(jìn)行實(shí)驗(yàn)時(shí),我發(fā)現(xiàn)我能夠配置AWS和開(kāi)發(fā)板在第一次進(jìn)行固件更新的時(shí)間大約為一個(gè)小時(shí),這很不錯(cuò),因?yàn)閺念^開(kāi)始啟動(dòng)這樣的解決方案通常需要幾個(gè)月的時(shí)間。
編輯:lyn
-
微控制器
+關(guān)注
關(guān)注
48文章
7565瀏覽量
151574 -
OTA
+關(guān)注
關(guān)注
7文章
582瀏覽量
35269 -
AWS
+關(guān)注
關(guān)注
0文章
432瀏覽量
24395
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論