基于ZigBee技術(shù)的室內(nèi)定位系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著數(shù)據(jù)業(yè)務(wù)和多媒體業(yè)務(wù)的快速增加,人們對定位與導(dǎo)航的需求日益增大,尤其在復(fù)雜的室內(nèi)環(huán)境,如機(jī)場大廳、展廳、倉庫、超市、圖書館、地下停車場等環(huán)境中,常常需要確定移動終端或其持有者、設(shè)施與物品在室內(nèi)的位置。但是受定位時(shí)間、定位精度以及室內(nèi)復(fù)雜環(huán)境等條件的限制,比較完善的定位技術(shù)目前還無法很好地利用。ZigBee是一種新興的短距離、低速率無線網(wǎng)絡(luò)技術(shù),它最顯著的特點(diǎn)是低功耗和低成本。利用ZigBee技術(shù)實(shí)現(xiàn)定位具有低成本、低功耗的優(yōu)點(diǎn),且信號傳輸不受視距的影響。
1 相關(guān)核心技術(shù)概述
1.1 ZigBee技術(shù)概述
ZigBee技術(shù)[1]是一種新興的近距離、低功耗、低成本、低數(shù)據(jù)率、低復(fù)雜度的雙向無線通信技術(shù),它是基于IEEE 802.15.4標(biāo)準(zhǔn)開發(fā)的無線協(xié)議。網(wǎng)絡(luò)層以上協(xié)議由ZigBee聯(lián)盟制定,IEEE 802.15.4負(fù)責(zé)物理層和鏈路層標(biāo)準(zhǔn)。完整的ZigBee協(xié)議套件由應(yīng)用層、應(yīng)用架構(gòu)層、網(wǎng)絡(luò)層以及數(shù)據(jù)鏈路層和物理層等組成,協(xié)議棧結(jié)構(gòu)如圖1所示。
500)this.style.width=500;" />
圖1 ZigBee協(xié)議棧結(jié)構(gòu)
ZigBee可使用的頻段有3個(gè),分別是2.4 GHz的ISM頻段、歐洲的868 MHz 頻段以及美國的915 MHz 頻段,不同頻段可使用的信道分別是16、1、10個(gè)。中國采用2.4 GHz頻段,它是免申請和免使用費(fèi)的頻段;采用直接序列擴(kuò)頻技術(shù)DSSS(Direct Sequence Spread Spectrum),傳輸距離介于10~75 m(增加RF發(fā)射功率,可達(dá)500 m);傳輸速率為20~250 kb/s,適合傳感器數(shù)據(jù)采集和控制數(shù)據(jù)的傳輸。ZigBee技術(shù)具有強(qiáng)大的組網(wǎng)能力,可以形成星型、樹型和MESH網(wǎng)狀網(wǎng)。
1.2 RSSI定位技術(shù)
RSSI[2](Received Signal Strength Indicator,接收信號強(qiáng)度指示)是指節(jié)點(diǎn)接收到的無線信號強(qiáng)度大小。在基于接收信號強(qiáng)度指示RSSI 的定位中,已知發(fā)射節(jié)點(diǎn)的發(fā)射信號強(qiáng)度,接收節(jié)點(diǎn)根據(jù)接收到信號的強(qiáng)度計(jì)算出信號的傳播損耗,利用理論和經(jīng)驗(yàn)?zāi)P蛯鬏敁p耗轉(zhuǎn)化為距離,再利用已有的算法計(jì)算出節(jié)點(diǎn)的位置。該技術(shù)硬件要求較低、算法相對簡單,在實(shí)驗(yàn)室環(huán)境中表現(xiàn)出良好特性;但由于環(huán)境因素變化的原因,在實(shí)際應(yīng)用中往往還需要改進(jìn)。接收信號強(qiáng)度是發(fā)射功率和發(fā)射器與接收器間距離的函數(shù)。
接收信號強(qiáng)度RSSI理論值可由式 (1)表示:
RSSI=-(10n·lgd+A)(1)
其中,n代表信號傳播常量,也叫傳播指數(shù);d代表距發(fā)射器間的距離;A代表距離1 m時(shí)的接收信號強(qiáng)度。
信號的衰減與距離成對數(shù)衰減的關(guān)系。節(jié)點(diǎn)到信號源的距離越近, 由RSSI值的偏差產(chǎn)生的絕對距離誤差越?。欢?dāng)距離大于某一值時(shí),由RSSI波動造成的絕對距離誤差將會很大。一個(gè)未知節(jié)點(diǎn)可能收到n個(gè)參考節(jié)點(diǎn)的信號, 所以應(yīng)當(dāng)采用RSSI值大的前幾個(gè)參考節(jié)點(diǎn)進(jìn)行定位計(jì)算,這樣可以避免定位誤差擴(kuò)大。
2 ZigBee技術(shù)實(shí)現(xiàn)定位的優(yōu)勢
(1) 功耗低
由于ZigBee的傳輸速率低,發(fā)射功率僅為1 mW,而且采用了休眠模式,因此ZigBee設(shè)備非常省電。ZigBee設(shè)備僅靠2節(jié)5號電池就可以維持長達(dá)6個(gè)月到2年左右的使用時(shí)間,其功耗遠(yuǎn)遠(yuǎn)低于其他無線設(shè)備。
(2) 成本低
與 GPS相比,定位引擎在單芯片 ZigBee RF收發(fā)器中與 MCU集成在一起,成本不及 GPS硬件的1/10,功耗也只是 GPS硬件的一小部分,并且ZigBee協(xié)議是免專利費(fèi)的。
(3) 時(shí)延短
通信時(shí)延和從休眠狀態(tài)激活的時(shí)延都非常短,典型的搜索設(shè)備時(shí)延為30 ms,休眠激活的時(shí)延是15 ms,活動設(shè)備信道接入的時(shí)延為15 ms。因此ZigBee技術(shù)適用于對實(shí)時(shí)定位要求較高的應(yīng)用。
(4) 網(wǎng)絡(luò)容量大
一個(gè)星型結(jié)構(gòu)的ZigBee網(wǎng)絡(luò)最多可以容納254個(gè)從設(shè)備和1個(gè)主設(shè)備,組網(wǎng)方式靈活。隨著ZigBee技術(shù)的成熟,未來ZigBee設(shè)備不斷增多,可以利用具有ZigBee RF的設(shè)備或基礎(chǔ)設(shè)施,容易組建ZigBee網(wǎng)絡(luò),降低了ZigBee節(jié)點(diǎn)設(shè)計(jì)和組網(wǎng)成本,且利用更多的ZigBee設(shè)備可以達(dá)到更高的定位精度。
3 室內(nèi)定位系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)結(jié)構(gòu)
定位系統(tǒng)由盲節(jié)點(diǎn)(即待定位節(jié)點(diǎn))和參考節(jié)點(diǎn)組成,為了便于用戶獲得位置信息,還需要一個(gè)與用戶進(jìn)行交互的控制終端和一個(gè)ZigBee網(wǎng)關(guān)。系統(tǒng)結(jié)構(gòu)如圖2所示。
500)this.style.width=500;" />
圖2 系統(tǒng)結(jié)構(gòu)圖
參考節(jié)點(diǎn)是一個(gè)位于已知位置的靜態(tài)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)知道自己的位置并可以將其位置通過發(fā)送數(shù)據(jù)包通知其他節(jié)點(diǎn)。盲節(jié)點(diǎn)從參考節(jié)點(diǎn)處接收數(shù)據(jù)包信號,獲得參考節(jié)點(diǎn)位置坐標(biāo)及相應(yīng)的RSSI值并將其送入定位引擎,然后可以讀出由定位引擎計(jì)算得到的自身位置。由參考節(jié)點(diǎn)發(fā)送給盲節(jié)點(diǎn)的數(shù)據(jù)包至少包含參考節(jié)點(diǎn)的坐標(biāo)參數(shù)水平位置X和豎直位置Y,而RSSI值可由接收節(jié)點(diǎn)計(jì)算獲得。
一般來說參考節(jié)點(diǎn)越多越好,要得到一個(gè)可靠的定位坐標(biāo)至少需要3個(gè)參考節(jié)點(diǎn)。如果參考節(jié)點(diǎn)太少,節(jié)點(diǎn)間影響會很大,得到的位置信息就不精確,誤差大。對于CC2431,要得到好的定位精度,需要8個(gè)參考節(jié)點(diǎn);如果得不到8個(gè)節(jié)點(diǎn),則應(yīng)該使用盡可能多的節(jié)點(diǎn)。CC2431的無線定位引擎可以處理最高達(dá)64 m的X、Y值。
為了收集計(jì)算得到的數(shù)據(jù)和與無線節(jié)點(diǎn)網(wǎng)絡(luò)交互,特定的控制系統(tǒng)是必需的。一個(gè)典型的控制單元是一臺計(jì)算機(jī),然而一個(gè)PC沒有一個(gè)嵌入的無線接收器,因此接收器需要從外部接入,還需要一個(gè)ZigBee網(wǎng)關(guān)。ZigBee網(wǎng)關(guān)的作用就是將無線網(wǎng)絡(luò)連接到控制終端,所有位置計(jì)算都由盲節(jié)點(diǎn)來實(shí)現(xiàn),所以控制終端不需要具備任何位置計(jì)算功能。它的唯一目的是讓用戶和無線網(wǎng)絡(luò)進(jìn)行交互,比如獲得盲節(jié)點(diǎn)的位置信息。
3.2 CC2431芯片簡介
CC2431是TI公司推出的帶硬件定位引擎的片上系統(tǒng)(SoC)解決方案,能滿足低功耗ZigBee/IEEE 802.15.4無線傳感器網(wǎng)絡(luò)的應(yīng)用需要。CC2431的定位引擎基于RSSI技術(shù),根據(jù)接收信號強(qiáng)度與已知參考節(jié)點(diǎn)位置準(zhǔn)確計(jì)算出有關(guān)節(jié)點(diǎn)位置,然后將位置信息發(fā)送給接收端。
CC2431由2.4 GHz直接序列擴(kuò)頻(DSSS)射頻收發(fā)器核心和增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的8位8051微控制器組成,是帶有128 KB閃存的8051內(nèi)核ZigBee無線單片機(jī),并帶有定位跟蹤引擎。CC2431的設(shè)計(jì)結(jié)合了8 KB的RAM及強(qiáng)大的外圍模塊,并且有3種不同的版本,它們是根據(jù)不同的閃存空間32 KB、64 KB和128 KB來優(yōu)化復(fù)雜度與成本的組合。CC2431的尺寸只有7 mm×7 mm的48腳封裝,采用具有內(nèi)嵌閃存的0.18 μm CMOS標(biāo)準(zhǔn)技術(shù)。針對協(xié)議棧、網(wǎng)絡(luò)和應(yīng)用軟件執(zhí)行時(shí)對MCU處理能力的要求,CC2431包含一個(gè)增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的8位8051微控制器內(nèi)核,運(yùn)行的時(shí)鐘頻率為32 MHz。CC2431還包含一個(gè)DMA控制器,它能夠被用于減輕8051微控制器內(nèi)核對數(shù)據(jù)搬移的操作,因此提高了芯片整體的性能。
系統(tǒng)基本硬件連接電路如圖3所示。連接50 Ω單極天線的部分由電感和電容構(gòu)成,其中的電感L1、L2還為芯片內(nèi)部的低噪聲放大器和功放提供直流偏置。也可采用一個(gè)無需阻抗匹配電路的折疊式偶極子PCB天線。圖3中,XTAL1為一個(gè)等效串聯(lián)電阻(ESR)<60 Ω的32 MHz晶振,R1為其建立精確的偏置電路,C1、C2是去耦電容,用于電源濾波,向電壓調(diào)節(jié)器提供穩(wěn)定的核心電壓。
圖3中,CC231還提供了良好的接地保護(hù)功能,除了48引腳外,其芯片底層提供了AGND接地引腳,可以有效地抑制噪聲,減少電磁干擾,保證電路系統(tǒng)穩(wěn)定工作。
500)this.style.width=500;" />
圖3 系統(tǒng)基本硬件連接電路
3.3 定位引擎操作流程
500)this.style.width=500;" />
圖4 定位引擎操作流程
CC2431的硬件定位引擎與軟件定位方法相比的優(yōu)勢是: 速度快、精度高,不占用處理器時(shí)間。該定位引擎的主要特點(diǎn)如下:定位估計(jì)算法需3~8個(gè)參考節(jié)點(diǎn);定位估計(jì)以0.5 m為單位;計(jì)算節(jié)點(diǎn)位置耗時(shí)少于40 μs;定位范圍為64 m;定位偏差低于3 m;定位引擎采用分布式計(jì)算方法,該方法使用已知參考節(jié)點(diǎn)的RSSI信息定位。在節(jié)點(diǎn)上分布式定位計(jì)算可避免集中計(jì)算方法帶來的大量網(wǎng)絡(luò)傳輸與通信延遲問題。定位引擎操作流程[3]如圖4所示。
在定位引擎運(yùn)行之前,必須使能定位引擎寄存器LO2CENG的第4位LOCENG.EN。當(dāng)要停止定位引擎運(yùn)行時(shí),應(yīng)往LOCENG.EN 寫入0關(guān)斷引擎的時(shí)鐘信號,以降低CC2431的功耗。對定位引擎的操作,主要就是對與定位引擎有關(guān)的寄存器的操作。
定位引擎運(yùn)行時(shí)需要輸入3~8個(gè)參考坐標(biāo)。參考坐標(biāo)是以m為單位的,它表示各個(gè)參考節(jié)點(diǎn)的位置,其數(shù)值位于0~63.75,最高精度為0.25 m,以最低2位為小數(shù)部分,剩余6位為整數(shù)部分。參考坐標(biāo)存放于RF 寄存器REFCOORD中。在寫入REFCOORD之前,寄存器LO2CENG的第1位LOCENG.REFLD 必須寫入1,用于指示一組參考坐標(biāo)將要被寫入。一旦坐標(biāo)寫入過程開始(LO2CENG.REFLD=1),8對坐標(biāo)必須一次性寫入。當(dāng)定位引擎使用少于8個(gè)參考坐標(biāo)時(shí),要將未用的參考坐標(biāo)寫入0.0。
4 定位區(qū)域的擴(kuò)展
定位引擎可以處理最高達(dá)64 m的X、Y值,更準(zhǔn)確地說是63.75 m,但是這個(gè)區(qū)域?qū)?shí)際應(yīng)用來說顯得太小,因此擴(kuò)展區(qū)域非常必要??梢酝ㄟ^軟件預(yù)處理算法來實(shí)現(xiàn)。每個(gè)節(jié)點(diǎn)用2個(gè)字節(jié)代表X、Y。因?yàn)榫葹?.25 m, 因此最大范圍為16 384 m(214=16 384)。圖5是用預(yù)處理算法進(jìn)行區(qū)域擴(kuò)展的示意圖。
500)this.style.width=500;" />
圖5 擴(kuò)展定位區(qū)域示意圖
該圖所示的區(qū)域中,在X、Y方向上每隔30 m放置一個(gè)參考節(jié)點(diǎn),虛環(huán)中間的白色節(jié)點(diǎn)為盲節(jié)點(diǎn),其他節(jié)點(diǎn)為參考節(jié)點(diǎn)。第1步,確定具有最高RSSI值的一個(gè)節(jié)點(diǎn)并計(jì)算一個(gè)補(bǔ)償值,使之“移動”到64 m×64 m范圍的中心。由于已知來自此節(jié)點(diǎn)的RSSI值,所以到此節(jié)點(diǎn)的距離很容易得到;第2步,確定除“最強(qiáng)”節(jié)點(diǎn)之外的其他使用節(jié)點(diǎn),所有節(jié)點(diǎn)用第1步中的補(bǔ)償值進(jìn)行修正;第3步,所有獲得值送入定位引擎,讀出由其計(jì)算得到的位置;最后一步,將補(bǔ)償值添加到計(jì)算得到的位置中,完成這些計(jì)算之后,盲節(jié)點(diǎn)在網(wǎng)格中的位置就確定了。
結(jié)語
CC2431作為一款集成有定位引擎的ZigBee射頻收發(fā)器,結(jié)合其他ZigBee節(jié)點(diǎn)構(gòu)成的無線網(wǎng)絡(luò),可以實(shí)現(xiàn)3~5 m的定位精度。ZigBee作為一種高性價(jià)比、低成本、低功耗、低復(fù)雜度的無線通信技術(shù),以其來實(shí)現(xiàn)室內(nèi)無線定位具有良好的應(yīng)用前景。隨著人們生活水準(zhǔn)的提高,人們對定位服務(wù)有著越來越高的需求,雖然目前已經(jīng)有多種定位技術(shù),但是在室內(nèi)定位方面存在一定缺陷和不足。如果將這些定位技術(shù)和ZigBee定位技術(shù)結(jié)合起來,將會實(shí)現(xiàn)更加完美和精準(zhǔn)的定位服務(wù)。