當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

CC2431是一款帶定位引擎的片上系統(tǒng)。

文章詳細(xì)介紹基于RSSI技術(shù)的無線定位引擎的特點(diǎn)、功能、定位算法、軟件操作方法;說明定位引擎使用參數(shù)的定義、測(cè)量獲取方法、使用注意事項(xiàng)等;最后根據(jù)定位引擎在使用中存在的定位覆蓋范圍小和不具備三維定位能力的不足給出兩種改進(jìn)方法。

引言

  CC2431是TI公司推出的帶硬件定位引擎的片上系統(tǒng)(SoC)解決方案,能滿足低功耗ZigBee/IEEE 802.15.4無線傳感器網(wǎng)絡(luò)的應(yīng)用需要。CC2431定位引擎基于RSSI(Received Signal Strength Indicator,接收信號(hào)強(qiáng)度指示)技術(shù),根據(jù)接收信號(hào)強(qiáng)度與已知參考節(jié)點(diǎn)位置準(zhǔn)確計(jì)算出有關(guān)節(jié)點(diǎn)位置,然后將位置信息發(fā)送給接收端。相比于集中型定位系統(tǒng),RSSI功能降低了網(wǎng)絡(luò)流量與通信延遲,在典型應(yīng)用中可實(shí)現(xiàn)3~5 m定位精度和0.25 m的分辨率。本文在簡(jiǎn)述基于RSSI定位技術(shù)的基礎(chǔ)上,詳細(xì)介紹CC2431無線定位引擎的功能、特點(diǎn)及使用方法,并且針對(duì)CC2431無線定位引擎定位范圍小和只能進(jìn)行二維定位的不足之處給出了改進(jìn)方法。

  1 RSSI定位技術(shù)

  RSSI是指節(jié)點(diǎn)接收到的無線信號(hào)強(qiáng)度大小。在基于接收信號(hào)強(qiáng)度指示RSSI的定位中,已知發(fā)射節(jié)點(diǎn)的發(fā)射信號(hào)強(qiáng)度,接收節(jié)點(diǎn)根據(jù)接收到信號(hào)的強(qiáng)度計(jì)算出信號(hào)的傳播損耗,利用理論和經(jīng)驗(yàn)?zāi)P蛯鬏敁p耗轉(zhuǎn)化為距離,再利用已有的算法計(jì)算出節(jié)點(diǎn)的位置。該技術(shù)硬件要求較低、算法相對(duì)簡(jiǎn)單,在實(shí)驗(yàn)室環(huán)境中表現(xiàn)出良好特性;但由于環(huán)境因素變化的原因,在實(shí)際應(yīng)用中往往還需要進(jìn)行改進(jìn)。

  2 CC2431無線定位引擎

  CC2431無線定位引擎基于RSSI技術(shù),定位系統(tǒng)由參考節(jié)點(diǎn)和盲節(jié)點(diǎn)組成。參考節(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ù)包信號(hào),獲得參考節(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ì)算獲得。

  2.1 定位引擎

  定位引擎的使用非常簡(jiǎn)單,只要將所需參數(shù)寫入定位引擎,等待定位引擎計(jì)算完畢就可以直接讀出計(jì)算結(jié)果。所需參數(shù)如表1所列。

  表1 定位引擎輸入?yún)?shù)

