隨著互聯(lián)網(wǎng)的開展和無線通訊網(wǎng)絡的提高,低功耗窄帶通訊為物聯(lián)網(wǎng)帶來了更多時機。憑仗著其掩蓋范圍廣、功耗低等特性,取得了普遍的關注與注重,不時加速完成物與物之間樹立智能化、數(shù)據(jù)化的聯(lián)絡。借助通訊和云計算的高速開展,越來越多的設備開端物聯(lián)網(wǎng)化演進,大范圍部署后的物聯(lián)網(wǎng)設備面臨著在線晉級(OTA)的需求,從而處理系統(tǒng)更新,產(chǎn)品功用迭代、破綻修復、和平安防護等問題。
這其中的在線晉級功用,需求運用 OTA (Over-the-Air) 技術 。簡單地說,OTA 就是經(jīng)過網(wǎng)絡來晉級手中的智能設備。由于大多數(shù)物聯(lián)網(wǎng)終端受硬件資源、功耗、帶寬等限制,傳統(tǒng)的整包晉級方式曾經(jīng)越來越難以滿足客戶需求,而穩(wěn)定平安的差分晉級在OTA這一技術范疇中顯得尤為重要。特別是NB-IOT這類窄帶通訊技術,大多數(shù)應用都是由低功耗小資源的MCU+NB-IOT通訊模塊完成的,NB-IOT通訊模塊完成聯(lián)網(wǎng)功用,設備應用運轉(zhuǎn)在MCU上,運用差分OTA晉級,能夠完成減低功耗、減少硬件資源耗費、提升晉級體驗、加速下載過程,提供更好的平安性和牢靠性,并且有效避免大量設備下載時分對基站等設備的沖擊。艾拉比提供的基于MCU+NB-IOT的差分技術計劃曾經(jīng)普遍應用在如門鎖、手表、定位器、路燈控制器、共享停車位、煙感和表計等范疇。
下面以移遠BC28+STM32L053為例,來演示如何應用艾拉比的差分技術經(jīng)過NB網(wǎng)絡晉級STM32的APP固件。我們將從晉級計劃的設計,設備操作流程兩個局部來細致解說這個計劃:
01.晉級計劃的設計
下圖展現(xiàn)了這個晉級計劃的軟件框架:
從上圖能夠看到STM32里中需求有三個局部的修正:
1.?STM32L053的APP局部,需求集成與OTA效勞器通訊的程序,我們稱為UpdateController,簡稱UC
2.?STM32L053的bootloader局部,需求集成差分晉級算法程序,我們稱為Update Agent,簡稱UA
3.?STM32L053上需求規(guī)劃處一定的存儲空間,用來存儲下載的差分包。
從設計的軟件框架來看晉級將分為兩個階段:下載差分包階段和晉級上報階段。在窄帶網(wǎng)絡下,我們以LWM2M協(xié)議為根底來和OTA效勞器停止交互通訊,設備與效勞器端樹立的是COAP銜接。
我們先來細致合成下載階段的流程:
從上圖中我們能夠看到整個下載差分包的流程分以下幾個步驟:
1. 初始化模組, STM32向BC28發(fā)送初始化的AT指令。
2. STM32發(fā)送AT指令給BC28,樹立網(wǎng)絡鏈接。BC28返回樹立網(wǎng)絡的結果給STM32。
3. STM32透過BC28,向OTA效勞器發(fā)起注冊懇求。OTA效勞器透過BC28下發(fā)注冊結果,STM32將這些注冊信息保管下來。
4. STM32透過BC28,向OTA效勞器發(fā)起檢測版本的懇求。OTA效勞器透過BC28下發(fā)新版本的信息,這其中包含了差分包的下載地址。
5. STM32基于得到的下載地址,透過BC28向OTA效勞器發(fā)送下載差分包懇求。OTA效勞器會依據(jù)懇求將差分包分段透過BC28下發(fā)給STM32,STM32在收到后將這些數(shù)據(jù)存儲在差分包存儲區(qū)域。
6. STM32在下載完差分包并經(jīng)過校驗后,透過BC28上報下載晉級包的結果給到OTA效勞器。OTA效勞器透過BC28下發(fā)上報結果。
7.?STM32發(fā)送指令給BC28關閉網(wǎng)絡銜接,BC28返回關閉網(wǎng)絡銜接結果
8.?STM32停止軟重啟,進入bootloader
接下來晉級流程就進入了下一個階段,我們先來看流程圖:
從上圖中我們能夠看到整個晉級上報的流程分以下幾個步驟:
1. STM32在bootloader中運轉(zhuǎn)UA程序,完成差分晉級,晉級完成后重啟。
2. STM32向BC28發(fā)送初始化的AT指令,BC28向STM32返回初始化結果。
3. STM32發(fā)送AT指令給BC28,樹立網(wǎng)絡鏈接。BC28返回樹立網(wǎng)絡的結果給STM32。
4. STM32透過BC28,向OTA效勞器發(fā)起注冊懇求。OTA效勞器透過BC28下發(fā)注冊結果,STM32將這些注冊信息保管下來。
5. STM32透過BC28,向OTA效勞器上報晉級結果。OTA效勞器透過BC28下發(fā)晉級上報結果。
6. STM32通知BC28關閉網(wǎng)絡銜接,至此整個晉級流程完畢。
經(jīng)過對整個計劃以及兩個階段流程解析,我們能夠看到,在窄帶網(wǎng)絡下的差分晉級,關于這種網(wǎng)絡特性,對差分包的大小以及差分包傳輸?shù)姆€(wěn)定性需求有一定的保證,所以在下載差分包的時分,我們需求停止分段下載,并且需求對每段數(shù)據(jù)停止相應手腕的校驗。下面我們從設備端的操作,來看一下整個晉級的流程。
02、設備操作流程
從下圖我們看到,左邊的開發(fā)板基于STM32L053,右邊的開發(fā)板基于移遠BC28,我們將經(jīng)過串口線將兩個設備銜接在一同停止晉級操作。STM32開發(fā)板上的藍色按鈕的功用是發(fā)起整個晉級流程,黑色按鈕的功用是重啟STM32開發(fā)板,下面我們開端操作。
首先我們按下STM32開發(fā)板上的藍色按鈕,發(fā)起晉級流程,這個時分STM32開發(fā)板屏幕上會有如下顯現(xiàn):
此時,我們還能夠經(jīng)過銜接到PC上的debug工具,能夠看到相應log,這段動畫顯現(xiàn)的是STM32從初始化到檢測版本整個過程的log。
在檢測完成后,STM32自動進入下載差分包階段,下面兩張圖是STM32進入下載差分包流程時的屏幕進度顯現(xiàn):
這個階段,我們也能夠明晰的從PC的debug工具里看到整個下載流程:
在下載勝利后,我們手動按一下STM32開發(fā)板上的黑色按鍵,重啟STM32開發(fā)板,讓設備進入bootloader開端晉級,下面兩張圖是STM32開發(fā)板在晉級時的屏幕顯現(xiàn):
完成晉級后,STM32開發(fā)板重啟重新進入APP,這個時分會自動將這次晉級的結果停止上報,下圖是STM32開發(fā)板在停止晉級上報時分的屏幕顯現(xiàn):
同樣,我們也能夠在PC上的debug工具里看到整個上報流程:
從STM32開發(fā)板的屏幕上看到完成這個流程后,STM32開發(fā)版本的固件從1.0勝利的晉級到了1.1,至此整個晉級完成。
???億配芯城(zgjzwjg.cn)隸屬于深圳市新嘉盛工貿(mào)有限公司,成立于2013年并上線服務,商城平臺主要特點“線上快捷交易配單+線下實體供應交貨”兩全其美的垂直發(fā)展理念,是國內(nèi)電子元器件專業(yè)的電子商務平臺+實體店企業(yè)。未來發(fā)展及模式主要以(一站式配單,平臺寄售/處理閑置庫存達到資源共享雙贏,電子工程師交流社區(qū),硬件開發(fā)與支持等互動服務平臺)在這個高效而發(fā)展迅猛的科技互聯(lián)網(wǎng)時代為大家提供精準的大數(shù)據(jù)資源平臺。