, ,
(重慶郵電大學 移動通信技術重慶市重點實驗室,重慶 400065)
LoRa(Long Range)是一種基于擴頻技術的無線傳輸方案,作為最近幾年剛剛興起的低功耗廣域網(wǎng)技術,其以覆蓋范圍廣、功耗低、使用免授權頻段等特點而廣受關注[1]。與傳統(tǒng)的ZigBee、WiFi、藍牙等短距離無線通信技術相比,LoRa更適合用在對數(shù)據(jù)傳輸速率要求較低,能量受限且節(jié)點分布范圍較廣的傳感網(wǎng)絡中。利用LoRa技術低功耗長距離的特性,設計人員可以用較少的節(jié)點部署實現(xiàn)更大范圍的通訊,同時還可以免去多頻次的電池更換和大量的中繼部署成本[2]。目前,全球已有多個國家和地區(qū)基于LoRa組建了全國或者全區(qū)域性的網(wǎng)絡,中國亦有基于LoRa技術組建的局域網(wǎng)絡已投入運行[3]。與同為低功耗廣域網(wǎng)技術的NB-IoT相比,LoRa工作在免授權頻段會更受歡迎,因其不但適合由運營商主導建立大范圍的網(wǎng)絡,同樣適合私人企業(yè)或者個人部署專用小型網(wǎng)絡,同時LoRa在滿足行業(yè)客戶協(xié)議細節(jié)上也更為靈活[4]。因此,LoRa已廣泛應用于環(huán)境監(jiān)測[5]、家庭安全防護[6]等領域。本文也將通過LoRa技術的應用實現(xiàn)遠程自動抄表系統(tǒng)。該系統(tǒng)可在不打擾用戶的情況下自動讀取用戶智能表中的數(shù)據(jù)并通過LoRa上傳至網(wǎng)關,再由網(wǎng)關通過網(wǎng)絡通信上傳至遠端的服務器,不僅免去需要專人抄表打擾客戶的麻煩,而且節(jié)省電力、自來水、燃氣、熱力等公司的運營成本。
本系統(tǒng)的架構如圖1所示,本系統(tǒng)由服務管理中心、網(wǎng)關、中繼、終端組成。一個服務管理中心下可接入多個網(wǎng)關,每個網(wǎng)關下可以接入最多6萬多個終端,中繼節(jié)點只在有些信號衰減較快,需要增加網(wǎng)關覆蓋范圍的場景中適當架設,即本系統(tǒng)采用較為靈活的網(wǎng)絡架構。可以采用由服務管理中心、網(wǎng)關、中繼、終端組成四級架構,也可以采用由服務管理中心、網(wǎng)關、終端組成的三級架構。其中網(wǎng)關與終端節(jié)點、網(wǎng)關與中繼節(jié)點以及中繼節(jié)點與終端節(jié)點之間使用LoRa無線擴頻通信,網(wǎng)關與服務管理中心之間通過以太網(wǎng)進行網(wǎng)絡通信。

