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