基于ZigBee技術的室內(nèi)定位系統(tǒng)的設計
參考節(jié)點是一個位于已知位置的靜態(tài)節(jié)點,這個節(jié)點知道自己的位置并可以將其位置通過發(fā)送數(shù)據(jù)包通知其他節(jié)點。盲節(jié)點從參考節(jié)點處接收數(shù)據(jù)包信號,獲得參考節(jié)點位置坐標及相應的RSSI值并將其送入定位引擎,然后可以讀出由定位引擎計算得到的自身位置。由參考節(jié)點發(fā)送給盲節(jié)點的數(shù)據(jù)包至少包含參考節(jié)點的坐標參數(shù)水平位置X和豎直位置Y,而RSSI值可由接收節(jié)點計算獲得。
一般來說參考節(jié)點越多越好,要得到一個可靠的定位坐標至少需要3個參考節(jié)點。如果參考節(jié)點太少,節(jié)點間影響會很大,得到的位置信息就不精確,誤差大。對于CC2431,要得到好的定位精度,需要8個參考節(jié)點;如果得不到8個節(jié)點,則應該使用盡可能多的節(jié)點。CC2431的無線定位引擎可以處理最高達64 m的X、Y值。
為了收集計算得到的數(shù)據(jù)和與無線節(jié)點網(wǎng)絡交互,特定的控制系統(tǒng)是必需的。一個典型的控制單元是一臺計算機,然而一個PC沒有一個嵌入的無線接收器,因此接收器需要從外部接入,還需要一個ZigBee網(wǎng)關。ZigBee網(wǎng)關的作用就是將無線網(wǎng)絡連接到控制終端,所有位置計算都由盲節(jié)點來實現(xiàn),所以控制終端不需要具備任何位置計算功能。它的唯一目的是讓用戶和無線網(wǎng)絡進行交互,比如獲得盲節(jié)點的位置信息。
3.2 CC2431芯片簡介
CC2431是TI公司推出的帶硬件定位引擎的片上系統(tǒng)(SoC)解決方案,能滿足低功耗ZigBee/IEEE 802.15.4無線傳感器網(wǎng)絡的應用需要。CC2431的定位引擎基于RSSI技術,根據(jù)接收信號強度與已知參考節(jié)點位置準確計算出有關節(jié)點位置,然后將位置信息發(fā)送給接收端。
CC2431由2.4 GHz直接序列擴頻(DSSS)射頻收發(fā)器核心和增強型工業(yè)標準的8位8051微控制器組成,是帶有128 KB閃存的8051內(nèi)核ZigBee無線單片機,并帶有定位跟蹤引擎。CC2431的設計結合了8 KB的RAM及強大的外圍模塊,并且有3種不同的版本,它們是根據(jù)不同的閃存空間32 KB、64 KB和128 KB來優(yōu)化復雜度與成本的組合。CC2431的尺寸只有7 mm×7 mm的48腳封裝,采用具有內(nèi)嵌閃存的0.18 μm CMOS標準技術。針對協(xié)議棧、網(wǎng)絡和應用軟件執(zhí)行時對MCU處理能力的要求,CC2431包含一個增強型工業(yè)標準的8位8051微控制器內(nèi)核,運行的時鐘頻率為32 MHz。CC2431還包含一個DMA控制器,它能夠被用于減輕8051微控制器內(nèi)核對數(shù)據(jù)搬移的操作,因此提高了芯片整體的性能。
系統(tǒng)基本硬件連接電路如圖3所示。連接50 Ω單極天線的部分由電感和電容構成,其中的電感L1、L2還為芯片內(nèi)部的低噪聲放大器和功放提供直流偏置。也可采用一個無需阻抗匹配電路的折疊式偶極子PCB天線。圖3中,XTAL1為一個等效串聯(lián)電阻(ESR)60 Ω的32 MHz晶振,R1為其建立精確的偏置電路,C1、C2是去耦電容,用于電源濾波,向電壓調(diào)節(jié)器提供穩(wěn)定的核心電壓。
圖3中,CC231還提供了良好的接地保護功能,除了48引腳外,其芯片底層提供了AGND接地引腳,可以有效地抑制噪聲,減少電磁干擾,保證電路系統(tǒng)穩(wěn)定工作。
圖3 系統(tǒng)基本硬件連接電路
3.3 定位引擎操作流程
圖4 定位引擎操作流程
CC2431的硬件定位引擎與軟件定位方法相比的優(yōu)勢是: 速度快、精度高,不占用處理器時間。該定位引擎的主要特點如下:定位估計算法需3~8個參考節(jié)點;定位估計以0.5 m為單位;計算節(jié)點位置耗時少于40 μs;定位范圍為64 m;定位偏差低于3 m;定位引擎采用分布式計算方法,該方法使用已知參考節(jié)點的RSSI信息定位。在節(jié)點上分布式定位計算可避免集中計算方法帶來的大量網(wǎng)絡傳輸與通信延遲問題。定位引擎操作流程[3]如圖4所示。
在定位引擎運行之前,必須使能定位引擎寄存器LO2CENG的第4位LOCENG.EN。當要停止定位引擎運行時,應往LOCENG.EN 寫入0關斷引擎的時鐘信號,以降低CC2431的功耗。對定位引擎的操作,主要就是對與定位引擎有關的寄存器的操作。
定位引擎運行時需要輸入3~8個參考坐標。參考坐標是以m為單位的,它表示各個參考節(jié)點的位置,其數(shù)值位于0~63.75,最高精度為0.25 m,以最低2位為小數(shù)部分,剩余6位為整數(shù)部分。參考坐標存放于RF 寄存器REFCOORD中。在寫入REFCOORD之前,寄存器LO2CENG的第1位LOCENG.REFLD 必須寫入1,用于指示一組參考坐標將要被寫入。一旦坐標寫入過程開始(LO2CENG.REFLD=1),8對坐標必須一次性寫入。當定位引擎使用少于8個參考坐標時,要將未用的參考坐標寫入0.0。
4 定位區(qū)域的擴展
定位引擎可以處理最高達64 m的X、Y值,更準確地說是63.75 m,但是這個區(qū)域?qū)嶋H應用來說顯得太小,因此擴展區(qū)域非常必要??梢酝ㄟ^軟件預處理算法來實現(xiàn)。每個節(jié)點用2個字節(jié)代表X、Y。因為精度為0.25 m, 因此最大范圍為16 384 m(214=16 384)。圖5是用預處理算法進行區(qū)域擴展的示意圖。
圖5 擴展定位區(qū)域示意圖
該圖所示的區(qū)域中,在X、Y方向上每隔30 m放置一個參考節(jié)點,虛環(huán)中間的白色節(jié)點為盲節(jié)點,其他節(jié)點為參考節(jié)點。第1步,確定具有最高RSSI值的一個節(jié)點并計算一個補償值,使之“移動”到64 m×64 m范圍的中心。由于已知來自此節(jié)點的RSSI值,所以到此節(jié)點的距離很容易得到;第2步,確定除“最強”節(jié)點之外的其他使用節(jié)點,所有節(jié)點用第1步中的補償值進行修正;第3步,所有獲得值送入定位引擎,讀出由其計算得到的位置;最后一步,將補償值添加到計算得到的位置中,完成這些計算之后,盲節(jié)點在網(wǎng)格中的位置就確定了。
結語
CC2431作為一款集成有定位引擎的ZigBee射頻收發(fā)器,結合其他ZigBee節(jié)點構成的無線網(wǎng)絡,可以實現(xiàn)3~5 m的定位精度。ZigBee作為一種高性價比、低成本、低功耗、低復雜度的無線通信技術,以其來實現(xiàn)室內(nèi)無線定位具有良好的應用前景。隨著人們生活水準的提高,人們對定位服務有著越來越高的需求,雖然目前已經(jīng)有多種定位技術,但是在室內(nèi)定位方面存在一定缺陷和不足。如果將這些定位技術和ZigBee定位技術結合起來,將會實現(xiàn)更加完美和精準的定位服務。
評論