第五次無線傳感器網(wǎng)絡(luò)實驗_第1頁
第五次無線傳感器網(wǎng)絡(luò)實驗_第2頁
第五次無線傳感器網(wǎng)絡(luò)實驗_第3頁
第五次無線傳感器網(wǎng)絡(luò)實驗_第4頁
第五次無線傳感器網(wǎng)絡(luò)實驗_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、南昌航空大學(xué)實驗報告二O 一六 年 五 月 3 日課程名稱: 無線傳感器網(wǎng)絡(luò) 實驗名稱: 點對點通信實驗 班級: 姓名: 指導(dǎo)教師評定: 簽名: 1、 實驗?zāi)康?.了解CC2530無線通信的基本原理和用法;2. 掌握實驗編譯、下載和測試的方法;3. 分析CC2530 BasicRF工程的文件組織和源代碼,為學(xué)習(xí)Z-Stack協(xié)議棧奠定基礎(chǔ)。2、 實驗內(nèi)容1. 將一個CC2530節(jié)點(稱為1號節(jié)點)編程為受控節(jié)點,將另一個CC2530節(jié)點(稱為2號節(jié)點)編程為控制節(jié)點;2. 將2號節(jié)點的USB232通信接口通過USB線連接PC;在串口調(diào)試助手輸入命令,以無線通信的方式控制1號節(jié)點上的LED。3、

2、 基礎(chǔ)知識1. 工程文件介紹CC2530 BasicRF有三個文件夾,本實驗所使用的eww文件(workspace)是經(jīng)過刪減的,刪掉了4個不使用的工程,僅保留了light_switch工程,并且此工程內(nèi)部的LCD、button等硬件不具備的資源或不使用的資源相關(guān)的.h和.c文件進行了刪減。docs文件夾:打開文件夾里面僅有一個名為CC2530_Software_Examples的PDF文檔,文檔的主要內(nèi)容是介紹BasicRF的特點、結(jié)構(gòu)及使用,里面Basic RF包含三個實驗例程:無線點燈、傳輸質(zhì)量檢測、譜分析應(yīng)用。Ide文件夾:有三個文件夾,及一個cc2530_sw_examples.ew

3、w工程,在IAR環(huán)境中打開,在workspace看到。IdeSettings文件夾:主要保存有讀者自己的IAR環(huán)境里面的設(shè)置。Idesrf05_CC2530文件夾:僅有一個iar文件夾,進入之后有工程light_switch.eww,還有temp文件夾存放臨時文件,settings文件夾存放工程的一些設(shè)置文件。Source文件夾:打開文件夾里面有apps文件夾和components文件夾Sourceapps文件夾:存放BasicRF實驗的應(yīng)用實現(xiàn)的源代碼Sourcecomponents文件夾:包含著BasicRF的應(yīng)用程序使用不同組件的源代碼。打開實驗工程:打開文件夾WSN CC2530 Ba

4、sicRFide路徑里的cc2530_sw_examples.eww,并點擊application的light_switch.c。2、Basic RF layer介紹及其工作過程關(guān)鍵字:CCM Counter with CBCMAC (mode of operation)HAL Hardware Abstraction Layer (硬件抽象層)PAN Personal Area Network (個人局域網(wǎng))RF Radio Frequency (射頻)RSSI Received Signal Strength Indicator(接收信號強度指示)在介紹Basic RF之前,來看看這個實驗

5、例程設(shè)計的大體結(jié)構(gòu),如圖所示Basic RF例程的軟件設(shè)計框圖就如一座建筑物,Hardware layer放在最底,肯定是你實現(xiàn)數(shù)據(jù)傳輸?shù)幕A(chǔ)了。Hardware Abstraction layer它提供了一種接口來訪問TIMER,GPIO,UART,ADC等。這些接口都通過相應(yīng)的函數(shù)進行實現(xiàn)。Basic RF layer為雙向無線傳輸提供一種簡單的協(xié)議圖4 Basic RF例程的軟件設(shè)計框圖Application layer是用戶應(yīng)用層,它相當(dāng)于用戶使用Basic RF層和HAL的接口,也就是說我們通過在Application layer就可以使用到封裝好的Basic RF和HAL的函數(shù)。本

6、例程的要求就是讀者理解掌握Basic RFBasic RF layer簡介:Basic RF由TI公司提供,它包含了IEEE 802.15.4標(biāo)準(zhǔn)的數(shù)據(jù)包的收發(fā)功能但并沒有使用到協(xié)議棧,它僅僅是是讓兩個結(jié)點進行簡單的通信,也就是說Basic RF僅僅是包含著IEEE 802.15.4標(biāo)準(zhǔn)的一小部分而已。其主要特點有:1、不會自動加入?yún)f(xié)議、也不會自動掃描其他節(jié)點也沒有組網(wǎng)指示燈(LED3)。2、沒有協(xié)議棧里面所說的協(xié)調(diào)器、路由器或者終端的區(qū)分,節(jié)點的地位都是相等的。3、沒有自動重發(fā)的功能。Basic RF layer為雙向無線通信提供了一個簡單的協(xié)議,通過這個協(xié)議能夠進行數(shù)據(jù)的發(fā)送和接收。Bas

