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