張建國 韓 濤 劉 佳 魏 鑫
(安徽理工大學(xué) 電氣與信息工學(xué)院,淮南 安徽232001)
如今物聯(lián)網(wǎng)正在迅速發(fā)展,已經(jīng)關(guān)系到人們生產(chǎn)生活中的方方面面[1]。正如名稱所說,它是一個英特網(wǎng)的擴展,將每個物體與物體之間進行通信連接。因此,對于物體位置的精確定位不可缺少。隨著社會的不斷發(fā)展,人們不僅僅只對戶外空曠的地區(qū)有定位需求,室內(nèi)定位技術(shù)的精確性也受到越來越多的關(guān)注。GPS系統(tǒng)似乎是最好的室外定位系統(tǒng)的解決方案。但是對于室內(nèi)環(huán)境下的定位需求,這些系統(tǒng)還不足夠理想。
ZigBee技術(shù)是一個新興的無線通信組網(wǎng)技術(shù),可以使得無線節(jié)點之間進行無線組網(wǎng),相互通信,該技術(shù)具有穩(wěn)定可靠,操作簡單,功耗低,通信距離遠等特點[2]。近些年來,隨著ZigBee技術(shù)的越來越流行,使用ZigBee技術(shù)進行室內(nèi)通信,對高物品定位正在成為一種研究的趨勢[3]。因此,研究一種基于ZigBee技術(shù)的適合室內(nèi)環(huán)境的準確可靠的定位系統(tǒng)十分重要。所以,本文在對ZigBee技術(shù)研究的基礎(chǔ)之上設(shè)計出一種基于ZigBee的室內(nèi)定位系統(tǒng)。
無線節(jié)點之間的通信時通過無線電波進行,而無線電波在傳播過程中會不斷衰減,信號衰減強度與傳播距離遵循如下公式[4]:
其中,A表示無線電傳播1米時信號衰減的強度。
d表示發(fā)射無線電的節(jié)點到接受到無線電波節(jié)點之間的距離。
n表示無線電衰減系數(shù),該值為一個常數(shù)。
RSSI表示節(jié)點接收到無線電波時的無線電信號強度。
接收端節(jié)點通過測出接收到的無線電信號強度,通過公式(1)就可以計算出發(fā)送端節(jié)點到接收端節(jié)點的實際距離。當有3個已知位置坐標的參考節(jié)點A(xA,yA),B(xB,yB),C(xC,yC),分別測得1個待定位節(jié)點D發(fā)射的無線電信號強度時,將測得的接收信號強度值發(fā)送給ZigBee協(xié)調(diào)器,ZigBee協(xié)調(diào)器再發(fā)送給上位機中,上位機根據(jù)公式1計算出3個已知自身位置坐標的參考節(jié)點A,B,C到待定位節(jié)點D的距離rA,rB,rC,再通過公式(2),就可以計算出待定位節(jié)點的具體位置坐標D(xD,yD)。定位系統(tǒng)結(jié)構(gòu)圖如圖1所示。
室內(nèi)定位系統(tǒng)的硬件主要是以CC2530芯片為主控核心的無線節(jié)點設(shè)計[5],根據(jù)功能不同,這些無線節(jié)點又分為ZigBee協(xié)調(diào)器,參考節(jié)點和待定位節(jié)點。其中這三種節(jié)點的CC2530核心系統(tǒng)電路完全相同,如圖2所示。由于CC2530是一個片上系統(tǒng)SoC,自帶有RF射頻模塊,所以只需要在外部設(shè)計一個很簡單的電路就可以實現(xiàn)無線射頻發(fā)射和接受功能。其中C1,C2,Y1和C13,C14,Y2構(gòu)成了2組晶振電路給CC2530芯片提供振蕩頻率。L1,L2,C15,C16,C17,C18共同構(gòu)成了一個巴倫電路,為CC2530到天線之間可以阻抗匹配,使得天線發(fā)射功率達到最大,實現(xiàn)射頻信號的發(fā)射和接收。ZigBee協(xié)調(diào)器除了CC2530核心電路之外還需要一個電源電路為整個協(xié)調(diào)器提供工作電源,該電源是由USB供電,通過HT755芯片將USB的DC+5V電轉(zhuǎn)換成CC2530芯片所需要的DC+3.3V電。通過串口將上位機與ZigBee協(xié)調(diào)器連接起來,通過MAX232芯片將上位機的RS232電平與協(xié)調(diào)器TTL電平相互轉(zhuǎn)化,實現(xiàn)上位機與ZigBee協(xié)調(diào)器之間的通信。而參考節(jié)點與待定位節(jié)點采用完全相同的硬件電路,除了CC2530核心系統(tǒng)電路之外只需要增加一個電源電路為參考節(jié)點和待定位節(jié)點體統(tǒng)電源即可。
圖1 ZigBee定位系統(tǒng)結(jié)構(gòu)圖
圖2 CC2530核心電路原理圖
在室內(nèi)定位系統(tǒng)的ZigBee協(xié)調(diào)器,參考節(jié)點和待定位節(jié)點硬件設(shè)計完成之后,開始對定位系統(tǒng)的軟件進行設(shè)計。本系統(tǒng)的軟件設(shè)計是在TI公司發(fā)布的半開源ZigBee協(xié)議棧Z-Stack的基礎(chǔ)之上進行設(shè)計的。ZigBee協(xié)調(diào)器作為協(xié)調(diào)器在Z-Stack協(xié)議棧基礎(chǔ)上主要實現(xiàn)網(wǎng)絡(luò)建立,搜索節(jié)點,接收參考節(jié)點A,B,C的無線信號,將接收到的無線信號通過串口發(fā)送到上位機等功能。參考節(jié)點作為路由節(jié)點在ZStack基礎(chǔ)上實現(xiàn)搜索ZigBee網(wǎng)絡(luò),加入網(wǎng)絡(luò),搜索待定位節(jié)點,接收待定位節(jié)點發(fā)送的無線信號,將待定位節(jié)點信號強度發(fā)送到ZigBee協(xié)調(diào)器等功能。待定位節(jié)點作為終端節(jié)點在Z-Stack的基礎(chǔ)上實現(xiàn)搜索ZigBee網(wǎng)絡(luò),加入網(wǎng)絡(luò),發(fā)送無線信號等功能。
圖3 室內(nèi)定位系統(tǒng)軟件流程圖
ZigBee協(xié)調(diào)器,參考節(jié)點和待定位節(jié)點的軟件設(shè)計流程圖如圖3所示。系統(tǒng)開始時,ZigBee協(xié)調(diào)器開始對硬件初始化,然后通過ZStack建立ZigBee網(wǎng)絡(luò),搜索該區(qū)域內(nèi)的其他節(jié)點,等待接收數(shù)據(jù),待定位節(jié)點開始硬件初始化,搜索ZigBee網(wǎng)絡(luò),加入ZigBee網(wǎng)絡(luò),等待接收信號,待定位節(jié)點硬件初始化,搜索ZigBee網(wǎng)絡(luò),加入網(wǎng)絡(luò),定時發(fā)送無線信號,若待定位節(jié)點接收到待定位節(jié)點的無線信號,則將接收到的信號強度發(fā)送到ZigBee協(xié)調(diào)器中,ZigBee協(xié)調(diào)器接收到參考節(jié)點發(fā)送的數(shù)據(jù)后,將該數(shù)據(jù)通過串口發(fā)送到上位機中,上位機中通過公式(1)和公式(2)計算出待定位節(jié)點的位置坐標。從而實現(xiàn)對待定位節(jié)點的定位功能。
本文以接收信號強度定位算法為理論依據(jù),用CC2530芯片設(shè)計了室內(nèi)定位系統(tǒng)節(jié)點的硬件設(shè)計,在TI公司的半開源Z-Stack協(xié)議棧的基礎(chǔ)上,開發(fā)了定位系統(tǒng)的軟件程序,最終實現(xiàn)了對室內(nèi)待定位節(jié)點的定位系統(tǒng)。將定位理論應(yīng)用到實踐當中。實現(xiàn)了室內(nèi)定位功能,定位效果準確,系統(tǒng)運行穩(wěn)定可靠。
[1]韓濤.基于神經(jīng)網(wǎng)絡(luò)的井下無線傳感器網(wǎng)絡(luò)節(jié)點定位技術(shù)研究[J].煤礦機械,2012,33:65-68.
[2]孫學(xué)巖.基于ZigBee無線傳感器網(wǎng)絡(luò)的溫室測控系統(tǒng)[J].儀表技術(shù)與傳感器,2011,10:47-49.
[3]白旭華,張瑞峰,張肖萌,王桂英.基于ZigBee網(wǎng)絡(luò)的室內(nèi)定位系統(tǒng)的設(shè)計與實現(xiàn)[J].天津理工大學(xué)學(xué)報,2012,4:11-15.
[4]章磊,黃光明.基于RSSI的無線傳感器網(wǎng)絡(luò)節(jié)點定位算法[J].計算機工程與設(shè)計,2010,31(2):291-294.
[5]韓鵬霄,劉繼堯,周東平.無線傳感器網(wǎng)絡(luò)的室內(nèi)定位節(jié)點設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2013,4:25-28.