隨著物聯(lián)網(wǎng)設(shè)備智能化的發(fā)展,OTA 升級(jí)已經(jīng)成為了業(yè)界公認(rèn)的基礎(chǔ)能力,而 OTA 在設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中需要依賴于物聯(lián)網(wǎng)設(shè)備的硬件方案。物聯(lián)網(wǎng)設(shè)備主流的硬件方案為:
1. 直接基于通訊芯片 / 模塊開(kāi)發(fā)的方案,用戶升級(jí)的主要目標(biāo)是通訊芯片 / 模塊。艾拉比在設(shè)備端有基于 UA+UC 的方式提供端云一體化的 OTA 解決方案。
2. 通過(guò) MCU/DSP/MPU 等應(yīng)用處理器 / 控制器和各類通訊模塊開(kāi)發(fā)的方案,用戶升級(jí)的主要目標(biāo)是這些應(yīng)用處理器 / 控制器,通訊模塊更多是透?jìng)鞴艿馈?/p>
其中,MCU作為主控處理器在物聯(lián)網(wǎng)領(lǐng)域占著非常高的份額,廣泛分布在智能家居、三表、工業(yè)等各個(gè)領(lǐng)域。在 MCU的 OTA 升級(jí)方式上,部分客戶實(shí)現(xiàn)方式為整包升級(jí),甚至很多 MCU 產(chǎn)品是裸跑,并且是不升級(jí)的,當(dāng)然這也和產(chǎn)品形態(tài)、功能特性、行業(yè)等相關(guān)。而差分升級(jí)相較于傳統(tǒng)的的整包升級(jí)方式,有資源需求低、升級(jí)功耗低、升級(jí)時(shí)間短及下載流量少等諸多優(yōu)勢(shì),越來(lái)越多的成為物聯(lián)網(wǎng)升級(jí)的優(yōu)選方案。舉個(gè)例子,某客戶 MCU 的 Flash 配置為 64KB,自身 APP 固件為 50KB,此時(shí)如果需要實(shí)現(xiàn) OTA 升級(jí),大多客戶選擇的方案是:
1. 外掛一顆 64KB 或者 128KB 的 Flash
2. 選擇一顆 128KB Flash 資源的 MCU
而如果通過(guò)差分 OTA 升級(jí),則在 64KB Flash 的 MCU 上直接可以實(shí)現(xiàn),再加入 5KB 左右的差分升級(jí)算法后,還能剩余 9KB 左右空間來(lái)存儲(chǔ)幾 KB 的差分升級(jí)包,不增加硬件成本就可以實(shí)現(xiàn) OTA 升級(jí)。
1
差分升級(jí)的實(shí)現(xiàn)方案
差分升級(jí)大多是通過(guò)在升級(jí)程序(Bootloader 為主)中增加差分升級(jí)算法來(lái)實(shí)現(xiàn),算法需要占用一些本地 Flash 和 RAM 資源。
差分升級(jí)又叫增量升級(jí),顧名思義就是通過(guò)差分算法將源版本與目標(biāo)版本之間差異的部分提取出來(lái)制作成差分包,然后在設(shè)備通過(guò)還原算法將差異部分在源版本上進(jìn)行還原從而升級(jí)成目標(biāo)版本的過(guò)程。差分升級(jí)方案不僅可以節(jié)省 MCU 內(nèi)部的資源空間、還可以節(jié)省下載流程及下載和升級(jí)過(guò)程中的功耗。從另一個(gè)角度說(shuō),通過(guò)將差分部分下發(fā)到設(shè)備保證了版本的安全性。
在過(guò)去幾年,艾拉比一直致力于將差分升級(jí)賦能給更多行業(yè)客戶,比較主流的差分算法集成的方式是通過(guò) SDK 的形式提供差分升級(jí)能力,客戶需要將差分升級(jí) SDK 集成到設(shè)備 Bootloader 中,有一定的集成開(kāi)發(fā)量。這種方式的好處是客戶可以自己根據(jù) API 進(jìn)行定制開(kāi)發(fā)一些功能,但是 MCU 的碎片化導(dǎo)致這種集成開(kāi)發(fā)方式成本較高,客戶集成使用也相對(duì)有些要求,適配和測(cè)試周期也比較長(zhǎng),因此艾拉比基于大量 MCU 系統(tǒng)的認(rèn)識(shí)、以及對(duì) OTA 的理解推出一種更簡(jiǎn)便,更易用的,相對(duì)標(biāo)準(zhǔn)化的優(yōu)化方案。
2
MCU 差分升級(jí)的優(yōu)化實(shí)現(xiàn)方案 UB 產(chǎn)品
UB(Upgrade Bootloader)產(chǎn)品是艾拉比基于 MCU 推出的獨(dú)立標(biāo)準(zhǔn)化 bootloader 產(chǎn)品,內(nèi)部集成了艾拉比最新的差分升級(jí)算法,燒錄即可以使用,無(wú)需開(kāi)發(fā)即可實(shí)現(xiàn)差分升級(jí)。
UB 通過(guò)將差分升級(jí)算法在編譯 bootloader 階段集成進(jìn)去,而這個(gè)編譯和開(kāi)發(fā) bootloader 的過(guò)程,艾拉比直接提供一種圖形化、零開(kāi)發(fā)的云端制作工具來(lái)完成,從而使得 MCU 的產(chǎn)品可以用最簡(jiǎn)單的方式實(shí)現(xiàn)差分升級(jí)能力。
相較于整包升級(jí)大大節(jié)省了 Flash 資源,甚至可以省去外掛 Flash 或者更換更大資源 MCU 的物料成本。作為一款標(biāo)準(zhǔn)化的產(chǎn)品,艾拉比提供的在線制作工具可根據(jù)用戶產(chǎn)品的硬件配置一鍵生成 UB,省去了繁瑣且碎片化的 OTA 適配成本,助力產(chǎn)品快速上市。此外,UB 在確保 OTA 的安全性上還有很多考量。比如采用一芯一碼技術(shù),根據(jù) MCU 內(nèi)出廠不可更改的唯一 ID,生成唯一安全激活碼,確保設(shè)備差分功能的唯一性和升級(jí)過(guò)程的安全性。UB 中集成的異常保護(hù)支持了防掉電 / 誤操作等防變磚機(jī)制,確保升級(jí)萬(wàn)無(wú)一失。
UB 的生成過(guò)程十分簡(jiǎn)便,用戶根據(jù)選定的 MCU 型號(hào)和基本信息,通過(guò)界面化工具按步驟操作直接生成。操作流程如下:配置 mcu 的硬件信息 ->配置 mcu 的分區(qū)信息 ->一鍵生成 UB。
目前艾拉比已經(jīng)適配了 ST 主流的 MCU 型號(hào)。
3
UB 的使用場(chǎng)景
1)作為 Bootloader 的使用場(chǎng)景
該場(chǎng)景用戶無(wú)需再額外開(kāi)發(fā)一個(gè) Bootloader,直接使用 UB 來(lái)引導(dǎo)啟動(dòng)程序,當(dāng)有版本需要升級(jí)時(shí)跳轉(zhuǎn)至升級(jí)流程,由 UB 來(lái)控制跳轉(zhuǎn)。
2)作為獨(dú)立子系統(tǒng)的使用場(chǎng)景
該場(chǎng)景用戶已經(jīng)根據(jù)需求制作出一個(gè) Bootloader,那么可以將 UB 作為一個(gè)獨(dú)立的升級(jí)子系統(tǒng)或者是二級(jí) Bootloader,當(dāng) MCU 需要升級(jí)時(shí)由 Bootloader 跳轉(zhuǎn)至 UB 來(lái)進(jìn)行升級(jí)。
4
UB 的成功案例—NB IOT 燃?xì)獗?/strong>
我們結(jié)合表計(jì)行業(yè)的成功案例看一下 UB 如何在整表產(chǎn)品中使用:案例中需要升級(jí)的是 MCU 上的主控程序。
STM32 MCU 燒錄艾拉比 OTA UB ,一方面可以作為 Bootloader 來(lái)引導(dǎo)系統(tǒng)啟動(dòng),另一方面可以實(shí)現(xiàn)差分升級(jí)。差分升級(jí)包的獲取方式有兩種情況,一種通過(guò) NB 模塊從平臺(tái)獲?。灰环N通過(guò)近場(chǎng)的紅外模塊將差分升級(jí)包傳輸至設(shè)備。
1)通過(guò) NB 模塊從平臺(tái)獲取
此種方式需要在應(yīng)用層集成平臺(tái)連接組件,其中對(duì)網(wǎng)絡(luò)調(diào)用通過(guò) NB-IOT 模塊的 AT 指令完成,NB-IOT 模塊只進(jìn)行數(shù)據(jù)透?jìng)鲗?shí)現(xiàn)網(wǎng)絡(luò)連接。NB-IOT 表計(jì)包含應(yīng)用和歷史數(shù)據(jù)、配置數(shù)據(jù)等區(qū)域,升級(jí)過(guò)程只升級(jí)應(yīng)用區(qū)域,數(shù)據(jù)區(qū)不做任何改變。
2)通過(guò)近場(chǎng)模塊傳輸
在艾拉比在線差分平臺(tái)制作完差分包后下載至本地。然后通過(guò)手持紅外設(shè)備將差分包傳輸至表記中來(lái)實(shí)現(xiàn)升級(jí),避免拆表等工作。
-
mcu
+關(guān)注
關(guān)注
146文章
16995瀏覽量
350318 -
OTA
+關(guān)注
關(guān)注
7文章
568瀏覽量
35144
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論