亚洲 欧美无码原创区,首页 综合国产 亚洲 丝袜日本,狠狠躁日日躁夜夜躁婷婷,久久精品蜜芽亚洲国产AV,中文字幕无线观看在

技術方案

首頁 >> 方案 >>  解決方案 >>  技術方案

基于移遠BC28的STM32+NB-IOT的OTA案例分享

2021年06月01日來源:艾拉比發(fā)布分享朋友圈
0

隨著互聯(lián)網的發(fā)展和無線通訊網絡的普及,低功耗窄帶通訊為物聯(lián)網帶來了更多機會。憑借著其覆蓋范圍廣、功耗低等特點,獲得了廣泛的關注與重視,不斷加速實現物與物之間建立智能化、數據化的聯(lián)系。借助通訊和云計算的高速發(fā)展,越來越多的設備開始物聯(lián)網化演進,大規(guī)模部署后的物聯(lián)網設備面臨著在線升級(OTA)的需求,從而解決系統(tǒng)更新,產品功能迭代、漏洞修復、和安全防護等問題。


這其中的在線升級功能,需要使用 OTA (Over-the-Air) 技術 。簡單地說,OTA 就是通過網絡來升級手中的智能設備。由于大多數物聯(lián)網終端受硬件資源、功耗、帶寬等限制,傳統(tǒng)的整包升級方式已經越來越難以滿足客戶需要,而穩(wěn)定安全的差分升級在OTA這一技術領域中顯得尤為重要。尤其是NB-IOT這類窄帶通信技術,大多數應用都是由低功耗小資源的MCU+NB-IOT通訊模塊實現的,NB-IOT通訊模塊實現聯(lián)網功能,設備應用運行在MCU上,使用差分OTA升級,可以實現減低功耗、減少硬件資源消耗、提升升級體驗、加速下載過程,提供更好的安全性和可靠性,并且有效防止大量設備下載時候對基站等設施的沖擊。艾拉比提供的基于MCU+NB-IOT的差分技術方案已經廣泛應用在如門鎖、手表、定位器、路燈控制器、共享停車位、煙感和表計等領域。


下面以移遠BC28+STM32L053C8為例,來演示如何利用艾拉比的差分技術通過NB網絡升級STM32的APP固件。我們將從升級方案的設計,設備操作流程兩個部分來詳細講解這個方案:

01.升級方案的設計


下圖展示了這個升級方案的軟件框架:


image.png


從上圖可以看到STM32里中需要有三個部分的修改:


1. STM32L053C8的APP部分,需要集成與OTA服務器通信的程序,我們稱為Update Controller,簡稱UC


2. STM32L053C8的bootloader部分,需要集成差分升級算法程序,我們稱為Update Agent,簡稱UA


3. STM32L053C8上需要規(guī)劃處一定的存儲空間,用來存儲下載的差分包。

 

從設計的軟件框架來看升級將分為兩個階段:下載差分包階段和升級上報階段。在窄帶網絡下,我們以LWM2M協(xié)議為基礎來和OTA服務器進行交互通信,設備與服務器端建立的是COAP連接。


我們先來詳細分解下載階段的流程:


image.png


從上圖中我們可以看到整個下載差分包的流程分以下幾個步驟:


1. 初始化模組, STM32向BC28發(fā)送初始化的AT指令。


2. STM32發(fā)送AT指令給BC28,建立網絡鏈接。BC28返回建立網絡的結果給STM32。


3. STM32透過BC28,向OTA服務器發(fā)起注冊請求。OTA服務器透過BC28下發(fā)注冊結果,STM32將這些注冊信息保存下來。


4. STM32透過BC28,向OTA服務器發(fā)起檢測版本的請求。OTA服務器透過BC28下發(fā)新版本的信息,這其中包含了差分包的下載地址。


5. STM32基于得到的下載地址,透過BC28向OTA服務器發(fā)送下載差分包請求。OTA服務器會根據請求將差分包分段透過BC28下發(fā)給STM32,STM32在收到后將這些數據存儲在差分包存儲區(qū)域。


6. STM32在下載完差分包并經過校驗后,透過BC28上報下載升級包的結果給到OTA服務器。OTA服務器透過BC28下發(fā)上報結果。


7. STM32發(fā)送指令給BC28關閉網絡連接,BC28返回關閉網絡連接結果


8. STM32進行軟重啟,進入bootloader

 

接下來升級流程就進入了下一個階段,我們先來看流程圖:


image.png


從上圖中我們可以看到整個升級上報的流程分以下幾個步驟:


1. STM32在bootloader中運行UA程序,完成差分升級,升級完成后重啟。


2. STM32向BC28發(fā)送初始化的AT指令,BC28向STM32返回初始化結果。


3. STM32發(fā)送AT指令給BC28,建立網絡鏈接。BC28返回建立網絡的結果給STM32。


4. STM32透過BC28,向OTA服務器發(fā)起注冊請求。OTA服務器透過BC28下發(fā)注冊結果,STM32將這些注冊信息保存下來。


5. STM32透過BC28,向OTA服務器上報升級結果。OTA服務器透過BC28下發(fā)升級上報結果。


6. STM32通知BC28關閉網絡連接,至此整個升級流程結束。


通過對整個方案以及兩個階段流程解析,我們可以看到,在窄帶網絡下的差分升級,對于這種網絡特性,對差分包的大小以及差分包傳輸的穩(wěn)定性需要有一定的保障,所以在下載差分包的時候,我們需要進行分段下載,并且需要對每段數據進行相應手段的校驗。下面我們從設備端的操作,來看一下整個升級的流程。

02、設備操作流程


從下圖我們看到,左邊的開發(fā)板是STM32L05C38,右邊的開發(fā)板是移遠的BC28,我們將通過串口線將兩個設備連接在一起進行升級操作。STM32開發(fā)板上的藍色按鈕的功能是發(fā)起整個升級流程,黑色按鈕的功能是重啟STM32開發(fā)板,下面我們開始操作。


image.png


首先我們按下STM32開發(fā)板上的藍色按鈕,發(fā)起升級流程,這個時候STM32開發(fā)板屏幕上會有如下顯示:


image.png


此時,我們還可以通過連接到PC上的debug工具,可以看到相應log,這段動畫顯示的是STM32從初始化到檢測版本整個過程的log。


圖片


在檢測完成后,STM32自動進入下載差分包階段,下面兩張圖是STM32進入下載差分包流程時的屏幕進度顯示:


image.png


image.png



這個階段,我們也可以清晰的從PC的debug工具里看到整個下載流程:


圖片


在下載成功后,我們手動按一下STM32開發(fā)板上的黑色按鍵,重啟STM32開發(fā)板,讓設備進入bootloader開始升級,下面兩張圖是STM32開發(fā)板在升級時的屏幕顯示:


image.png


image.png


完成升級后,STM32開發(fā)板重啟重新進入APP,這個時候會自動將這次升級的結果進行上報,下圖是STM32開發(fā)板在進行升級上報時候的屏幕顯示:


image.png


同樣,我們也可以在PC上的debug工具里看到整個上報流程:


圖片




從STM32開發(fā)板的屏幕上看到完成這個流程后,STM32開發(fā)版本的固件從1.0成功的升級到了1.1,至此整個升級完成。


  • 商務熱線

    4008-210-928

  • 聯(lián)系郵箱

    contact@abupdate.com

  • 艾拉比微信公眾號

    企業(yè)微信客服