圖1 系統(tǒng)架構
終端節(jié)點采集完用戶電表數(shù)據(jù)后通過LoRa將用戶數(shù)據(jù)上傳至網(wǎng)關,不能直接接入網(wǎng)關的終端節(jié)點通過中繼轉(zhuǎn)發(fā)至網(wǎng)關。網(wǎng)關將接收到的各終端節(jié)點數(shù)據(jù)通過串口轉(zhuǎn)以太網(wǎng)后通過網(wǎng)絡通信發(fā)送給遠程的服務管理中心,最終由服務管理中心將數(shù)據(jù)進行相關處理后分類儲存,以供用戶進行查詢、繳費等操作。
因LoRa具有遠距離通信的能力,故LoRaWAN采用單跳的星型網(wǎng)絡架構[7]。但課題組在進行實際的測試結果表明,LoRa在建筑物內(nèi)部墻壁較多的場景中,存在因信號衰減過快導致覆蓋范圍不足的問題。針對該問題,本系統(tǒng)采用相對靈活的網(wǎng)絡架構,使原本的星型組網(wǎng)可以兼容中繼節(jié)點的存在。為了保留LoRaWAN協(xié)議方案的部署便捷、拓撲簡單、時延較小、便于維護等特點[8],本系統(tǒng)的一個中繼節(jié)點只為單個終端節(jié)點提供中繼服務。采用以單跳為主,兩跳為輔的策略,中繼只為個別節(jié)點無法直接入網(wǎng)而單獨架設。
由于LoRaWAN的主體Class A采用純Aloha無線通信協(xié)議[9],在省電和簡單的同時,卻無法避免信號之間沖突和由此導致的低效率。為解決此問題,本系統(tǒng)將類TDMA的超幀機制引入LoRa節(jié)點間的自組網(wǎng)及數(shù)據(jù)通信過程,通過網(wǎng)關給每個終端節(jié)點分配專有的數(shù)據(jù)傳輸時隙達到避免消息傳輸碰撞和降低節(jié)點空閑監(jiān)聽時長目的[10]。
本系統(tǒng)將采用意法半導體推出的基于8位內(nèi)核的超低功耗微處理器STM8LC8T6作為控制芯片,與32位的MCU相比,8位MCU功耗更低、體積更小,更適合無線傳感網(wǎng)絡。該芯片的最高工作頻率為16MHz,同時擁有4KB的RAM和64KB的ROM,低功耗出色且性能穩(wěn)定,這些參數(shù)都能滿足本系統(tǒng)對工作環(huán)境的要求。無線通訊部分采用意法半導體推出的帶擴頻技術的SX1278射頻模塊,該模塊是半雙工傳輸?shù)闹械皖l收發(fā)器。工作頻段為137~525MHz,設計者可在允許范圍內(nèi)自定義擴頻調(diào)制帶寬、擴頻因子、糾錯率,支持標準的GFSK、FSK、OOK、GMSK調(diào)制模式。其具有高效的循環(huán)交織糾錯編碼、接收靈敏度高、抗干擾能力強、發(fā)射功率可調(diào)等特性[11],非常符合系統(tǒng)設計要求。
3.1.1 終端節(jié)點與中繼節(jié)點
終端節(jié)點的硬件模塊主要包括采用STM8L151C8T6單片機的MCU模塊、射頻模塊和UART轉(zhuǎn)RS-485接口模塊,其中射頻模塊包含SX1278、TCXO和SWITCH。SX1278實現(xiàn)LoRa無線信號的接收與發(fā)送,TCXO為SX1278高頻電路提供高精度的時鐘,SWITCH用來切換半雙工的SX1278輸入或輸出狀態(tài)。為了匹配用戶家庭中四表合一的智能表所提供的RS-485接口[12],終端節(jié)點提供了UART轉(zhuǎn)RS-485接口模塊,該模塊內(nèi)置ADM3485芯片用來將單片機的UART電平轉(zhuǎn)換為RS-485電平,從而實現(xiàn)與用戶智能表的互聯(lián)互通。中繼節(jié)點與終端節(jié)點相比只是少了UART轉(zhuǎn)RS-485接口模塊,本節(jié)內(nèi)容不在累述。
3.1.2 網(wǎng)關節(jié)點
網(wǎng)關節(jié)點主要負責節(jié)點的自組網(wǎng),管理網(wǎng)內(nèi)其他節(jié)點。組網(wǎng)后負責將終端節(jié)點及中繼節(jié)點上傳的用戶數(shù)據(jù)通過網(wǎng)絡通信上傳至遠端的服務管理中心,同時將服務管理中心的指令下發(fā)給終端。網(wǎng)關的MCU模塊同樣為STM8L151C8T6單片機、射頻模塊也與終端相同包括SX1278射頻收發(fā)器、TCXO高精度晶振和SWITCH狀態(tài)切換器,只是UART轉(zhuǎn)RS-485接口模塊被串口轉(zhuǎn)以太網(wǎng)模塊所代替,該串口轉(zhuǎn)以太網(wǎng)模塊可將UART接口轉(zhuǎn)為RJ45接口,同時該模塊內(nèi)置數(shù)據(jù)轉(zhuǎn)換協(xié)議能夠?qū)⒋跀?shù)據(jù)打包成網(wǎng)絡數(shù)據(jù)包發(fā)送至指定的服務器。
本系統(tǒng)軟件基于物聯(lián)網(wǎng)操作系統(tǒng)contiki開發(fā)實現(xiàn),contiki是一個開源的、易于移植的多任務操作系統(tǒng)。該操作系統(tǒng)是專門為無線傳感網(wǎng)開發(fā)設計,支持進程阻塞機制,特別適合于內(nèi)存受限的無線傳感網(wǎng)系統(tǒng)中的節(jié)點使用[13]。單板開機后,系統(tǒng)首先調(diào)用硬件初始化函數(shù)進行硬件初始化,包括調(diào)用chip_Init()函數(shù)初始化主控芯片、調(diào)用SX1278Init()函數(shù)初始化射頻芯片、調(diào)用clock_init()函數(shù)初始化系統(tǒng)時鐘等。然后進行系統(tǒng)的初始化,包括調(diào)用process_init()函數(shù)初始化系統(tǒng)進程、調(diào)用etimer_Init()和ctimer_init()函數(shù)初始化對應的定時器以及自定義進程函數(shù)的初始化等。為實現(xiàn)系統(tǒng)的網(wǎng)絡拓撲,本系統(tǒng)在LoRa的MAC層上方設計了LoRa的MAC子層通信協(xié)議,該協(xié)議可以避免節(jié)點數(shù)據(jù)傳輸過程中的碰撞問題,有效提高了數(shù)據(jù)傳輸?shù)某晒β省?/p>
3.2.1 MAC子層通信協(xié)議
MAC子層的引入使得本系統(tǒng)可以實現(xiàn)對中繼的兼容,解決了LoRa在有些場景下覆蓋范圍不足的問題,同時在該子層引入TDMA也解決了LoRa純Aloha協(xié)議數(shù)據(jù)傳輸碰撞導致的低效率問題。MAC子層通信協(xié)議通過網(wǎng)關主導組網(wǎng)過程實現(xiàn)對網(wǎng)絡拓撲的控制,應用本協(xié)議的網(wǎng)內(nèi)節(jié)點通過數(shù)據(jù)幀的形式進行數(shù)據(jù)傳輸,同時在接收端對數(shù)據(jù)幀進行循環(huán)冗余校驗,以保證接收數(shù)據(jù)的準確性。
本MAC子層通信協(xié)議通過引入超幀機制來實現(xiàn)節(jié)點間的時分復用。網(wǎng)關通過周期性的廣播信標(Beacon)幀來控制超幀的開始,即終端節(jié)點將收到網(wǎng)關廣播Beacon幀的時刻視為超幀的開始時刻。信標使能的超幀傳輸機制可由競爭接入時段(CAP)和非競爭傳輸時段(CFP)構成[14]。在CAP時段,終端節(jié)點以Aloha的方式向網(wǎng)關發(fā)送Request消息,直至收到網(wǎng)關回復Accept消息。Accept消息中包含終端節(jié)點的入網(wǎng)地址字段,該字段的地址信息同時也是終端節(jié)點在CFP時段進行數(shù)據(jù)發(fā)送的時隙序列號。如果終端節(jié)點已經(jīng)獲得入網(wǎng)地址,則在之后超幀的CAP時段不再發(fā)送Request消息。終端通過解析Beacon幀獲取的超幀信息和時隙信息與時隙序列號進行相關運算即可確定本節(jié)點該何時向網(wǎng)關發(fā)送User_data消息。除了這種廣播抄表方式外,協(xié)議還提供了單播的抄表方式。即如果網(wǎng)關在一個超幀內(nèi)沒有收到某節(jié)點上傳的用戶數(shù)據(jù),則在下一個超幀的該節(jié)點的時隙內(nèi)向該節(jié)點下發(fā)Cmd_up指令,要求其上傳用戶數(shù)據(jù)。如果在連續(xù)兩個超幀內(nèi)都下發(fā)指令且都沒有收到該節(jié)點上傳的用戶數(shù)據(jù)信息,則視該節(jié)點發(fā)生故障脫離網(wǎng)絡,收回其入網(wǎng)地址與發(fā)送時隙,該節(jié)點經(jīng)修復正常后需重新入網(wǎng)。
本協(xié)議消息采用變長模式,以Beacon幀格式為例如圖2,其中幀頭部分為7字節(jié),包含1字節(jié)的Mtype字段,1字節(jié)的版本號字段,2字節(jié)的目的地址字段和2字節(jié)的源地址字段以及1字節(jié)的數(shù)據(jù)長度字段。幀尾為1字節(jié)的標志位,其中幀頭和幀尾之間的部分為數(shù)據(jù)字段,不同的消息放入不同的內(nèi)容且長度可變。系統(tǒng)工作中的Mtype字段及對應的消息類型見表1。

