《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于ZigBee的多傳感器物聯網無線監(jiān)測系統
基于ZigBee的多傳感器物聯網無線監(jiān)測系統
來源:電子技術應用2013年第3期
石繁榮, 黃玉清, 任珍文
西南科技大學 信息工程學院, 四川 綿陽 621010
摘要: 針對無線傳感器網絡在物聯網無線監(jiān)測中的應用,基于ZigBee技術組建樹形無線網絡,以SoC芯片CC2530為核心設計模塊化無線節(jié)點硬件,集成了含溫濕度和振動量等的多傳感器模塊,基于Z-stack協議棧完成了多傳感器有限狀態(tài)機程序和低功耗節(jié)點程序,并改進了協議棧對鏈路失效的管理機制。通過大量實驗獲取統計數據,無線節(jié)點點對點傳輸速率典型值為20 kb/s,多跳傳輸典型值為0.3 kb/s,系統具有較強的擴展性,能夠較好地滿足智能家居和安防監(jiān)測等物聯網應用。
中圖分類號: TP274+.5
文獻標識碼: A
文章編號: 0258-7998(2013)03-0096-04
The multi-sensor Internet of Things wireless monitor system based on ZigBee
Shi Fanrong, Huang Yuqing, Ren Zhenwen
School of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, China
Abstract: According to the application of WSN in Internet of Things wireless monitor, The system based ZigBee to build tree wireless network, designed modular wireless node hardware use SoC chip CC2530 as core unit, integrated multi-sensor module include temperature and humidity and vibration quantity etc, based on Z-stack designed multi-sensor finite-state machine software and low power consumption node software, and improved the link failure management mechanism of stack. With the large experiment data, proving that the typical transmission rate of single hop is 20 kb/s, the typical transmission rate of multi-hop is 0.3kb/s, and the system has strong expansibility, could well satisfy application of the internet of things such as intelligent household and security monitoring。
Key words : Internet of Things; multi-sensor; ZigBee; CC2530; low power consumption; wireless monitor

    無線傳感器網絡WSN(Wireless Sensor Network)是信息科學的研究熱點,它是一種自組織的多跳路由無線網絡,通過在監(jiān)測區(qū)域中部署大量低成本的無線傳感器節(jié)點,節(jié)點間協同工作從而實現信息采集和傳輸。

    隨著傳感器技術、微處理器技術、芯片技術和無線通信技術的發(fā)展,以及片上系統SoC(System on Chip)的出現,為無線傳感器網絡提供了單芯片解決方案,極大降低了無線傳感節(jié)點的體積、功耗和成本。無線傳感網絡已被廣泛地應用到軍事、醫(yī)療監(jiān)護、智能交通和倉儲管理等領域。隨著物聯網應用的推廣及成本降低,無線傳感器網絡將被更廣泛的應用[1-3]。
1 系統結構
    系統的主要功能包括傳感器數據采集、ZigBee組網與通信[4]、網關管理與節(jié)點設備無線控制、傳感器數據界面顯示與計算等。本文主要工作包含無線節(jié)點硬件設計、節(jié)點程序設計、傳感器網絡組建和數據協議定義,以及節(jié)點低功耗設計。系統基于ZigBee無線通信技術組建樹狀網絡,通過傳感器節(jié)點采集并組建傳感器數據幀,通過多跳路由匯集到網關設備上,實現環(huán)境信息監(jiān)測。
    系統網絡拓撲結構如圖1所示[5-6],系統主要包含了網關設備(協調器,Coordinator)、路由節(jié)點和傳感器節(jié)點以及一些可擴展的接口。協調器主要負責啟動和配置整個網絡,通過掃描物理信道能量選擇一個空閑信道作為網絡的信道。路由節(jié)點(Router)主要功能為批準其他設備加入網絡、多跳路由和協助其子節(jié)點完成通信。傳感器節(jié)點主要為傳感器數據的采集與傳輸。
2 CC2530多傳感器無線節(jié)點硬件設計
    CC2530是一款符合ZigBee標準的SoC芯片[7-8],集成了無線電收發(fā)器、8051內核、串口、ADC和定時器等外設,利用CC2530作為無線傳感器網絡解決方案,節(jié)點成本、體積和功耗都能夠得到大幅度降低。


    CC2530射頻模塊主要完成無線信號的收發(fā)功能,負責ZigBee協議相關操作,并控制采集、存儲和處理傳感器數據。底板由供電模塊及調試端口構成,傳感器擴展板部署了溫濕度傳感器SHT11、加速度傳感器ADXL202和壓力傳感器MCS5540。
2.2 CC2530射頻模塊設計
 ZigBee無線通信模塊以CC2530為核心,芯片工作電壓為2~3.6 V,節(jié)點提供了標準I/O接口,容易嵌入到其他設備中,可以替代現有的無線控制方式,并獲取設備工作記錄。
