潘俊虹,吳 薇,彭 濤
(1.武夷學(xué)院數(shù)學(xué)與計算機學(xué)院,福建 武夷山 354300;2.蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;3.認(rèn)知計算與智能信息處理福建省高校重點實驗室,福建 武夷山 354300)
現(xiàn)有的路燈通信模式多為電力載波通信,存在信號衰減快、工頻諧波干擾大、不能跨變壓器通信等缺點[1]。文獻[2-5]等提出使用通用分組無線業(yè)務(wù)( General Packet Radio Service,GPRS) 與局部的無線傳感器網(wǎng)絡(luò)( Wireless Sensor Network ,WSN) 相結(jié)合,路燈終端組網(wǎng)采用 ZigBee 無線網(wǎng)絡(luò)的智能路燈系統(tǒng),然而IEEE802.15.4 復(fù)雜的路由協(xié)議適用于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)容易動態(tài)變化的場景,對于路燈相對固定的組網(wǎng)方式并不合適,且ZigBee 協(xié)議開發(fā)難度較大,導(dǎo)致網(wǎng)絡(luò)的穩(wěn)定性不高[6]。此外,GPRS 技術(shù)由于附著核心時間長、喚醒時間長,導(dǎo)致功耗較高[7]。相比較GPRS 技術(shù)而言,窄帶物聯(lián)網(wǎng)( Narrow Band Internet of Things,NB-IoT) 具有海量連接、廣覆蓋、深穿透、低成本和低功耗的優(yōu)勢[8-10],可直接部署于現(xiàn)有的GSM 網(wǎng)絡(luò)、LTE 網(wǎng)絡(luò)或UMTS 網(wǎng)絡(luò),其建設(shè)成本低、網(wǎng)絡(luò)升級方便快捷。NB -IoT 平臺開放標(biāo)準(zhǔn)接口也有利于應(yīng)用靈活快速部署,因此基于NB -IoT 的通信架構(gòu)更適合用來構(gòu)建智能路燈通信網(wǎng)絡(luò)[11]。
針對無線智能路燈網(wǎng)絡(luò)出現(xiàn)的諸多問題,本文提出了一套基于NB -IoT +WSN 的新型智能路燈通信組網(wǎng)方案。該通信架構(gòu)以面-線-點的控制方式實現(xiàn)城市路燈管理方式的智能化,使得路燈系統(tǒng)可實時智能監(jiān)測和控制路燈工作狀態(tài),改變目前有線路燈網(wǎng)絡(luò)建維成本高、靈活性差、能源消耗大的現(xiàn)狀,以低成本、高可靠以及綠色節(jié)能的方式解決傳統(tǒng)城市路燈存在的問題,提升了城市公共照明設(shè)施管理水平。該新架構(gòu)不僅可以應(yīng)用于常規(guī)路燈,也可以用于新型LED 路燈,同時,還可以為智能交通、環(huán)境監(jiān)測、局部氣象服務(wù)等提供基礎(chǔ)信息“高速公路”。
基于NB-IoT +WSN 的智能路燈通信架構(gòu)如圖1所示,主要由路燈終端節(jié)點無線自組網(wǎng)、主控器網(wǎng)關(guān)、NB-IoT 公網(wǎng)、客戶應(yīng)用服務(wù)器和客戶應(yīng)用終端組成。
路燈終端節(jié)點帶有傳感器和控制模塊,傳感器負(fù)責(zé)采集路燈的狀態(tài)信息和環(huán)境信息,通過無線發(fā)射模塊發(fā)送給主控器主控器接收查詢和控制命令,并通過控制模塊實現(xiàn)對路燈狀態(tài)的改變。
主控器是整個系統(tǒng)通信的網(wǎng)關(guān)樞紐,主要負(fù)責(zé)路燈終端自組網(wǎng)和NB-IoT 公網(wǎng)之間的無線數(shù)據(jù)轉(zhuǎn)發(fā)。
NB-IoT 公網(wǎng)包含基站和遠(yuǎn)程管理服務(wù)器,通常是電信運營商或者第三方機構(gòu)的基礎(chǔ)設(shè)施,實現(xiàn)主控器網(wǎng)關(guān)和應(yīng)用服務(wù)器之間的雙向數(shù)據(jù)透傳。
圖1 基于NB-IoT+WSN 技術(shù)的智能路燈通信架構(gòu)圖
客戶應(yīng)用服務(wù)器( User Application Server,UAS) 是運行在Internet 網(wǎng)絡(luò)上的一臺或者多臺計算機,通過接受管理服務(wù)器轉(zhuǎn)發(fā)來的路燈終端數(shù)據(jù)信息,并根據(jù)路燈管理特定的業(yè)務(wù)邏輯對數(shù)據(jù)進行分析和處理,為客戶應(yīng)用終端提供數(shù)據(jù)業(yè)務(wù)訪問服務(wù),同時將客戶應(yīng)用終端發(fā)送來的控制命令發(fā)送至路燈終端,實現(xiàn)對路燈的控制和管理。
客戶應(yīng)用終端是運行人機交互系統(tǒng)的計算機、筆記本電腦、智能手機等設(shè)備,通過友好的可視化界面進行人機交互操作??蛻魬?yīng)用服務(wù)器和客戶應(yīng)用終端一起構(gòu)成了基于NB-IoT 系統(tǒng)的應(yīng)用終端。
路燈終端單燈控制器主控模塊采用恩智浦公司的MKW01Z128[12]( 以下簡稱KW01) 芯片,其內(nèi)部集成了超低功耗的Kinetis KL26 MCU 與SX1231 -RF 無線收發(fā)器。KW01 內(nèi)含的SX1231 -RF 無線發(fā)射空闊區(qū)域最大傳輸距離可達500 米。主控硬件最小系統(tǒng)通過UART、IIC、SPI 等通信接口連接路燈節(jié)點外設(shè)。SX1231 - RF無線發(fā)射使用SPI 與主控模塊通信。單燈控制器結(jié)構(gòu)如圖2 所示。
圖2 路燈終端單燈控制器結(jié)構(gòu)圖
一般而言,路燈一旦安裝其位置基本不會改變,拓?fù)浣Y(jié)構(gòu)也就相對穩(wěn)定,路燈控制多為批量進行,從節(jié)省成本的角度出發(fā),也沒有必要為每一盞路燈配置一個NB-IoT 通信模塊。
根據(jù)大多數(shù)路燈并行排列的特點,采用三鏈路由[13]( Three Linked Route,TLR) 協(xié)議對路燈終端進行組網(wǎng),如圖3 所示。組網(wǎng)方式如下:將公路的每一側(cè)路燈設(shè)為一級鏈路。一級鏈路按照路燈路數(shù)N 進行編號Xi( i =1,2,3,…,N) 。二級鏈路則根據(jù)單燈的有效通信半徑進行設(shè)定。假設(shè)單燈有效通信半徑為r,燈間距離為d,那么就有Q = [r/d]個單燈構(gòu)成一個自組網(wǎng)絡(luò),作為二級鏈路通信單位。假設(shè)此側(cè)路燈總數(shù)為SUM,那么這一側(cè)二級鏈路單位即為M =[SUM/Q]+1 個。二級鏈路編號為所在一級鏈+二級鏈編號即[Xi][Yj],( j =1,2,3,…,M) 。三級鏈即為單燈節(jié)點,編號為[Xi][Yj][Zk]( k =1,2,3,...,Q) 。每一條路燈都有一個主控器節(jié)點與其對應(yīng),放置在路燈的一端,負(fù)責(zé)這條路兩側(cè)路燈的通信。路燈終端節(jié)點通過主控器接收和轉(zhuǎn)發(fā)數(shù)據(jù)。
圖3 三鏈路組網(wǎng)示意圖
終端節(jié)點根據(jù)TLR 協(xié)議進行編址,網(wǎng)絡(luò)層主要功能是在收到數(shù)據(jù)后,判斷目標(biāo)地址和網(wǎng)絡(luò)號是接收還是轉(zhuǎn)發(fā),不是自己的數(shù)據(jù)就將其轉(zhuǎn)發(fā),如果是自己的數(shù)據(jù)就交給應(yīng)用層處理,然后從應(yīng)用層接收處理完畢的數(shù)據(jù)并進行封裝,在添加了源地址和目標(biāo)網(wǎng)絡(luò)地址后將數(shù)據(jù)通過無線射頻收發(fā)模塊發(fā)送出去。
在以無線方式組網(wǎng)的路燈終端運行過程中,經(jīng)常會遇到各種環(huán)境干擾因素,引起通信鏈路質(zhì)量不穩(wěn)定以及路燈節(jié)點之間互相干擾碰撞等問題,導(dǎo)致丟包等情況出現(xiàn),影響路燈終端和主控協(xié)調(diào)器網(wǎng)關(guān)之間的通信質(zhì)量,因此需進一步采取措施對網(wǎng)絡(luò)通信進行優(yōu)化:
(1) 使用硬件地址過濾非本網(wǎng)關(guān)數(shù)據(jù)包。當(dāng)同一地區(qū)存在其他不同功能的網(wǎng)關(guān)及KW01 通信節(jié)點時,通過硬件地址來區(qū)分不同系統(tǒng)。當(dāng)主協(xié)調(diào)器網(wǎng)關(guān)接收到一個數(shù)據(jù)包時,先判斷其硬件地址是否與本網(wǎng)關(guān)相匹配,是則接收,否則丟棄數(shù)據(jù)包,這樣就可屏蔽不同通信系統(tǒng)之間的通信干擾。
(2) 添加無線通信看門狗功能。每個路燈終端節(jié)點每分鐘都需與所在網(wǎng)段主協(xié)調(diào)器網(wǎng)關(guān)進行數(shù)據(jù)包交換,如果節(jié)點長時間接收不到網(wǎng)關(guān)數(shù)據(jù)包,那么就主動使路燈終端節(jié)點復(fù)位。
(3) 優(yōu)化節(jié)點輪詢方式。輪詢周期內(nèi)先輪詢一遍所有節(jié)點,標(biāo)記所有未回復(fù)節(jié)點,再次輪詢,直到所有節(jié)點都應(yīng)答為止。
路燈終端節(jié)點采用三鏈路由協(xié)議進行組網(wǎng)有以下幾個優(yōu)點:
(1) 算法實現(xiàn)難度低。由于每個路燈節(jié)點都有與MAC 對應(yīng)的固定地址,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)相對比較穩(wěn)定,且無需路由表存儲網(wǎng)絡(luò)信息,也不必計算網(wǎng)絡(luò)路由的最短路徑,路由算法簡單,因此實現(xiàn)算法的編碼和測試也相對較容易。
(2) 網(wǎng)絡(luò)健壯性好。在網(wǎng)絡(luò)通信過程中某個路燈出現(xiàn)故障時,相鄰節(jié)點在發(fā)送信息幾次都得不到回復(fù)的時候,便自動繞開當(dāng)前路燈節(jié)點,重新確定下一跳鏈接,保證數(shù)據(jù)能傳送到主控器網(wǎng)關(guān)節(jié)點。
(3) 可維護性強。一旦有路燈終端節(jié)點工作不正常,網(wǎng)絡(luò)可根據(jù)路燈節(jié)點編號迅速確定故障節(jié)點位置。而且在整個網(wǎng)絡(luò)中,每個路燈節(jié)點功能都相同,如需更換路燈,那么只需將更換的新路燈的地址設(shè)為故障路燈節(jié)點的地址即可,其他均不需做任何改動。
(4) 網(wǎng)絡(luò)負(fù)載均衡。三鏈路路由算法按照路燈物理結(jié)構(gòu)均勻地組織網(wǎng)絡(luò),形成多層次、均衡的網(wǎng)絡(luò)結(jié)構(gòu),使得任一網(wǎng)絡(luò)單位都只在固定的跳數(shù)和路徑內(nèi)傳輸信息,不會出現(xiàn)擁堵的情況。
路燈終端通過主控器與遠(yuǎn)程服務(wù)器進行通信。主控器與遠(yuǎn)程管理服務(wù)器之間采用NB -IoT 窄帶物聯(lián)網(wǎng)通信協(xié)議進行連接。主控器由3 個相互獨立的模塊組成,如圖4 所示。主控模塊采用與終端MCU 同系列、基于ARM? CortexTM-M0 +處理器的超低功耗的KL36微控制器; 通信模塊采用與路燈終端相同的KW01 芯片;NB-IoT 無線通信模塊采用上海移遠(yuǎn)生產(chǎn)的高性能、低功耗的LTE BC95 -B5 模組。
圖4 主控器結(jié)構(gòu)
主控MCU 與KW01 無線收模塊以及NB -IoT 通信模組采用UART 串口進行通信,路燈終端通過LTE BC95 -B5 NB-IoT 通信模組與NB -IoT 公網(wǎng)進行數(shù)據(jù)交換。主控器網(wǎng)關(guān)將數(shù)據(jù)分析并重新封裝以后,通過NB-IoT 網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程Internet 管理服務(wù)器,同時也接收來自遠(yuǎn)程服務(wù)器的查詢和控制指令。
主控器網(wǎng)關(guān)與路燈終端之間的數(shù)據(jù)收發(fā)同樣采用KW01 模塊,其數(shù)據(jù)收發(fā)過程類似于路燈終端單燈控制器軟件的設(shè)計思想。主控模塊通過UART 串口與兩個無線收發(fā)模塊進行通信。主控器網(wǎng)關(guān)通過LTE BC95 -B5 通信模組實現(xiàn)與遠(yuǎn)程NB - IoT 公網(wǎng)的通信。MCU 利用串口向NB -IoT 通信模組發(fā)送一系列的AT 指令,根據(jù)通信模組的返回結(jié)果來進行相應(yīng)的結(jié)果判斷。
主控網(wǎng)關(guān)通信邏輯封裝在TEcom 通信構(gòu)件中,在TEcom 通信構(gòu)件中實現(xiàn)網(wǎng)關(guān)與NB -IoT 公網(wǎng)的通信,構(gòu)件使用需要連接的遠(yuǎn)程公網(wǎng)的IP 地址和端口號初始化通信模組,通信模組連接基站時,可獲得連接的基站號、信號強度、信噪比以及基站分配的IP 地址等。通信模塊成功附著核心網(wǎng)后,主循環(huán)開始,每間隔一定時間,利用CoAP 協(xié)議或UDP 協(xié)議發(fā)送數(shù)據(jù)。TEcom 通信構(gòu)件利用串口接收中斷來接收數(shù)據(jù),將數(shù)據(jù)存入comData 數(shù)據(jù)結(jié)構(gòu)體中備用。為了保持主控器與遠(yuǎn)程NB -IoT 公網(wǎng)的鏈接,主控器需在一定時間間隔內(nèi)發(fā)送心跳包來保證自己和NB-IoT 公網(wǎng)之間的鏈接狀態(tài)。TEcom 通信構(gòu)件工作流程如圖5 所示。
圖5 主控器與NB-IoT 公網(wǎng)通信流程圖
路燈終端要和路燈客戶應(yīng)用端通信必須借助有固定IP 地址的中間設(shè)備來交換數(shù)據(jù)。課題組向第三方申請了一個具有固定IP 地址的Internet 服務(wù)器( 付費服務(wù),實際應(yīng)用中也可接入第三方提供的物聯(lián)網(wǎng)平臺) 作為NB-IoT 公網(wǎng)的管理服務(wù)器來運行轉(zhuǎn)發(fā)程序。
管理服務(wù)器根據(jù)不同的端口號,來判斷數(shù)據(jù)來自路燈終端還是客戶應(yīng)用服務(wù)器。路燈終端向管理服務(wù)器發(fā)送的每一幀數(shù)據(jù)都帶有自己的IMSI 號,NB-IoT 公網(wǎng)管理服務(wù)器根據(jù)此IMSI 號來確定數(shù)據(jù)來自哪個終端設(shè)備??蛻魬?yīng)用服務(wù)器發(fā)給管理服務(wù)器的每一幀數(shù)據(jù)中也都帶有IMSI 號,這樣管理服務(wù)器就知道客戶應(yīng)用服務(wù)器是要與哪個路燈終端通信。每當(dāng)路燈終端和客戶應(yīng)用服務(wù)器向管理服務(wù)器程序發(fā)送一幀數(shù)據(jù)時,管理服務(wù)器程序都會更新地址來映射表中相應(yīng)的IMSI 號,并向?qū)?yīng)的連接轉(zhuǎn)發(fā)數(shù)據(jù)。
//TE 與UAS 地址映射
private class Mapping
{
public string IMSI; //路燈終端IMSI 號
public Socket TESocket; //與TE 的連接
public Socket UASSocket; //與UAS 的連接
}
客戶應(yīng)用服務(wù)器與管理服務(wù)器建立連接,并將要監(jiān)聽的IMSI 號發(fā)送給管理服務(wù)器進行注冊,以完成應(yīng)用終端人機交互系統(tǒng)與路燈終端的匹配。用戶將對終端的操作信息保存在數(shù)據(jù)庫中,客戶端程序掃描數(shù)據(jù)庫,取出操作命令,并將其按照通信協(xié)議封裝成幀后發(fā)送給路燈終端,路燈終端接收到上層命令,對數(shù)據(jù)幀進行解析,之后執(zhí)行相應(yīng)的操作。同時客戶端程序也會收到路燈終端發(fā)送的數(shù)據(jù),將其解析后存放在數(shù)據(jù)庫中供客戶端程序處理使用。為保持?jǐn)?shù)據(jù)傳送的安全性,在通信層收發(fā)數(shù)據(jù)過程中,需對數(shù)據(jù)進行加密處理后再收發(fā)。
客戶應(yīng)用服務(wù)器與具有固定IP 的NB -IoT 公網(wǎng)管理服務(wù)器建采用Socket 建立傳送數(shù)據(jù)的鏈路??蛻魬?yīng)用服務(wù)器通信層的Socket 通過指定的IP 和Port 與NB-IoT 公網(wǎng)管理服務(wù)器進行綁定來建立鏈接。應(yīng)用服務(wù)器在一定時間間隔內(nèi)發(fā)送心跳包,保持與NB -IoT 公網(wǎng)管理服務(wù)器之間的鏈接狀態(tài)。
路燈客戶應(yīng)用服務(wù)器和NB -IoT 公網(wǎng)之間建立數(shù)據(jù)傳送的通信鏈路后,兩者之間即可進行數(shù)據(jù)通信。當(dāng)鏈路建立成功后,若頻繁傳送數(shù)據(jù),則通信鏈路會一直保持鏈接狀態(tài)。如果客戶服務(wù)器在規(guī)定時間內(nèi)沒有發(fā)送心跳包,則該通信鏈路將被自動拆除。另外當(dāng)客戶應(yīng)用服務(wù)器端關(guān)閉程序或取消監(jiān)聽后,也會主動拆除鏈路??蛻魬?yīng)用服務(wù)器偵聽程序功能封裝在UAS 通信構(gòu)件中,其流程如圖6 所示。
圖6 通信鏈路建立/拆除流程
根據(jù)前文所述思想開發(fā)了一個智能路燈通信測試系統(tǒng),并在實驗室模擬路燈環(huán)境對其進行了測試,運行至今已有數(shù)個月,結(jié)果表明,只要NB-IoT 基站信號強度達到30%以上,系統(tǒng)即能正常進行數(shù)據(jù)的收發(fā)。信號強度保持60%以上時,服務(wù)器可在5 秒以內(nèi)接收到終端數(shù)據(jù)。應(yīng)用服務(wù)器偵聽程序運行結(jié)果如圖7所示。
圖7 基于NB-IoT+WSN 技術(shù)的智能路燈通路測試
本文結(jié)合智能路燈網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和無線通信的特點,提出了基于NB-IoT 結(jié)合三鏈路終端組網(wǎng)協(xié)議的智能路燈系統(tǒng)通信框架,給出了框架中各層軟、硬件設(shè)計的基本要點。實驗測試表明該框架在信號穩(wěn)定的環(huán)境下通信順暢,運行良好,能較好地滿足無線智能路燈的通信需求。由于NB - IoT 技術(shù)廣覆蓋、深穿透、低成本和低功耗的特點,基于該技術(shù)的通信框架就能夠?qū)崿F(xiàn)智能路燈的低成本建設(shè)、高可靠運行以及綠色節(jié)能的目的。該通信框架雖然是針對智能路燈設(shè)計的,但其基于NB - IoT 的通信架構(gòu)具有遠(yuǎn)程無線通信系統(tǒng)的一般通用性,因此若將路燈終端作為環(huán)境信息采集終端,并結(jié)合WEBGIS 等地理信息系統(tǒng),則該通信框架就可以為環(huán)境及局部氣象監(jiān)測、智能交通等提供信息傳送通路,這就能大大提高通信設(shè)施的利用率,降低市政公共設(shè)施的建設(shè)和維護成本。