7月18-22日,STM32 線上技術(shù)周正式開講。作為ST在OTA領(lǐng)域的戰(zhàn)略合作伙伴,艾拉比亮相線上技術(shù)周,為觀眾展示如何零代碼實(shí)現(xiàn)ST MCU的差分升級,并現(xiàn)場基于ST MCU為大家?guī)鞳penFOTA的DEMO場景演示。
艾拉比物聯(lián)網(wǎng)解決方案專家鐘佳
今天我們就來聊聊基于MCU,如何零代碼實(shí)現(xiàn)OTA差分升級。
物聯(lián)網(wǎng)設(shè)備的OTA 在設(shè)計(jì)和實(shí)現(xiàn)過程中需要依賴于物聯(lián)網(wǎng)設(shè)備的硬件方案。 其中,MCU 作為主控處理器在物聯(lián)網(wǎng)領(lǐng)域占著非常高的份額,廣泛分布在智能家居、三表、工業(yè)等各個領(lǐng)域。
在 MCU 的 OTA 升級方式上,目前很大部分客戶實(shí)現(xiàn)方式依舊為整包升級,舉個例子,某客戶 MCU 的 Flash 配置為 64KB,自身 APP 固件為 50KB,此時如果需要實(shí)現(xiàn) OTA 升級,大多客戶選擇的方案是:
1. 外掛一顆 64KB 或者 128KB 的 Flash
2. 選擇一顆 128KB Flash 資源的 MCU
這種情況下的升級方案通常會增加額外的研發(fā)、物料以及管理成本,這又是一筆不小的費(fèi)用支出。
在這里我們不得不提的是差分升級。差分升級相較于傳統(tǒng)的的整包升級方式,有資源需求低、升級功耗低、升級時間短及下載流量少等諸多優(yōu)勢,越來越多的成為物聯(lián)網(wǎng)升級的優(yōu)選方案。
上述案例,如果通過差分 OTA 升級,則在 64KB Flash 的 MCU 上直接可以實(shí)現(xiàn),再加入 5KB 左右的差分升級算法后,還能剩余 9KB 左右空間來存儲幾 KB 的差分升級包,不增加硬件成本就可以實(shí)現(xiàn) OTA 升級。
核心技術(shù):差分升級
差分升級又叫增量升級,顧名思義就是通過差分算法將源版本與目標(biāo)版本之間差異的部分提取出來制作成差分包,然后在設(shè)備通過還原算法將差異部分在源版本上進(jìn)行還原從而升級成目標(biāo)版本的過程。
艾拉比差分包制作、還原過程
差分升級大多是通過在升級程序(Bootloader 為主)中增加差分升級算法來實(shí)現(xiàn),算法需要占用一些本地 Flash 和 RAM 資源。
在過去幾年,比較主流的差分算法集成的方式是通過 SDK 的形式提供差分升級能力,客戶需要將差分升級 SDK 集成到設(shè)備 Bootloader 中,有一定的集成開發(fā)量。這種方式的好處是客戶可以自己根據(jù) API 進(jìn)行定制開發(fā)一些功能。
但是在整機(jī)OTA實(shí)施過程中還是會有很多問題,比如:
1、MCU 的碎片化導(dǎo)致這種集成開發(fā)方式成本較高,適配和測試周期長
2、主控升級一旦失敗,整機(jī)就會變磚
3、模塊無法感知主控的升級狀態(tài)
4、芯片資源利用率不高,近場、遠(yuǎn)場的等多場景需求不能融合
艾拉比基于大量 MCU系統(tǒng)集成的經(jīng)驗(yàn)和認(rèn)識以及對 OTA 的理解推出一種更簡便,更易用的,相對標(biāo)準(zhǔn)化的優(yōu)化方案。發(fā)現(xiàn)就模組側(cè)而言,其優(yōu)秀的升級能力和相對富余的硬件資源,相較于MCU端都更具優(yōu)勢。因此艾拉比推出標(biāo)準(zhǔn)化的OTA差分升級方案——OpenFOTA,旨在通過硬件資源較豐富芯片的FOTA能力完成其他節(jié)點(diǎn)的差分升級,該方案設(shè)計(jì)了完善的異常保護(hù)機(jī)制。
艾拉比OpenFOTA整機(jī)級解決方案
在OpenFOTA方案之前,模組只支持升級模組的應(yīng)用 APP(FOTA),使用OpenFOTA之后的模組,則可以升級MCU 的應(yīng)用 APP(FOTA),站在整機(jī)終端的角度可以分別稱之為整機(jī)固件升級(FOTA)與整機(jī)應(yīng)用升級(SOTA),所以O(shè)penFOTA方案相當(dāng)于同時賦能了物聯(lián)網(wǎng)整機(jī)設(shè)備的FOTA升級能力與SOTA升級能力。
主控處理器MCU燒錄艾拉比ELB固件,該固件是圖形化配置生成,其中包含與模組進(jìn)行OTA業(yè)務(wù)交互的UP程序以及 MCU的輕量級Bootloader引導(dǎo)程序和相關(guān)保護(hù)機(jī)制;
通信模組中已經(jīng)預(yù)先集成了艾拉比的UA差分算法、UP程序、交互邏輯接口等;
OpenFOTA差分升級方案的關(guān)鍵能力和優(yōu)勢
1、更符合整機(jī)終端的使用場景
OpenFOTA在廣和通模組內(nèi)構(gòu)建了完整的端、云交互業(yè)務(wù)場景,也同時支持近場本地升級刷寫。
2、支持用戶自定義模組Flash區(qū)域
用戶可自定義該區(qū)域的使用,相當(dāng)于增加了一個外掛Flash的資源供使用。
3、全面完善的升級保護(hù)機(jī)制和高可靠性
OpenFOTA自帶的斷電續(xù)升,安全鑒權(quán)等機(jī)制,更多維度,更省資源的情況下,保障了升級的可靠性和可用性,更是支持不消耗MCU資源的回滾升級。
4、MCU的差分OTA實(shí)現(xiàn)更強(qiáng)勁的差分升級能力
廣和通模組側(cè)集成了艾拉比最先進(jìn)的差分升級算法,比MCU上的算法相對更高效,做出的差分包更小。
5、無需開發(fā)的整機(jī)OTA融合升級
既可以升級ST MCU 的應(yīng)用 APP(整機(jī)SOTA),又可以升級廣和通模組的固件APP(整機(jī)FOTA)
目前艾拉比已經(jīng)適配了 ST 主流的 MCU 型號。
方案應(yīng)用:以ST MCU+廣和通通訊模塊為例
OpenFOTA 方案設(shè)備端構(gòu)成如上圖所示,主控處理器ST MCU燒錄艾拉比ELB 固件,該固件是圖形化配置生成,其中包含與模組進(jìn)行OTA業(yè)務(wù)交互的 UP 程序以及STMCU的輕量級Bootloader引導(dǎo)程序和相關(guān)保護(hù)機(jī)制,而在廣和通模組中已經(jīng)預(yù)先集成了艾拉比的 UA差分算法、UP 程序、交互邏輯接口等。
終端客戶在使用的時候只需要為選型的ST MCU燒錄ELB固件,然后搭配對應(yīng)的廣和通模塊即可,幾乎不需要再為如何實(shí)現(xiàn)FOTA而煩惱,只管驗(yàn)證和使用。