CC2431

CC2431

CC2431是TI公司推出的帶硬體定位引擎的片上系統(SoC)解決方案,能滿足低功耗ZigBee/IEEE 802.15.4無線感測器網路的套用需要。CC2431的定位引擎基於RSSI技術,它首先根據RSSI與已知參考節點位置準確計算出有關節點的位置,然後將位置信息傳送給接收端。

基本介紹

  • 中文名:CC2431
  • 研發公司:TI公司
  • 類型:帶硬體定位引擎的片上系統
  • 結點類型:盲節點
關鍵字,介紹,定位引擎,3.1 結點類型,3.2 定位硬體,接收信號強度指示,4.1 偏移量,4.2 線性,4.3信號傳播理論,4.4 RSSI—實際考慮,不同參數的影響,5.1 A(一米處的RSSI值),5.2 N—信號傳播係數,5.3 參考節點數,軟體算法,6.1選擇最好的參考節點,6.2擴展覆蓋區,6.3 多層說明,

關鍵字

· CC2430
· CC2431
· ZigBee
· 定位引擎

介紹

該文檔描述了CC2431中套用的定位引擎。
CC2431是一個ZigBee片上系統,所以它自然需要在ZigBee網路中使用定位引擎。該手冊儘量做到通俗易懂,且不涉及到ZigBee協定層。
這份文檔的主要目的是介紹一些定位技術的概況,並提供一些簡單套用、開發CC2431定位引擎的注意事項和要點。該文檔應當被作為CC2431和CC2430的data sheet的擴展。

定位引擎

CC2431使用的定位算法基於收到的接收信號強度指示(Received SignalStrength Indicator)。RSSI值將隨著距離的增加而減小。
圖1:定位判斷
圖1顯示了一個用於定位檢測的簡單套用系統。“參考結點”是一個安置在已知位置的靜態結點。簡單的說,這個結點知道並能在其它結點請求時返回它自己的位置。一個參考結點並不需要定位引擎的硬體套用,也不需要負責任何計算。一個“盲結點”是一個由CC2431構成的結點。這個結點將收集所有參考結點對它的請求返回的信息,讀出相關的RSSI值,將收集到的數值傳輸到硬體定位引擎,並在之後讀出計算得到的位置並將該位置信息傳輸給一個控制應用程式。
從參考結點傳輸給盲結點的數據包內最少要包括相關結點的X、Y坐標。RSSI由接收器,即盲結點進行計算。
定位引擎的主要功能在於定位計算能夠在每個盲結點中進行,因此算法是可分散的。這種屬性減少了網路傳輸的數據量,因為只有計算得到的位置信息被傳輸,而不是所有用於計算的數據。
二維坐標被用來在地圖上準確標註自然環境中的每個位置。這些方向將如下面所示被X、Y代表。在所有的數據中X用於定義水平方向,Y用於定義豎直方向。CC2431定位系統只能夠處理兩個緯度,但有可能在軟體中實現對第三維的處理(例如代表建築物中的樓層數)。點(X,Y)=(0,0)被放置在坐標網路的左上角。

3.1 結點類型

3.11 參考結點一個靜止不動的結點被叫做參考結點。這個結點必須設定反映物理位置的X、Y坐標值。
參考結點的主要任務是提供一個包括相應盲結點X、Y坐標的“參考”數據包,也稱為錨節點
由於這種結點並不使用硬體定位引擎,所以並不必需使用CC2431。這意味著參考結點可以是CC2430或CC2431。由於CC2430/31是基於同CC2420相同的傳輸技術,因此甚至一個帶有合適的微控器的CC2420都可被用作參考結點。
3.1.2 盲結點
一個盲結點和離它最近的參考結點通信,收集這裡面每個結點的X、Y坐標和RSSI值,並基於定位引擎硬體和輸入的坐標值計算出它的位置。之後計算出的位置信息將被傳送到控制站。這個控制站可能是一台PC機或是系統中的另一個結點。
盲結點必須使用CC2431。

3.2 定位硬體

定位引擎使用了一個從軟體層看來十分簡單的接口,寫入坐標,等待計算,並讀出計算得到的位置信息。
這節將討論不同的參數和怎樣理解它們。
圖2:定位引擎,輸入和輸出
CC2431
3.2.1 輸入
表1顯示了定位硬體的所有必要的輸入。所有的數值在本文中將給出詳細的介紹。下面是一個簡介。
3.2.2 輸出
CC2431
CC2431

