基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第1頁(yè)
基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第2頁(yè)
基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第3頁(yè)
基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第4頁(yè)
基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)-設(shè)計(jì)應(yīng)用摘要:基于無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn),以CC2430芯片為設(shè)計(jì)了一種微型傳感器節(jié)點(diǎn)。詳細(xì)闡述了傳感器節(jié)點(diǎn)的溫濕度數(shù)據(jù)采集模塊、電池能量檢測(cè)模塊以及節(jié)點(diǎn)之間“點(diǎn)對(duì)點(diǎn)”無(wú)線通信的軟件流程。

無(wú)線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測(cè)區(qū)域內(nèi)的大量微型傳感器節(jié)點(diǎn)組成的,通過無(wú)線通信方式形成一個(gè)多跳的自組織的網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中感知對(duì)象的信息,并發(fā)送給觀察者。無(wú)線傳感器網(wǎng)絡(luò)技術(shù)在美國(guó)商業(yè)周刊和MIT技術(shù)評(píng)論的預(yù)測(cè)未來(lái)技術(shù)發(fā)展中,分別被列為21世紀(jì)有影響的21項(xiàng)技術(shù)和改變世界的10大技術(shù)之一。

傳感器節(jié)點(diǎn)是無(wú)線傳感器網(wǎng)絡(luò)的基本組成單位。它由傳感器模塊、處理器模塊、無(wú)線通信模塊和能量供應(yīng)模塊四個(gè)部分組成。由于傳感器節(jié)點(diǎn)通常是一個(gè)微型的嵌入式系統(tǒng),它的處理能力、存儲(chǔ)能力和通信能力相對(duì)較弱,并通過攜帶能量有限的電池供電。本文依據(jù)傳感器節(jié)點(diǎn)的這些特點(diǎn),設(shè)計(jì)了一種用于環(huán)境中溫濕度監(jiān)測(cè)的以芯片CC2430為的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。

1CC2430簡(jiǎn)介

CC2430芯片是Chipcon公司提供的首款支持ZigBee協(xié)議的SoC解決方案。它延用了CC2420芯片的架構(gòu),在單個(gè)芯片上整合了ZigBee射頻(RF)前端、內(nèi)存和微控制器。CC2430擁有1個(gè)8位8051MCU,8KB的RAM,32KB、64KB或128KB的Flash,還包含模擬數(shù)字轉(zhuǎn)換器、幾個(gè)定時(shí)器、AES128協(xié)處理器、看門狗定時(shí)器、32kHz晶振的休眠模式定時(shí)器、上電復(fù)位電路、掉電檢測(cè)電路,以及21個(gè)可編程I/O引腳。

CC2430芯片采用0.18μmCMOS工藝生產(chǎn),工作時(shí)的電流損耗為27mA;在接收和發(fā)射模式下,電流損耗分別低于27mA或25mA。CC2430的休眠模式和轉(zhuǎn)換到主動(dòng)模式的超短時(shí)間的特性,特別適合那些要求電池壽命非常長(zhǎng)的應(yīng)用。

CC2430芯片的主要特點(diǎn)有:32MHz單指令周期低功耗的8051微控制器核;集成兼容IEEE802.15.4標(biāo)準(zhǔn)2.4GHz頻段的RF無(wú)線電收發(fā)機(jī);8KB的SRAM,其中4KB可在所有功耗模式下保持?jǐn)?shù)據(jù);兼容RoHS的7×7mmQLP封裝;4種可編程功耗模式;可編程的看門狗定時(shí)器;上電復(fù)位功能;支持硬件調(diào)試功能;優(yōu)良的無(wú)線接收靈敏度和強(qiáng)大的抗干擾性;在休眠模式時(shí)僅0.9μA的流耗,外部中斷或RTC能喚醒系統(tǒng);在待機(jī)模式時(shí)少于0.6μA的流耗,外部中斷能喚醒系統(tǒng);硬件支持CSMA/CA功能;較寬的電壓范圍(2.0~3.6V);數(shù)字化的RSSI/LQI支持和強(qiáng)大的DMA功能;具有電池監(jiān)測(cè)和溫度感測(cè)功能;集成了14位模數(shù)轉(zhuǎn)換的ADC;集成AES安全協(xié)處理器;帶有2個(gè)強(qiáng)大的、支持幾組協(xié)議的USART,以及1個(gè)符合IEEE802.15.4規(guī)范的MAC計(jì)時(shí)器,1個(gè)常規(guī)的16位計(jì)時(shí)器和2個(gè)8位計(jì)時(shí)器。