7、ic RF還提供了安全通信所使用的CCM-64身份驗證和數(shù)據(jù)加密,它的安全性讀者可以通過在工程文件里面定義SECURITY_CCM在Project-Option里面就可以選擇,本次實驗并不是什么高度機密,所以在SECURITY_CCM前面帶X了。Basic RF的工作過程:啟動、發(fā)射、接收啟動1、確保外圍器件沒有問題2、創(chuàng)建一個basicRfCfg_t的數(shù)據(jù)結(jié)構(gòu),并初始化其中的成員,在basic_rf.h代碼中可以找到typedef struct uint16 myAddr; /16位的短地址(就是節(jié)點的地址)uint16 panId; /節(jié)點的PAN IDuint8 channel; /RF

8、通道(必須在11-26之間)uint8 ackRequest; /目標(biāo)確認就置true#ifdef SECURITY_CCM /是否加密,預(yù)定義取消了加密uint8* securityKey;uint8* securityNonce;#endif basicRfCfg_t;3.調(diào)用basicRfInit()函數(shù)進行協(xié)議的初始化,在basic_rf.c代碼中可以找到uint8 basicRfInit(basicRfCfg_t* pRfConfig)函數(shù)功能:對Basic RF的數(shù)據(jù)結(jié)構(gòu)初始化,設(shè)置模塊的傳輸通道,短地址,PAD ID。發(fā)送1. 創(chuàng)建一個buffer,把payload放入其中。Pa

9、yload最大為103個字節(jié)2. 調(diào)用basicRfSendPacket()函數(shù)發(fā)送,并查看其返回值在basic_rf.c中可以找到uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length)destAddr目的短地址pPayload指向發(fā)送緩沖區(qū)的指針length發(fā)送數(shù)據(jù)長度函數(shù)功能:給目的短地址發(fā)送指定長度的數(shù)據(jù),發(fā)送成功剛返回SUCCESS,失敗則返回FAILED接收1. 上層通過basicRfPacketIsReady()函數(shù)來檢查是否收到一個新數(shù)據(jù)包在basic_rf.c中可以找到uint8 basic

10、RfPacketIsReady(void)函數(shù)功能:檢查模塊是否已經(jīng)可以接收下一個數(shù)據(jù),如果準(zhǔn)備好剛返回TRUE2. 調(diào)用basicRfReceive()函數(shù),把收到的數(shù)據(jù)復(fù)制到buffer中。代碼可以在basic_rf.c中可以找到uint8 basicRfReceive(uint8* pRxData, uint8 len, int16* pRssi)函數(shù)功能:接收來自Basic RF層的數(shù)據(jù)包,并為所接收的數(shù)據(jù)和RSSI值配緩沖區(qū)。3.light_switch.c代碼詳解:void main(void)/ Config basicRFbasicRfConfig.panId = PAN_ID

11、;/上面講的Basic RF的啟動中的basicRfConfig.channel = RF_CHANNEL; /初始化basicRfCfg_tbasicRfConfig.ackRequest = TRUE;結(jié)構(gòu)體的成員。halBoardInit();if(halRfInit()=FAILED)HAL_ASSERT(FALSE);halLedClear(1); / 關(guān)LED1/*選擇性下載程序,發(fā)送模塊和接收模塊*/appSwitch(); /節(jié)點為按鍵S1 P0_0appLight(); /節(jié)點為指示燈LED1 P1_0/ Role is undefined. This code should

12、 not be reached HAL_ASSERT(FALSE);halLedSet(x)置1是使燈點亮,halLedClear(x)是使燈熄滅。第1213行:選擇其中的一行,并把另外一行屏蔽掉;一個是實現(xiàn)發(fā)射通過USB232接收的PC信息的功能,另一個是接收控制信息并改變LED狀態(tài)的功能。分別為Basic RF發(fā)射和接收。不同模塊在燒寫程序時選擇不同功能。注意: 程序會在appSwitch(); 或者appLight();里面循環(huán)或者等待,不會執(zhí)行到第15行。4、 實驗過程第一步:打開.WSN CC2530 BasicRFidesrf05_cc2530iar文件夾下面的工程,在light_

13、switch.c里面找到main函數(shù),找到下面內(nèi)容,把appLight(); 注釋掉,下載到發(fā)射模塊。/*Select one and shield to another*/appSwitch(); /作為控制節(jié)點(2號節(jié)點,需連接PC),請務(wù)必注釋掉下行/ appLight(); /作為受控節(jié)點(1號節(jié)點,觀察其LED),請務(wù)必注釋掉上行第二步:找到相同位置,這次把appSwitch();注釋掉,下載到接收模塊。/*Select one and shield to another*by boo*/appSwitch(); /作為控制節(jié)點(2號節(jié)點,需連接PC),請務(wù)必注釋掉下行appLight(); /作為受控節(jié)點(1號節(jié)點,觀察其LED),請務(wù)必

溫馨提示

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

評論

0/150

提交評論