接收信號強度指示

當CC2431接收到一個數據包後會自動將RSSI值添加到該數據包中。RSSI值為數據包接收在開始的8個周期中的平均值,用1個位元組表示。當一個數據包從CC2431的FIFO中讀出時,倒數第二個位元組包含RSSI值,這個值在接收到實際數據包的8個符號後測量得到,也可在數據包接收的同時獲得。此時RSSI將反映當時接收信號的強度,而不一定是接收到的數據的信號強度,從而增加了大量節點同時使用信道時RSSI值出錯的可能性。
CC2430/31包含一個RSSI暫存器,此暫存器保留與上述相同的值,但因為接受數據包的時候它並不鎖定,所以暫存器值不能用於進一步的計算。只有與接收到的數據相關的被鎖定的RSSI值才能認為是接收數據時獲得的正確RSSI測量值。

4.1 偏移量

如上所述的RSSI值被聲明為有符合二進制補碼。這個值不能被讀成或解釋成接受到的信號強度。要轉換成實際的接受信號強度值,必須加上一個偏移量。在data sheet(數據手冊)中給出的偏移量的近似值是-45,更準確的說它依賴於實際的天線配置。

4.2 線性

TI實驗室的通過測量研究,表明了晶片的RSSI測量值與信號輸入功率近似線性。這個線性曲線在CC2430的數據手冊中作為輸入功率/RSSI圖給出。
CC2431

4.3信號傳播理論

接收信號強度是傳輸功率和傳輸距離(收發者之間的距離)的函式。
接受信號強度會隨距離的增加按如下等式遞減:
式中:
CC2431
n:信號傳播常數,也叫傳播係數。
d:與傳送者的距離。
A:距傳送者一米時的信號強度。
有關n和A的更深入的討論在第5章中。

4.4 RSSI—實際考慮

4.3節給出了RSSI的理論表達式。本節將討論如何在現實世界中測量RSSI值。當使用理想公式計算信號強度時非常簡單,但要使用真實值時需要考慮那些不確定因素。大多數不確定性是由硬體造成的,但是要用軟體處理的方法來增加精確度。在本節中提供的方法的一個主要目標是:以最可行的方式獲得與距離相關的信號強度值。
4.4.1 RSSI的簡單濾波法有很多濾波器可用於平滑RSSI值,其中最常用的是簡單平均和反饋濾波器。簡單平均濾波器是最基本的,但它需要傳送很多數據包。反饋濾波器僅把部分最近接收到的RSSI值用於計算。它需要比較少的數據,但卻加大了新位置定位計算的時延。
通過每次從各個參考節點接收到的數據包,RSSI平均值按公式1計算:
如果想得到濾波近似值的話,可以使用公式2。
CC2431
在此式中,變數a的典型值是0.75或更大些。這種方法可以確保大差異的RSSI值被平滑掉。當盲節點移動比較快時不建議使用此方法。
4.4.2 RSSI的計算值與測量值的比較
從左到右分別是RSSI的理論值,慢速變化單元,快速變化單元,例如多徑效應。最右邊的輪廓最接近實際值。注意這些圖並不是實際測量的值,而是象徵性的說明使用RSSI值來計算位置時會遇到的問題。

不同參數的影響

Cc2431使用的計算位置的定位引擎需要兩個參數。它們就是“A”和“n”,將在下面進行討論。
本節的例子都是引用的實際試驗的數據。實驗中使用了八個節點,放置在了下面所示的位置上。盲節點放置在參考節點網路的中心區,表中給出了它在在典型位置上的RSSI值。
例中的0,3,4,7節點等距離的放在盲節點周圍。1,2,5,6節點也是等距離的放置的,只不過更近一些。圖中所示的值並不直接的代表測量值。
CC2431
CC2431

5.1 A(一米處的RSSI值)