500)this.width=500" border=0>

  2.2 RSSI參數(shù)

  當(dāng)CC2431接收到一個(gè)數(shù)據(jù)包后會(huì)自動(dòng)將RSSI值添加到該數(shù)據(jù)包中。RSSI值為數(shù)據(jù)包接收在開始的8個(gè)周期中的平均值,用1個(gè)字節(jié)表示。當(dāng)一個(gè)數(shù)據(jù)包從CC2431的FIFO中讀出時(shí),倒數(shù)第二個(gè)字節(jié)包含RSSI值,這個(gè)值在接收到實(shí)際數(shù)據(jù)包的8個(gè)符號(hào)后測(cè)量得到,也可在數(shù)據(jù)包接收的同時(shí)獲得。此時(shí)RSSI將反映當(dāng)時(shí)接收信號(hào)的強(qiáng)度,而不一定是接收到的數(shù)據(jù)的信號(hào)強(qiáng)度,從而增加了大量節(jié)點(diǎn)同時(shí)使用信道時(shí)RSSI值出錯(cuò)的可能性。

  CC2431包含一個(gè)RSSI寄存器,此寄存器保留與上述相同的值,但它并不鎖定,因此寄存器值不能用于進(jìn)一步的計(jì)算。只有與接收到的數(shù)據(jù)相關(guān)的被鎖定的RSSI值才能認(rèn)為是接收數(shù)據(jù)時(shí)獲得的正確RSSI測(cè)量值。

  RSSI的理論值可以由式(1)表示:

500)this.width=500" border=0>

  其中,射頻參數(shù)A和n用于描述網(wǎng)絡(luò)操作環(huán)境。在全向模式下,射頻參數(shù)A被定義為用dBm表示的距發(fā)射端1 m處接收到的信號(hào)強(qiáng)度絕對(duì)值。如信號(hào)強(qiáng)度為-40 dBm,那么參數(shù)A被定為40。定位引擎的期望參數(shù)A為30.0~50.0,精度為0.5。參數(shù)A用無符號(hào)定點(diǎn)數(shù)值給出,最低位為小數(shù)位,而其余各位為整數(shù)位。A的一個(gè)典型值為40.0。

  射頻參數(shù)n被定義為路徑損失指數(shù),它指出了信號(hào)能量隨著到收發(fā)器距離的增加而衰減的速率。衰減與d-n成比例,這里d是發(fā)射器和接收器之間的距離。實(shí)際寫入定位引擎的參數(shù)n是一個(gè)通過查表得到的整數(shù)索引值n_index,如表2所列。

表2 參數(shù)n查詢表

500)this.width=500" border=0>

  例如,通過測(cè)量得到n=2.98,查表得到最接近的有效值為3.00,相應(yīng)的索引值是13。因此,整數(shù)13作為參數(shù)n寫入定位引擎中。參數(shù)n以[0,31]之間的整數(shù)索引寫入定位引擎,索引用整數(shù)表示。如n=7寫入為000000111,n的典型值是13。

2.3 參考節(jié)點(diǎn)數(shù)量

  一般來說參考節(jié)點(diǎn)越多越好,要得到一個(gè)可靠的定位坐標(biāo)至少需要3個(gè)參考節(jié)點(diǎn)。如果參考節(jié)點(diǎn)太少,節(jié)點(diǎn)間影響會(huì)很大。一個(gè)錯(cuò)誤的RSSI值能明顯改變所得的位置坐標(biāo),錯(cuò)誤的RSSI值在此即為不適合理論值的RSSI值,可能由于多路信號(hào)或信號(hào)被墻壁阻擋等造成。另外,如果盲節(jié)點(diǎn)位于參考節(jié)點(diǎn)網(wǎng)格外部,很可能結(jié)果與實(shí)際使用位置差別很大,因此不應(yīng)該跟蹤位于網(wǎng)格之外的目標(biāo)。

