


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技誤碼率和接收信號(hào)強(qiáng)度 RSSI 測(cè)試實(shí)驗(yàn)一、試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)可以實(shí)現(xiàn):(1)(2)(3)(4)點(diǎn)對(duì)點(diǎn)的無(wú)線數(shù)據(jù)通信誤碼率測(cè)試接收信號(hào)強(qiáng)度指示串口配置及串口通信二、試驗(yàn)設(shè)備兩個(gè) CC2530A 模塊,一個(gè)紅色主板、一個(gè)傳感器底板,另外,還需要一臺(tái)線一條,天線兩根。器、MiniUSB三、試驗(yàn)步驟與現(xiàn)象實(shí)現(xiàn)現(xiàn)象: 計(jì)算機(jī)上串口助手上顯示當(dāng)前的誤試數(shù)量為 1000 個(gè)數(shù)據(jù)包。、RSSI 值和接收到數(shù)據(jù)包的個(gè)數(shù),總計(jì)測(cè)假設(shè)您已經(jīng)建立了開(kāi)發(fā)環(huán)境,并已掌握了開(kāi)發(fā)平臺(tái)、IAR 軟件的基本用法。希望微控第 1 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技第一步:源代碼源代碼位置
2、: CC2530 光盤3、各種實(shí)驗(yàn)CC2530 點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn)CC2530 點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn)-誤碼率和接收信號(hào)強(qiáng)度 RSSI 測(cè)試實(shí)驗(yàn)CC2530 Test Program for RSSIide打開(kāi) IAR Embedded Workbench 軟件,并打開(kāi)RSSI.eww:Workspace,選擇試驗(yàn)工作空間文件 cc2530 Test選擇要試驗(yàn)的工程,本次試驗(yàn)的工程為:per_test-srf05_cc2530。本店已經(jīng)對(duì)Basic RF 的行了修改,便于完成誤碼率測(cè)試,同時(shí)加入了串口程序,便于觀察。希望微控第 2 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技編譯工程文件,選擇Proje
3、ct Rebuild All,編譯沒(méi)有錯(cuò)誤,按下 Debug ,將程序?qū)懭胂鄳?yīng)的模塊。在 Main()上面,修改一下編譯選項(xiàng)。/*/ 在程序之前,請(qǐng)選擇或者TEST_TX 定義,用于和接收切換。/ 只有接收端才能測(cè)量信息強(qiáng)度 RSSI/*/ #define TEST_TX第二步:開(kāi)展試驗(yàn)紅色主板采用 MiniUSB 供電,綠色底板使用配置的鋰電池供電(如果您選購(gòu)的是CC2530 套件1,則綠色底板使用兩節(jié) 5 號(hào)電池供電)模塊上電后,模塊開(kāi)始數(shù)據(jù),接收模塊接收后,上報(bào)串口。連接紅色主板與計(jì)算機(jī)(如果您沒(méi)有安裝虛擬串口驅(qū)動(dòng),請(qǐng)按以下步驟操作,如已經(jīng)安裝,忽略)安裝主板串口驅(qū)動(dòng):參考按照電腦提示安
4、裝硬件,選擇目錄-CC2530 套件光盤1、建立開(kāi)發(fā)環(huán)境的驅(qū)動(dòng)文件即可(注意,一般要安裝兩次,電腦會(huì)自動(dòng)提示)主板虛擬串口驅(qū)動(dòng) 下驅(qū)動(dòng)安裝,打開(kāi)串口調(diào)試助手如下圖所示,選擇剛剛安裝的虛擬 USB 串其它設(shè)置參考下圖。如果紅色主板連接了計(jì)算機(jī),并打開(kāi)串口助手,這時(shí)可以看到數(shù)據(jù)。,波特率 57600,一開(kāi)始 RSSI 值會(huì)比較大,因?yàn)槌绦蚴怯?jì)算平均值,過(guò)一段時(shí)間接收信號(hào)強(qiáng)度就開(kāi)始穩(wěn)定了。希望微控第 3 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技四、程序主程序經(jīng)過(guò)初始化、硬件 IO 配置、串口配置后,進(jìn)入各自的執(zhí)行程序。根據(jù)定義不同,進(jìn)行編譯。分別完成 和接收。如果想深入了解這個(gè)測(cè)試程序,請(qǐng)參考
5、 TI 公司的文檔。在該程序的文件夾 CC2530 BasicRF PerTestdocs 內(nèi),CC2530_Software_Examples.pdf#ifdef TEST_TX appMode = MODE_TX; #elseappMode = MODE_RX; #endif/ Transmitter application if(appMode = MODE_TX) / No return from here appTransmitter();/ Receiver applicationelse if(appMode = MODE_RX) / No return from here ap
6、pReceiver();1、函數(shù) appTransmitter();過(guò)程:(1) 射頻初始化并設(shè)置希望微控第 4 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技(2)(3)(4)設(shè)定測(cè)試的數(shù)據(jù)包量 1000 個(gè)配置定時(shí)器和 IO初始化數(shù)據(jù)包載荷(5)循環(huán)數(shù)據(jù)包,序列號(hào)自加 1static void appTransmitter()uint32 burstSize=0; uint32 pktsSent=0; uint8 n;/Initialize BasicRF/* 初始化Basic RF */basicRfConfig.myAddr = TX_ADDR; if(basicRfInit(&
7、;basicRfConfig)=FAILED)HAL_ASSERT(FALSE);/ Set TX output power/appTxPower = appSelectOutputPower(); /* 設(shè)置輸出功率 */ halRfSetTxPower(2);/HAL_RF_TXPOWER_4_DBMhalRfSetTxPower(appTxPower);/ Set burst size/burstSize = appSelectBurstSize(); burstSize = 1000;/* 設(shè)置進(jìn)行一次測(cè)試所的數(shù)據(jù)包數(shù)量*/ Basic RF puts on receiver befo
8、re transmission of packet, and turns off/ after packet is sent basicRfReceiveOff();/ Config timer and IO/n= appSelectRate(); appConfigTimer(0xC8);/halJoystickInit();/* 配置定時(shí)器和 IO / Initalise packet payloadtxPacket.seqNumber = 0;/* 初始化數(shù)據(jù)包載荷 */for(n = 0; n < sizeof(txPacket.padding); n+)txPacket.pad
9、dingn = n;/ Main loopwhile (TRUE)/* 主循環(huán) */希望微控第 5 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技/ Wait for user to start application/while(!halJoystickPushed();/appStartStop();while(appStarted) / 循環(huán)啟動(dòng)標(biāo)志,一次只測(cè)試 1000 個(gè)數(shù)據(jù)包,重新測(cè)試需要復(fù)位/if( halJoystickPushed()/appStartStop();/if (pktsSent < burstSize)/if( appState = TRANSMIT_PA
10、CKET )/ Make sure sequence number has network byte order UINT32_HTON(txPacket.seqNumber);/ 改變序號(hào)的字節(jié)順序basicRfSendPacket(RX_ADDR, (uint8*)&txPacket, PACKET_SIZE);/ Change byte order back to host order before increment/* 在增加序號(hào)前將字節(jié)順序改回為主機(jī)順序 */ UINT32_NTOH(txPacket.seqNumber);txPacket.seqNumber+;pktsS
11、ent+;appState = IDLE;halLedToggle(1);/改變 LED1 的亮滅狀態(tài)halMcuWaitMs(500);halMcuWaitMs(500);/elseappStarted = !appStarted;/ Reset statistics and sequence number/* 復(fù)位統(tǒng)計(jì)和序號(hào)pktsSent = 0;/txPacket.seqNumber = 0;/halLcdClear();/halLedClear(3);*/halLcdWriteCharString(0,HAL_LCD_LINE_1, "Mode:Transmitter&qu
12、ot;);/halLcdWriteCharString(0,HAL_LCD_LINE_2, "CENTER to start/stop");希望微控第 6 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技2、接收函數(shù) appReceiver()(1) 串口初始化 57600 波特率(2) 射頻初始化(3)打開(kāi)接收,檢查數(shù)據(jù)包序號(hào)是否為期望值(4)上報(bào)數(shù)據(jù)到上位機(jī),接收包的個(gè)數(shù)|誤碼率|32 個(gè)數(shù)據(jù)包的 RSSI 值的平均 值。static void appReceiver()uint32 segNumber=0;int16 perRssiBufRSSI_AVG_WINDOW_
13、SIZE uint8 perRssiBufCounter = 0;/ oldest newest byte in RSSI/ ring bufferperRxStats_t rxStats = 0,0,0,0; int16 rssi;uint8 resetStats=FALSE;/ 數(shù)據(jù)包序列號(hào)= 0;/RSSI 的環(huán)形緩沖區(qū)/計(jì)數(shù)器用于 RSSI 緩沖區(qū)統(tǒng)計(jì)int8 int8int8Myper5; Myrssi2;Myreceive4;int32 int32int32temp_per; temp_receive;temp_rssi;/存放掉/存放接收的包的個(gè)數(shù)/存放前 32 個(gè) rssi 值
14、的平均值/ 初始化串口 57600initUART0();#ifdef INCLUDE_PA uint8 gain;/ Select gain (formodules with CC2590/91 only)gain =appSelectGain(); halRfSetGain(gain);#endif/ Initialize BasicRF初始化 Basic RFbasicRfConfig.myAddr = RX_ADDR; if(basicRfInit(&basicRfConfig)=FAILED)HAL_ASSERT(FALSE);basicRfReceiveOn();希望微控第
15、 7 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技UartTX_Send_String("XWWK Test Data!",strlen("XWWK Test Data!"); UartTX_Send_String("n",strlen("n"); /添加串口測(cè)試數(shù)據(jù)/ Main loop while (TRUE)while(!basicRfPacketIsReady(); / 等待新的數(shù)據(jù)包if(basicRfReceive(uint8*)&rxPacket, MAX_PAYLOAD_LENGTH, &
16、amp;rssi)>0)halLedSet(3);/*P1_4/ Change byte order from network to host orderUINT32_NTOH(rxPacket.seqNumber); / 改變接收序號(hào)的字節(jié)順序segNumber = rxPacket.seqNumber;/ If statistics is reset set expected sequence number to/若統(tǒng)計(jì)被復(fù)位,設(shè)置期望收到的數(shù)據(jù)包序號(hào)為已經(jīng)收到的數(shù)據(jù)包序號(hào)if(resetStats)rxStats.expectedSeqNum = segNumber;resetSt
17、ats=FALSE;/ Subtract old RSSI value from sumrxStats.rssiSum -= perRssiBufperRssiBufCounter; / 從 sum 中減去舊的RSSI 值/ Store new RSSI value in ring buffer, will add it to sum laterperRssiBufperRssiBufCounter = rssi; /之后它將被加入 sum新的 RSSI 值到環(huán)形緩沖區(qū),rxStats.rssiSum += perRssiBufperRssiBufCounter;/ 增加新的RSSI 值到su
18、mif(+perRssiBufCounter = RSSI_AVG_WINDOW_SIZE) perRssiBufCounter = 0;/ Wrap ring buffer counter/ Check if received packet is the expected packet是否是所期望收到的數(shù)據(jù)包檢查接收到的數(shù)據(jù)包if(rxStats.expectedSeqNum = segNumber) / 是所期望收到的數(shù)據(jù)包rxStats.expectedSeqNum+;/ If there is a jump in the sequence numbering this means so
19、me packetsin希望微控第 8 頁(yè) 共 10 頁(yè)點(diǎn)對(duì)點(diǎn)通信試驗(yàn)北京希望慧聯(lián)科技/ between has been lost.else if(rxStats.expectedSeqNum < segNumber) / 不是所期望收到的數(shù)據(jù)包(大于期望收到的數(shù)據(jù)包的序號(hào))/ 認(rèn)為丟包rxStats.lostPkts += segNumber - rxStats.expectedSeqNum;rxStats.expectedSeqNum = segNumber + 1;/ If the sequence number is lower than the previous one, w
20、e will assume a/ new data burst has started and we will reset our else / (小于期望收到的數(shù)據(jù)包的序號(hào))/新的測(cè)試開(kāi)始,復(fù)位統(tǒng)計(jì)變量rxStats.expectedSeqNum = segNumber + 1; rxStats.rcvdPkts = 0;rxStats.lostPkts = 0;rxStats.rcvdPkts+;statisticsvariables./ reset statistics if button 1 is pressed temp_receive=(int32)rxStats.rcvdPkts
21、; if(temp_receive>1000)if(halButtonPushed()=HAL_BUTTON_1) resetStats = TRUE;rxStats.rcvdPkts = 1;rxStats.lostPkts = 0;Myreceive0=temp_receive/100+'0' Myreceive1=temp_receive%100/10+'0' Myreceive2=temp_receive%10+'0' Myreceive3='0'UartTX_Send_String("RECE:",strlen("RECE:");/開(kāi)始上報(bào)數(shù)據(jù)UartTX_Send_String(Myreceive,4);UartTX_Send_String("",strlen(""
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 有效的裝修合同(2篇)
- 《餐飲服務(wù)與管理》課件-教學(xué)課件:餐飲設(shè)備用品-布件
- 大數(shù)據(jù)背景下的企業(yè)財(cái)務(wù)管理與決策優(yōu)化研究
- 湖南省長(zhǎng)沙市雅禮教育集團(tuán)2024-2025學(xué)年高一下學(xué)期期中考試數(shù)學(xué)試卷(含答案)
- 腦梗塞的臨床護(hù)理
- 賁門腫瘤的臨床護(hù)理
- 2025合同執(zhí)行中的違約責(zé)任
- 2025全面售后服務(wù)合同模板
- 2025電影劇本版權(quán)購(gòu)買及發(fā)行權(quán)轉(zhuǎn)讓合同范本
- 2025年心理咨詢師之心理咨詢師基礎(chǔ)知識(shí)提升訓(xùn)練試卷B卷附答案
- 2023年國(guó)網(wǎng)浙江省電力有限公司招聘考試真題
- 2024年廣東省汕頭市龍湖區(qū)中考語(yǔ)文一模試卷
- 中輻放射性藥物貯存及銷售項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- (人教2024版)數(shù)學(xué)五年級(jí)上冊(cè)第6單元《多邊形的面積》大單元教學(xué)課件
- 行政事業(yè)單位內(nèi)部控制制度之合同管理制度
- 2024秋期國(guó)家開(kāi)放大學(xué)《可編程控制器應(yīng)用實(shí)訓(xùn)》一平臺(tái)在線形考(形成任務(wù)3)試題及答案
- 2025年高考語(yǔ)文第一輪復(fù)習(xí):高考文言文閱讀挖空練習(xí)高考語(yǔ)文文言文備考總復(fù)習(xí)(全國(guó))
- DB13-T 5722-2023 醫(yī)院感染應(yīng)對(duì)策略與質(zhì)量控制
- 2024秋期國(guó)家開(kāi)放大學(xué)《公共政策概論》一平臺(tái)在線形考(形考任務(wù)1至4)試題及答案
- 藥劑科考試試題
- 湖北省華中師大第一附中2025屆高考物理四模試卷含解析
評(píng)論
0/150
提交評(píng)論