摘" 要: 針對LoRa多傳感器低功耗采集中同信道傳感節(jié)點無效喚醒的問題,提出一種基于空中喚醒策略與信道切換機制相結(jié)合的低功耗采集方法。通過將LoRa通信鏈路劃分為多個通信信道,不同信道分時切換復(fù)用,實現(xiàn)多傳感節(jié)點的分組通信,避免從傳感節(jié)點的無效喚醒,在有限信道容量下最大限度地降低從節(jié)點的通信功耗;并制定了LoRa局域網(wǎng)傳感器通信指令協(xié)議,實現(xiàn)了多傳感器的低功耗主動輪詢采集、定點調(diào)試與預(yù)警上報。實驗結(jié)果證明了所提方法的有效性。
關(guān)鍵詞: LoRa; 多傳感器; 低功耗; 數(shù)據(jù)采集; 信道切換; 分時復(fù)用; 輪詢
中圖分類號: TN919?34; TN98?34" " " " " " " " " "文獻標(biāo)識碼: A" " " " " " " " " "文章編號: 1004?373X(2024)10?0023?05
Method of multi?sensor low?power data acquisition based on LoRa
Abstract: In allusion to the problem of invalid wake?up of sensor nodes in a multi?sensor acquisition system, which based on the same LoRa communication channel, a low?power working method based on wake on radio strategy and channel switching mechanism is proposed. In this method, the LoRa communication link is divided into multiple communication channels, the switching and time division multiplexing of different channels are conducted, and group communication of multiple sensor nodes is realized, avoiding ineffective wake?up from sensor nodes and minimizing communication power consumption of slave nodes under limited channel capacity. A LoRa local area network sensor communication instruction protocol is developed, which can realize the low?power active polling collection, fixed?point debugging, and early warning reporting of multiple sensors. The experimental results demonstrate the effectiveness of the proposed method.
Keywords: LoRa; multiple sensors; low power consumption; data collection; channel switching; time division multiplexing; polling
0" 引" 言
LoRa因其抗干擾性強、通信距離遠的優(yōu)點,更適用于空間障礙物多、節(jié)點通信距離遠、無運營商廣域網(wǎng)信號覆蓋的多傳感器數(shù)據(jù)采集的應(yīng)用場景[1?3]。工程中,將LoRa與低功耗供電技術(shù)相結(jié)合,實現(xiàn)傳感器的無線通信與電池供電,可大幅減少局域范圍內(nèi)多傳感器組網(wǎng)布線的工作量,在線纜布設(shè)復(fù)雜工程中有較好的應(yīng)用前景[4?5]。
現(xiàn)有傳感節(jié)點通常采用定時或觸發(fā)喚醒的工作方式完成數(shù)據(jù)的采集與上報,在非工作時段進入待機休眠狀態(tài)以降低功耗。黃躍文等通過周期喚醒進行建筑結(jié)構(gòu)安全監(jiān)測傳感器的數(shù)據(jù)采集,實現(xiàn)無線低功耗數(shù)據(jù)采集[6]。林碩等通過觸發(fā)喚醒方式實現(xiàn)稱重傳感器低功耗數(shù)據(jù)的采集[7]。邱崠等基于LoRaWAN協(xié)議實現(xiàn)農(nóng)田環(huán)境監(jiān)測傳感器數(shù)據(jù)的采集,終端節(jié)點工作于ClassA模式,建立與LoRa網(wǎng)關(guān)的低功耗通信連接[8]。
但是,定時或觸發(fā)喚醒的工作方式由于從節(jié)點大部分時間處于待機休眠狀態(tài),需要等待至下一喚醒時間窗口完成主控節(jié)點控制指令的響應(yīng),因而存在主控節(jié)點指令響應(yīng)實時性差的問題,導(dǎo)致在多傳感器遠程召測、定點調(diào)試等場景下應(yīng)用受限。另外,采用LoRaWAN協(xié)議模式組網(wǎng)的工作方式,對于終端節(jié)點接入量少、小規(guī)模的傳感網(wǎng)絡(luò)來說,系統(tǒng)較為復(fù)雜,成本較高[9]。
本文針對小范圍(1 km)內(nèi)多傳感器低功耗輪詢采集中同信道從節(jié)點無效喚醒的問題,提出了一種基于空中喚醒策略與信道切換機制的低功耗采集方法。將無線通信局域網(wǎng)進行信道劃分,不同信道劃分時切換復(fù)用,以實現(xiàn)多傳感節(jié)點的分組喚醒與通信;并制定了多傳感器局域網(wǎng)通信協(xié)議,開發(fā)了低成本從傳感器節(jié)點與主控節(jié)點,通過測試驗證了所提方法的有效性。
1" 關(guān)鍵問題
局域網(wǎng)多傳感器數(shù)據(jù)采集方式按數(shù)據(jù)傳輸?shù)脑垂?jié)點是主控節(jié)點還是從節(jié)點,可分為兩類。
1) 主動輪詢采集方式:由主控節(jié)點向從節(jié)點發(fā)送采集命令,從節(jié)點響應(yīng)命令并返回采集數(shù)據(jù);
2) 自動上報采集方式:由從節(jié)點自動上報采集數(shù)據(jù),主控節(jié)點收到數(shù)據(jù)并存儲。
兩種采集方式都通過定時喚醒切換至工作狀態(tài),在非喚醒時間段切換至待機狀態(tài),并關(guān)閉無線射頻模塊電源以降低功耗,實現(xiàn)低功耗采集。
其中,自動上報采集方式喚醒后無需判斷是否有主控節(jié)點命令數(shù)據(jù),直接完成采集并上報,但只能在喚醒后指定時隙內(nèi)建立主從節(jié)點之間的通信連接,導(dǎo)致從節(jié)點響應(yīng)控制指令的實時性降低;主動輪詢采集方式通過提高從節(jié)點喚醒頻次,且在喚醒后判斷主控節(jié)點是否發(fā)送通信指令,并及時響應(yīng)指令,以提高指令響應(yīng)的實時性[10]。因此,在指令響應(yīng)實時性要求高的應(yīng)用場景中,需采用主動輪詢的方式完成低功耗數(shù)據(jù)采集。
但是,在多個從傳感器低功耗數(shù)據(jù)采集的應(yīng)用場景中,由于主控節(jié)點發(fā)送通信指令會喚醒局域網(wǎng)內(nèi)同信道的所有從節(jié)點設(shè)備,無效喚醒將導(dǎo)致從節(jié)點功耗的增加。比如:當(dāng)無線局域網(wǎng)中存在M個從節(jié)點時,主控節(jié)點完成一次指令下發(fā)會同時喚醒M個從節(jié)點,即完成一次局域網(wǎng)傳感器節(jié)點數(shù)據(jù)輪詢采集,從節(jié)點被無效喚醒M-1次,增加局域網(wǎng)整體功耗。
為避免同一信道下多傳感器節(jié)點的無效喚醒,可為每個從節(jié)點劃分獨立的通信信道。但由于LoRa采用擴頻技術(shù),單信道占用帶寬大,當(dāng)局域網(wǎng)內(nèi)從節(jié)點較多時,無法實現(xiàn)每個從節(jié)點擁有獨立的通信信道。此外,若局域網(wǎng)從節(jié)點工作信道完全占用LoRa通信頻段,不僅會干擾工程現(xiàn)場的其他設(shè)備,還會受到其他無線通信設(shè)備的干擾。
2" 低功耗采集方法
本文針對上述多傳感器低功耗輪詢數(shù)據(jù)采集中的問題,基于無線空中喚醒策略,按功能將LoRa通信鏈路進行信道劃分,通過不同信道之間的切換,實現(xiàn)主控節(jié)點對從節(jié)點的分組喚醒通信,在有限通信信道數(shù)量下,最大限度地降低從節(jié)點的通信功耗。此外,還制定了多傳感器局域網(wǎng)通信協(xié)議,協(xié)同信道切換機制完成低功耗采集。
2.1" LoRa無線空中喚醒
LoRa無線空中喚醒策略工作示意圖如圖1所示。
從節(jié)點每隔T s自動喚醒一次,喚醒時長為τ,檢測空中是否有主控節(jié)點的廣播前導(dǎo)碼。當(dāng)空中存在該信道前導(dǎo)碼時,從節(jié)點喚醒進入接收模式,完成主控節(jié)點下發(fā)數(shù)據(jù)的接收;當(dāng)空中不存在該信道前導(dǎo)碼時,從節(jié)點再次進入休眠狀態(tài)。由于前導(dǎo)碼檢測時長τ遠小于喚醒周期T,從節(jié)點一個周期內(nèi)大部分時間處于休眠狀態(tài),因此可實現(xiàn)節(jié)點的低功耗工作[11]。此外,為保證從節(jié)點能檢測到主控節(jié)點的廣播前導(dǎo)碼,主控節(jié)點發(fā)送前導(dǎo)碼的時長需大于從節(jié)點喚醒周期T。
2.2" 信道劃分
按照輪詢采集、定點調(diào)試與預(yù)警上報等多傳感器組網(wǎng)通信的功能需求,本文將LoRa局域網(wǎng)通信鏈路信道劃分為4類:待機信道Sx、預(yù)警信道A1、采集信道C1與調(diào)試信道D1。通過不同類型信道的分時復(fù)用,降低LoRa局域網(wǎng)通信的占用帶寬,減少多傳感器數(shù)據(jù)通信的無效喚醒次數(shù)。局域網(wǎng)LoRa通信信道劃分如表1所示。
表1中,待機信道Sx為從節(jié)點待機休眠的工作信道,從節(jié)點完成命令響應(yīng)、預(yù)警信息上報后,自動進入待機信道Sx,以降低節(jié)點功耗;采集信道C1為主從節(jié)點輪詢采集數(shù)據(jù)的上報信道,主控節(jié)點發(fā)送輪詢控制命令至待機信道Sx,從節(jié)點被喚醒后與主控節(jié)點共同切換至采集信道C1,建立從節(jié)點數(shù)據(jù)上報通信鏈路;調(diào)試信道D1為主控節(jié)點對從節(jié)點的調(diào)試信道,主控節(jié)點發(fā)送定點調(diào)試命令至待機信道Sx,從節(jié)點喚醒后與主控節(jié)點共同切換至調(diào)試信道D1,建立調(diào)試信道下的雙向通信鏈路;預(yù)警信道A1為主控節(jié)點接收從節(jié)點的預(yù)警信道,當(dāng)從節(jié)點出現(xiàn)故障后,由待機信道Sx自動切換至預(yù)警信道,向主控節(jié)點上報故障信息。
實際應(yīng)用中,本文將待機信道Sx劃分為10個,每個信道容量為10個從節(jié)點,則待機信道Sx可容納100個從節(jié)點,滿足大部分工程現(xiàn)場需求。此外,為避免各個信道之間的相互干擾,10個信道頻點之間間隔為擴頻調(diào)制帶寬的5倍。
2.3" 信道切換
基于對局域網(wǎng)LoRa無線通信的信道劃分,主從節(jié)點通過通信信道的切換,實現(xiàn)從節(jié)點低功耗輪詢采集、定點調(diào)試與預(yù)警上報等多傳感器組網(wǎng)通信功能。
2.3.1" 輪詢采集
輪詢采集主從節(jié)點信道切換流程如圖2所示。
首先,主控節(jié)點由預(yù)警信道A1切換至對應(yīng)傳感器節(jié)點待機信道Sx,向該信道下所有從節(jié)點發(fā)送廣播采集命令,在延遲等待時間Td后,進入采集信道C1,等待接收信道各從節(jié)點上報采集數(shù)據(jù);從節(jié)點接收到命令后從待機狀態(tài)喚醒至工作狀態(tài),并進行傳感器數(shù)據(jù)的采集,將采集數(shù)據(jù)存儲至內(nèi)存中,休眠等待一段時間Ts后切換信道至采集信道C1。各從節(jié)點通過延時等待時長Ts的不同,分時切換至采集信道C1,上報采集數(shù)據(jù)至主控節(jié)點,避免出現(xiàn)信號碰撞。在從節(jié)點完成數(shù)據(jù)上報后,主控節(jié)點切換至預(yù)警信道A1,從采集信道C1切換至待機信道并進入周期性休眠狀態(tài),完成該信道下從節(jié)點數(shù)據(jù)輪詢采集。
一般地,延遲等待時間Td為10 s,相鄰從節(jié)點等待間隔時長Tc為2 s,超過該時長則節(jié)點置為故障。待機信道Sx從節(jié)點容量為10個,則遍歷采集一個信道需耗費時長(單位為s)為:
[T=Td+Ts=Td+10Tc=10+10×2=30] (1)
2.3.2" 定點調(diào)試
從節(jié)點定點調(diào)試可實現(xiàn)主控節(jié)點對局域網(wǎng)傳感器狀態(tài)查詢、參數(shù)設(shè)置、隨機定點召測等功能。輪詢定點調(diào)試主從節(jié)點信道切換流程如圖3所示。
首先,由主控節(jié)點切換至指定設(shè)備號的待機信道Sx,發(fā)送定點調(diào)試指令,喚醒待機信道下從節(jié)點并立即進入調(diào)試信道D1;從節(jié)點在收到定點調(diào)試指令后,立即切換至調(diào)試信道D1,并向主控節(jié)點發(fā)送響應(yīng)信息。設(shè)定主控節(jié)點等待從節(jié)點響應(yīng)時長為5 s,超時認為從節(jié)點為故障狀態(tài)。
在完成調(diào)試工作后,若從節(jié)點30 s無接收數(shù)據(jù),自動進入低功耗待機狀態(tài)。此外,還可通過主控節(jié)點發(fā)送指令將從節(jié)點置為待機休眠狀態(tài)。
2.3.3" 預(yù)警上報
主控節(jié)點采用市電供電,可一直處于預(yù)警信息接收狀態(tài),監(jiān)控各個從節(jié)點運行上報數(shù)據(jù)。當(dāng)從節(jié)點出現(xiàn)電量低、節(jié)點數(shù)值異常后,可自動切換至預(yù)警信道,上報異常數(shù)據(jù)。從節(jié)點在完成預(yù)警信息上報后,自動進入待機信道。
為避免從節(jié)點上報數(shù)據(jù)出現(xiàn)信號碰撞,從節(jié)點在自動上報時,首先進行前導(dǎo)碼檢測,當(dāng)存在其他節(jié)點預(yù)警信息上報時,自動增加等待時間片,等待下一個窗口進行數(shù)據(jù)傳遞,直到預(yù)上報成功。
2.4" 通信指令協(xié)議
主從節(jié)點應(yīng)按照統(tǒng)一的指令協(xié)議,在不同信道之間按照信道切換,實現(xiàn)從節(jié)點的低功耗數(shù)據(jù)采集。本文制定的LoRa局域網(wǎng)通信協(xié)議采用ASCII編碼格式,協(xié)同信道切換機制完成低功耗數(shù)據(jù)采集。幀格式組成字段如表2所示。
表2中:起始符占用1 B,采用“:”作為一幀數(shù)據(jù)的起始;地址碼占用4 B,前2個字節(jié)為設(shè)備類型,后2個字節(jié)為局域網(wǎng)從節(jié)點ID,局域網(wǎng)從節(jié)點ID應(yīng)保證唯一性,從節(jié)點根據(jù)設(shè)備ID自動設(shè)置LoRa通信信道,地址碼第3位為信道號,第4位從節(jié)點號;命令占用2 B,包括指令類型(調(diào)試指令、采集指令、預(yù)警指令等)和指令代碼(開關(guān)機、狀態(tài)查詢、采集參數(shù)配置、地址查詢等)兩個部分;校驗碼占用采用CRC16校驗,高位在后,低位在前。
另外,當(dāng)通信幀地址碼置為FFFF時,為主控節(jié)點廣播命令,所有從節(jié)點均響應(yīng)該指令。
3" 硬件電路接口設(shè)計
主控節(jié)點與從節(jié)點硬件電路設(shè)計以STM32系列單片機為主控芯片,射頻前端模塊采用SX1278,兩者通過SPI接口建立連接,完成LoRa信道切換與主從節(jié)點數(shù)據(jù)通信[12]。為提高開發(fā)效率,無線射頻模塊采用某公司貼片封裝的RA?02設(shè)計,SX1278射頻前端硬件接口電路與低功耗LoRa主從節(jié)點實物圖如圖4所示。
4" 實驗與分析
為測試信道切換機制的有效性,進行功耗測試和多節(jié)點組網(wǎng)通信實驗,并根據(jù)節(jié)點功耗數(shù)據(jù)進行計算分析。
4.1" 單節(jié)點功耗測試
從節(jié)點完成一次數(shù)據(jù)采集需要經(jīng)歷喚醒、接收、采集、發(fā)送、休眠等狀態(tài)[13]。在實驗室環(huán)境下,設(shè)置從節(jié)點LoRa信道頻點為480 MHz,帶寬為125 kHz,擴頻因子為8,發(fā)射功率為17 dBm,喚醒周期時長為1 s,并通過示波器、萬用表測試數(shù)據(jù)長度小于100 B情況下,各個狀態(tài)的電壓、工作電流與時長。激光測距傳感器功耗數(shù)據(jù)如表3所示。
4.2" 多傳感節(jié)點通信測試
多節(jié)點組網(wǎng)通信實驗中,主控節(jié)點分別與30個從節(jié)點通過3個信道建立通信連接,測試不同信道間的數(shù)據(jù)傳輸是否會干擾其他信道,導(dǎo)致從節(jié)點無效喚醒。相鄰信道頻點間隔為1 MHz,3個信道頻點分別為480 MHz、481 MHz、482 MHz。實驗室采用萬用表監(jiān)測各從節(jié)點工作電流,判斷是否被喚醒。
結(jié)果表明,各信道之間從節(jié)點通信相互獨立,避免了由信道間通信干擾引起的無效喚醒,且實現(xiàn)了多傳感器的組網(wǎng)采集。
4.3" 功耗計算
從節(jié)點處于休眠狀態(tài)時,通過周期喚醒檢測是否存在前導(dǎo)碼,由單節(jié)點通信測試數(shù)據(jù)計算出平均待機電流I0(單位為mA)為:
即從節(jié)點在休眠狀態(tài)下,周期性喚醒的耗電電流平均為0.372 mA。當(dāng)完成一次數(shù)據(jù)采集時,從節(jié)點需要經(jīng)歷數(shù)據(jù)接收、采集、發(fā)送等過程,采集一次均攤至每秒電流增量(單位為mA)為:
以工程現(xiàn)場埋設(shè)100個從節(jié)點為例,劃分10個信道,一天從節(jié)點采集數(shù)據(jù)10次,則從節(jié)點平均電流增量(單位為mA)為:
[I'=10ΔI≈0.008] (4)
從節(jié)點工作等效電流(單位為mA)為:
[I=I0+I'=0.372+0.008=0.38] (5)
以每個從節(jié)點電池容量為12 V、3 600 mA·h計算,電池供電效率為85%,則單個從節(jié)點可工作的有效時長(單位為h)為:
每天時長24 h,可工作天數(shù)為:
5" 結(jié)" 論
本文針對多傳感器低功耗主動輪詢采集中從節(jié)點無效喚醒的問題,提出了一種基于空中喚醒策略與信道切換機制的低功耗工作方法,制定了局域組網(wǎng)通信指令協(xié)議,建立了主控節(jié)點與從節(jié)點之間的低功耗通信鏈路,提高了主從節(jié)點指令響應(yīng)的實時性。此外,還基于SX1278開發(fā)了低成本從傳感器節(jié)點與主控節(jié)點,并進行了多節(jié)點組網(wǎng)通信實驗。測試結(jié)果表明,所提方法能夠完成多傳感器的低功耗數(shù)據(jù)采集,有效地避免了從傳感節(jié)點的無效喚醒。
參考文獻
[1] 張新.LoRa技術(shù)及其在煤礦中的應(yīng)用分析[J].煤炭工程,2019,51(3):79?82.
[2] 韓團軍,尹繼武,趙增群,等.基于LoRa技術(shù)的礦井?dāng)?shù)據(jù)監(jiān)測系統(tǒng)的設(shè)計與研究[J].現(xiàn)代電子技術(shù),2019,42(20):160?163.
[3] 戴楊,張晴暉,李俊萩,等.基于LoRa物聯(lián)網(wǎng)的森林環(huán)境監(jiān)測系統(tǒng)的架構(gòu)與實現(xiàn)[J].現(xiàn)代電子技術(shù),2020,43(22):44?48.
[4] 張錚,曹守啟,朱建平,等.面向大面積漁業(yè)環(huán)境監(jiān)測的長距離低功耗LoRa傳感器網(wǎng)絡(luò)[J].農(nóng)業(yè)工程學(xué)報,2019,35(1):164?171.
[5] 王晨輝,郭偉,楊凱,等.基于LoRa技術(shù)的滑坡監(jiān)測系統(tǒng)設(shè)計與研究[J].現(xiàn)代電子技術(shù),2022,45(12):1?6.
[6] 黃躍文,周芳芳,韓笑.無線低功耗安全監(jiān)測采集系統(tǒng)設(shè)計與研究[J].長江科學(xué)院院報,2019,36(6):153?156.
[7] 林碩,張榮晶.基于LoRa的車輛稱重系統(tǒng)中低功耗無線模塊設(shè)計[J].自動化與儀表,2018,33(5):79?83.
[8] 邱崠,孫友強,張俊卿,等.基于LoRaWAN的農(nóng)田環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].儀表技術(shù),2023(1):1?5.
[9] 李雷.基于LoRa的井蓋狀態(tài)監(jiān)測系統(tǒng)研究與設(shè)計[D].北京:北京交通大學(xué),2019.
[10] 潘曉博.基于LoRa的低功耗瓦斯?jié)舛确植际奖O(jiān)測系統(tǒng)設(shè)計[J].工礦自動化,2021,47(6):103?108.
[11] 唐菲.基于物聯(lián)網(wǎng)的分布式水質(zhì)在線監(jiān)控系統(tǒng)設(shè)計[J].傳感技術(shù)學(xué)報,2022,35(4):565?572.
[12] 江鶯,俞旭,俞銘津,等.基于LoRa的遠程低功耗水壓采集系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2020,43(8):105?108.
[13] 徐尚瑜,張燕,陳文君,等.LoRa低功耗農(nóng)業(yè)傳感終端的設(shè)計與研發(fā)[J].傳感技術(shù)學(xué)報,2021,34(12):1690?1696.