0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MCU,如何零代碼無開發(fā)實現(xiàn)OTA差分升級?

嵌入式星球 ? 2020-10-14 17:23 ? 次閱讀

隨著物聯(lián)網設備智能化的發(fā)展,OTA 升級已經成為了業(yè)界公認的基礎能力,而 OTA 在設計和實現(xiàn)過程中需要依賴于物聯(lián)網設備的硬件方案。物聯(lián)網設備主流的硬件方案為:

1. 直接基于通訊芯片 / 模塊開發(fā)的方案,用戶升級的主要目標是通訊芯片 / 模塊。艾拉比在設備端有基于 UA+UC 的方式提供端云一體化的 OTA 解決方案。

2. 通過 MCU/DSP/MPU 等應用處理器 / 控制器和各類通訊模塊開發(fā)的方案,用戶升級的主要目標是這些應用處理器 / 控制器,通訊模塊更多是透傳管道。

其中,MCU作為主控處理器在物聯(lián)網領域占著非常高的份額,廣泛分布在智能家居、三表、工業(yè)等各個領域。在 MCU的 OTA 升級方式上,部分客戶實現(xiàn)方式為整包升級,甚至很多 MCU 產品是裸跑,并且是不升級的,當然這也和產品形態(tài)、功能特性、行業(yè)等相關。而差分升級相較于傳統(tǒng)的的整包升級方式,有資源需求低、升級功耗低、升級時間短及下載流量少等諸多優(yōu)勢,越來越多的成為物聯(lián)網升級的優(yōu)選方案。舉個例子,某客戶 MCU 的 Flash 配置為 64KB,自身 APP 固件為 50KB,此時如果需要實現(xiàn) OTA 升級,大多客戶選擇的方案是:

1. 外掛一顆 64KB 或者 128KB 的 Flash

2. 選擇一顆 128KB Flash 資源的 MCU

而如果通過差分 OTA 升級,則在 64KB Flash 的 MCU 上直接可以實現(xiàn),再加入 5KB 左右的差分升級算法后,還能剩余 9KB 左右空間來存儲幾 KB 的差分升級包,不增加硬件成本就可以實現(xiàn) OTA 升級。


1

差分升級的實現(xiàn)方案

差分升級大多是通過在升級程序(Bootloader 為主)中增加差分升級算法來實現(xiàn),算法需要占用一些本地 Flash 和 RAM 資源。

差分升級又叫增量升級,顧名思義就是通過差分算法將源版本與目標版本之間差異的部分提取出來制作成差分包,然后在設備通過還原算法將差異部分在源版本上進行還原從而升級成目標版本的過程。差分升級方案不僅可以節(jié)省 MCU 內部的資源空間、還可以節(jié)省下載流程及下載和升級過程中的功耗。從另一個角度說,通過將差分部分下發(fā)到設備保證了版本的安全性。

在過去幾年,艾拉比一直致力于將差分升級賦能給更多行業(yè)客戶,比較主流的差分算法集成的方式是通過 SDK 的形式提供差分升級能力,客戶需要將差分升級 SDK 集成到設備 Bootloader 中,有一定的集成開發(fā)量。這種方式的好處是客戶可以自己根據(jù) API 進行定制開發(fā)一些功能,但是 MCU 的碎片化導致這種集成開發(fā)方式成本較高,客戶集成使用也相對有些要求,適配和測試周期也比較長,因此艾拉比基于大量 MCU 系統(tǒng)的認識、以及對 OTA 的理解推出一種更簡便,更易用的,相對標準化的優(yōu)化方案。


2

MCU 差分升級的優(yōu)化實現(xiàn)方案 UB 產品
UB(Upgrade Bootloader)產品是艾拉比基于 MCU 推出的獨立標準化 bootloader 產品,內部集成了艾拉比最新的差分升級算法,燒錄即可以使用,無需開發(fā)即可實現(xiàn)差分升級。


UB 通過將差分升級算法在編譯 bootloader 階段集成進去,而這個編譯和開發(fā) bootloader 的過程,艾拉比直接提供一種圖形化、零開發(fā)的云端制作工具來完成,從而使得 MCU 的產品可以用最簡單的方式實現(xiàn)差分升級能力。

1.png