2.4 定位算法

  首先,定位操作應(yīng)該使用“最優(yōu)”參考節(jié)點(diǎn),即使用具有最高RSSI值的8個(gè)參考節(jié)點(diǎn)。其他節(jié)點(diǎn)都應(yīng)放棄。如果得不到8個(gè)節(jié)點(diǎn),則應(yīng)該使用盡可能多的節(jié)點(diǎn)。

  可用于軟件操作的算法很多,例如在圖1所示的區(qū)域中,在X、Y方向上每隔30 m放置一個(gè)參考節(jié)點(diǎn),圖中白色節(jié)點(diǎn)為盲節(jié)點(diǎn),其他節(jié)點(diǎn)為參考節(jié)點(diǎn)。第1步,確定具有最高RSSI值的一個(gè)節(jié)點(diǎn)并計(jì)算一個(gè)補(bǔ)償值,使之“移動(dòng)”到64 m×64 m范圍的中心。由于已知來自此節(jié)點(diǎn)的RSSI值,所以到此節(jié)點(diǎn)的距離很容易得到。第2步,確定除“最強(qiáng)”節(jié)點(diǎn)之外的其他使用節(jié)點(diǎn),即圖中黑色節(jié)點(diǎn)。所有節(jié)點(diǎn)用第1步中的補(bǔ)償值進(jìn)行修正。第3步,所有獲得值送入定位引擎最終讀出結(jié)果位置。最后一步,將補(bǔ)償值添加到計(jì)算位置中。完成這些計(jì)算之后,盲節(jié)點(diǎn)在全局網(wǎng)格中的位置就確定了。

500)this.width=500" border=0>

圖1 定位算法示意圖

2.5 軟件操作

  在定位引擎運(yùn)行之前,必須使能定位引擎寄存器LOCENG的第4位LOCENG.EN。當(dāng)要停止定位引擎運(yùn)行時(shí),應(yīng)往LOCENG.EN寫入0關(guān)斷引擎的時(shí)鐘信號(hào),從而降低CC2431的功耗。對(duì)定位引擎的操作,主要就是對(duì)與定位引擎有關(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之前,寄存器LOCENG的第1位 LOCENG.REFLD必須寫入1,用于指示一組參考坐標(biāo)將要被寫入。一旦坐標(biāo)寫入過程開始(LOCENG.REFLD=1),8對(duì)坐標(biāo)必須一次性寫入。當(dāng)定位引擎使用少于8個(gè)參考坐標(biāo)時(shí),要將未用的參考坐標(biāo)寫入0.0。

  RSSI值在[-40 dBm,-95 dBm]之間,精度為0.5 dBm,寫入值中應(yīng)去掉負(fù)號(hào)。如RSSI的值為-50.35 dB,寫入到定位引擎為50.5。注意,未用的參考坐標(biāo)必須用0.0作為RSSI值寫入。如果僅有部分參數(shù)寫入,定位引擎將不能正確工作。

  所有的測(cè)量參數(shù)應(yīng)寫入RF寄存器MEASPARM中。在寫入MEASPARM之前,寄存器LOCENG的第2位LOCENG.PARLD必須寫入1,表示一組測(cè)量參數(shù)將被寫入。一旦參數(shù)寫入開始(LOCENG.PARLD=1),所有10個(gè)參數(shù)必須一次性全部寫入。測(cè)量參數(shù)必須按照 [A,n,rssi0,rssi1,…,rssi7]順序?qū)懭隡EASPARM寄存器,任何未使用的位必須寫0。10個(gè)參數(shù)全部寫完之后,LOCENG.PARLD必須寫入0。

  參數(shù)坐標(biāo)和測(cè)量參數(shù)寫入之后,通過把寄存器LOCENG第0位LOCENG.RUN寫入1啟動(dòng)定位估計(jì)計(jì)算。通常,LOCENG.RUN被置1 后的1 200個(gè)系統(tǒng)周期之后,LOCENG的第3位LOCENG.DONE被置1。此時(shí),估計(jì)坐標(biāo)可從LOCX和LOCY寄存器讀出。定位引擎不產(chǎn)生任何中斷請(qǐng)求。在新的結(jié)果被計(jì)算出來或下一次重新啟動(dòng)之前,估計(jì)坐標(biāo)值在LOCX和LOCY中保持有效。

  下面給出一個(gè)簡(jiǎn)單的定位引擎操作函數(shù):

