肖廣兵 肖菁菁 陳勇



摘 要:無線傳感網絡傳感器節點通過自組織網絡進行數據信息交互。由于每個傳感節點僅能獲得局部信息,容易在數據信息交互過程中引發數據沖突,因此設計一種基于CSMA/CA協議的無線傳感器網絡數據沖突檢測系統,主要包括TC35I電源模塊、傳感器節點檢測模塊、無線通信模塊、手持式檢測終端、主處理器STM32F103VB、無線打印機等。系統通過分析對比每個傳感節點對數據包的接收狀態,實時檢測無線傳感器網絡中潛在的數據沖突;同時,數據沖突檢測結果通過上位機軟件進行實時顯示,具有結構簡便、組網簡單等特點,可以方便地拓展到其它無線網絡中。
關鍵詞:無線傳感器網絡;傳感器節點;數據沖突
0 引言
無線傳感器網絡通過自組織方式組建,具有便捷和成本低等特點,廣泛應用于物聯網感知層,能夠在軍事作戰、環境監測、搶險救災等場景中實現數據采集、處理和發送[1-3]。為提高節點能量利用率,延長網絡生存周期,有學者提出一種休眠/喚醒節能技術[4],但是節點缺乏中心控制單元,存在數據沖突風險,休眠節點被喚醒時可能與其它節點發生數據沖突,引發嚴重的數據包丟失。因此,如何提高無線傳感網絡數據通信的可靠性,對網絡中潛在的數據沖突進行檢測,是當前研究熱點和難點。
如圖1所示,假設無線傳感網絡中有3個節點。其中,節點n3原處于休眠狀態,節點n1將其監測到的數據信息傳輸給節點n2,若節點n3從休眠狀態被喚醒,與節點n1于同一時刻發送數據包至節點n2,則會在節點n2處產生數據沖突,導致其無法接收到節點n1的數據包,造成嚴重的數據包丟失。
在無線傳感器網絡中,節點休眠能夠提高能量利用率,延長網絡生存壽命,但也存在數據沖突風險。在無線傳感網絡節點隨機休眠模式下,檢測數據沖突的主要方法可分為建模算法分析和冗余機制兩類。
建模算法分析數據沖突最具代表性模型是 Bianchi[5]在 2000 年提出的離散時間馬爾科夫鏈模型。其以不定長時隙為基礎,按照二進制退避算法計算并總結節點某一時刻可能存在的狀態和轉移關系,推導出馬爾科夫鏈模型,通過分析可計算出節點在某一時刻各狀態的概率,從而檢測出數據沖突,但原始馬爾科夫鏈模型有傳輸次數限制,在掛起過程中存在問題等,因此提出了一種基于馬爾科夫模型的異常節點檢測策略[6]。該策略將自組織網絡中的各個節點狀態轉換過程作為一個馬爾科夫過程并采用馬爾科夫模型預測節點狀態,檢測節點異常狀態,判斷節點處是否存在數據沖突。隨后有大量文獻對馬爾科夫鏈模型作出改進。如Felemban& Ekici[7]在馬爾科夫鏈模型的基礎上增加了退避掛起的概率計算。首先利用Bianchi提出的離散時間馬爾科夫鏈模型計算各個節點發送數據包的概率,其次將信道分為3種狀態,分別為沖突、空閑、成功傳輸,最后將退避掛起概率帶入原始馬爾科夫鏈中,計算新的發送數據包概率后帶入信道3種狀態模型中,重新檢測數據沖突。但該方案較復雜且不適宜于系統中長期檢測。
冗余機制是近年來檢測數據沖突的主流方法,包括數據重發與重復偵聽。Gollakota等[8]提出用ZigZag策略處理數據沖突問題,研究人員利用節點重發數據包后沖突位置不同的特性檢測是否存在數據沖突,通過重發機制解決數據沖突,但該方法浪費網絡資源,網絡延時嚴重; Fu等[9]提出密集網絡載波偵聽機制,該機制基于疊加干擾模型且擴大了偵聽范圍、提高了增聽能力,通過重復偵聽信號功率增量可判斷是否存在數據沖突,從而避免密集網絡中的數據沖突問題,但該方案缺乏實際系統的驗證且能量消耗過多。
針對上述方法的不足,本文提出一種基于載波偵聽多路訪問/沖突避免機制(Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)的無線傳感器網絡數據沖突檢測系統。該檢測系統引入傳感器節點檢測模塊,對數據沖突進行檢測與診斷,利用對傳感器節點接收其鄰居節點數據包狀態的檢測,判斷是否存在數據沖突,無線傳感器網絡將檢測信息傳輸至檢測終端、上機位與無線打印機進行協作管理。該系統僅需節點的局部信息即可有效檢測并解決無線傳感器網絡中休眠節點喚醒時引發的數據沖突問題,具有可靠的特點且結構簡單、性能穩定、易于安裝、成本較低、效率較高,可實現節點隨機分布環境下數據沖突檢測,為避免數據沖突問題提供有效依據,可提高無線傳感器網絡可靠性。
1 系統設計與工作原理
無線傳感器網絡數據沖突檢測系統由TC35I電源模塊、傳感器節點檢測模塊、無線傳感模塊、手持式檢測終端、主處理器STM32F103VB、無線打印機等組成。系統采用雙處理器結構優化、處理相應數據,根據節點數據包接收狀態進行檢測分析,診斷無線傳感器網絡是否存在數據沖突。數據沖突檢測系統結構如圖2所示。其中,每個節點均由TC35I電源模塊供電。
當數據沖突檢測系統對傳感器節點數據包接收狀態進行在線檢測時,檢測終端通過主處理器STM32F103VB對每個傳感器節點發送檢測指令。各傳感器節點在接收檢測指令后分別檢測每個傳感器節點接收數據包的狀態,并將檢測到的數據信息通過無線傳感網絡發送至檢測終端,再由主處理器STM32F103VB對接收到的數據信息進行分析、處理、存儲與無線打印,完成無線傳感器網絡數據沖突檢測。
2 硬件電路設計
本文設計的無線傳感網絡系統主要包含以下模塊:TC35I電源模塊、STM32F103VB主處理器模塊、CC2530無線傳感模塊。
2.1 電源模塊設計
TC35I模塊為直流電源,其電源范圍為3.3~5.0V,典型值為 4.2V[10]。在休眠狀態時,模塊平均電流消耗為3.5mA,在空閑狀態時為 25mA,而在發射狀態時為300mA,峰值時為 2.5A。其芯片支持雙12位A/D轉換器,電流于數據傳輸時達到峰值,此時,若送入模塊的電源電壓高于3.3V或電壓下降值超過0.4V,模塊將會自動關斷[11-12]。TC35I 模塊通過一個 ZIF(Zero Insertion Force,零阻力插座)連接器引出 40 個引腳,將其劃分為電源、數據輸入/輸出、SIM卡、音頻接口和控制5個部分。其中,引腳1-5為正電源輸入腳,引腳6-10為電源地,引腳24-29分別為 CCIN、CCRST、CCIO、CCCLK、CCVCC 和CCGND[13]。此外,通過啟動管腳將TC35I模塊進行啟動后,需對其進行工作模式、波特率等一系列參數值的設定。
節點ni進行數據包傳輸時,當檢測到的數據信息為1時,分為兩種情況:第一種情況為節點nj成功接收節點ni傳輸的數據包,數據通信正常;第二種情況為節點ni與節點nt同時傳輸數據包,節點nj接收nt數據包失敗,但該種情況發生概率較小。當檢測到的數據信息為0時,需將節點ni進行隨機退避,隨機退避后若未檢測出同時傳輸,則說明節點nj處未產生數據沖突,導致數據包丟失的原因分為3類:節點休眠、通信鏈路不穩以及初始時隙無其它節點。節點休眠丟失數據包指由于處于休眠狀態的節點電源關閉,無線電收發器不再進行工作,導致節點既無法發送數據包也無法接收數據包,即使處于節點ni廣播范圍內也不能接收到對方發出的數據包;通信鏈路不穩丟失數據包指由于通信鏈路質量處于無規律變化狀態,節點ni廣播時,節點ni與節點nj的通信鏈路質量可能急劇下降,導致節點nj無法接收到節點ni的數據包,造成數據包丟失;初始時隙無其它節點丟失數據包指由于節點nj不處于節點ni廣播范圍內,無法接受到數據包。隨機退避后若檢測出同時傳輸,則說明該節點處存在數據沖突,具體原因是由于節點nt處于休眠狀態,致使節點ni偵聽到信道空閑進行廣播,節點ni于t時刻發送數據包至節點nj時,節點nt喚醒同時發送數據包至節點nj,節點nj處產生數據沖突,導致數據包丟失。本文檢測系統主要功能是檢測數據沖突的情況,即檢測到數據信息為“0”時,節點進行退避后再偵聽并同時傳輸。
數據具體軟件流程如圖7所示。CC2530軟件需先進行系統上電,主程序運行后將網絡初始化,若未初始化,則重新初始化網絡;若初始化成功,則接收節點檢測信息。將檢測信息進行存儲和上傳后,判斷是否繼續接收節點信息。STM32F103VB軟件同樣需先進行系統上電與網絡初始化,準備就緒后,發送檢測指令,讀取E2PROM的存儲數據,為STM32F103VB主處理器分析處理數據提供依據,節點數據包接收、分析狀態檢測信息后,將進行數據傳輸、存儲與無線打印,最后判斷是否結束檢測,未結束則繼續發送指令進行檢測。
4 結語
文中結合傳感器節點接收數據包狀態檢測和無線通信技術,設計了基于CSMA/CA通信協議的無線傳感器網絡數據沖突檢測系統。系統采用STM32F103VB主處理器和CC2530無線傳感節點雙處理器結構,實現了傳感器節點在線檢測及節點自身狀態信息的實時傳輸與數據處理能力優化。利用 TC35I模塊為傳感節點供電,確保傳感器節點正常工作。該系統結構簡單、成本較低、運作靈活、不受地形條件控制,具有廣闊的應用前景。
參考文獻:
[1] 肖麗仙, 何永泰, 李雷,等. 片上集成無線傳感器節點光電微能源設計模型建立與分析[J]. 電測與儀表,2016,53(07): 118-123.
[2] HUNG F Y,MARSIC I. Performance analysis of the IEEE 802.11 DCF in the presence of the hidden stations[J]. Computer Networks. OCT, 2010, 54(15): 2674-2687.
[3] 李天,石鑫,李永倩. 基于輸電線路監測的無線傳感器網絡路由優化技術研究[J]. 電測與儀表, 2015, 52(21): 6-10.
[4] 楊韜,田立勤. 基于休眠/喚醒的無線傳感器監控系統的節能技術研究[J]. 信息通信, 2018(7): 51-54.
[5] BIANCHI G. Performance analysis of the IEEE 802.11 distributed coordination function[J]. IEEE Journal on Selected Areas in Communications, 2000, 18(3): 535-547.
[6] 黃小龍,蔡艷,屈遲文. 改進的馬爾科夫模型的異常節點檢測算法[J]. 計算機工程與設計,2018, 39(6): 1586-1590.
[7] FELEMBAN E, EKICI E. Single-hop IEEE 802.11 DCF analysis revisited: accurate modeling of channel access delay and throughput for saturated and unsaturated traffic cases[J]. IEEE Transactions on Wireless Communications, 2011, 10(10): 3256-3266.
[8] 張波, 黃本雄, 戴彬, 等. 一種基于類似網絡編碼的無線網絡隱藏終端問題的解決方案[J]. 小型微型計算機系統, 2010, 31(5): 875-878.
[9] 劉圣波,付立群. 全雙工CSMA網絡中的隱藏終端問題研究[J]. 計算機科學,2018, 45(S2): 282-286.
[10] SONG L Q,SUN H Y,ZHOU Y D,et al. New design for electronic blood pressure monitor based on GSM module TC35i[C]. 2014 Sixth International Conference on Measuring Technology and Mechatronics Automation,2014:426-429.
[11] 鄭爽,肖丹. 基于TC35i模塊的家居環境報警裝置的軟件設計[J]. 黑龍江科學, 2011, 2(5): 46-48.
[12] 楊揚. 基于TC35i的智能傳輸系統[J]. 電子測試, 2016(16): 9-18.
[13] 周玉棟,孫懷遠,葛斌. 新型穩定的TC35i短信模塊電源設計[J]. 現代科學儀器,2011(1): 31-33.
[14] 蘇康友,劉榮貴,王佳穎. 基于STM32F103的數據采集系統設計[J]. 信息與電腦:理論版, 2018 (21) : 74-78.
[15] 顏秋男,胡毅. STM32F103VB的SD卡在應用編程設計[J]. 單片機與嵌入式系統應用, 2012, 12(2): 29-39.
[16] 邢文姬,任天平. 前照燈調節器自動測試技術研究與實現[J]. 機床與液壓, 2013, 41(20): 124-126+156.
[17] 權曉紅. 虛擬I~2C在停車場門禁系統中的應用[J]. 自動化與儀器儀表,2014(3): 74-78.
[18] 李駿霄,王雪梅,許哲,等. 高精度小電流恒流源的設計與實現[J]. 中國測試, 2017, 43(8): 136-144.
[19] 白宏圖. 基于CC2530的無線傳感器網絡節點設計[J]. 電子設計工程, 2019, 27(5): 147-150+155.
[20] 楊嬌, 許志恒. 基于CC2530的智能家居節點軟硬件設計[J]. 數字技術與應用, 2018, 36(11): 132-134.
[21] 王東軍, 林曉煥, 鄭心心. 基于CC2530的開口式采集系統與ZigBee網絡節點設計[J]. 電腦知識與技術,2017, 13(32): 259-261.
[22] 曾德康. 基于單片機的數據串口通信研究[J]. 通信電源技術, 2019, 36(3): 194-195.
[23] ZHAO G. Analysis and design of collision avoidance optimization algorithm based on CSMA/CA[A]. Proceedings of the 2018 International Symposium on Communication Engineering & Computer Science[C],2018: 6.
[24] 周文剛, 譚永杰,朱海. 基于時隙CSMA的水聲無線傳感器網絡節能強化學習算法[J]. 計算機測量與控制, 2014, 22(12): 4035-4039.
[25] 王琳. 位圖剖析與應用[J]. 中外企業家,2018(36): 209-210.
[26] TELEFONAKTIEBOLAGET LM ERICSSON. Patent issued for RAN signaled Bitmap splitting for roaming and non-roaming users (USPTO 10,264,460)[J]. Computers, Networks & Communications,2019.
(責任編輯:江 艷)