2.3 傳感器模塊設計
    溫濕度傳感器采用SHT11,CC2530以P1.6、P1.7分別與DATA和SCK線連接,CC2530通過程序控制實現SHT11控制和讀寫信號。
    加速度傳感器采用ADXL202實現,用來采集振動信號,ADXL202E分別從Xout和Yout輸出兩個方向的加速度信息,以不同的占空比表示,CC2530采用定時器口線P1.3、P2.0與ADXL202E連接,測量其占空比。
    氣壓傳感器采用MCS5540,提供氣壓測量和溫度測量,以SCLK、DIN和DOUT組成讀寫總線,CC2530通過USART 0口與MS5540C連接。
3 基于Z-stack協議棧的節(jié)點程序設計
3.1 節(jié)點功能分析

    節(jié)點程序基本功能如圖3所示,基于協議棧應用層實現,具體的功能實現按照節(jié)點的邏輯關系有所區(qū)別。

    節(jié)點設備輸出控制:控制操作的發(fā)起者可以是網絡中的節(jié)點,也可能是節(jié)點自己或者網關控制平臺。如將ZigBee節(jié)點作為溫度報警裝置的控制器,當節(jié)點自身具有溫度傳感器裝置時,節(jié)點可以在溫度超過設置的范圍時發(fā)起報警。
    低功耗管理為感知節(jié)點發(fā)送功率自調整機制和休眠機制,以提高對能量的使用效率,避免不必要傳輸帶來的能量損耗。鏈路檢測為支撐子節(jié)點管理和節(jié)點低功耗管理功能,檢測父子節(jié)點間鏈路可靠性、信號質量和獲取接收信號強度指示RSSI(Received Signal Strength Indication)值。
3.2 數據結構設計
    網絡中傳輸的數據實體在應用層被封裝成幀,對于協議棧為透明數據。數據幀在網絡中透明傳輸,只有目的地址節(jié)點的相匹配的應用對象可對數據進行解析處理。
    (1) 設備描述符數據結構
    節(jié)點設備簡單描述符向協調器報告節(jié)點屬性、網絡地址、擴展地址和節(jié)點父節(jié)點網絡地址,以及支持的設備個數、類型、設備標號和控制/狀態(tài)等相關信息。設備簡單描述符結構如圖4。

    NWK_Addr鎖定源/目標節(jié)點,再由C_ID鎖定節(jié)點上對應設備,從而正確地解析/控制指定節(jié)點上特定設備。
 (3) 設備控制命令結構
    設備控制是對指定節(jié)點的指定外設控制的過程,用戶可以通過網關發(fā)起控制,傳感器節(jié)點也可以發(fā)起控制命令??刂泼罱Y構如圖6。

3.3 基于有限狀態(tài)機的傳感器控制程序設計
    傳感器節(jié)點周期性地采集并傳輸數據,通過進入休眠狀態(tài)以節(jié)省節(jié)點能量。應用層程序對象通過osal_start_timerEx( )函數,設置傳感器數據采集定時任務,基于有限狀態(tài)機FSM(Finite State Machine)的程序設計如下。
  while( FSMstate_S != IDEL )
      { switch(FSMstate_S)
         { case Sensor_RD_status:                      //傳感器轉換
        { if( 轉換成功 )
           {  ……
              FSMstate_S = IDEL;                     //退出
        }
          else  FSMstate_S = ResetSeriInterface ;
           break;}
                                            //其他狀態(tài)
    case ResetSeriInterface:                  //啟動串行總線
      {  ……
        FSMstate_S= Sensor_RD_status;                     //轉換
     break;}
    default: FSMstate_S= IDEL ; break;
     }//--switch
    }//--while
3.4 節(jié)點鏈路失效管理
    Z-Stack協議棧的網絡層支持節(jié)點路由管理和網絡,而因突發(fā)事件如掉電、失效和重啟等引發(fā)子節(jié)點丟失網絡,協議棧沒有提供完整的解決方案[10]。
    節(jié)點失效鏈路管理,如圖7所示為父節(jié)點死亡和重啟后,造成子節(jié)點鏈路失效的情形。由于父節(jié)點因突發(fā)原因失效,如被破壞或供電中斷等,節(jié)點不能通知其相鄰節(jié)點,從而導致子節(jié)點仍然認為其父節(jié)點存在于網絡中,并不斷向其發(fā)送數據,若節(jié)點采用應答傳輸機制,則會長時間等待父節(jié)點的應答。上述兩種情形都會導致子節(jié)點與網絡的通信不可靠,節(jié)點網絡地址分配混亂和重復。

    節(jié)點移動鏈路管理,如圖8為節(jié)點移動后造成通信鏈路中斷、功耗增大等問題,如父子節(jié)點之間被加入障礙物。感知節(jié)點移動后,與R2的距離遠遠小于與R1的距離,原來只需較小的發(fā)射功率則可與R1建立可靠的通信連接,而此時感知節(jié)點必須提高發(fā)射功率。

 父節(jié)點返回的匹配消息報告給節(jié)點應用層,子節(jié)點首先撤銷正在執(zhí)行的定時任務并判斷消息。若消息為真則表明鏈路仍然可靠,并在定時T1結束后設置下一次傳感器轉換定時。否則節(jié)點將重啟網絡層重新加入網絡。
