新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 帶定位引擎的射頻芯片CC2431

帶定位引擎的射頻芯片CC2431

作者: 時間:2009-03-11 來源:網(wǎng)絡(luò) 收藏

是TI公司推出的帶硬件的片上系統(tǒng)(SoC)解決方案,能夠滿足低功耗/IEEE 802.15.4無線傳感器網(wǎng)絡(luò)的應(yīng)用需要。基于RSSI技術(shù),根據(jù)接收信號強度與已知參考節(jié)點位置準(zhǔn)確計算出有關(guān)節(jié)點位置,然后將位置信息發(fā)送給接收端。相比于集中型系統(tǒng),RSSI功能減小了網(wǎng)絡(luò)流量與通信延遲,在典型應(yīng)用中可實現(xiàn)3~5 m定位精度和0.25 m的分辨率。

本文引用地址:http://butianyuan.cn/article/158198.htm

1 的主要特點

  CC2431片上系統(tǒng)(SoC)由CC2430加上Motorola公司基于IEEE 802.15.4標(biāo)準(zhǔn)的無線定位組成,具有2.4 GHz DSSS(直接序列擴頻)收發(fā)器核心和高效的8051控制器。其中,MCU包括存儲器及其外圍,其他模塊提供電源管理、時鐘分配和測試等重要功能。

  CC2431的設(shè)計結(jié)合了8 KB的RAM及強大的外圍模塊,并且有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í)行時對MCU處理能力的要求,CC2431包含一個增強型工業(yè)標(biāo)準(zhǔn)的8位8051微控制器內(nèi)核,運行時鐘為32 MHz。CC2431還包含一個DMA控制器,可以減少8051微控制器內(nèi)核對數(shù)據(jù)的傳送操作,因此提高了整體的性能。

  在CC2431 8 KB靜態(tài)RAM中的4 KB是超低功耗SRAM。32 KB、64 KB或128 KB的片內(nèi)Flash塊提供在線可編程非易失性存儲器。CC2431集成了4個振蕩器用于系統(tǒng)時鐘和定時操作,以及用于用戶自定義應(yīng)用的外設(shè);具有4個定時器,此外,還集成了實時時鐘、上電復(fù)位、8通道8~14位ADC等其他外設(shè),并帶有語音和定位跟蹤引擎。CC2431的主要特點如下:

  ◇ 能精確計算網(wǎng)絡(luò)中節(jié)點位置;
  ◇ 具有高性能、低功耗的8051控制器核;
  ◇ 集成符合IEEE 802.15.4標(biāo)準(zhǔn)的2.4 GHz RF無線收發(fā)機(具有工業(yè)領(lǐng)先的CC2420內(nèi)核);
  ◇ 優(yōu)良的無線接收靈敏度和強大的抗干擾能力;
  ◇ 128 KB可編程閃存,8 KB RAM,4 KB帶全部功耗模式數(shù)據(jù)保持功能;
  ◇ 強大的DMA功能;
  ◇ 極少的外部元器件;
  ◇ 低電流損耗(微控制器運行于32 MHz時,接收和發(fā)射分別為27 mA和25 mA);
  ◇ 休眠模式時僅0.9 μA電流損耗,外部中斷或RTC能喚醒系統(tǒng);
  ◇ 待機模式下小于0.6 μA電流損耗,外部中斷能喚醒系統(tǒng);
  ◇ 低功耗模式與主動模式之間的快速切換;
  ◇ 硬件支持CSMA/CA功能;
  ◇ 較寬的電壓范圍(2.0~3.6 V);
  ◇ 數(shù)字化的RSSI/LQI支持;
  ◇ 具有電池監(jiān)測和溫度傳感器;
  ◇ 多達(dá)8路輸入的8~14位模/數(shù)轉(zhuǎn)換;
  ◇ 集成AES128安全協(xié)處理器;
  ◇ 帶有2個功能強大的支持多組協(xié)議的USART;
  ◇ 集成看門狗定時器;
  ◇ 具有1個符合IEEE 802.15.4規(guī)范的MAC計時器,1個常規(guī)的16位計時器和2個8位計時器;
  ◇ 21個普通I/O引腳,其中2個具有20 mA的驅(qū)動能力;
  ◇ 支持硬件調(diào)試,具有強大靈活的開發(fā)工具。

2 CC2431的操作

  CC2431和CC2430是引腳兼容的,除之外,CC2430的MCU和RF部分與CC2431完全相同。為避免重復(fù),本文重點介紹CC2431的定位引擎。

  定位引擎用于估算無線網(wǎng)絡(luò)中節(jié)點的位置。通常參考節(jié)點坐標(biāo)已知,其他需要估計坐標(biāo)的節(jié)點為“盲節(jié)點”。進(jìn)行定位估計時,定位引擎需要獲得3~8 個參考節(jié)點的坐標(biāo)值以及其他測量參數(shù),定位引擎計算后的輸出是一個節(jié)點的估計坐標(biāo)。在定位引擎運行之前,必須使能定位引擎寄存器LOCENG的第4位 LOCENG.EN。當(dāng)要停止定位引擎運行時,應(yīng)往LOCENG.EN寫入0關(guān)斷引擎的時鐘信號,從而降低CC2431的功耗。對定位引擎的操作主要就是對與定位引擎有關(guān)的寄存器的操作。下面詳細(xì)說明各部分的操作。

2.1 參考坐標(biāo)

  定位引擎運行時需要3~8個參考坐標(biāo)輸入。參考坐標(biāo)以m為單位表示各個參考節(jié)點的位置,其數(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對坐標(biāo)必須一次性寫入。當(dāng)定位引擎使用少于8個參考坐標(biāo)時,要將未用的參考坐標(biāo)寫入0.0。

2.2 測量參數(shù)

  定位引擎除了需要參考坐標(biāo)外,還需要一組測量參數(shù)。這組參數(shù)由2個參數(shù)和8個RSSI值組成。射頻參數(shù)是數(shù)值A(chǔ)和n,用于描述網(wǎng)絡(luò)操作環(huán)境。在全向模式下,射頻參數(shù)A被定義為用dBm表示的距發(fā)射器1 m接收到的平均能量絕對值。若平均接收能量為-40 dBm,那么參數(shù)A被定為40。定位引擎期望參數(shù)A為30.0~50.0,精度為0.5。參數(shù)A用無符號定點數(shù)值給出,最低位為小數(shù)位,而其余各位為整數(shù)位,一個典型值為40.0。

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

按此在新窗口瀏覽圖片

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

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

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

2.3 定位估計

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

按此在新窗口瀏覽圖片

圖1 定位引擎操作流程

2.4 軟件編程

  下面介紹定位引擎操作的源代碼。

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

結(jié)語

  本文主要介紹了帶定位引擎的射頻CC2431,重點介紹了其定位引擎的使用方法。CC2431是一款真正的片上系統(tǒng)(SoC)解決方案,它針對無線傳感器網(wǎng)絡(luò)/IEEE 802.15.4,具有定位檢測引擎,可以實現(xiàn)3 m左右或更高的定位精度,有效降低了節(jié)點成本;并且結(jié)合了市場領(lǐng)先的ZStack ZigBee協(xié)議軟件,提供了市場上最具競爭力的ZigBee解決方案。在未來幾年內(nèi),其應(yīng)用必將擴展到更多領(lǐng)域。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