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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MCU的差分升級(jí)實(shí)現(xiàn)方案解析

STM32單片機(jī) ? 來(lái)源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-10-13 11:59 ? 次閱讀

隨著物聯(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.選擇一顆128KBFlash資源的MCU

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

差分升級(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)化方案。

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)。

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í)。

UB的成功案例—NB IOT燃?xì)獗?/p>

我們結(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)獲??;一種通過(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í),避免拆表等工作。

UB產(chǎn)品,是艾拉比產(chǎn)品和研發(fā)團(tuán)隊(duì)基于OTA的深刻洞見(jiàn)后的創(chuàng)新成果,從物聯(lián)網(wǎng)終端客戶的實(shí)際使用場(chǎng)景出發(fā),不斷為客戶提高OTA使用率,降低OTA開(kāi)發(fā)成本及資源成本,讓OTA能夠在物聯(lián)網(wǎng)中發(fā)揮關(guān)鍵價(jià)值。艾拉比始終堅(jiān)持深耕OTA領(lǐng)域,通過(guò)持續(xù)的技術(shù)變革與服務(wù)水平,為客戶提供更穩(wěn)定、更安全、更簡(jiǎn)單的OTA服務(wù)。

責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    552

    文章

    7919

    瀏覽量

    347619
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16801

    瀏覽量

    349351
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10846

    瀏覽量

    353769
  • MPU
    MPU
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    48660
  • OTA
    OTA
    +關(guān)注

    關(guān)注

    7

    文章

    559

    瀏覽量

    35064

