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