2節(jié)點(diǎn)的硬件設(shè)計(jì)

無(wú)線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)通常由傳感器模塊、處理器模塊、無(wú)線通信模塊和電源模塊構(gòu)成。處理器模塊和無(wú)線通信模塊采用CC2430芯片,大大簡(jiǎn)化了射頻電路的設(shè)計(jì)。傳感器模塊采用集成溫濕度傳感器SHT10。電源模塊采用3V紐扣電池。節(jié)點(diǎn)的硬件原理框圖如圖1。

SHT10用于采集周圍環(huán)境中的溫度和濕度,其工作電壓為2.4~5.5V,測(cè)濕精度為±4.5%RH,25℃時(shí)測(cè)溫精度為±0.5℃。采用SMD貼片封裝,與處理器的通信電路如圖2所示。SHT10采用兩條串行線與處理器進(jìn)行數(shù)據(jù)通信。SCK數(shù)據(jù)線負(fù)責(zé)處理器和SHT10的通訊同步;DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時(shí)鐘高電平時(shí),DATA必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA在低電平。需要一個(gè)10kΩ的外部上拉電阻將信號(hào)提拉至高電平。本設(shè)計(jì)中CC2430的引腳P1.0用于SCK,P1.1用于DATA。

3節(jié)點(diǎn)的軟件設(shè)計(jì)

節(jié)點(diǎn)的軟件分為數(shù)據(jù)采集、電池能量檢測(cè)和無(wú)線通信這三個(gè)分別設(shè)計(jì)的模塊。以下給出了各個(gè)模塊的流程圖和詳細(xì)說明。

3.1溫濕度數(shù)據(jù)采集模塊

溫濕度傳感器SHT10采用類似但不兼容I2C總線的方式和處理器通信。數(shù)據(jù)通過DATA線直接讀取,控制流程如圖3所示。首先用一組啟動(dòng)傳輸時(shí)序進(jìn)行數(shù)據(jù)傳輸?shù)某跏蓟?,然后發(fā)送一組測(cè)量命令(‘00000101’表示相對(duì)濕度,‘00000011’表示攝氏溫度),釋放DATA線,等SHT10下拉DATA至低電平,表示測(cè)量結(jié)束,同時(shí)接收數(shù)據(jù)。

其中產(chǎn)生啟動(dòng)傳輸時(shí)序的程序片段如下:

……

P1_1=1;

P1_0=1;

wait(1);//等待1ms

P1_1=0;

wait(1);

P1_0=0;

wait(1);

P1_0=1;

wait(1);

P1_1=1;

wait(1);

P1_0=0;

……

測(cè)量溫度后,通過T=d1+d2×SOT計(jì)算出溫度。

測(cè)量濕度后,再根據(jù)當(dāng)前的溫度,通過RH=(T℃-25)×(t1+t2×SORH)+c1+c2×SORH+c3×SORH2,計(jì)算出相對(duì)濕度。其中常量d1、d2、t1、t2、c1、c2和c3由SHT1x數(shù)據(jù)手冊(cè)提供。

3.2電源能量檢測(cè)模塊

無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)通常采用電池供電,電池的能量檢測(cè)是重要環(huán)節(jié)。CC2430的ADC模塊不僅可以采樣P0端口引腳上的輸入電壓,還可以采樣AVDD_SoC引腳上的1/3電壓。這個(gè)功能通常用于實(shí)現(xiàn)電池的能量檢測(cè),即檢測(cè)當(dāng)前的電源電壓是否在CC2430所能工作電壓范圍2.0 ̄3.6V內(nèi)。完成AD轉(zhuǎn)換的控制流程是:首先設(shè)置AVDD_SoC引腳上電壓的1/3為采樣輸入,然后啟動(dòng)AD轉(zhuǎn)換,等待AD轉(zhuǎn)換結(jié)束,寄存器ADCH:ADCL中的數(shù)據(jù)即為參考電壓的相對(duì)數(shù)值。

