劉貴云+鄔嘉麒+許國良+邱賓豪
摘 要:文章分析了基于RSSI測距的WSN網絡定位技術,以ti CC2530芯片為核心設計定位節(jié)點,實現了一套適用于各類室內密閉環(huán)境的WSN定位網絡。針對RSSI測距精度有限、易受環(huán)境干擾的問題,文章設計了一套測距模型參數校準流程,用以降低RSSI測距誤差,提高系統(tǒng)定位精度,并開發(fā)了上位機操作程序,便于用戶實時監(jiān)測網絡運行情況。
關鍵詞:RSSI測距;無線傳感器網絡;室內定位;ZigBee
無線傳感器網絡(Wireless Sensor Network,WSN)由大量成本低廉的傳感器節(jié)點以無線通信的方式組建而成,各網絡節(jié)點可獨立進行數據采集、處理和傳輸。無線傳感器網絡由于其網絡組織形式靈活、節(jié)點分布范圍廣泛、組網成本較低的特點,在醫(yī)療監(jiān)控、環(huán)境檢測、國防軍事等領域得到廣泛應用。因此無線傳感器網絡可以為定位系統(tǒng)的構建提供良好的硬件基礎和實現條件。
無線傳感器網絡定位技術按照測量原理可劃分為基于測距和無需測距兩類[1],其中基于測距的WSN定位方法(如toa,aoa,tdoa)一般需要裝設用于精確測量信號來源方向或信號接收時間的裝置[2-3],定位精度相對較高,但存在節(jié)點體積大、網絡造價高等不足[4]。通過檢測接收信號強度指示(Received Signal Strength Indicator, RSSI)實施距離估計[5]。由于RSSI測距技術無需額外添置測距設備,實現原理簡單,具有節(jié)點體積小、功耗低、成本低廉的優(yōu)點,適用于運算性能與硬件功耗受限的無線傳感器定位網絡[6]。
1 測距原理與硬件設計
1.1 RSSI測距原理
RSSI測距技術通過檢測接收信號強度指示實施距離估計,利用經過校準的理論模型或經驗公式,將信號強度值轉化為節(jié)點間距離,并通過位置解算實現目標定位[7]?;赗SSI測距的無線傳感器網絡定位系統(tǒng)通常采用傳統(tǒng)的對數距離路徑損耗模型[8],其模型參數一般用經驗值代替,其表達式如下:
(1)
式中d為收發(fā)節(jié)點之間的距離,p(d)為收發(fā)節(jié)點之間的信號強度損耗值,d0為信號強度參考點,p(d0)為參考點的信號損耗值,n為與環(huán)境因素相關的路徑損耗因子;xσ為服從正態(tài)分布的誤差修正項,有xσ~n(0,σ2)。設發(fā)射節(jié)點的傳輸功率為pt,則接收節(jié)點處信號強度可用下式計算:
(2)
根據理論分析,在自由空間中傳播的ism頻段(2.4 GHz)無線信號隨著距離增加,大致呈對數規(guī)律衰減。在信號源附近區(qū)域信號衰減迅速,信號強度因測量誤差或環(huán)境隨機干擾造成的偏差經過測距換算后,將產生明顯誤差。在遠離信號源區(qū)域信號衰減趨勢平緩,信號強度幾乎無法反映距離特征。因此定位網絡各節(jié)點之間的間距不宜過大或過小。
1.2 節(jié)點硬件設計
無線傳感器網絡由協調器(coordinator)、路由器(router)、終端節(jié)點(end node)組成,采用自組織的方式組建無線傳感網絡,其中協調器是網絡的核心,負責網絡的初始組建和運行監(jiān)督。按照節(jié)點位置信息的獲取方式可將定位網絡節(jié)點分為盲節(jié)點(blind nodes)和錨節(jié)點(anchor nodes)兩類,基于RSSI測距定位網絡的主要功能就是根據已知的錨節(jié)點位置坐標和節(jié)點間距,推算出待求的盲節(jié)點坐標。
各節(jié)點的硬件電路由微處理器核心、人機交互模塊、超聲波測距模塊和電源模塊組成,硬件結構如圖1所示。其中微處理器核心采用ti公司CC2530芯片,外接32.768 kHz晶振,與單根豎直放置的3 dbi全向天線配套使用,其片上的無線傳輸模塊最大發(fā)射功率可達4.5 dbm。微處理器核心利用ZigBee協議(ieee 802.15.4)建立射頻通訊,選擇合適信道與周圍節(jié)點建立低功耗、短距離無線通信網絡。
節(jié)點電路采用兩節(jié)18650鋰離子電池串聯供電,經電源管理模塊穩(wěn)壓后向其余各部分電路提供持續(xù)的3.3V和5V直流穩(wěn)壓電源。人機交互模塊由lcd液晶屏、蜂鳴器、按鍵等組成(見圖2),用于指示電源狀態(tài)、顯示提示信息。系統(tǒng)將通過lcd屏幕實時展示裝置的運行狀況,向用戶適時發(fā)出操作提示信號。用戶也可通過按鍵調整節(jié)點裝置的參數設置,保證人機交互的準確性和高效性。
超聲波測距模塊采用RB-URF02型超聲波傳感器,通過超聲波遇障回傳的時間差間接測得距離,具有精度高、能耗小、成本低的優(yōu)點,可實現視距范圍內的精確測距。微處理器接收到超聲波測距模塊回傳的響應信號后,經過換算后獲知兩節(jié)點間的距離,其測量結果將作為兩節(jié)點間的實際距離供信號校準參考。
2 校準流程與軟件設計
2.1 節(jié)點定位流程
本文設計實現的網絡節(jié)點定位程序采用iar embedded workbench for8051編寫,各節(jié)點接收信號的強度由cc2530內置的射頻通訊模塊測出,RSSI數值從z-stack協議棧中的結構體afincomingmsgpacket_t中取出。定位網絡中各節(jié)點依據表1中所列流程實現實時定位。
表1 節(jié)點定位流程
節(jié)點定位流程
1. 各節(jié)點加入WSN網絡。
2. 用戶在上位機監(jiān)測程序中標記各節(jié)點坐標、類型。
3. 對當前環(huán)境進行模型參數校準。
4.盲節(jié)點廣播自身設備編號值,各錨節(jié)點接收信號的同時提取RSSI數值,取5次連續(xù)測量的RSSI數值,并對測量結果作均值濾波處理。
5.各節(jié)點的RSSI數據上傳至上位機監(jiān)控程序匯總并解算盲節(jié)點坐標。
6.如果接收到上位機監(jiān)控程序的參數校驗指令則返回步驟3,重新校準模型參數;否則返回步驟4,實時更新各盲節(jié)點的位置坐標。
錨節(jié)點坐標、節(jié)點間距與盲節(jié)點坐標之間滿足下列關系
(3)
式中(x,y)為盲節(jié)點坐標,網絡中n個錨節(jié)點坐標為(xi,yi),di為i號錨節(jié)點與盲節(jié)點之間的距離。根據3邊定位原理,每個盲節(jié)點至少需要獲得與3個錨節(jié)點之間的節(jié)點間距才能確定其坐標信息[9]。為便于求解,將上述非線性方程組轉化為線性方程組
(4)
(5)
(6)
上位機監(jiān)控程序接收到各節(jié)點上傳的RSSI數據后,可用下式求取方程組的最小二乘解,獲得盲節(jié)點的坐標參數。
(7)
2.2 參數校準流程
由于無線信號在密閉空間內存在多徑傳播、非視距傳播、小尺度衰落等因素,在室內空間、山體涵洞等實際應用場景中,理論模型的估算結果存在嚴重偏差,難以獲得較高的測距精度[10]。為了減小環(huán)境因素對距離估算結果的影響,提高系統(tǒng)測距精度和定位性能,需對模型參數進行實地校準和現場修正,使模型能準確反映實際應用場景中的信號傳輸特性,從而確保定位系統(tǒng)能在各類環(huán)境中獲得較高的測算精度。
本文利用節(jié)點硬件電路上,設計了模型參數校準流程(見表2)。選定距離信號源2.5~5 m范圍作為校準距離區(qū)段,以0.5 m為間隔均勻取點,定義校準距離序列為{2.5,3.0,3.5,4.5,5.0}(單位:m)。
表2 模型參數校準流程
模型參數校準流程
1. 選定參與模型參數校準的節(jié)點組合,確定其設備編號和mac地址。
2. 從校準距離序列中取出本輪循環(huán)的校準距離值。
3. 用戶手持校準裝置,朝著遠離目標節(jié)點的方向緩慢移動,調整兩節(jié)點之間的間距。期間超聲波測距模塊持續(xù)開啟,不斷測量目標節(jié)點和校準裝置之間的實際距離。
4.判斷超聲波測得的實際距離與預設的測距距離偏差是否大于閾值,如果偏差較大滿足,則進一步判斷其偏差類型。若實際距離偏小,滿足,則亮起遠離指示燈,蜂鳴器鳴響,提醒用戶增大兩節(jié)點間距離;否則亮起靠近指示燈,直至實際距離與預設距離的偏差滿足精度要求。
5.測量20次當前位置的RSSI值,取其平均值,保存測量結果。
6. 如果校準序列中尚有未測量RSSI值的位置點,則返回步驟2。
7.將各次測量所得的RSSI值,上傳至上位機或網絡協調器節(jié)點進行模型參數解算,并由協調器節(jié)點在定位網絡中分發(fā),算法結束。
完成校準工作流程后,其校準結果將通過射頻收發(fā)模塊向WSN定位網絡中的協調器節(jié)點發(fā)送處理結果,及時調整衰減模型參數,使最新模型參數立即在定位網絡中得到應用。校準流程可由用戶根據環(huán)境參數變化手動執(zhí)行,也可由上位機監(jiān)控程序自動定時觸發(fā),以便及時提高定位系統(tǒng)的測距精度和定位性能。
2.3 監(jiān)測界面設計
為了簡化WSN定位網絡的管理流程,便于用戶在特定應用空間內架設基于RSSI測距的WSN定位系統(tǒng),本文采用Microsoft Visual c# 2015 編寫上位機監(jiān)控程序,軟件界面如圖3所示。監(jiān)控程序提供可視化圖形界面,通過串口協議與網絡中各節(jié)點建立無線通信,向用戶提供運行數據實時顯示、測距模型參數管理、節(jié)點信息設置、實時位置解算等功能,以提高網絡管理操作的便捷性。
當用戶需要組建WSN定位網絡時,首先應通過設置窗口設置串口通信參數,建立協調器節(jié)點與計算機之間的通訊連接。通訊連接建立后,可在上位機程序中為各網絡節(jié)點分配設備編號,為各節(jié)點逐一選擇節(jié)點類型,并為錨節(jié)點登記位置坐標。各定位節(jié)點的RSSI測距模型在初始化時使用默認參數,用戶可根據環(huán)境需要觸發(fā)校準流程獲得更準確的模型參數,提高系統(tǒng)定位精度。
WSN定位網絡啟動后,終端節(jié)點在本機測量RSSI數值,通過射頻通訊與協調器節(jié)點建立聯系,將測量數據上傳至上位機進行匯總分析和實時換算,并將盲節(jié)點的位置坐標解算結果實時顯示,在平面圖上標注出區(qū)域內各節(jié)點的位置信息。用戶可在界面左上方的“實時數據”區(qū)域觀察當前網絡中各節(jié)點的運行數據,當應用環(huán)境發(fā)生變化后可以執(zhí)行校準操作,重新校準該節(jié)點的測距模型參數,降低因環(huán)境因素造成的定位誤差。
3 結語
本文針對RSSI測距精度有限、易受環(huán)境干擾的問題,設計開發(fā)了一套基于RSSI測距的WSN定位網絡監(jiān)測系統(tǒng),用戶可通過上位機及時獲知網絡中盲節(jié)點的實時位置,并根據環(huán)境變化及時校準測距模型參數。引入測距模型參數校準流程后,定位網絡將根據環(huán)境因素的變化對距離估算模型進行修正,實時更新模型參數,確保模型能準確反映實際應用場景中的信號傳輸特性,從而提高測距精度和定位性能,可用于在物流倉庫、地下車庫、山體涵洞等密閉空間中實施有效定位,具有較高的實用性。