A,是一個經驗參數,可以通過測量距離傳送者1米處的RSSI值得到。
5.1.1 測量A理論上A的值在各個方向上應該是一致的。但是由於發射者和接收者的天線的各向性,使它的值並不可能一致,因此要使用平均值。
CC2431
圖9描述了距發射者1米處的RSSI的典型值。它顯示了在圖8的P0,P1,P2和P3位置上的測量值。從圖中得到的結論是天線是各向性的,因此要使用A的平均值。本實驗中使用的設備的平均值近似於-46,這些測量值的結論就是RSSI_OFFSET=-45。
CC2431
5.1.2 A 與計算位置的比較下圖展示了參數A的誤差對盲節點位置計算的影響。它沒有給出A的使用值。藍點表明盲節點按不同的A值而得到的位置結果,由此可以看出X和Y的最大相關誤差。A取值於45到49之間已經可以很好的滿足一般的室內環境的精度要求。本例中盲節點放置在(22,26)的位置上,A取值45和49之間的數,計算得到的位置近似為(22,28。
CC2431

5.2 N—信號傳播係數

N是用來描述信號強度隨距離增加而遞減的參量。N的值依賴具體的環境,比如一堵厚牆會很大的影響其取值。只能通過經驗來判斷其值。
CC2431的定位引擎並不直接使用N的值,而使用n_index來替代。N和n_index之間的關係如下表所示。這個轉換表的使用降低了實際硬體的執行複雜度。
由表4可以看出N可以在1.0~8.0之間取值。
CC2431
圖11給出了在給定的以米為單位的距離上,不同的N值對RSSI理論值的影響。N應該儘可能的適用於具體的環境。
CC2431
5.2.1 測量n它是一直在變化的,對於所有的環境來說,找到一個最優的預設值也不是不可能的。最簡單的方法是先放置好所有的參考節點,然後嘗試用不同的n_index值以找到最適合這個具體環境的值。
根據經驗來說,使用15~25之間的值時的結果都很好。

5.3 參考節點數

一個經驗法則是,使用儘可能多的節點。至少要使用三個。如果節點太少,每個節點的影響都很高,一個不正確的RSSI值就會很大程度上影響位置的計算。不正確的RSSI值在本文中是指與理論值不匹配,比如由於類似多徑效應或信號被牆阻礙等等所引起的誤差。
如果盲節點放置在參考節點網路之外的位置上,那么得到的計算結果將會極大的偏離實際位置。所以不建議跟蹤格線之外的對象。

軟體算法

一些通常的算法可以在軟體中實現,下面將會細緻的描述它們。請注意,本套用指南中並不描述任何網路拓撲套用的細節問題。

6.1選擇最好的參考節點

定位計算應該使用“最優”參考節點,即使用具有最高RSSI值的8個參考節點。其他節點都應放棄。如果得不到8個節點,則應該使用儘可能多的節點。

6.2擴展覆蓋區

定位引擎可以處理最高達64 m的X、Y值,對實際套用來說這個區域太小,因此擴展區域非常必要。這可以通過簡單的軟體預處理算法得到,例如每個節點用2個位元組的X、Y代表。因為精度為0.25 m,從而最大範圍為16384 m(2^14=16384)。
圖12給出了一個定位算法的示例,在X、Y方向上每隔30 m放置一個參考節點,圖中淺綠色節點為盲節點,其他節點為參考節點。
CC2431
第1步,確定具有最高RSSI值的一個節點,並計算把它映射到64 m×64 m範圍的正方形中心的偏移值。由於已知來自此節點的RSSI值,所以到此節點的距離很容易得到。盲節點必須放置在圖12的白色圓環內。
第2步,確定除“最強”節點之外的其他使用節點,即圖中黑色節點。所有節點用第1步中的偏移值進行修正。
第3步,所有獲得值送人定位引擎並讀出結果位置。
最後一步,將補償值添加到計算位置中。完成這些計算之後,盲節點在全局格線中的位置就確定了。

6.3 多層說明

定位引擎得到的只是二維坐標,如何區分不同的水平面,就只能通過軟體方法處理。例如,可以首先確定最近的參考節點並讀出此節點的水平值。這個水平值被假定為盲節點所在的層,之後盲節點要保證只有同層節點被輸入到定位引擎當中。水平層用一個位元組Z來表示,則可以區分256個不同的層。
假設盲節點在同一層的接收到的信號強度大於從其他層節點的。這意味著參考節點的密度會非常高。這並不是說從同一層參考節點接收到的信號強度都大於其他層的。

相關詞條

熱門詞條

聯絡我們