張凱亮
摘 要:隨著人們對無線傳感器網絡的深入研究,其應用逐漸深入到人們生活的各個領域,扮演重要的角色,該次系統是基于RSSI的錨節點定位法,對無線傳感網絡進行研究和設計,使用CC2530作為主芯片模塊,實現信號的發送與接收,然后在電腦終端顯示出接收到的數據的信號強度,用單片機處理終端記錄到的信號強度,然后在顯示器上顯示發送端與接收端的距離,最后通過給定的公式計算出發送端的坐標,應用前景廣泛。
關鍵詞:RSSI 定位 CC2530
中圖分類號:TN929.5 文獻標識碼:A 文章編號:1672-3791(2015)11(c)-0001-02
無線傳感器網絡(WSN)是一種分布式傳感網絡,它的末梢是可以感知和檢查外部世界的傳感器。WSN中的傳感器通過無線方式通信,因此網絡設置靈活,設備位置可以隨時更改,還可以跟互聯網進行有線或無線方式的連接。通過無線通信方式形成的一個多跳自組織網絡。WSN廣泛應用于軍事、智能交通、環境監控、醫療衛生等多個領域。無線傳感器網絡的諸多應用都與節點信息相關,如定位系統,對于節點定位方面,可以采用少量錨節點來輔助對未知節點的自身定位的方案,用基于RSSI的定位方法,實現基本的定位功能。
1 RSSI理論基礎
經過多年的研究,諸多的節點自定位算法已經被提出,由于每一種算法都有適用的環境,因此目前并沒有一種通用的定位算法,其中RSSI定位算法優勢比較明顯,因為其大多數的節點都有RF發射能力,成本低廉、能耗低,因此很多的應用都是基于RSSI來進行距離測算的,同時要注意的是為了使測距誤差大大降低,提高RSSI測距的精確度,通常會設計一些濾波器來輔助測量。目前在無線傳感器網絡中使用的定位算法主要有以下幾種分類方式:(1)基于測距的定位和無需測距的定位。(2)集中式計算的定位與分布式計算的定位。(3)靜態網絡節點的定位和移動網絡節點的定位。
2 系統總體設計
系統總體本著可靠、安全、靈活的原則進行設計,遵循發送-接收-數據處理-計算坐標值的過程,注意實現每一個模塊環節的最佳優化配置。
2.1 定位算法
可以采用是三角質心算法(圖1、圖2),這種算法的優點是可以減少RSSI定位的誤差。
如圖1,A、B、C為錨節點,D是待測節點,由RSSI模型計算出A、B、C三點到D點距離分別為ra、rb、rc,再以ra、rb、rc為半徑,對應以A、B、C為圓心畫圓,可得到3個圓相交的區域。這里的三角質心算法的基本思想:在這交疊區域內,以任意2個圓的交點為特征點,如圖2的E,F,G 三個點即為特征點,其中N與M點分別為三邊測量法求出的被測點坐標與三角質心算法求出的被測點坐標,由此可見,三角質心算法得出的被測點的坐標更為準確。然后,通過這3個特征點計算出被測節點D 的坐標。特征點的計算方法為≤ r,其中x,y為圓心坐標,r為半徑,同樣的方法可以計算出F點,G點的坐標,此時被測點的坐標為式:而該設計是線形的錨節點,可將3個錨節點形成的線看作為一個特殊的三角形,建立數學模型如圖3所示。
D點為被測點,A、B、C為3個錨節點,呈線形分布,可通過RSSI模型測出A、B、C三個錨節點到被測點D的距離,分別為ra、rb、rc,再以A為圓心ra為半徑畫出圓A,同理畫出圓B,圓C、D點正好為三個圓的交點,滿足對特征點計算的條件,通過特征點求出D點坐標,這樣算的優點在于通過三個特征點求出的被測點D點的坐標誤差會減小很多。
2.2 硬件選擇
信號傳輸模塊主芯片選用的是CC2530芯片的模塊。CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee和RF4CE應用的一個真正的片上系統(SoC)解決方案。它能夠以非常低的總的材料成本建立強大的網絡節點。CC2530 結合了領先的RF 收發器的優良性能,業界標準的增強型8051 CPU,系統內可編程閃存,8-KB RAM 和許多其它強大的功能。CC2530具有不同的運行模式,使得它尤其適應超低功耗要求的系統。運行模式之間的轉換時間短進一步確保了低能源消耗。數據處理模塊可選用單片機STC89C52進行模塊設計。液晶顯示模塊該次選用的是選擇1602液晶顯示器。串口通信模塊選用rs232標準u轉串模塊。
2.3 軟件設計
軟件程序設計使用C語言,使系統的各個模塊功能清晰易懂,有利于以后的修改,功能非常強大。單片機的程序設計采用C語言配套Keil軟件。CC2530芯片則使用IAR Embedded Workbench軟件來進行程序編寫、調試、寫入。
如圖4所示,首先在電腦平臺與單片機連接好后,向單片機傳輸從信號接收端接收到的RSSI值,單片機接收到RSSI值后進行數據處理,可以利用公式A),其中n為信號傳播系數;d為與發送者的距離;A為距發送者1 m時的信號強度,即傳輸單位長度的信號強度。RSSI測距精度的高低是由n與A實際取值大小來決定的。了使A值精確,可多次測量然后求平均值。對于n值來說,可以先放置好所有的參考節點,然后嘗試用不同的n_index值找到最適合這個具體環境的n值。單片機將計算得出的距離數值通過電路傳給液晶顯示器(該系統選用1602液晶屏),顯示數值后,液晶顯示器進入等待狀態,手動記錄距離數值后,如果還有RSSI值在處理中,則繼續等待顯示下一個RSSI值的完成,待所有RSSI值處理完畢后,則可以關閉單片機,結束該模塊單元的處理過程。
發送接收模塊程序設計如下。
如圖5所示,系統開始運行后,發送端CC2530通過芯片內部的32 MHz的晶振產生信號,然后將產生的信號發送出去,信號成方波形式,在高電平是有效,從而能通過延時不斷的向接收端發送信號。如圖6所示,系統開始運行后,接收端開始接收發送端發送的信號,將接收的信號進行處理,根據接收到信號的強弱產生RSSI值,再將產生的RSSI值取平均得出該點的最終RSSI值,把得出的最終RSSI值存入CC2530芯片的寄存器中以供PC機讀取。然后,PC機通過串口將接收端寄存器中的RSSI值逐一讀取出來,在PC機上顯示讀出的RSSI值,大約20到30 s后,RSSI值趨于穩定。整個系統完成后,對以上軟硬件進行調試運行,可依次得到所需測量的數值。
3 結語
該文對經典RSSI測距模型進行了簡單的介紹,通過理論分析和設計實現,將RSSI測距定位很好的運用到實際的系統中,為錨節點定位如何結合實際系統來實現進行了簡單的設計啟發,當然,在設計過程中還有不足之處,需要進一步完善。隨著無線傳感器網絡技術的普及和深入,更深更寬更廣的領域將會進一步的被開發。
參考文獻
[1] 朱敏,高弘博,肖震,等.WSN中一種基于虛擬錨節點的VA-RSSI定位算法[J].四川大學學報:工程科學版,2013(11):110-114.
[2] 石為人,熊志廣,許磊.一種用于室內人員定位的 RSSI 定位算法[J].計算機工程與應用,2010(17):232-235.
[3] 周立君,劉宇.基于RSSI的無線傳感器網絡節點定位技術研究[J].電子測量技術,2010(8):115-118.
[4] 鄭學理,付敬奇.基于PDR和RSSI的室內定位算法研究[J].儀器儀表學報,2015(5):1178-1185.
[5] 劉雪蘭,王宜懷,陸全華,等.無線傳感器網絡定位算法的改進[J].2013(11):87-89.