由于是對(duì)電池能量的檢測(cè),可以采用CC2430內(nèi)部提供的1.25V電壓作為參考電壓。用這個(gè)參考電壓采樣AVDD_SoC引腳上的1/3電壓,從而得出當(dāng)前的電源電壓值。選用8位的采樣精度,則寄存器ADCCON3應(yīng)配置為0x0F。設(shè)置完寄存器后,ADC立即啟動(dòng)AD轉(zhuǎn)化,寄存器ADCCON1的EOC位用于指示當(dāng)前的轉(zhuǎn)化是否結(jié)束。當(dāng)EOC位變?yōu)椋睍r(shí),證明當(dāng)前的轉(zhuǎn)換完成,轉(zhuǎn)換后的數(shù)值被存放在寄存器ADCH中。ADCH中的數(shù)值被讀取后,EOC位自動(dòng)恢復(fù)為0。根據(jù)取出的數(shù)值計(jì)算得到當(dāng)前AVDD_SoC上引腳的電壓。通過連續(xù)采樣10次進(jìn)行均值濾波,用這個(gè)平均值與用戶設(shè)定的有效工作電壓2.4V相比,可判斷出當(dāng)前電壓是否正常。該模塊的程序流程圖如圖4。

其中由DATA[0...9]的均值Average計(jì)算實(shí)際電壓的代碼如下:

……

Voltage=((Average*15)>>9);//Voltage為實(shí)際電壓的10倍

……

3.3無(wú)線通信模塊

無(wú)線傳感器網(wǎng)絡(luò)通信的基礎(chǔ)是節(jié)點(diǎn)之間的點(diǎn)對(duì)點(diǎn)通信。本小節(jié)以兩個(gè)節(jié)點(diǎn)之間的通信為例,介紹了點(diǎn)對(duì)點(diǎn)通信的過程和實(shí)現(xiàn)方法。首先,定義一種比IEEE802.15.4規(guī)范所定義的MAC協(xié)議層數(shù)據(jù)幀簡(jiǎn)單的MAC層數(shù)據(jù)幀的格式:

其中目標(biāo)地址和源地址分別用1個(gè)字節(jié)表示。本例中只有兩個(gè)節(jié)點(diǎn)互相通信,分別將兩個(gè)節(jié)點(diǎn)的地址設(shè)為0和1。標(biāo)志位Flags占1個(gè)字節(jié),用于表示當(dāng)前數(shù)據(jù)幀的類型。當(dāng)數(shù)據(jù)幀中Flags字節(jié)的位為1時(shí),表示該幀是數(shù)據(jù)序列中的一幀;第3位為1時(shí),表示該幀是超時(shí)重傳的數(shù)據(jù)幀;第2位為1時(shí)表示該幀是接收到數(shù)據(jù)幀后的答復(fù)幀;第1位為1時(shí),表示目標(biāo)節(jié)點(diǎn)在收到該數(shù)據(jù)幀后要答復(fù)。幀校驗(yàn)FCS由2個(gè)字節(jié)表示,是MAC層協(xié)議數(shù)據(jù)單元MPDU的校驗(yàn)。如果CC2430的RF寄存器MDMCTRL0L.AUTOCRC控制位設(shè)為1,FCS將由硬件自動(dòng)實(shí)現(xiàn),負(fù)責(zé)必須由軟件用多項(xiàng)式x16+x12+x5+1進(jìn)行CRC的生成和校驗(yàn)。

由于IEEE802.15.4規(guī)范中定義了物理服務(wù)數(shù)據(jù)單元(PSDU)的長(zhǎng)度為127字節(jié),而其中的5字節(jié)已經(jīng)被使用,因此有效負(fù)載payload的字節(jié)長(zhǎng)度在1~122之間。如果需要傳送的數(shù)據(jù)長(zhǎng)度超過122字節(jié),則發(fā)送時(shí)這個(gè)數(shù)據(jù)應(yīng)該被拆分成若干數(shù)據(jù)幀,以滿足長(zhǎng)度的限制。目標(biāo)節(jié)點(diǎn)則必須能夠?qū)⒔邮盏降臄?shù)據(jù)幀整合成完整的數(shù)據(jù)。

IEEE802.15.4規(guī)定了RF物理層的工作頻段為2.4GHz,共有16個(gè)頻道。每個(gè)頻道的實(shí)際工作頻率和頻道序號(hào)的關(guān)系式為:Fc=2405+5×(k-11)MHz,k=11,12,…26。兩個(gè)節(jié)點(diǎn)的RF必須工作在相同的頻道上,才能夠互相收發(fā)數(shù)據(jù)。完成數(shù)據(jù)發(fā)送的程序流程圖如圖5。

系統(tǒng)初始化主要是將系統(tǒng)的工作頻率設(shè)為32MHz的晶振頻率,這樣RF才能正常工作。RF初始化時(shí),先設(shè)置通信頻率,再通過設(shè)置RFPWR.RREG_RADIO_PD位為1給RF供電。RF初始化的過程還包括執(zhí)行下面的代碼來(lái)開啟Rx,清空Rx、Tx的FiFo緩沖區(qū)以及校準(zhǔn)Radio。