圖2 Beacon幀格式

表1 Mtype對應的消息類型
3.2.2 節(jié)點軟件設計
網(wǎng)關的工作流程圖如圖3所示,網(wǎng)關首先廣播Beacon幀并進入超幀的CAP時段,終端節(jié)點收到Beacon幀后,向網(wǎng)關發(fā)送Request消息請求入網(wǎng)地址及時隙,網(wǎng)關收到Request消息后,單播Accept消息給該節(jié)點,終端節(jié)點收到Accept消息后完成入網(wǎng)。在超幀的CFP時段,網(wǎng)關接收終端上傳的用戶數(shù)據(jù)并發(fā)送至服務管理中心。

圖3 網(wǎng)關工作流程圖
中繼節(jié)點只是在個別場景下起到輔助節(jié)點數(shù)據(jù)傳輸?shù)淖饔茫湓谑盏骄W(wǎng)關廣播的Beacon幀并開始超幀進入CAP時段后,先進行解析獲取超幀及時隙信息,然后再中繼廣播,收到終端節(jié)點的Request消息后獲得被中繼節(jié)點的設備地址,然后再向網(wǎng)關單播該Request消息。收到網(wǎng)關發(fā)的Accept消息后獲取被中繼節(jié)點的發(fā)送時隙的時序,然后再轉(zhuǎn)發(fā)給終端節(jié)點。在上述這個過程中,如果CAP時段在某一時刻結束則立即中斷該過程等待下一個超幀后繼續(xù)上述過程。完成中繼入網(wǎng)并進入CFP階段后,等待終端發(fā)送時隙到來,準備中繼終端上傳的用戶數(shù)據(jù)信息。
終端節(jié)點在收到Beacon后,先判斷是否已經(jīng)入網(wǎng),如果沒有入網(wǎng)則需要先發(fā)送請求入網(wǎng)。如果已經(jīng)入網(wǎng),則只需等待本節(jié)點在本次超幀的發(fā)送時隙到來,待發(fā)送時隙到來后讀取用戶表數(shù)據(jù)并上傳至網(wǎng)關。在此過程中,網(wǎng)關可能會因為噪聲干擾的原因沒有正確接收到用戶數(shù)據(jù)而向終端下發(fā)數(shù)據(jù)上傳命令,終端如果收到網(wǎng)關下發(fā)的上傳命令,則需要再次上傳用戶表數(shù)據(jù)。
為了測試本方案在相較LoRaWAN協(xié)議方案進行改進后的系統(tǒng)性能,本文進行了兩種不同的測試方案,第一種測試方案用來測試新機制的覆蓋范圍;第二種測試方案用來測試數(shù)據(jù)傳輸成功率及網(wǎng)關吞吐量。兩種測試方案中設置的LoRa射頻工作參數(shù)均相同,工作頻段為470 MHz,發(fā)射功率為20 dbm,擴頻因子為10,帶寬為62 500 Hz,前向糾錯碼率4/5。并就這兩種測試方案分別搭建了兩種不同的測試場景。
第一種測試方案搭建了由一個網(wǎng)關節(jié)點、一個中繼節(jié)點、一個終端節(jié)點以及一臺安裝有數(shù)據(jù)庫管理軟件的個人電腦組成的測試系統(tǒng)。為了貼近系統(tǒng)方案真實的工作環(huán)境,測試場景選擇在一座居民樓內(nèi)進行。測試中每次的發(fā)包數(shù)為100,每個包長度為14字節(jié),首先測試終端直接發(fā)數(shù)據(jù)包到網(wǎng)關的數(shù)據(jù)丟包率及最大信號強度值(RSSI)與穿透樓層的關系見表2。

