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

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

3天內不再提示

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

丫丫119 ? 來源:未知 ? 作者:肖冰 ? 2019-09-19 09:52 ? 次閱讀

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

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

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

01.升級方案的設計

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

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

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

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

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

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

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

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

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

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

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

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ā)板基于STM32L053,右邊的開發(fā)板基于移遠BC28,我們將通過串口線將兩個設備連接在一起進行升級操作。STM32開發(fā)板上的藍色按鈕的功能是發(fā)起整個升級流程,黑色按鈕的功能是重啟STM32開發(fā)板,下面我們開始操作。

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

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

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

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

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

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

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

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

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

    關注

    2263

    文章

    10850

    瀏覽量

    353970
  • OTA
    OTA
    +關注

    關注

    7

    文章

    561

    瀏覽量

    35073
收藏 人收藏

    評論

    相關推薦

    stm32l071cbt6如何升級串口BC28OTA

    關于stm32l071cbt6,串口BC28OTA升級,有沒有操作過的?沒有思路啊
    發(fā)表于 03-08 08:05

    NB-IOTOTA測試

    2017年7月25日新益技術實現了NB-IoT終端系統測試,在OTA暗室中完成了NB-IoT終端系統總輻射功率TRP(TotalRadiated Power)和總全向靈敏度TIS(Total
    發(fā)表于 10-25 18:01

    STM32+NB-IoT技術實戰(zhàn)開發(fā)課程

    鏈智慧停車智慧路燈STM32+NB-IoT技術實戰(zhàn)開發(fā)課程講什么?學習課程:http://t.elecfans.com/topic/127.html?elecfans_trackid
    發(fā)表于 05-03 15:17

    BC26調試 精選資料分享

    本文檔描述NB260的軟件指令操作,即BC26的常用指令操作:模塊初始化到數據通信。關于BC26的詳細指令手冊,請閱讀官方指令手冊。有關
    發(fā)表于 07-27 08:10

    基于STM32L4+BC28 NBIOT開發(fā)板

    原標題:基于STM32L4+BC28(全網通) NBIOT開發(fā)板原理圖教程源碼等開源分享關注我們基于STM32L4+BC28(全網通) NBIOT開發(fā)板原理圖教程源碼等開源分享FCORE_BC28L4
    發(fā)表于 08-17 07:39

    快速入門BC28的開發(fā)

    大白為了開發(fā)者能夠快速入門BC28的開發(fā),加快開發(fā)者的項目進度,大白開發(fā)出此款針對BC28stm32開發(fā)板和完善的發(fā)送網絡數據的示例程序(TCP協議、COAP協議),程序流程邏輯清楚,注釋完善
    發(fā)表于 01-27 08:16

    NB-IOT模塊BC28在socket上進行監(jiān)聽失敗怎么辦

    一、BC28初始化完成,聯網完成[I/at.dev.bc28] bc28 device network initialize success.二、獲取網卡對象,沒有提示失敗netdev
    發(fā)表于 10-31 15:17

    請教STM32L431RCT使用AT連接BC28出現Hardfault咋辦

    NB 模塊使用 BC28 電信卡啟動AT SOCKET 出現下面錯誤:
    發(fā)表于 01-09 17:05

    BC28 NB-IoT無線通信模塊詳細中文資料免費下載

    BC28 是一款超緊湊、高性能、低功耗的多頻段 NB-IoT 無線通信模塊,支持 B1/B3/B5/B8/B20/B28 頻段。其尺寸僅為 17.7mm × 15.8mm × 2.3mm,能最大
    發(fā)表于 08-13 08:00 ?179次下載

    NB IOT模塊系列BC35-G和BC28 AT命令手冊資料免費下載

    本文檔詳細介紹了Quectel NB IOT BC35-G和BC28模塊支持的AT命令集。收到該字符串后,AT命令處理器準備接受AT命令。如果BC
    發(fā)表于 01-10 08:00 ?134次下載
    <b class='flag-5'>NB</b> <b class='flag-5'>IOT</b>模塊系列<b class='flag-5'>BC</b>35-G和<b class='flag-5'>BC28</b> AT命令手冊資料免費下載

    BC95和BC35-G及BC28系列NB-IoT模塊的應用設計指導

    目前,通信NB-IoT 模組主要應用于如下四類終端應用場景: ? 固定上報類:如水表、氣表、煙感等? 固定控制類:如路燈、共享洗衣機等? 移動上報類:如共享單車、手環(huán)等? 移動控制類:如電動車控制器
    發(fā)表于 01-29 10:52 ?104次下載
    <b class='flag-5'>BC</b>95和<b class='flag-5'>BC</b>35-G及<b class='flag-5'>BC28</b>系列<b class='flag-5'>NB-IoT</b>模塊的應用設計指導

    BC35-G系列LPWA模塊的頻段信息模塊和搜網機制的詳細說明

    本文檔主要介紹了通信 BC35-G、BC28BC95 R2.0 模塊支持的頻段信息,并著重說明了與
    發(fā)表于 03-17 08:00 ?5次下載
    <b class='flag-5'>BC</b>35-G系列LPWA模塊的頻段信息模塊和搜網機制的詳細說明

    第三代NB-IoT模組推出,典型應用功耗降低50%

    2月20日,通信正式推出其第三代5G NB-IoT系列模組BC95-CNV和BC28-CNV。這兩款模組基于海思Boudica 200平
    發(fā)表于 02-22 09:22 ?1412次閱讀

    大白NBIOT BC28模塊+stm32開發(fā)板例程、教程(打通TCP、COAP協議)

    大白為了開發(fā)者能夠快速入門BC28的開發(fā),加快開發(fā)者的項目進度,大白開發(fā)出此款針對BC28stm32開發(fā)板和完善的發(fā)送網絡數據的示例程序(TCP協議、COAP協議),程序流程邏輯清楚,注釋完善
    發(fā)表于 12-03 17:51 ?10次下載
    大白NBIOT <b class='flag-5'>移</b><b class='flag-5'>遠</b><b class='flag-5'>BC28</b>模塊+<b class='flag-5'>stm32</b>開發(fā)板例程、教程(打通TCP、COAP協議)

    NB-IOT模塊BC28在socket上進行監(jiān)聽失敗如何解決呢?

    BC28初始化完成,聯網完成
    的頭像 發(fā)表于 11-14 12:43 ?765次閱讀
    <b class='flag-5'>NB-IOT</b>模塊<b class='flag-5'>BC28</b>在socket上進行監(jiān)聽失敗如何解決呢?