張藝琳 王宜懷 姚望舒 范小青
(蘇州大學計算機科學與技術學院 江蘇 蘇州 215000)
近年來,工業(yè)生產(chǎn)的環(huán)境、健康、安全一直是社會關注的焦點,工廠監(jiān)測愈發(fā)顯得重要。在無線通信技術和傳感器技術飛速發(fā)展的背景下,無線傳感網(wǎng)絡(Wireless Sensor Network,WSN)[1]因其安裝靈活無害、維護方便、擴展性高等優(yōu)點,應用領域日趨廣泛,尤其在工業(yè)監(jiān)測領域表現(xiàn)不俗。國內(nèi)外許多學者對面向工業(yè)領域的WSN通信網(wǎng)關進行了大量的研究和探索。文獻[2]以S3C2440A處理器為平臺,設計了一種GPRS-ZigBee網(wǎng)關系統(tǒng),用于地鐵變電站防誤閉鎖控制,但GPRS傳輸速度較慢。Wi-Fi技術作為一種短距離、較高傳輸速度的無線傳輸技術,可兼容現(xiàn)有以太網(wǎng),組網(wǎng)便利靈活[3],逐漸成為無線接入的主流標準。文獻[4]設計了一種用于監(jiān)測液壓支架壓力系統(tǒng)的網(wǎng)關,選用CC2530作為主控單元,結合Wi-Fi和ZigBee技術,但傳統(tǒng)ZigBee協(xié)議開發(fā)難度大、結構復雜、通信穩(wěn)定性差。文獻[5]利用Arduino平臺,設計了基于BLE/Wi-Fi的網(wǎng)關,但藍牙通信距離過短、覆蓋范圍小。433 MHz頻段相較其他高頻段無線,波長更長,穿透能力更好,覆蓋范圍更廣。
本文采用KW01Z128主控器和ESP8266Wi-Fi芯片為硬件平臺,設計并實現(xiàn)了一種基于Wi-Fi技術和433MHz頻段無線技術的WSN通信網(wǎng)關。使用Wi-Fi來解決WSN與Internet網(wǎng)絡協(xié)議兼容問題;對ZigBee協(xié)議進行場景適應性優(yōu)化,降低其復雜度,提高433 MHz頻段無線通信穩(wěn)定性;優(yōu)化軟件設計流程,提高網(wǎng)關整體通信性能。
本文以工廠監(jiān)測為場景,但并不局限于工廠監(jiān)測。整體通信框架參考物聯(lián)網(wǎng)分層模型[6],如圖1所示,自左向右分為感知層、網(wǎng)絡層和應用層。感知層利用傳感器實時感知、捕獲、測量環(huán)境物體的信息;網(wǎng)絡層以無線為傳輸媒介,通過各種通信協(xié)議傳送交互信息;應用層針對業(yè)務需求進行信息處理[7]。將該模型實例化,感知層由多個傳感器節(jié)點構成,節(jié)點間通過433 MHz頻段無線通信組成WSN;網(wǎng)絡層由網(wǎng)關組成,網(wǎng)關與感知層之間為433 MHz頻段無線通信,與應用層之間利用2.4 GHz Wi-Fi建立TCP通信;應用層由服務器和用戶交互程序構成。
圖1 無線通信網(wǎng)關系統(tǒng)框圖
網(wǎng)關在整個框架中有著承上啟下的作用,網(wǎng)關節(jié)點支持實現(xiàn)整體框架的數(shù)據(jù)上下行,數(shù)據(jù)上行時,負責匯總傳感器節(jié)點數(shù)據(jù)并完成433 MHz頻段無線協(xié)議與Wi-Fi協(xié)議的轉換和發(fā)送;數(shù)據(jù)下行時,負責接收并解析服務器數(shù)據(jù)后做出相應操作。
對網(wǎng)關硬件進行模塊化設計,按照功能需求主要包含主控器模塊、Wi-Fi模塊、RF天線模塊和電源模塊等,各模塊均使用電源供電,如圖2所示。
(a) 網(wǎng)關硬件結構框圖 (b) 實物圖圖2 網(wǎng)關硬件結構框圖及實物圖
KW01Z128作為基于ARM Cortex-M0+內(nèi)核的低功耗系列芯片,工作頻率高達48 MHz,可達nA級別超低功耗,提供UART、SPI、I2C等多種外設接口,擴展方便。芯片本身集成了SX1231射頻收發(fā)器,射頻模塊與主控器MCU之間使用芯片內(nèi)部SPI通信。SX1231是一款Sub 1 GHz的超低功耗射頻收發(fā)控制器,具有出色的靈敏度和高選擇性,支持多種無線頻段,具有低功耗、低成本、高度集成、通信穩(wěn)定等特點,適用于諸如工業(yè)監(jiān)測、智能家居、智能城市等多種物聯(lián)網(wǎng)產(chǎn)品的研究與開發(fā)[8]。本文選擇KW01Z128芯片,既能滿足對主控器低功耗的需求,也能避免增加獨立射頻收發(fā)器的不便。
Wi-Fi模塊采用集成ESP8266芯片的無線模塊,該模塊載波頻率為2.4 GHz,通信距離可達100 m,支持串行通信UART,支持IPV4、TCP/UDP和HTTP/FTP網(wǎng)絡協(xié)議。KW01Z128通過UART與Wi-Fi模塊通信。
通信模塊電路設計作為本文電路設計的關鍵,分為兩個部分,433 MHz頻段無線通信模塊電路設計和Wi-Fi模塊電路設計。
射頻收發(fā)器集成在KW01Z128內(nèi)部,所以該模塊電路設計包括KW01Z128最小硬件系統(tǒng)和射頻前端電路,如圖3、圖4所示。射頻前端電路需要適配433 MHz的載波頻率,進行阻抗匹配并留出天線接口。
圖3 KW01Z128最小硬件系統(tǒng)
圖4 射頻前端電路
Wi-Fi模塊采用ESP8266芯片,模塊原理如圖5所示。使用RT9193-33穩(wěn)壓芯片為其提供穩(wěn)定可控的3.3 V電壓。
圖5 Wi-Fi模塊電路圖
本文網(wǎng)關通信兼容433 MHz頻段無線通信和2.4 GHz Wi-Fi通信,433 MHz頻段無線通信使用適應性優(yōu)化版本的ZigBee協(xié)議,2.4 GHz Wi-Fi通信使用TCP協(xié)議。依托上述協(xié)議,自定義可擴展通信數(shù)據(jù)格式并設計整個軟件流程。
ZigBee技術作為WSN短距離組網(wǎng)的關鍵技術,因其低功耗、低成本、短時延等優(yōu)勢[9],已被廣泛應用于多個領域。但ZigBee協(xié)議作為復雜的通信協(xié)議適用于網(wǎng)絡拓撲結構容易動態(tài)變化的場景,且ZigBee協(xié)議開發(fā)難度較大,導致網(wǎng)絡的穩(wěn)定性不高[10]。本文設計面向節(jié)點固定、拓撲結構并不復雜的工廠監(jiān)測場景,對ZigBee協(xié)議進行適應性優(yōu)化,旨在使節(jié)點間無線通信更穩(wěn)定可靠快速。
傳統(tǒng)的四層ZigBee協(xié)議分為物理層、鏈路層、網(wǎng)絡層和應用層。對于每個網(wǎng)關管轄子節(jié)點固定且互不通信的場景,ZigBee協(xié)議網(wǎng)絡層并未起到實際作用,且復雜的幀結構在降低組幀解幀效率的同時,也造成通信不穩(wěn)定。為解決此問題,本文參考ZigBee協(xié)議分層思想,將網(wǎng)絡層舍棄,并對余下3層進一步精簡,保留必要字段。最終將無線通信協(xié)議分為物理層、鏈路層和應用層,如圖6所示。應用層傳輸有效負載并明確數(shù)據(jù)包功能,鏈路層確定數(shù)據(jù)包始發(fā)地和目的地,物理層負責過濾地址并保證整幀的完整性。
圖6 無線傳感網(wǎng)絡通信協(xié)議結構
應用層和鏈路層的封裝均由KW01Z128編程實現(xiàn),而物理層部分封裝由RF模塊自主實現(xiàn)。發(fā)送無線數(shù)據(jù)包時,按照應用層—鏈路層—物理層順序逐次封裝,接收數(shù)據(jù)包時,再按照物理層—鏈路層—應用層順序解析。應用層的幀頭幀尾確保實際有效負載完整,命令字及命令返回用來實現(xiàn)不同功能類型數(shù)據(jù)包的往來;鏈路層的幀號用來標識一定時間內(nèi)該幀的唯一性,源節(jié)點地址用來確認返回幀的目的地,而目標節(jié)點地址則是確定本次拓撲路徑的終點;物理層的硬件濾波地址用來過濾地址不匹配的數(shù)據(jù)包,CRC校驗保證整個通信幀完整。
為測試ZigBee協(xié)議適應性優(yōu)化后的性能,進行兩組網(wǎng)關和傳感器節(jié)點單播點對點通信測試,兩組測試只有通信協(xié)議幀不同。傳感器節(jié)點發(fā)送功率為13 dB,發(fā)送間隔為1 000 ms,波特率為100 Kbit/s,發(fā)送有效數(shù)據(jù)長度為1 B(按兩個協(xié)議組幀后實際通信數(shù)據(jù)包字節(jié)不同),連續(xù)向網(wǎng)關節(jié)點發(fā)送1 000個數(shù)據(jù)包,統(tǒng)計網(wǎng)關接收到數(shù)據(jù)包個數(shù)及傳輸時間;同時改變節(jié)點間傳輸距離,比較不同傳輸距離下的協(xié)議性能。重復測試3次取平均值,對比結果如圖7與圖8所示。
圖7 ZigBee協(xié)議適應性優(yōu)化前后丟包率對比
圖8 ZigBee協(xié)議適應性優(yōu)化前后傳輸時間對比
圖7的測試結果表明,在傳輸距離較近情況下,ZigBee協(xié)議適應性優(yōu)化前后丟包率相差不大,優(yōu)化后略好,但隨著傳輸距離增大,ZigBee協(xié)議適應性優(yōu)化后的丟包情況明顯更好。圖8中,ZigBee協(xié)議適應性優(yōu)化后的傳輸時間略優(yōu)于優(yōu)化前。實驗說明在節(jié)點固定、拓撲結構并不復雜的工廠監(jiān)測場景中,使用本文設計的ZigBee適應性優(yōu)化協(xié)議,通信更穩(wěn)定,實時性更高。
無論是433 MHz頻段無線通信,還是TCP通信,數(shù)據(jù)包都面向字節(jié)流,通信雙方需要就如何解讀實際數(shù)據(jù)進行約定。根據(jù)實際場景不同,數(shù)據(jù)格式也有差異,本文在工廠監(jiān)測場景下,給出了一套實用、可擴展的數(shù)據(jù)格式,如圖9所示。
圖9 網(wǎng)關通信的數(shù)據(jù)格式
UserData為網(wǎng)關上傳數(shù)據(jù)至服務器的數(shù)據(jù)格式,其中NodeData既屬于UserData的一部分,也是無線傳感網(wǎng)絡節(jié)點間傳輸數(shù)據(jù)的格式。UserData直接包含NodeData,提高應用程序自由度的同時也提高了數(shù)據(jù)格式的擴展性,能夠更好應用于多種實際場景。
使用3.1節(jié)的ZigBee適應性優(yōu)化協(xié)議和3.2節(jié)的數(shù)據(jù)格式,并遵循模塊化思想,軟件按功能模塊分為初始化、自適應、數(shù)據(jù)匯總、數(shù)據(jù)上傳和接收服務器數(shù)據(jù)。軟件主循環(huán)流程如圖10所示。
圖10 網(wǎng)關程序主循環(huán)流程
網(wǎng)關上電后,初始化UART、SPI、RF等外設模塊,實例化UserData結構體對象getdata,讀取Flash中網(wǎng)關配置信息并配置網(wǎng)關,初始化Wi-Fi模塊,接入網(wǎng)絡并建立TCP連接。
自適應,即網(wǎng)關對于傳感器節(jié)點增刪的自主感知。首先從網(wǎng)關可配置信息中獲取預設可能存在的傳感器節(jié)點地址,通過433 MHz頻段無線向可能存在的傳感器節(jié)點發(fā)出請求,并通過同樣的通信方式來接收傳感器節(jié)點的回應,最終確定該網(wǎng)關管轄有效節(jié)點地址和個數(shù)。
網(wǎng)關采用請求-應答的方式進行數(shù)據(jù)匯總,設計使用分組雙驅動滑動窗口機制。如圖11所示,分組雙驅動滑動窗口是在對有效節(jié)點分組基礎上使用兩種驅動條件來進行右向窗口滑動,一種是窗口最左側對應的已請求節(jié)點收到了應答,另一種為最長等待應答時長耗盡。自適應結束后,網(wǎng)關管轄有效節(jié)點地址和個數(shù)已知,設定每組大小為10,窗口大小為5。首先將當前組的有效節(jié)點地址和個數(shù)填入getdata的對應字段,向窗口范圍內(nèi)也就是列表前5個節(jié)點依次發(fā)送請求,等待傳感器節(jié)點應答,若收到窗口內(nèi)最左側節(jié)點的應答或最長等待應答時長耗盡,則窗口向右滑動一位,向第6個節(jié)點發(fā)送請求,以此類推,直到該組10個節(jié)點請求完畢,其間收到的傳感器數(shù)據(jù)直接填入getdata。此時,若有未能收到應答的節(jié)點,則暫?;瑒哟翱?,開始重傳。對于首次請求未能應答的節(jié)點,再次進行請求,此次請求不再使用滑動窗口,而是逐個發(fā)出請求并等待應答,若還是有未能應答的節(jié)點,在該組第2次問詢?nèi)拷Y束后,發(fā)起第3次請求,依舊是逐個問詢。若總計3次請求都未得到節(jié)點回應,則認為該節(jié)點丟失,最終在人機交互程序中給出提示。至此,該組節(jié)點的數(shù)據(jù)收集完畢,繼續(xù)進行下一組,滑動窗口重新開始滑動,直到所有有效節(jié)點收集完畢,一次完整的匯總周期結束。這樣大大地提高了通信的可靠性,適用于低實時性、高穩(wěn)定性要求的場景。即使每組傳感器節(jié)點未能全部應答,人機交互程序也可以根據(jù)網(wǎng)關上行數(shù)據(jù)幀中有效節(jié)點個數(shù)及有效節(jié)點地址字段與傳感器數(shù)據(jù)的對比結果判斷節(jié)點失聯(lián)情況。
圖11 網(wǎng)關請求數(shù)據(jù)的雙驅動滑動窗口機制
數(shù)據(jù)上傳以數(shù)據(jù)匯總過程中的分組為單位,每組數(shù)據(jù)收集完畢時,getdata也更新結束,隨即進入該組數(shù)據(jù)上傳階段。網(wǎng)關與服務器間的TCP連接在程序流程多處進行判斷重連操作,從而保證通信雙方連接穩(wěn)定。主控器將完整數(shù)據(jù)幀getdata通過UART發(fā)送至Wi-Fi模塊,Wi-Fi模塊將其按照TCP協(xié)議封裝后發(fā)送給服務器,若未發(fā)送成功,則認為TCP斷開連接,重連后再次發(fā)送,如此3次后還是未能發(fā)送,則認為發(fā)送失敗,該組發(fā)送流程結束。發(fā)送結束后,清除getdata填充數(shù)據(jù),為下一幀數(shù)據(jù)做準備。為解決Wi-Fi模塊死機,主循環(huán)每999 s主動斷開后重連TCP,若3次建立連接失敗,則判定Wi-Fi模塊死機,重啟Wi-Fi模塊。
網(wǎng)關接收服務器數(shù)據(jù)屬于整個框架中數(shù)據(jù)下行的重要部分,用戶利用交互程序按照雙方約定數(shù)據(jù)格式組幀后發(fā)送給網(wǎng)關,Wi-Fi模塊接收數(shù)據(jù),觸發(fā)UART中斷,主控器在UART中斷中接收數(shù)據(jù)并執(zhí)行對應命令,結束后繼續(xù)執(zhí)行中斷前操作。
本文網(wǎng)關性能測試中,網(wǎng)關與傳感器節(jié)點都基于KW01Z128硬件平臺。
為測試網(wǎng)關整體性能,搭建1個網(wǎng)關和10個傳感器節(jié)點的自組網(wǎng),服務器運行偵聽程序,通過網(wǎng)關收集傳感器節(jié)點數(shù)據(jù),并上傳至偵聽程序,檢驗網(wǎng)關從收集數(shù)據(jù)到上傳數(shù)據(jù)的整體通信性能。
通過網(wǎng)關連續(xù)收集10個傳感器節(jié)點的 1 000個數(shù)據(jù)包,保證所有節(jié)點正常運行,統(tǒng)計接收、丟失、錯誤數(shù)據(jù)包的數(shù)量;改變網(wǎng)關與傳感器節(jié)點的平均距離,測試網(wǎng)關整個通信過程中收發(fā)數(shù)據(jù)的性能。進行3次測試后取平均值,實驗數(shù)據(jù)如表1所示。
表1 網(wǎng)關整體通信丟包率和誤包率測試
可以看出,該網(wǎng)關實現(xiàn)預期設計目標,測試效果良好。隨著傳輸距離增加,丟包率與誤包率也隨之增大,但增長幅度仍在可控范圍內(nèi),通信的穩(wěn)定性、可靠性都有保障,完全可以滿足工廠監(jiān)測場景的需求。
網(wǎng)關整體通信的性能主要取決于無線組網(wǎng)通信及Wi-Fi通信的性能,其中無線組網(wǎng)通信尤為關鍵。為了進一步體現(xiàn)本網(wǎng)關通信穩(wěn)定、可靠、及時的優(yōu)點,對無線組網(wǎng)的通信性能進行分析比較。
將本文網(wǎng)關與文獻[11]設計的ZigBee+Wi-Fi網(wǎng)關進行對比,搭建與之相同的測試環(huán)境,來比較兩者無線組網(wǎng)通信的丟包率和誤包率。搭建1個網(wǎng)關與3個傳感器節(jié)點的自組網(wǎng),通過網(wǎng)關連續(xù)循環(huán)向傳感器節(jié)點發(fā)送100個數(shù)據(jù)包,統(tǒng)計接收、丟失、錯誤數(shù)據(jù)包個數(shù),同時改變傳輸距離,測試不同距離下的丟包率與誤包率。需要指出的是,該項對比實驗結果是進行20次測試后所得的平均值。
圖12與圖13給出了本文與文獻[11]的網(wǎng)關無線組網(wǎng)丟包率與誤包率變化曲線的對比。如圖12所示,本文的無線組網(wǎng)通信丟包率在10 m到80 m距離范圍內(nèi)低于文獻[11],顯然本文的無線組網(wǎng)通信穩(wěn)定性更高。如圖13所示,本文的無線組網(wǎng)通信誤包率雖然在10 m處略高于文獻[11],但在該距離,兩者的誤包率都非常低,且在15 m到80 m距離范圍內(nèi)本文誤包率明顯更低,因此本文的無線組網(wǎng)通信可靠性更高。
圖12 不同網(wǎng)關無線組網(wǎng)丟包率變化曲線
圖13 不同網(wǎng)關無線組網(wǎng)誤包率變化曲線
文獻[12]和文獻[13]都在各自提出的無線組網(wǎng)方案上對網(wǎng)絡中的數(shù)據(jù)傳輸時間進行了測試。使用本文網(wǎng)關搭建與它們相同的測試環(huán)境,使用1個網(wǎng)關與5個傳感器節(jié)點組網(wǎng)(總計6個節(jié)點無線組網(wǎng)),每個傳感器節(jié)點依次向網(wǎng)關節(jié)點傳輸100個數(shù)據(jù)包,網(wǎng)關節(jié)點對傳感器節(jié)點的傳輸時間進行測試統(tǒng)計,測試3次取平均值,對比結果如圖14所示。
圖14 不同方案無線組網(wǎng)數(shù)據(jù)傳輸時間曲線
實驗結果分析可知,無線組網(wǎng)網(wǎng)絡數(shù)據(jù)的傳輸時間受傳輸距離影響,傳輸距離越大,傳輸時間越長。三者的傳輸時間都維持在毫秒級,本文的傳輸時間雖然比文獻[12]略高,但明顯優(yōu)于文獻[13]。因此,本文的無線組網(wǎng)網(wǎng)絡傳輸時間雖然未能達到最優(yōu),但是完全能夠滿足工廠監(jiān)測實際場景的實時性要求。
本文設計一款基于Wi-Fi技術的無線傳感網(wǎng)通信網(wǎng)關。通過對ZigBee協(xié)議的適應性優(yōu)化,改善傳統(tǒng)ZigBee協(xié)議穩(wěn)定度不足的問題,提高網(wǎng)關433 MHz頻段無線通信的穩(wěn)定性。并在此協(xié)議基礎上,設計數(shù)據(jù)格式和軟件流程,實現(xiàn)具有可行性與適應性的網(wǎng)關整體方案設計。測試結果表明,該網(wǎng)關能夠更穩(wěn)定、可靠、及時地完成數(shù)據(jù)上下行,滿足實際需求。目前,該設計已在某工廠EHS(Environment、Health、Safety)監(jiān)測系統(tǒng)中成功應用。