童樹衛 戚一



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