馬 銳,賈金玲,陳光建
(1.四川理工學院 自動化與電子信息學院,自貢 643000;2.四川理工學院 計算機學院,自貢 643000)
隨著經濟社會的發展,水體污染成為制約我國經濟社會可持續發展的重要原因之一。目前,我國很多地區的江河、湖泊和水庫等水域采用人工現場采集與實驗室分析的方法,這種方法水質采樣不足、信息處理滯后,更沒有對突發性污染事件的預警能力。有些地區采用老舊的水質監測系統采集水質信息,數據信息通過有線方式傳送,有線方式存在施工與維護復雜、系統建設和運行成本較高且抗干擾性低等問題,難以滿足當下人們對水質監測信息的需求。隨著傳感器技術、通信技術、計算機技術以及近些年新興的無線傳感器網絡技術的發展,開展以網絡化為特征的監測信息獲取與計算研究,以增強系統可靠性、降低成本、實現水質信息的實時監測。文中提出將Zigbee無線傳感網絡技術應用到水質在線監測中,通過Zigbee自組網方式將采集的水質信息上傳給匯聚節點,匯聚節點通過RS-232通信串口連接至數據監測中心,來實現水質信息的遠程實時監測。
水質監測系統主要由布置在水質現場的傳感器節點和匯聚節點組成的Zigbee自組織網絡以及實現數據的通信、監測、存儲和顯示的上位機監測中心組成,系統設計方案如圖1所示。

圖1 水質監測系統設計Fig.1 System of water quality monitoring
傳感器節點采集水域中的溫度、pH值、電導率、渾濁度、含氧量等水質指標,通過Zigbee芯片CC2530組成的通信模塊將水質信息傳輸給匯聚節點,匯聚節點對數據信息進行處理、融合后經RS-232總線方式傳輸給監測中心。監測中心對水質參數進行接收、存儲和分析,便于相關人員實時了解水體的變化。同時,它還可以監測Zigbee網絡的運行情況,當網絡中某一節點發生故障時,監測中心可以發送控制命令要求此節點離開網絡;當接收到的水質參數超出設定值時,監測中心可以向相關人員發送報警信息,方便對水質監測現場進行相應管理。它還可以存儲和顯示水質參數,生成和查詢歷史水質信息。
傳感器節點是Zigbee無線傳感網絡最下層的節點,它可以檢測包括水溫、pH值、電導率、渾濁度、含氧量等水質指標。該節點的硬件結構包括4個部分[1]:傳感器模塊、微處理器模塊、無線通信模塊與電源模塊。傳感器節點硬件結構如圖2所示,其中CC2530模塊已經把無線通信模塊和微處理器模塊集成到一起。

圖2 傳感器節點硬件結構Fig.2 Hardware structure of sensor nodes
傳感器完成對監測區域內水體信息的采集,將化學量、物理量或生物量轉換為系統能夠識別的電信號,然后通過信號調理電路的放大、濾波等處理后發往A/D轉換器。
A/D轉換器將模擬電信號轉換為適合單片機傳輸、處理的數字信號。數字信號經單片機的一系列處理后被送往Zigbee無線通信模塊的CC2530芯片,它利用內置的無線發射模塊與匯聚節點進行通信[2],將水質信息發送給匯聚節點。
電源模塊由備用鋰電池和太陽能電池組成來保證整個終端節點的能源供應,它可以滿足在野外連續長時間工作。
傳感器是硬件結構中真正和外部信號接觸的器件,它完成對監測區域內水體參數的采集與轉換。它由傳感器探頭和變送電路2部分組成,探頭用來采集外界的水質參數信息,將其送往變送電路,變送電路將以上化學量、物理量或生物量轉換為系統能夠識別的電信號。
在線式水質監測系統的設計中,傳感器的選擇關系到系統的精確度和準確性。由于其水中工作環境的復雜性,且需要檢測水溫、pH值、電導率、渾濁度、含氧量這幾個指標。設計中采用GLOBA WATER公司的WQ系列水質信息傳感器,它具備安全可靠,且價格相對較低的優勢。表1為水質傳感器的具體型號與參數,其中傳感器均有4~20 mA的線性電流輸出。

表1 水質傳感器的型號與參數Tab.1 Model and parameters of water quality sensors
MSP430F149芯片是TI公司研發的具有16位總線的超低功耗微處理器,它有著豐富的片內外圍模塊,擁有 60 KB+256 B FLASH、2 KB RAM、包含了基本時鐘單元、1個看門狗定時器、3個比較寄存器、PWM輸出的16位定時器、4個8 I/O位口、1個14路的12位A/D轉換器和2路串行通信接口等模塊[3]。
MSP430F149的最小系統由電源部分、復位電路和晶振電路等組成[3],其最小系統原理圖如圖3所示。其中JTAG接口在芯片實際工作中不是必需的,但在調試過程中卻非常重要,因此將這部分也歸為最小系統。

