童樹衛(wèi) 戚一
摘 要:NB-IoT終端現(xiàn)有版本存在軟件問題或功能增加,需要通過SOTA來解決,然而在SOTA過程中,不可避免地出現(xiàn)持續(xù)的高功耗存在,且信號質(zhì)量得不到保障的前提下持續(xù)升級,會降低升級質(zhì)量。面對此類問題,該文提出一種低功耗升級方法,升級時能夠降低設(shè)備功耗的同時又保證設(shè)備通信可靠性。經(jīng)過試驗驗證及結(jié)果顯示,該方法能夠有效地降低功耗,保證產(chǎn)品的使用壽命,且有效地保證了升級的可靠性。
關(guān)鍵詞:NB-IoT;SOTA;信號質(zhì)量;低功耗;設(shè)備升級;物聯(lián)網(wǎng)平臺
0 引 言
SOTA(Software Over The Air)是通過華為自研的PCP升級協(xié)議,加上內(nèi)置LwM2M協(xié)議的NB-IoT模組,實現(xiàn)對第三方MCU的升級[1]。
NB-IoT技術(shù)是3GPP標(biāo)準(zhǔn)定義的一種低功耗廣域網(wǎng)解決方案,可支持人與物及物與物之間的連接[2]。隨著NB-IoT設(shè)備紅利期的到來,其應(yīng)用范圍也越來越廣,尤其是帶電池工作的NB-IoT終端設(shè)備運(yùn)用日益廣泛。隨著海量物聯(lián)網(wǎng)終端的部署,通過遠(yuǎn)程方式來對終端軟件進(jìn)行升級,日益重要,遠(yuǎn)程方式能大大降低通過人工近端進(jìn)行升級所投入的成本[1,3]。
隨著物聯(lián)網(wǎng)終端硬件運(yùn)算能力和存儲能力的不斷提升,硬件日益趨向同質(zhì)化。終端軟件的差異化將是構(gòu)建未來物聯(lián)網(wǎng)終端產(chǎn)品的核心競爭力的關(guān)鍵因素。通過在物聯(lián)網(wǎng)終端中引入SOTA,持續(xù)通過遠(yuǎn)程方式構(gòu)建終端軟件的差異化競爭力,使得終端廠商在競爭中脫穎而出。
現(xiàn)有的SOTA技術(shù)雖然能夠解決大部分問題,但在升級過程中也存在著很大隱患:
(1)連續(xù)長時間通信造成功耗急劇增加,根據(jù)電池輸出特性,長時間大電流工作會導(dǎo)致電池電壓急劇下降,若低于NB-IoT模組工作電壓下限,就會導(dǎo)致模組復(fù)位,從而更新失敗,重新啟動后又再次增加能量的損耗,由此造成產(chǎn)品使用壽命的縮減。
(2)在升級過程中會高度依賴網(wǎng)絡(luò)質(zhì)量,由于差分包的體積比較大,升級指令較為復(fù)雜,若在基站信號質(zhì)量不穩(wěn)定的情況下升級,將導(dǎo)致升級率并不是很高的技術(shù)問題。因此,本文提出一種低功耗SOTA方法徹底解決上述問題。
1 系統(tǒng)總體設(shè)計思路
本文設(shè)計一種NB-IoT終端SOTA方法,主要涉及兩個部分:終端和服務(wù)器端[4]。NB-IoT終端升級模型如圖1所示。利用華為自帶工具生產(chǎn)差分包,對新舊兩個版本的差異進(jìn)行比較并生成差分包,將生成的差分包上傳至對應(yīng)的物聯(lián)網(wǎng)平臺中。物聯(lián)網(wǎng)平臺通過平臺設(shè)置,進(jìn)行軟件包的制作與上傳。根據(jù)需求,進(jìn)行設(shè)備profile里增加軟件升級能力的定義,升級協(xié)議選擇“PCP”。最后通過物聯(lián)網(wǎng)平臺相應(yīng)的軟件升級設(shè)置“創(chuàng)建批量任務(wù)”。由此完成物聯(lián)網(wǎng)平臺的基本設(shè)置。
NB-IoT終端設(shè)備通過NB-IoT通信模組直接與基站連接,在附著核心網(wǎng)成功后即可與服務(wù)器端更新軟件進(jìn)行數(shù)據(jù)交互,以此完成更新代碼的傳遞。
2 物聯(lián)網(wǎng)平臺設(shè)計
3GPP協(xié)議標(biāo)準(zhǔn)定義。NB-IoT制式帶寬為200 kHz,目前市面上部署的網(wǎng)絡(luò)子載波為15 kHz,其保護(hù)帶為20 kHz,根據(jù)公式(200 kHz-20 kHz)/15 kHz=12,因此NB-IoT的并發(fā)網(wǎng)絡(luò)容量[5]為12個。NB-IoT終端設(shè)備在發(fā)送數(shù)據(jù)到同一個基站時,最多允許12個NB-IoT模組同時接入。因此若大量NB-IoT終端設(shè)備同時同步升級,會造成信道堵塞,從而延遲通信,不僅造成NB-IoT終端設(shè)備通信慢,也在等待過程中消耗電池能量,進(jìn)一步降低電池使用壽命。
因此,本文設(shè)計一種離散心跳升級法,即在NB-IoT終端設(shè)備發(fā)送心跳期間,發(fā)送查詢指令或升級包,從而達(dá)到遠(yuǎn)程升級的目的。
物聯(lián)網(wǎng)平臺端處理如圖2所示,用戶通過登錄物聯(lián)網(wǎng)平臺賬號,根據(jù)要求生成并上傳對應(yīng)的公鑰信息,選擇相應(yīng)的功能添加升級包進(jìn)行上傳處理。當(dāng)平臺判斷差分包版本更改后,在接收到心跳包后第一時間下發(fā)給相對應(yīng)的NB-IoT終端設(shè)備。終端設(shè)備會在發(fā)送心跳包后進(jìn)入IDLE模式,等待數(shù)據(jù)下發(fā),當(dāng)收到版本更新通知后,立刻進(jìn)入更新程序包準(zhǔn)備工作。平臺會在下一次心跳包到來時判斷NB-IoT終端設(shè)備主動發(fā)送分片升級包請求,請求到來后,升級包分片發(fā)送,直到最后心跳包全部發(fā)送完畢。
3 NB-IoT終端設(shè)備升級設(shè)計
本文設(shè)計的離散心跳升級法在NB-IoT終端設(shè)備中的應(yīng)用,具體流程如圖3所示,在心跳期間接收升級包,并將升級包存入相應(yīng)的地址空間中。NB-IoT終端設(shè)備通過初始化完成后立即進(jìn)入NB模組入網(wǎng)配置環(huán)節(jié),配置入網(wǎng)后會進(jìn)行休眠模式,并開始計時準(zhǔn)備下一次心跳發(fā)送數(shù)據(jù)。當(dāng)一次心跳收到新版本更新信息時,進(jìn)入軟件更新心跳包模式,每次心跳后發(fā)送接收升級分包片請求,接收完后立即休眠計數(shù),等待下一次心跳繼續(xù)接收升級包直至升級包下載完成。在升級完成后,再次發(fā)送確認(rèn)信息給物聯(lián)網(wǎng)平臺,進(jìn)入正常心跳模式。
NB-IoT設(shè)備終端MCU中包含兩部分程序,首先要劃分好兩部分程序的存儲位置和空間,可以保證兩部分程序獨(dú)立運(yùn)行,不會相互影響。
MCU程序FLASH地址劃分區(qū)間如圖4所示。除復(fù)位向量中斷以外,其他中斷全部映射到用戶程序當(dāng)中,也就是說引導(dǎo)程序中無法使用中斷向量的方式來處理中斷。
NB模組是通過串口和MCU進(jìn)行相關(guān)交互的,引導(dǎo)程序中無法使用相關(guān)中斷向量來處理中斷,所以在引導(dǎo)程序中是通過循環(huán)檢測的形式來檢測相關(guān)中斷標(biāo)志,并進(jìn)行相關(guān)數(shù)據(jù)接收處理機(jī)制。其中,NB模組在引導(dǎo)程序中進(jìn)行相關(guān)配置后,在跳轉(zhuǎn)到用戶程序時無需再進(jìn)行相關(guān)配置,但是務(wù)必注意要保持NB模組的復(fù)位腳一直處于一種電平狀態(tài)(和引導(dǎo)程序中設(shè)定的引腳電平一致)。根據(jù)不同廠家的MCU進(jìn)行不同鏈文件修改,具體方法本文不再贅述。
4 試驗驗證與評估
搭建STM32F103和NB86-G為硬件平臺,對本文設(shè)計的低功耗SOTA方法進(jìn)行試驗驗證,同時驗證本文SOTA方法的消耗功耗以及升級成功率。
試驗設(shè)置如下:更改控制燈光閃爍,并添加采集溫度信息、數(shù)據(jù)上傳或下載失敗紅燈閃爍燈功能。為了保證產(chǎn)品的一致性,更改個別指示燈參數(shù),讓其閃爍次數(shù)不同,升級差分包字節(jié)為10 KB。為保證通信可靠性,每次分片大小限制在256 B,且基站信號持續(xù)穩(wěn)定。
試驗結(jié)果見表1所列。試驗期間使用全新電池供電,為了能夠?qū)崿F(xiàn)快速升級,試驗設(shè)置的心跳速度為30 min/次。表1中功耗為該試驗組所有次數(shù)消耗能量的總和。
通過表1實驗對比可以發(fā)現(xiàn),NB-IoT終端設(shè)備利用傳統(tǒng)SOTA方法在升級過程中功耗消耗劇烈,且若長期處于升級狀態(tài),對電池的供電能力考驗很大。第三組實驗測試過程中,發(fā)現(xiàn)由于設(shè)備長期處于大電流工作模式,導(dǎo)致電池電壓被拉低,從而導(dǎo)致設(shè)備重啟,最終造成設(shè)備升級失敗。
如圖5所示,硬件平臺休眠待機(jī)電流小于10 μA。傳統(tǒng)升級方法每次升級過程中,工作電流會持續(xù)在60 mA左右,且還有更高的脈沖電流存在,每次接收升級包的時間為2 min。
5 結(jié) 語
本文在SOTA的升級策略上進(jìn)行優(yōu)化處理,升級策略與傳統(tǒng)的持續(xù)發(fā)送數(shù)據(jù)方法不同,采用離散型心跳升級法,不僅能夠緩解基站信道通信壓力,也能夠降低產(chǎn)品持續(xù)通信產(chǎn)生的功耗問題。通過上述實驗數(shù)據(jù)表明,傳統(tǒng)的持續(xù)升級方法在實際應(yīng)用過程中存在不足,而采用本文的離散心跳升級法,能夠避免基站信號通道堵塞,增加升級成功率,降低產(chǎn)品SOTA帶來的功耗損失,從而延遲了產(chǎn)品在實際工程中的使用壽命。
參考文獻(xiàn)
[1]華為技術(shù)有限公司.設(shè)備接入用戶指南[DB/OL].[2020-05-27]. https://support.huaweicloud.com/usermanual-iothub/iot_01_0047.html.
[2]曲井致.NB-IoT低速率窄帶物聯(lián)網(wǎng)通信技術(shù)現(xiàn)狀及發(fā)展趨勢[J].科技創(chuàng)新與應(yīng)用,2016(31):115.
[3]魏民,王藝.物聯(lián)網(wǎng)云平臺終端遠(yuǎn)程更新技術(shù)研究與應(yīng)用[J].電信科學(xué),2018(10):137.
[4]陳成,王宜懷,錢涵佳,等.基于NB-IoT的嵌入式遠(yuǎn)程軟件更新系統(tǒng)設(shè)計[J].微電子學(xué)與計算機(jī),2019,36(4):12-16.
[5]曾云光.NB-IoT網(wǎng)絡(luò)技術(shù)特點(diǎn)及網(wǎng)絡(luò)部署簡論[J].中國新通信,2016,18(21):15-16.
[6]吳為.基于消息中間件的微服務(wù)系統(tǒng)設(shè)計與應(yīng)用實現(xiàn)[D].成都:電子科技大學(xué),2019.
[7]卞廣闊.高性能低功耗分布式存儲系統(tǒng)關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué),2019.
[8]姚引娣,王磊,海小娟,等.基于農(nóng)業(yè)物聯(lián)網(wǎng)的低功耗智能溫室監(jiān)控系統(tǒng)[J].西安郵電大學(xué)學(xué)報,2019(2):78-83.
[9]王文慶,王毓晨,亢紅波.基于NB-IoT的智能水表采集器設(shè)計[J].現(xiàn)代電子技術(shù),2019,42(22):39-43.
[10]鮑春,謝濤,楊飛,等.基于NB-IoT的污水管道氣體遠(yuǎn)程監(jiān)測裝置設(shè)計[J].傳感器與微系統(tǒng),2019(8):99-102.