原文標(biāo)題:燒錄即用,基于MCU的零代碼無(wú)開(kāi)發(fā)實(shí)現(xiàn)OTA差分升級(jí) | UB產(chǎn)品

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)esp32是否支持分升級(jí)?

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

    如何構(gòu)建STM32L452RE的分升級(jí)能力?

    在STM32L452RE這顆MCU上如何將艾拉比的分升級(jí)功能,移植入STM32L452RE的bootloader中,從而使STM32L452RE能夠擁有
    發(fā)表于 09-11 11:51

    AliOS Things 3.0 開(kāi)發(fā):OTA之差分升級(jí)快速上手

    簡(jiǎn)介: OTA之差分升級(jí),用AliOS Things如何實(shí)現(xiàn)?關(guān)聯(lián)文章:AliOS Things 3.0 開(kāi)發(fā):OTA之整包升級(jí)使用手冊(cè)查看詳情AliOS Things 3.0 開(kāi)發(fā):OTA之壓縮
    發(fā)表于 10-18 09:57

    如何去實(shí)現(xiàn)基于單片機(jī)的分升級(jí)

    分算法有開(kāi)源的bsdiff,壓縮算法也有開(kāi)源的單片機(jī)就能用的,把這兩個(gè)結(jié)合起來(lái)放單片機(jī)里就可以實(shí)現(xiàn)分升級(jí)。由于上位機(jī)負(fù)責(zé)進(jìn)行分和壓縮的
    發(fā)表于 11-19 06:14

    在單片機(jī)上實(shí)現(xiàn)分升級(jí)

    最近咨詢?nèi)绻趩纹瑱C(jī)上實(shí)現(xiàn)分升級(jí)的同學(xué)很多,因?yàn)樵创a目前不方便公開(kāi),所以有個(gè)想法是,向?qū)@塊比較感興趣的朋友提供基于各位所用編譯器的分算法庫(kù),方便各位做學(xué)習(xí)交流使用。有需要的歡迎提
    發(fā)表于 01-20 08:16

    探討一下基于STM32單片機(jī)的分升級(jí)算法

    DiffIAP應(yīng)用背景隨著目前物聯(lián)網(wǎng),車聯(lián)網(wǎng),智能設(shè)備的增多,需要遠(yuǎn)程升級(jí)設(shè)備程序的場(chǎng)景增多,以往的IAP升級(jí)和OTA升級(jí)都是整包升級(jí),bin文件過(guò)大導(dǎo)致
    發(fā)表于 02-14 06:02

    ESP32C3固件太大,OTA時(shí)有沒(méi)有方法做分升級(jí)?

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

    esp32是否支持分升級(jí)

    我現(xiàn)在工程需要適配ota功能,但是鑒于固件體積較大,想請(qǐng)教下是否支持分升級(jí)?
    發(fā)表于 02-20 07:36

    基于MCU,如何零代碼無(wú)開(kāi)發(fā)實(shí)現(xiàn)OTA分升級(jí)?

    用的,相對(duì)標(biāo)準(zhǔn)化的優(yōu)化方案。2MCU 分升級(jí)的優(yōu)化實(shí)現(xiàn)方案 UB 產(chǎn)品UB(Upgrade B
    的頭像 發(fā)表于 10-14 17:23 ?4710次閱讀
    基于<b class='flag-5'>MCU</b>,如何零代碼無(wú)開(kāi)發(fā)<b class='flag-5'>實(shí)現(xiàn)</b>OTA<b class='flag-5'>差</b><b class='flag-5'>分升級(jí)</b>?

    基于單片機(jī)的分升級(jí)

    分算法有開(kāi)源的bsdiff,壓縮算法也有開(kāi)源的單片機(jī)就能用的,把這兩個(gè)結(jié)合起來(lái)放單片機(jī)里就可以實(shí)現(xiàn)分升級(jí)。由于上位機(jī)負(fù)責(zé)進(jìn)行分和壓縮的
    發(fā)表于 11-12 21:06 ?11次下載
    基于單片機(jī)的<b class='flag-5'>差</b><b class='flag-5'>分升級(jí)</b>

    基于STM32單片機(jī)的分升級(jí)(增量升級(jí))算法

    DiffIAP應(yīng)用背景隨著目前物聯(lián)網(wǎng),車聯(lián)網(wǎng),智能設(shè)備的增多,需要遠(yuǎn)程升級(jí)設(shè)備程序的場(chǎng)景增多,以往的IAP升級(jí)和OTA升級(jí)都是整包升級(jí),bin文件過(guò)大導(dǎo)致
    發(fā)表于 12-09 15:51 ?19次下載
    基于STM32單片機(jī)的<b class='flag-5'>差</b><b class='flag-5'>分升級(jí)</b>(增量<b class='flag-5'>升級(jí)</b>)算法

    啟明FOTA分升級(jí) 系統(tǒng)級(jí)解決方案

    “你的設(shè)備遠(yuǎn)程升級(jí)可以不再是升級(jí)整個(gè)固件。啟明提供了一套完整的分升級(jí)算法,升級(jí)固件更小、下載速度更快、大大降低網(wǎng)絡(luò)不穩(wěn)定造成傳輸失敗概率,
    的頭像 發(fā)表于 06-05 09:40 ?1384次閱讀
    啟明FOTA<b class='flag-5'>差</b><b class='flag-5'>分升級(jí)</b> 系統(tǒng)級(jí)解決<b class='flag-5'>方案</b>

    啟明FOTA分升級(jí) 系統(tǒng)級(jí)解決方案

    “你的設(shè)備遠(yuǎn)程升級(jí)可以不再是升級(jí)整個(gè)固件。啟明提供了一套完整的分升級(jí)算法,升級(jí)固件更小、下載速度更快、大大降低網(wǎng)絡(luò)不穩(wěn)定造成傳輸失敗概率,
    的頭像 發(fā)表于 06-09 09:46 ?1335次閱讀
    啟明FOTA<b class='flag-5'>差</b><b class='flag-5'>分升級(jí)</b> 系統(tǒng)級(jí)解決<b class='flag-5'>方案</b>

    分升級(jí)方案(上)—全量升級(jí)vs分升級(jí)的主要特點(diǎn)比較

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

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

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