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