相較于整包升級大大節(jié)省了 Flash 資源,甚至可以省去外掛 Flash 或者更換更大資源 MCU 的物料成本。作為一款標準化的產品,艾拉比提供的在線制作工具可根據(jù)用戶產品的硬件配置一鍵生成 UB,省去了繁瑣且碎片化的 OTA 適配成本,助力產品快速上市。此外,UB 在確保 OTA 的安全性上還有很多考量。比如采用一芯一碼技術,根據(jù) MCU 內出廠不可更改的唯一 ID,生成唯一安全激活碼,確保設備差分功能的唯一性和升級過程的安全性。UB 中集成的異常保護支持了防掉電 / 誤操作等防變磚機制,確保升級萬無一失。

2.png

UB 的生成過程十分簡便,用戶根據(jù)選定的 MCU 型號和基本信息,通過界面化工具按步驟操作直接生成。操作流程如下:配置 mcu 的硬件信息 ->配置 mcu 的分區(qū)信息 ->一鍵生成 UB。

目前艾拉比已經適配了 ST 主流的 MCU 型號。


3

UB 的使用場景
1)作為 Bootloader 的使用場景

該場景用戶無需再額外開發(fā)一個 Bootloader,直接使用 UB 來引導啟動程序,當有版本需要升級時跳轉至升級流程,由 UB 來控制跳轉。

2)作為獨立子系統(tǒng)的使用場景
該場景用戶已經根據(jù)需求制作出一個 Bootloader,那么可以將 UB 作為一個獨立的升級子系統(tǒng)或者是二級 Bootloader,當 MCU 需要升級時由 Bootloader 跳轉至 UB 來進行升級。

4

UB 的成功案例—NB IOT 燃氣表

我們結合表計行業(yè)的成功案例看一下 UB 如何在整表產品中使用:案例中需要升級的是 MCU 上的主控程序。

3.png

STM32 MCU 燒錄艾拉比 OTA UB ,一方面可以作為 Bootloader 來引導系統(tǒng)啟動,另一方面可以實現(xiàn)差分升級。差分升級包的獲取方式有兩種情況,一種通過 NB 模塊從平臺獲?。灰环N通過近場的紅外模塊將差分升級包傳輸至設備。

1)通過 NB 模塊從平臺獲取
此種方式需要在應用層集成平臺連接組件,其中對網絡調用通過 NB-IOT 模塊的 AT 指令完成,NB-IOT 模塊只進行數(shù)據(jù)透傳實現(xiàn)網絡連接。NB-IOT 表計包含應用和歷史數(shù)據(jù)、配置數(shù)據(jù)等區(qū)域,升級過程只升級應用區(qū)域,數(shù)據(jù)區(qū)不做任何改變。

2)通過近場模塊傳輸
在艾拉比在線差分平臺制作完差分包后下載至本地。然后通過手持紅外設備將差分包傳輸至表記中來實現(xiàn)升級,避免拆表等工作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16667

    瀏覽量

    347831
  • OTA
    OTA
    +關注

    關注

    7

    文章

    552

    瀏覽量

    34984