3.5 基于RSSI的節(jié)點低功耗設計
    無線傳感器節(jié)點能量消耗主要在于節(jié)點無線通信[9],針對網絡環(huán)境穩(wěn)定且較少移動的節(jié)點,子節(jié)點可基于RSSI值調整發(fā)射功率,根據節(jié)點間的實際信道質量,調整不同節(jié)點間的發(fā)射功率,避免節(jié)點用固定的發(fā)射功率時因距離太近而造成能量浪費。
    RSSI受節(jié)點之間的距離和障礙物等信道質量情況影響,不同的子節(jié)點與父節(jié)點建立可靠鏈路所需要的發(fā)射功率則不一樣。圖10所示為子節(jié)點與父節(jié)點建立最低功耗通信鏈路的流程,子節(jié)點向父節(jié)點發(fā)送發(fā)射功率校正的命令;在接收到父節(jié)點返回的RSSI值后,子節(jié)點則根據RSSI的大小調整自己的發(fā)射功率。

4 系統傳輸性能實驗分析
4.1 點對點傳輸實驗

    點對點傳輸是節(jié)點性能的一個重要指標,本文針對節(jié)點的數據速率和丟包率做了大量的實驗測試。在室內環(huán)境下,節(jié)點采用3.3 V直流供電,傳輸距離(視距)>30 m,發(fā)射功率0 dBm,收發(fā)節(jié)點分別統計數據幀,單次測試持續(xù)時間10~20 min。獲得數據速率與丟包率關系如圖11(a)所示。


    圖示數值為節(jié)點多次實驗的平均值。當發(fā)射速率逐漸增大到21 kb/s時,接收節(jié)點丟包率明顯增大。由圖11可知發(fā)射速率低于20.88 kb/s時丟包率為0,速率為22.5 kb/s時丟包率約為6%??傻霉?jié)點的數據速率實驗典型值為20 kb/s。
4.2 多跳通信實驗
    多跳通信實驗設置了源節(jié)點為設備終端節(jié)點,中轉設備路由節(jié)點和目標設備協調器組成的2跳網絡。測試環(huán)境與點對點通信一致,針對數據速率和丟包率完成大量實驗,得到的目標節(jié)點數據速率與丟包率關系如圖11(b)所示。
    由圖11(b)可知,經路由節(jié)點中轉后數據傳輸可靠性大大降低了。在數據發(fā)送速率低于0.3 kb/s時丟包率為0,而大于這個值后則逐漸上升。所以在保證丟包率為0的前提下,兩跳通信的數據速率的試驗值可以達到0.3 kb/s。
    本系統完成了以CC2530為核心的多傳感器無線節(jié)點硬件設計,并基于Z-stack協議棧完成傳感器程序設計,同時實現協議棧的低功耗改進和節(jié)點鏈路失效管理。通過實物測試獲得節(jié)點單跳通信數據速率典型值為20 kb/s,多跳通信典型值為0.3 kb/s,能夠較好地滿足區(qū)域環(huán)境信息監(jiān)測的應用。系統的硬件結構設計充分考慮了擴展性,數據協議定義充分考慮了上位機控制臺顯示信息的豐富性,支持控制臺顯示網絡拓撲結構、節(jié)點設備信息和狀態(tài)、節(jié)點移動動態(tài)更新,以及節(jié)點設備無線控制。
參考文獻
[1] 鄭凱.基于ZigBee無線傳感器技術的心電監(jiān)護網絡的研究[D].吉林:吉林大學,2008.
[2] 陳濤,劉景泰,邴志剛.無線傳感網絡應用于研究綜述[J].自動化與儀表,2005(7):41-46.
[3] 韓賓,黃玉清.基于藍牙的機器人傳感網絡設計[J].通信技術,2008(6):164-166.
[4] GISLASON D. Zigbee wireless Networking[M]. Burlington:Newnes,2008.
[5] Wang Weixin, Sung Jongwoo, KIM D. Complex event processing in EPC sensor network middleware for both RFID and WSN[C]. 2008 11th IEEE, ISORC, 2008:165-169.
[6] Yang Huanjia, Yang Lili,et al. Hybrid Zigbee RFID sensor  network for human-itarian logistics centre management[J]. Journal of Network and Computer Applications,2011(34):938-948.
[7] TI. CC253X User Guide.http://www.ti.com.cn.2011.
[8] TI.Z-Stack Developers Guide.http://www.i.com.cn/.2011.
[9] ESTRIN D. Tutorial“PartIV: sensor network protocols. Mobicom,2002. http://nest1.ee.ucla.edu/tutorials/ mobicom02.2011.

此內容為AET網站原創(chuàng),未經授權禁止轉載。