基于TinyOS平臺的RSSI定位系統設計與實(shí)現
摘要 RSSI定位算法是無(wú)線(xiàn)傳感網(wǎng)絡(luò )節點(diǎn)定位中一種常用的定位算法,文中以Crossbow公司提供的iris節點(diǎn)及MIB520接口板為硬件平臺,以TrinyOS操作系統支持的NesC語(yǔ)言為軟件操作平臺,設計了RSSI定位系統。分別在室內和室外兩種環(huán)境下對其進(jìn)行實(shí)驗驗證,證明了系統的有效性。
關(guān)鍵詞 無(wú)線(xiàn)傳感網(wǎng)絡(luò );TrinyOS操作系統;NesC語(yǔ)言;RSSI定位算法
WSN(Wireless Sensor Network)定位技術(shù)應用廣泛,除可以反應出事發(fā)地點(diǎn)外,還可跟蹤目標、實(shí)時(shí)監測目標的行動(dòng)狀態(tài)、預測目標的行動(dòng)軌跡等。目前的定位算法可分為兩類(lèi):基于測距的定位算法和無(wú)需測距的定位算法。由于基于測距的定位是采用實(shí)際測得節點(diǎn)間的距離或者角度,因此定位精度較高,對硬件也提出了一定的要求,在定位過(guò)程中相對消耗的能量較多。無(wú)需測距的定位算法不需要實(shí)際測量距離或角度信息,對節點(diǎn)不存在特殊要求,定位過(guò)程中無(wú)需考慮能量消耗問(wèn)題,但定位精度及其節點(diǎn)覆蓋率卻有待提高。在基于測距的定位算法中,RSSI(ReceivedSignal Strength Indicator)定位算法相對而言通信開(kāi)銷(xiāo)較小,對硬件要求較低,是一種較為實(shí)用的定位算法。文中在TinyOS軟件平臺下,利用Crossbow公司提供的硬件設施對RSSI定位系統進(jìn)行了實(shí)驗驗證,并結合實(shí)際情況對所得數據進(jìn)行了分析。
1 TinyOS操作系統及硬件平臺
1.1 TinyOS
TinyOS是UC Berkeley開(kāi)發(fā)的一種用于無(wú)線(xiàn)傳感網(wǎng)絡(luò )節點(diǎn)的開(kāi)源操作系統,以其組件化的編程、事件驅動(dòng)的執行模式、微型的內核以及良好的移植性等特點(diǎn)作為目前WSN系統上的主流操作系統。TinyOS操作系統沒(méi)有進(jìn)程或線(xiàn)程管理,沒(méi)有虛擬內存管理,沒(méi)有過(guò)于復雜的IO子系統及地址空間分配,這對于存儲資源有限的系統尤為重要。
1.2 NesC語(yǔ)言
加州大學(xué)伯克利分校在C語(yǔ)言的基礎上開(kāi)發(fā)出一種適用于無(wú)線(xiàn)傳感網(wǎng)絡(luò )編程的NesC(C Language for Network Embedded Systems)語(yǔ)言,TinyOS操作系統和其上運行的應用程序用NesC語(yǔ)言開(kāi)發(fā)。NesC是在C語(yǔ)言上做了一定的擴展,提出了組件化的編程思想,把組件化/模塊化思想和基于事件驅動(dòng)的模型結合在了一起。其主要用處是幫助應用程序設計者建立易于組合成完整、并發(fā)式系統的組件,并能夠在編譯時(shí)執行廣泛檢查。
1.3 iris硬件特性
iris節點(diǎn)工作頻率為2.4 GHz,支持IEEE802.15.4協(xié)議的Mote模塊,用于低功耗無(wú)線(xiàn)傳感網(wǎng)絡(luò )。它具有3倍的作用距離,雙倍的存儲空間;在戶(hù)外測試不加放大器的情況下,節點(diǎn)間視距離可達500 m;使用直接序列擴頻技術(shù),抗RF干擾、數據隱蔽性較好;基于IEEE80 2. 15.4/ZigBee協(xié)議的RF發(fā)送器,工作頻率2.4~2.483 5 GHz,兼容ISM波段。
2 RSSI定位算法
2.1 RSSI測距
節點(diǎn)間發(fā)送的信號在傳播過(guò)程中都會(huì )有衰減,RSSI無(wú)線(xiàn)傳感網(wǎng)絡(luò )定位算法的核心是根據節點(diǎn)間發(fā)送信號的衰減計算出節點(diǎn)之間的距離,然后依據節點(diǎn)之間的距離計算出盲節點(diǎn)的位置坐標。無(wú)線(xiàn)信號的發(fā)射功率與接收功率之間的關(guān)系如式(1)所示,其中PR是無(wú)線(xiàn)信號的接收功率,PT是無(wú)線(xiàn)信號的發(fā)射功率,d為收發(fā)節點(diǎn)之間的距離;n為傳播因子,其值大小取決于無(wú)線(xiàn)信號傳播的環(huán)境
式中10lgPR是接收信號功率轉換為dBm的表達式,即RSSI值,其中A為信號傳輸1 m時(shí),接收信號的功率值。所以可得到盲節點(diǎn)與信標節點(diǎn)之間的距離為
2.2 三邊測量法定位
三邊測量法是無(wú)線(xiàn)傳感器網(wǎng)絡(luò )定位算法中較為最典型的一種。在盲節點(diǎn)通過(guò)基于RSSI的測距方法獲取到3個(gè)或以上信標節點(diǎn)的距離后,就可利用三邊測量法進(jìn)行自身定位。如圖1所示,已知3個(gè)信標節點(diǎn)A、B、C的坐標(x1,y1)、(x2,y2)、(x3,y3)。假設盲節點(diǎn)的坐標為(x,y),根據盲節點(diǎn)接收到的RSSI值,得盲節點(diǎn)到A,B,C的距離分別為d1、d2、d3。
則根據三邊測量法原理,有式(4)成立
由式(4)可以求得盲節點(diǎn)的坐標如式(5)所示
3 RSSI定位算法在操作平臺上的實(shí)現
在此環(huán)節中,主要用NesC語(yǔ)言在TinyOS環(huán)境下將RSSI定位算法具體實(shí)現,編譯成功后將NesC程序分別燒寫(xiě)到對應的硬件節點(diǎn)中進(jìn)行實(shí)驗。其實(shí)驗結構如圖2所示,信標節點(diǎn)發(fā)送包含自身坐標的數據包到盲節點(diǎn)及基站節點(diǎn)。盲節點(diǎn)接收信標節點(diǎn)發(fā)送的數據包解析出每一個(gè)的RSSI值,結合信標節點(diǎn)的位置坐標計算出自身坐標值,并將結果發(fā)送至基站節點(diǎn)?;竟濣c(diǎn)接收一切數據包,并將其發(fā)送到XServe中轉站。
PC機上的XServe作為節點(diǎn)網(wǎng)絡(luò )和操作者之間通信的主要通道,它提供多個(gè)通信端口用于輸入信息,以便于網(wǎng)絡(luò )間數據傳送;操作者可以通過(guò)終端接口或XMLRPC命令接口與其進(jìn)行通信;它可以解析、轉換和處理節點(diǎn)傳送的數據;在解析過(guò)程中,將原始格式的數據轉換到相應的傳感器讀數測量單位;最后將轉換后的數據顯示于XSniffer界面中。PC機上的XSniffer可以顯示出XServe傳送的所有數據;能夠讓操作者監測到網(wǎng)絡(luò )中的所有節點(diǎn)是否都在正常通信、數據包的序列號以及傳送地址是否正確、以及路由的更新和時(shí)間同步消息。
評論