收藏 人收藏

    評論

    相關推薦

    請問esp32是否支持分升級

    我現(xiàn)在工程需要適配ota功能,但是鑒于固件體積較大,想請教下是否支持分升級?
    發(fā)表于 06-21 08:14

    esp32c3同時打開BLE和WIFI的功能,固件都1MByte了,OTA時可以用分升級嗎?

    如題,esp32c3同時打開BLE和WIFI的功能,固件都1MByte了,OTA時可以用分升級嗎。 還有就是怎么優(yōu)化下固件大小?
    發(fā)表于 06-18 07:05

    ESP-IDF4.4 OTA升級失敗的原因?

    ESP-IDF4.4 OTA 功能,在啟動OTA功能后下載固件過程中出現(xiàn)wifiInternet訪問,然后很快網絡恢復,需要等待很久后OTA升級
    發(fā)表于 06-06 08:19

    能否使用cyw43439對MCU(STM32h745ziq)進行OTA升級

    在這個項目中,我需要創(chuàng)建可以使用 WiFi 無線更新的設備。 到目前為止,MCU 已經實現(xiàn)了與路由器的連接。 有可能用 cyw43439 芯片實現(xiàn) OTA
    發(fā)表于 05-24 06:33

    應用筆記|米爾NXP iMX 93開發(fā)OTA功能搭建

    1.概述空中下載技術(Over-the-AirTechnology,OTA)是通過移動通信的空中接口實現(xiàn)對移動終端設備及SIM卡數(shù)據(jù)進行遠程管理的技術。本文采用了swupdate的方式進行ota
    的頭像 發(fā)表于 05-23 08:01 ?569次閱讀
    應用筆記|米爾NXP iMX 93<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>OTA</b>功能搭建

    ZDP1440系列小技巧—如何OTA分升級顯示素材?

    ZDP1440是一款基于開源GUI引擎的圖像顯示專用驅動芯片,支持U盤、SD卡本地升級UI固件,同時也支持通過UART/SPI方式進行OTA升級,本文將介紹如何OTA
    的頭像 發(fā)表于 05-06 14:01 ?637次閱讀
    ZDP1440系列小技巧—如何<b class='flag-5'>OTA</b><b class='flag-5'>差</b><b class='flag-5'>分升級</b>顯示素材?

    通過RK3568開發(fā)板進行OTA本地程序升級

    將通過飛凌嵌入式OK3568-C開發(fā)板來為大家介紹OTA升級的流程,本地升級程序recovery執(zhí)行升級的流程及技術細節(jié)。 1. 制作
    發(fā)表于 04-20 11:23

    技術帖 | RK3568開發(fā)板的OTA升級教程

    通過飛凌嵌入式OK3568-C開發(fā)板來為大家介紹OTA升級的流程,本地升級程序recovery執(zhí)行升級的流程及技術細節(jié)。
    的頭像 發(fā)表于 04-20 08:01 ?1348次閱讀
    技術帖 | RK3568<b class='flag-5'>開發(fā)</b>板的<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>教程

    使用PSoC4的launcher+雙App模式,當運行的是App1時,此時更新App1代碼就會出現(xiàn)MCU重啟的現(xiàn)象是怎么回事?

    最近碰到一個問題,我使用PSoC4的launcher+雙App模式,當運行的是App1時,此時更新App1代碼就會出現(xiàn)MCU重啟的現(xiàn)象。 當前運行的App1的版本是1.0,升級App1的程序為1.0
    發(fā)表于 02-05 08:23

    分升級方案(上)—全量升級vs分升級的主要特點比較

    MCU固件升級可以通過編程器、調試器或其他設備輔助進行操作,但這種升級方式主要應用于產品研發(fā)評估及量產應用階段。
    的頭像 發(fā)表于 01-18 17:06 ?1258次閱讀
    <b class='flag-5'>差</b><b class='flag-5'>分升級</b>方案(上)—全量<b class='flag-5'>升級</b>vs<b class='flag-5'>差</b><b class='flag-5'>分升級</b>的主要特點比較

    如何通過雅特力AT32WB415的藍牙模塊來進行OTA升級

    中的藍牙模塊(BLE)接收上位機發(fā)送的升級命令和程序代碼。OTA分為兩個部分,用戶可以選擇OTA升級BLE模塊APP,也可以選擇
    的頭像 發(fā)表于 12-20 08:15 ?658次閱讀
    如何通過雅特力AT32WB415的藍牙模塊來進行<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>

    RX系列幫您實現(xiàn)二級MCU OTA升級:FreeRTOS篇

    RX系列幫您實現(xiàn)二級MCU OTA升級:FreeRTOS篇
    的頭像 發(fā)表于 10-26 18:04 ?754次閱讀
    RX系列幫您<b class='flag-5'>實現(xiàn)</b>二級<b class='flag-5'>MCU</b> <b class='flag-5'>OTA</b><b class='flag-5'>升級</b>:FreeRTOS篇

    AT32 MCU如何使用OTA通過USART實現(xiàn)對固件的在線升級更新

    AT32 MCU如何使用OTA通過USART實現(xiàn)對固件的在線升級更新
    的頭像 發(fā)表于 10-26 17:09 ?2037次閱讀
    AT32 <b class='flag-5'>MCU</b>如何使用<b class='flag-5'>OTA</b>通過USART<b class='flag-5'>實現(xiàn)</b>對固件的在線<b class='flag-5'>升級</b>更新

    RA-RTT體驗代碼點亮LED燈

    介紹如何代碼體驗點亮LED燈。
    發(fā)表于 10-12 12:43 ?333次閱讀
    RA-RTT體驗<b class='flag-5'>零</b><b class='flag-5'>代碼</b>點亮LED燈

    代碼如何實現(xiàn)造數(shù)據(jù)

    項目開發(fā)過程中,總會遇到一些需要測試數(shù)據(jù)的場景,但是造數(shù)據(jù)特別是造大量的數(shù)據(jù)這個事情,有時候也是要費一番功夫的,今天給大家?guī)硪豢钤鞌?shù)據(jù)神器,讓你代碼實現(xiàn)造數(shù)據(jù)。 這個神器就是我們日
    的頭像 發(fā)表于 09-25 11:23 ?449次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>代碼</b>如何<b class='flag-5'>實現(xiàn)</b>造數(shù)據(jù)