黨元一
(沈陽工程學院自動化學院,遼寧 沈陽110136)
隨著傳感器和無線通信技術(shù)的快速發(fā)展,無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)由于具有信號采集、實時監(jiān)測、信息傳輸和信息服務等功能,已經(jīng)被人們用于軍事、交通、醫(yī)療、抗災等各種領域,極大地豐富了人們與外部世界的數(shù)據(jù)交互能力,為人們創(chuàng)造了巨大的便利[1]。在很多應用中,節(jié)點位置信息的獲取至關重要,成為目前研究的重點。位置信息獲取的難點如下[2]:
1) 無線傳感器節(jié)點往往采用輕量級設計,處理器的計算能力有限,電池提供的能量也有限,無法設計復雜的節(jié)點位置獲取算法。
2) 應用的環(huán)境復雜多樣,常常在一些極端惡劣的條件下使用,存在較大的通信干擾。
這一系列的問題導致無線傳感器網(wǎng)絡在定位上存在著一些問題。針對此,本文設計了一種安全有效的基于無線傳感器網(wǎng)絡的定位系統(tǒng),詳細介紹了系統(tǒng)原理、硬件設計、軟件設計,最后給出了系統(tǒng)的測試數(shù)據(jù)。
本系統(tǒng)的原理為:通過在區(qū)域內(nèi)設置固定位置節(jié)點(錨節(jié)點),由定位算法根據(jù)錨節(jié)點的位置計算出目標節(jié)點的位置;所有目標節(jié)點的位置信息匯總到匯聚節(jié)點,匯聚節(jié)點直接把信息傳遞到監(jiān)控主機。監(jiān)控主機通過程序生成整個系統(tǒng)的位置信息圖。系統(tǒng)的連接關系如圖1所示。
圖1 系統(tǒng)連接關系
系統(tǒng)的硬件設計包括處理器模塊、供電模塊、串口通信模塊三部分。
錨節(jié)點、目標節(jié)點和匯聚節(jié)點的處理器采用TI公司的CC2530芯片,CC2530提供了片上系統(tǒng)解決方案,應用于IEEE 802.15.4、ZigBee和RF4CE。它能夠以非常低的總材料成本建立強大的網(wǎng)絡節(jié)點。它結(jié)合了先進的RF收發(fā)器的優(yōu)良性能,業(yè)界標準的增強型8051CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM和許多其它強大的功能。CC2530有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256 KB的閃存。CC2530具有不同的運行模式,使得它尤其適合超低功耗要求的系統(tǒng)。運行模式之間的轉(zhuǎn)換時間短,這進一步確保了低能源消耗。處理器模塊電路圖如圖2所示。
圖2 處理器模塊電路圖
系統(tǒng)采用鋰電池供電,并采用太陽能板進行充電。充電端并聯(lián)法拉電容,法拉電容能夠在太陽充足時充滿電量,在太陽不足時進行補充充電。鋰電池輸出端連接穩(wěn)壓器對處理器進行供電[3]。電路圖如圖3所示。
圖3 供電模塊電路圖
太陽能充電控制采用TP4054芯片,該芯片是專為鋰電池充電設計的一款線性充電芯片,采用較小的封裝與較少的外圍器件,非常適用于小型設備應用。它的充電電流可達800 mA,電路中無需MOSFET、檢測電阻器或隔離二極管。
小型鋰電池的標稱電壓為3.7 V,充滿電之后的電壓為4.2 V,處理器的工作電壓為3.3 V。傳統(tǒng)的穩(wěn)壓芯片不能提供這么小壓差的穩(wěn)定輸出電壓,我們需要采用低壓差穩(wěn)壓芯片。穩(wěn)壓芯片采用XC6206P332,它是一款3端高精度、低功耗正壓穩(wěn)壓器,采用CMOS和激光微調(diào)技術(shù)制造。XC6206穩(wěn)壓器是一個系列,輸出電壓范圍從1.2 V~5.0 V,每隔0.1 V有一個型號,3.3 V輸出是其中一種。XC6206P332是它的完整型號,含義是輸出電壓為3.3 V,誤差為±2%。
匯聚節(jié)點負責把信息傳遞到監(jiān)控主機,匯聚節(jié)點和主機間采用串口進行通信。電路圖如圖4所示。
圖4 串口通信模塊電路圖
傳感器匯聚節(jié)點的處理器采用CC2530,它具有串口通信功能。要實現(xiàn)匯聚節(jié)點和監(jiān)控主機的通信,需要通過串口通信模塊連接到監(jiān)控主機的USB插口。串口通信模塊采用PL2303芯片,它是Prolific公司生產(chǎn)的一種高度集成的接口轉(zhuǎn)換器,可提供一個RS232全雙工異步串行通信裝置與USB功能接口便利連接的解決方案。
當無線信號在空間傳播時,信號強度(RSSI)會隨著傳輸距離的增大而減小,信號強度的變化規(guī)律有理論上的公式進行計算?;谶@樣的原理可以在需要定位的區(qū)域內(nèi)設置一些錨節(jié)點,錨節(jié)點采用固定位置的節(jié)點,它的位置是預先可知固定不變的。當目標節(jié)點移動時,通過節(jié)點附近的錨節(jié)點采集目標節(jié)點的發(fā)射信號強度,通過幾何的定位算法計算出目標節(jié)點的位置信息[4]。下面作具體分析。
無線信號在空間傳播時,信號強度(RSSI)隨傳輸距離的變化公式為:
(1)
公式中,P0為參考信號的強度;d0為參考信號強度對應的傳輸距離;n為路徑衰減指數(shù);P為接收信號強度。路徑衰減指數(shù)n通常與信號傳輸環(huán)境相關。
在一般情況下,參考信號強度取單位距離下的接收信號強度,即d0=1 m,這時的接收信號強度用A表示,簡化后的信號強度隨傳輸距離的變化公式為:
P=A-10nlnd
(2)
此時,如果測量出接收信號強度,就可以計算出距離:
(3)
當目標節(jié)點與錨節(jié)點的距離計算出來后,采用三邊測量法計算目標節(jié)點所在的位置。三邊測量法的原理是,在目標節(jié)點與它通信范圍內(nèi)三個錨節(jié)點通信后,分別以錨節(jié)點為圓心,計算出的距離為半徑畫圓,目標節(jié)點位于三圓的交點處,如圖5所示。
圖5 目標節(jié)點圖
如圖5,A點、B點、C點為錨節(jié)點,P為目標節(jié)點。設P點的坐標為(x,y),A點坐標為(x1,y1),B點坐標為(x2,y2),C點坐標為(x3,y3),P點與A點的距離為r1,P點與B點的距離為r2,P點與C點的距離為r3。分別以A點、B點、C點為圓心,r1、r2、r3為半徑畫圓,距離與坐標的關系如式(4)所示。
(4)
通過求解方程,即可求出圓心坐標。
錨節(jié)點主要負責監(jiān)測通信范圍內(nèi)是否有目標節(jié)點進行定位請求,如果有,就把目標節(jié)點距離錨節(jié)點的距離信息回復給目標節(jié)點,之后重新進入監(jiān)測程序。
目標節(jié)點需要發(fā)送定位請求信息到附近的錨節(jié)點,如果有三個錨節(jié)點回復了距離信息,就進行位置計算并把位置信息發(fā)送給匯聚節(jié)點。如果沒有三個錨節(jié)點進行回復,就重新發(fā)送定位請求信息。
匯聚節(jié)點需要監(jiān)測區(qū)域內(nèi)是否有目標節(jié)點發(fā)送位置信息,如果有,就通過串口將目標節(jié)點位置信息發(fā)送到監(jiān)控主機,之后重新進入監(jiān)測程序。
監(jiān)控主機收集區(qū)域內(nèi)目標節(jié)點的位置信息,通過程序生成整個系統(tǒng)的位置信息圖。監(jiān)控主機為電腦端,采用VB進行程序設計。
測試的環(huán)境在20 m×20 m的室內(nèi)空曠區(qū)域,錨節(jié)點的數(shù)量從3個到10個變化,位置均勻分布。目標節(jié)點的數(shù)量從12個到20個變化。下面分別從錨節(jié)點數(shù)量變化和目標節(jié)點數(shù)量變化兩個方面進行對比。
目標節(jié)點的數(shù)量為12個,錨節(jié)點的數(shù)量從3個到10個變化,目標節(jié)點的平均定位誤差如表1所示。
表1 錨節(jié)點數(shù)量與平均定位誤差關系
從表1可以看出,隨著錨節(jié)點數(shù)量的增加,平均定位誤差有所減小。當錨節(jié)點的數(shù)量增加到6個以后,平均定位誤差減小的趨勢不明顯。所以我們?nèi)″^節(jié)點的數(shù)量為6。
錨節(jié)點的數(shù)量為6個,目標節(jié)點的數(shù)量從12個到20個變化,目標節(jié)點的平均定位誤差如表2所示。
表2 目標節(jié)點數(shù)量與平均定位誤差關系
從表2可以看出,隨著目標節(jié)點數(shù)量的增加,平均定位誤差有所增加。當目標節(jié)點的數(shù)量增加到15個以后,平均定位誤差增加的趨勢明顯。所以我們?nèi)∧繕斯?jié)點的數(shù)量為15。
從以上兩方面測試可以看出,在20 m×20 m的空間范圍內(nèi),錨節(jié)點數(shù)量為6,目標節(jié)點的數(shù)量在不超過15個的前提下定位精度較高。此應用模型可以進行縮小或放大,可在實際中進行應用。
本文設計的基于無線傳感器網(wǎng)絡的定位系統(tǒng),通過錨節(jié)點的固定位置信息,可以方便地確定目標節(jié)點的位置信息并在監(jiān)控主機上顯示出來。經(jīng)實驗結(jié)果驗證,系統(tǒng)的定位精度較高,具有巨大的推廣價值。