void CalculatePostition(LOC_REF_NODE refNodes[LOC_ENGINE_NODE_CAPA], uint a_val, uint n_index, uint *locX,uint *locY) {
  uint i;//啟動(dòng)定位引擎
  LOC_DISABLE();
  LOC_ENABLE();//使能LOC_REFERENCE_LOAD,準(zhǔn)備寫入?yún)⒖甲鴺?biāo)
  LOC_REFERENCE_LOAD(TRUE);//寫入?yún)⒖甲鴺?biāo)
  for(i=0;i<LOC_ENGINE_NODE_CAPACITY;i++) {
    REFCOORD=refNodes[i].x;
    RERCOORD=refNodes[i].y;}//參考坐標(biāo)寫入完成
  LOC_REFERENCE_LOAD(FALSE);//使能LOC_PARAMETER_LOAD,準(zhǔn)備寫入測(cè)量參數(shù)
  LOC_PARAMETER_LOAD(TRUE);
  MEASPARM=a_val;
  MEASPARM=n_index;
  for(i=0;i<LOC_ENGINE_NODE_CAPACITY;i++) {
    MEASPARM=refNodes[i].rssi;
  }//測(cè)量參數(shù)寫入完成
  LOC_PARAMETER_LOAD(FALSE);//啟動(dòng)定位估計(jì)計(jì)算
  LOC_RUN();//等待完成后讀出坐標(biāo)值
  while(!LOC_DONE());
  *locX=LOCX;
  *locY=LOCY;//關(guān)閉定位引擎
  LOC_DISABLE();
}

  定位引擎操作流程如圖2所示。

500)this.width=500" border=0>

圖2 定位引擎操作流程

3 存在問題及改進(jìn)

  CC2431的無線定位引擎在應(yīng)用中存在兩個(gè)問題。首先,定位引擎可以處理最高達(dá)64 m的X、Y值,對(duì)實(shí)際應(yīng)用來說這個(gè)區(qū)域太小,因此擴(kuò)展區(qū)域非常必要。這可以通過簡(jiǎn)單的軟件預(yù)處理算法得到,例如每個(gè)節(jié)點(diǎn)用2個(gè)字節(jié)的X、Y代表。因?yàn)榫葹?.25 m,從而最大范圍為16 384 m(214=16 384)。其次,定位引擎得到的只是二維坐標(biāo),如何區(qū)分不同的水平面,就只能通過軟件方法處理。例如,可以首先確定最近的參考節(jié)點(diǎn)并讀出此節(jié)點(diǎn)的水平值。這個(gè)水平值被假定為盲節(jié)點(diǎn)所在的層,之后盲節(jié)點(diǎn)要保證只有同層節(jié)點(diǎn)被輸入到定位引擎當(dāng)中。水平層用一個(gè)字節(jié)Z來表示,則可以區(qū)分256個(gè)不同的層。

結(jié)語

  CC2431是一款針對(duì)無線傳感器網(wǎng)絡(luò)ZigBee/IEEE 802.15.4的片上系統(tǒng)(SoC)解決方案,其具備的硬件定位引擎具有硬件設(shè)備要求低、定位精度高的特點(diǎn),很好地滿足了需求。本文在詳細(xì)討論了定位引擎操作原理、使用方法的基礎(chǔ)上,給出了可行的應(yīng)用擴(kuò)展方法??梢灶A(yù)見,CC2431的無線定位引擎將在無線網(wǎng)絡(luò)定位方面具有更加優(yōu)異的表現(xiàn)。

參考文獻(xiàn)

[1] CC2430 PRELIMINARY Data Sheet.Rev 1.03,2005.
[2] CC2431 PRELIMINARY Data Sheet.Rev 1.0,2007.
[3] 孫利民,等. 無線傳感器網(wǎng)絡(luò)[M]. 北京:清華大學(xué)出版社,2005.

宋保業(yè)(研究生),主要研究方向?yàn)闊o線傳感器網(wǎng)絡(luò)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