表2 終端直接與網(wǎng)關通信場景
無信號由表2可知,終端與網(wǎng)關之間隨著相隔樓層的增加,丟包率也隨之增高而最大RSSI隨之降低,當兩節(jié)點之間相隔不超過兩層的時候丟包率較低。因而將中繼節(jié)點固定在與網(wǎng)關相距兩樓層的距離較為合適。此時測試終端經(jīng)過中繼給網(wǎng)關發(fā)送數(shù)據(jù)的丟包率與穿透樓層的關系見表3。
由表3可知,終端經(jīng)中繼與網(wǎng)關節(jié)點之間在相隔不超過四層時丟包率仍然較低,一個網(wǎng)關上下最多可覆蓋九個樓層相比LoRaWAN協(xié)議方案的單跳機制有著更大的覆蓋范圍。本方案靈活的網(wǎng)絡架構在保持LoRaWAN協(xié)議方案拓撲簡單、易于維護、時延較小等優(yōu)點的同時提高了在個別場景下的覆蓋范圍,能夠支持更多的應用場景。
第二種測試方案搭建了由一個網(wǎng)關,五個終端以及一臺安裝有數(shù)據(jù)庫管理軟件的個人電腦組成的測試系統(tǒng)。本測試方案在空曠的環(huán)境下進行,五個終端分別以LoRaWAN協(xié)議機制和本方案的超幀機制的方式向網(wǎng)關發(fā)送數(shù)據(jù)包,每個數(shù)據(jù)包大小為10字節(jié)。其中在超幀機制下,每個終端的數(shù)據(jù)傳輸時隙為12ms,每輪的周期為60ms,測試進行100輪。LoRaWAN協(xié)議機制下的測試需要在同樣的時間內(nèi)將100個數(shù)據(jù)包發(fā)送完。兩種不同機制下網(wǎng)關成功接收到每個終端發(fā)送的數(shù)據(jù)包個數(shù)見表4。