圖3 MSP430F149最小系統Fig.3 Minimum system of MSP430F149
其中,晶振電路為微處理器與其他模塊提供穩定工作需要的時鐘信號。為了實現快速的數據處理及低功耗的要求,使用了低速晶體振蕩器和高速晶體振蕩器2種電路。低速晶體振蕩器采用32 kHz晶振連接到X1IN和X1OUT;高速振蕩器采用8 MHz晶振外接2個12 pF電容接入X2IN和X2OUT引腳。
復位電路保證了微處理器上電時的穩定狀態,設計中采用了簡單的阻容手動復位,它產生復位信號來初始化微處理器為某一確定狀態。
電源是系統正常工作的前提,系統中需要使用+5 V和+3.3 V直流電源。3.3 V為MSP430F149處理器和外圍電路供電,其他部分由+5 V電源供電。一般的直流電源為9 V,設計中選取7805芯片來實現9 V到5 V電壓的轉換。Vin表示9 V電源輸入,電容起濾波作用。輸出的5 V電壓經過一個與MSP430配套的電源芯片SPX117M3-3.3完成5 V到3.3 V的轉換,以保證MSP430F149正常工作。
JTAG(joint test action group)為國際標準測試協議,它用于芯片內部的測試以及系統的仿真和調試。MSP430F149處理器有一個內置JTAG調試接口,使用該接口控制芯片的運行狀況并取得其內部信息。標準的JTAG接口4線是TMS,TCK,TDI和TDO,分別為模式選擇、時鐘、數據輸入和輸出數據線。系統中采用14針JTAG接口,除了以上4根線,還有nTRST用來復位,其余的管腳接電源和信號地。
伴隨著物聯網技術的快速發展和Zigbee技術的不斷更新,目前越來越多的半導體商家開始推廣使用Zigbee芯片,現在市場上大家比較認可的Zigbee芯片主要有Jennie公司的JN139和JN5148芯片,EMBER公司生產的EM351和EM357芯片,以及TI公司生產的CC2530芯片。綜合低功耗、低成本等因素,論文選用CC2530可以滿足系統功能并充分降低成本和縮短開發周期。
CC2530是TI公司推出的針對 IEEE802.15.4、RF4CE 與 Zigbee應用的片上系統解決方案,它可以用很低的材料成本組建功能強大的網絡節點。其功能特點為[4]
(1)CC2530內部置入了業內先進的RF收發器和工業級標準的增強型8051 CPU處理器;
(2)擁有128位可編程閃存,8 KB RAM;
(3)擁有 8個獨立通道的 14位 ADC,擁有 21個可編程I/O引腳,16位定時器T1、24位定時器T2、2個8位定時器T3和T4、一個睡眠定時器與一個看門狗定時器以及2個可以在主/從SPI或UART模式下工作的可編程USART;
(4)支持硬件隨機發生器與AES高級加密處理模塊等;
(5)擁有很低的電流消耗,能夠保證電池較長時間使用;
(6)具有豐富的外設資源,單塊芯片上集成了Zigbee無線電模塊、內部存儲器與微控制器。因此,使用很少的外圍器件便能實現信息存儲、處理以及射頻傳輸功能,其內部結構框圖如圖4所示。
傳感器節點軟件設計包含節點入網設計、數據的采集和傳輸、節點離開網絡3個部分。