SRXON;

SFLUSHTX;

SFLUSHRX;

SFLUSHRX;

STXCALN;

ISSTART;

DMA的初始化階段要為Tx分配1個(gè)空閑的DMA通道。首先要為通道0和通道1 ̄4分別設(shè)置好通道描述數(shù)據(jù)結(jié)構(gòu)的存放地址,并將首地址分別寫入DMA0CFGH:DMA0CFGL和DMA1CFGH:DMA1CFGL。再為這個(gè)分配好的DMA通道設(shè)置其描述數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)如下:

typedefstruct{

BYTESRCADDRH;//源地址

BYTESRCADDRL;

BYTEDESTADDRH;//目的地址

BYTEDESTADDRL;

BYTEVLEN:3;

BYTELENH:5;

BYTELENL:8;

BYTEWORDSIZE:1;

BYTETMODE:2;

BYTETRIG:5;

BYTESRCINC:2;

BYTEDESTINC:2;

BYTEIRQMASK:1;

BYTEM8:1;

BYTEPRIORITY:2;

}DMA_DESC;

當(dāng)設(shè)置為Tx準(zhǔn)備的DMA通道時(shí),需將數(shù)據(jù)的源地址SRCADDRH:SRCADDRL設(shè)為所要發(fā)送數(shù)據(jù)的起始地址,目標(biāo)地址DESTADDRH:DESTADDRL設(shè)為寄存器RFD的地址0xDFD9。然后,在LENH:LENL中設(shè)置所要發(fā)送數(shù)據(jù)的長(zhǎng)度,并將VLEN設(shè)為0。將WORDSIZE位設(shè)為0,表示DMA數(shù)據(jù)按字節(jié)進(jìn)行傳輸(設(shè)為1表示按字傳輸)。DMA的數(shù)據(jù)傳送模式按照觸發(fā)傳輸?shù)臄?shù)據(jù)量可分成四種,由TMODE設(shè)置選擇。本例中采用Block模式,即DMA觸發(fā)可進(jìn)行一個(gè)完整數(shù)據(jù)塊的傳輸。CC2430定義的DMA觸發(fā)信號(hào)有31種之多,由TRIG位設(shè)置。將TRIG設(shè)置為0,表示采用無(wú)觸發(fā)模式,這樣DMA在每次接收到DMAREQ信號(hào)后才啟動(dòng)數(shù)據(jù)傳輸。SRCINC和DESTINC分別用于設(shè)置數(shù)據(jù)源地址和目標(biāo)地址的變化方式,可設(shè)為不變、增1、增2或減1。由于采用按字節(jié)的Block模式向Radio發(fā)送數(shù)據(jù),因此數(shù)據(jù)源地址選擇增1變化,而數(shù)據(jù)目標(biāo)地址則一直為寄存器RFD的地址0xDFD9,故設(shè)為不變。IRQMASK位用于設(shè)置是否在DMA數(shù)據(jù)傳輸完后發(fā)中斷信號(hào)。本例中設(shè)為0,即禁止DMA中斷。M8是按字節(jié)傳輸時(shí)的數(shù)據(jù)寬度,設(shè)為0表示8位傳輸,為1時(shí)表示只傳輸字節(jié)的低7位。本例中設(shè)為0。PRIORITY用于優(yōu)先級(jí)設(shè)置,本例中設(shè)為2,即中等優(yōu)先級(jí)。

DMA描述設(shè)置好后,通過設(shè)置寄存器DMAARM和RMREQ的位來(lái)準(zhǔn)備相應(yīng)的DMA通道以及啟動(dòng)這個(gè)通道上數(shù)據(jù)塊的傳輸。在啟動(dòng)DMA數(shù)據(jù)傳輸之前,將當(dāng)前數(shù)據(jù)幀的長(zhǎng)度、目標(biāo)節(jié)點(diǎn)地址、源節(jié)點(diǎn)地址、標(biāo)志字節(jié)通過直接寫寄存器RFD的方式寫入TXFIFO。這樣在啟動(dòng)DMA傳輸后,完整的數(shù)據(jù)幀將被傳輸至TXFIFO。通過給CSP發(fā)送指令ISTXONCCA啟動(dòng)TX傳輸。這就完成了一幀數(shù)據(jù)的發(fā)送。

數(shù)據(jù)接收的過程同樣需要

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論