表4 兩種機制下網(wǎng)關接收包數(shù)
由表4知,LoRaWAN機制下數(shù)據(jù)傳輸?shù)某晒β蕿?3.8%,而本方案的超幀機制數(shù)據(jù)傳輸成功率為95.4%,遠高于LoRaWAN協(xié)議方案。同時可以計算出LoRaWAN機制下網(wǎng)關的吞吐量為0.365 kbps,而本方案的網(wǎng)關吞吐量為0.795 kbps,同樣高于LoRaWAN協(xié)議方案。從上述測試結果可知,本方案在數(shù)據(jù)傳輸成功率和網(wǎng)關吞吐量方便較LoRaWAN協(xié)議方案有著較為明顯的優(yōu)勢。
綜合以上測試結果表明,本方案系統(tǒng)保留了LoRaWAN協(xié)議方案網(wǎng)絡拓撲簡單、便于維護、時延較小的特點,同時相較于LoRaWAN協(xié)議方案具有更廣的覆蓋范圍、更高的數(shù)據(jù)傳輸成功率、更大的網(wǎng)關吞吐量等優(yōu)勢。為四表合一的智能表提供了更為可行的遠程自動抄表方案。為電力、自來水、熱力、燃氣等單位提高了工作效率和服務質(zhì)量的同時降低了運營成本。
本文將LoRa無線擴頻通信技術與以太網(wǎng)相結合,自主設計LoRa的MAC子層協(xié)議,同時在該MAC子層協(xié)議引入TDMA機制并實現(xiàn)對中繼的兼容。文章從系統(tǒng)架構、網(wǎng)絡拓撲、軟硬件平臺及節(jié)點工作流程等方面進行了較為詳細的分析。并針對本方案的改進機制進行測試,搭建了兩種不同的測試方案分別測試本方案增加對中繼兼容的改進和在MAC子層引入超幀機制的改進效果。經(jīng)過兩種測試方案的測試結果表明,本系統(tǒng)方案針對LoRaWAN協(xié)議方案存在問題的改進措施在各項參數(shù)上均有所提高,達到了設計本系統(tǒng)方案的目的,具有較為廣泛的應用價值和應用前景。