圖4 CC2530內部結構框圖Fig.4 Inner structure of CC2530
傳感器節點加入Zigbee網絡的流程主要包含了網絡的發現、向匯聚節點發送連接申請、成功建立連接后就能夠發送數據信息了。傳感器節點上電后對微處理器進行初始化,即對微處理器的硬件模塊進行參數設置。包括對系統時鐘、定時器、A/D轉換單元、I/O口等進行初始化。
初始化后,終端設備通過主動掃描或者被動掃描方式獲得PAN信息。主動掃描即設備發送信標請求后,等待匯聚節點響應信標;而被動掃描開始后,設備一直處于等待接收狀態。設計中不使用信標,所以使用主動掃描方式。完成掃描后,掃描確認原語MLME_SCAN.confirm將返回掃描的情況。成功掃描后,返回的確認原語中包括一個PAN描述符表。獲得匯聚節點PAN信息后,終端設備開始請求加入網絡。
設備通過協商方法加入Zigbee網絡,應用層發送NLME_NETWORK_DISCOVERY.request原語啟動MAC層協商程序,原語中掃描信道參數Scan Channels設置成設備將掃描的信道,設置Scan Duration參數為掃描每個信道所需要的時間。NWK層收到該原語后,會發送MLME_SCAN.request原語請求MAC層開始一次主動掃描。掃描過程中接收到有效長度為非零的信息幀后,向NWK層發送MLME_BEACON_NOTIF.indication原語。原語中包含了設備的尋址信息,是否允許關聯連接與信標有效載荷。網絡層管理實體(NLME)需要檢查信標載荷中的協議ID并驗證是否與Zigbee協議標識符相符合。如果不符合,該信息會被忽略。反之,設備會從接收到的信標中拷貝相關信息到自己的鄰居表中。MAC層完成信道的掃描,并發送MLME_SCAN.confirm后,NWK層會發送NLME_NETWORK_DISCOVERY.confirm原語,該原語包括了Zigbee版本號、協議棧結構、PANID、邏輯信道和是否允許設備加入網絡的信息。根據收到的NLME_NETWORK_DISCOVERY.confirm原語,設備便得到當前的網絡情況[5]。
終端設備獲得匯聚節點信息后,NLME向MAC層發送NLME_ASSOCIATE.request原語,NLME_ASSOCIATE.confirm將連接狀態返回到NLME。當成功入網后,NWK收到的 NLME_ASSOCIATE.confirm原語中包含了匯聚節點為設備分配的16位短地址,終端設備把短地址保存起來后,便可以進行網絡通信了。
終端節點成功入網后,便可進行數據信息的發送。終端節點的微處理器與傳感器大部分時間處于睡眠狀態來降低功耗,當規定的時間間隔到達或者監聽到匯聚節點的查詢指令后,終端節點發送CMD CALL DATA指令向匯聚節點請求數據信息,并打開終端節點的接收器,這時匯聚節點將緩存中的數據幀發送給終端節點的接收緩沖區。若沒有緩存數據,終端節點繼續轉到休眠狀態;當終端節點收到采集命令時,它開始喚醒工作,完成數據的采集任務,并通過調用zb_sendData.Request將數據傳送出去,數據傳送完后又進入休眠狀態[6]。傳感器節點加入網絡和傳輸數據流程如圖5所示。

圖5 傳感器節點入網和數據采集流程Fig.5 Flow chart of terminal nodes join in the sensor network and collect data
當監測網絡中的終端節點出現故障后,需要從監測網絡中刪除故障節點。Zigbee網絡中節點有2種方式與網絡斷開連接,一種是傳感器節點向父設備發送斷開連接請求,傳感器節點會發送NLME_LEAVE.request原語,網絡層啟動斷開子節點的動作,然后返回一個NLME_LEAVE.confirm確定原語,同時向父設備發送離開請求,父設備接受到節點的離開請求后,查看網絡中是否存在該節點,如果存在,會從鄰居列表里刪除此節點,并發送NLME_LEAVE.indication原語。另一種是父設備發起斷開命令,當父設備與該子節點若干次通信失敗后,父設備通過刪除指令刪除該子節點。
上位機選用LabView軟件來開發監測中心功能,監測中心通過RS-232串口連接匯聚節點,來接收、顯示和存儲采集到的水質信息,并生成曲線圖。圖6為傳感器采集到的某一天某些時刻的溫度數據信息,它驗證了水質監測系統可以實現水質信息的遠程實時監測。

圖6 水質溫度信息曲線Fig.6 Graph of water temperature information
文中對傳感器節點的軟硬件進行了設計,并進行了實驗。實驗結果表明:無線傳感網絡的水質監測節點能夠可靠地采集、處理和傳輸水質監測數據,系統能夠實現水質信息的監測。這為利用傳感器技術和Zigbee無線網絡技術相結合來進行全面的水質監測和遠程監測應用提供了堅實的技術支撐。
[1]Dong Hoon Kim,Jun Yeob Song.Development and evaluation of Zigbee node module for USN[J].International Journal of Precision Engineering and Manufacturing,2009(12):2-5.
[2]章偉聰,俞新武,李忠成.基于CC2530及Zigbee協議棧設計無線網絡傳感器節點[J].計算機系統應用,2011,20(7):184-187,120.
[3]陳曉靜.基于MSP430單片機的多機串口通信設計[J].信息化研究,2009,35(12):35-37.
[4]徐健,楊姍姍.基于CC2530的Zigbee協調器節點設計[J].物聯網技術,2012(5):9-12.
[5]冼土明.Zigbee與GPRS融合組網技術的研究與應用[D].廣東:廣東工業大學,2011.
[6]閆宏浩,陳天華.水質監測無線傳感器網絡的硬件設計[J].傳感器與微系統,2015,34(4):81-84.