![基于ZigBee的數(shù)據(jù)采集與無線傳輸實(shí)驗(yàn)_第1頁](http://file4.renrendoc.com/view11/M00/16/2F/wKhkGWXuiiqAfh1NAAICepKOiBA604.jpg)
![基于ZigBee的數(shù)據(jù)采集與無線傳輸實(shí)驗(yàn)_第2頁](http://file4.renrendoc.com/view11/M00/16/2F/wKhkGWXuiiqAfh1NAAICepKOiBA6042.jpg)
![基于ZigBee的數(shù)據(jù)采集與無線傳輸實(shí)驗(yàn)_第3頁](http://file4.renrendoc.com/view11/M00/16/2F/wKhkGWXuiiqAfh1NAAICepKOiBA6043.jpg)
![基于ZigBee的數(shù)據(jù)采集與無線傳輸實(shí)驗(yàn)_第4頁](http://file4.renrendoc.com/view11/M00/16/2F/wKhkGWXuiiqAfh1NAAICepKOiBA6044.jpg)
![基于ZigBee的數(shù)據(jù)采集與無線傳輸實(shí)驗(yàn)_第5頁](http://file4.renrendoc.com/view11/M00/16/2F/wKhkGWXuiiqAfh1NAAICepKOiBA6045.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第頁2016-2017學(xué)年第二學(xué)期課程實(shí)驗(yàn)報(bào)告課程名稱:無線傳感網(wǎng)絡(luò)實(shí)驗(yàn)名稱:基于ZigBee的數(shù)據(jù)采集與無線傳輸實(shí)驗(yàn)姓名班級(jí)學(xué)號(hào)同組同學(xué)實(shí)驗(yàn)課表現(xiàn)出勤、表現(xiàn)得分25%25實(shí)驗(yàn)報(bào)告得分50%實(shí)驗(yàn)總分操作結(jié)果得分25%25實(shí)驗(yàn)?zāi)康牧私鈀igBee的工作原理和技術(shù)特點(diǎn),利用CC2530芯片開發(fā)一個(gè)簡單的ZigBee組網(wǎng)通信實(shí)驗(yàn)。實(shí)驗(yàn)內(nèi)容以小組為單位,利用CC2530芯片部署無線傳感網(wǎng)絡(luò)實(shí)驗(yàn),分別設(shè)計(jì)采集節(jié)點(diǎn)、匯聚節(jié)點(diǎn)的程序,采集節(jié)點(diǎn)采集溫度信息,并通過無線信道傳輸給匯聚節(jié)點(diǎn)。匯聚節(jié)點(diǎn)再將溫度數(shù)據(jù)通過串口傳輸給上位機(jī)(PC機(jī))。要求自己設(shè)計(jì)通信協(xié)議,實(shí)現(xiàn)上位機(jī)對(duì)監(jiān)控區(qū)域的定時(shí)和實(shí)時(shí)溫度數(shù)據(jù)采集。實(shí)驗(yàn)過程中遇到的問題以及如何解決的?(可以寫多條,是否認(rèn)真填寫將影響實(shí)驗(yàn)成績)在實(shí)驗(yàn)過程中我遇到了能接收后遇到很多的噪聲干擾并且不能接收自己發(fā)送的信息接收到自己的信息后仍然有很多的噪聲干擾出現(xiàn)了很多的亂碼接收自己的信息也被轉(zhuǎn)換成亂碼遇到了選擇性接收上的技術(shù)問題溫度的acsii碼轉(zhuǎn)換錯(cuò)誤通過的方式,我解決了這個(gè)問題。修改了接收代碼并確認(rèn)發(fā)送代碼沒毛病嘗試修改信道檢查到接收子程序有問題并修改了老師建議我們使用選擇性接收通過組員合作研究討論并上網(wǎng)查找解決沒有問題的情況下,是否有創(chuàng)新思路(或多做哪些工作)。好像并沒有實(shí)驗(yàn)代碼如下:發(fā)送代碼:/*****************************************************************************文件名:main.c*作者:Andy*修訂:2013-01-08*版本:1.0*描述:設(shè)置串口調(diào)試助手波特率:115200bps8N1*串口調(diào)試助手給CC2530發(fā)字符串時(shí),開發(fā)板會(huì)返回接收到的字符串****************************************************************************/#include<ioCC2530.h>#include<string.h>#include<stdio.h>#include<stdlib.h>//#defineDISABLE_ALL_INTERRUPTS()(IEN0=IEN1=IEN2=0x00)//三個(gè)charrf_rx_buf[128];voidrf_send(char*pbuf,intlen);voidrf_receive_isr();typedefunsignedcharuchar;typedefunsignedintuint;#defineUART0_RX1#defineUART0_TX2#defineSIZE51charRxBuf;charUartState;ucharcount;charRxData[SIZE];//存儲(chǔ)發(fā)送字符串voidInitClock(void){CLKCONCMD&=~0x40;//設(shè)置系統(tǒng)時(shí)鐘源為32MHZ晶振while(!(RFIRQF1&(1<<1)));//等待發(fā)送完成P0_0=~P0_0;RFIRQF1=~(1<<1);//清除發(fā)送完成標(biāo)志位RFIRQM0|=(1<<6);//RX接收中斷IEN2|=(1<<0);}/*****************************************************************************程序入口函數(shù)****************************************************************************/voidmain(void){ //chari;//floatAvgTemp;//charstrTemp[6];CLKCONCMD&=~0x40;//設(shè)置系統(tǒng)時(shí)鐘源為32MHZ晶振while(CLKCONSTA&0x40);//等待晶振穩(wěn)定為32MCLKCONCMD&=~0x47;//設(shè)置系統(tǒng)主時(shí)鐘頻率為32MHZInitUart();//調(diào)用串口初始化函數(shù)UartState=UART0_RX;//串口0默認(rèn)處于接收模式memset(RxData,0,SIZE);InitSensor();rf_init();floatx=GetTemperature();chara[10];sprintf(a,"%g",x);charb[15]="AC1:";strcat(b,a);while(1){rf_send(b,20);DelayMS(20);}/*if(UartState==UART0_TX)//發(fā)送狀態(tài){U0CSR&=~0x40;//禁止接收AvgTemp=0;for(i=0;i<64;i++){AvgTemp+=GetTemperature();AvgTemp=AvgTemp/2;//每次累加后除2}memset(strTemp,0,6);sprintf(strTemp,"%.02f\n",AvgTemp);//將浮點(diǎn)數(shù)轉(zhuǎn)成字符串UartSendString(strTemp,6);rf_send(strTemp,5);DelayMS(1000);//延時(shí)//UartSendString(RxData,count);//發(fā)送已記錄的字符串。U0CSR|=0x40;//允許接收UartState=UART0_RX;//恢復(fù)到接收狀態(tài)count=0;//計(jì)數(shù)清0memset(RxData,0,SIZE);//清空接收緩沖區(qū)}}*/}接收代碼:/********************************************************************************文件名稱:UART(ReceiveINT)_Ex.c*功能:CC253x系列片上系統(tǒng)基礎(chǔ)實(shí)驗(yàn)UART(接收數(shù)據(jù)中斷方式)*描述:本實(shí)驗(yàn)使用CC253x系列片上系統(tǒng)的片內(nèi)USART控制器,工作在UART模式下,通*過UART0接收數(shù)據(jù),采用中斷方式。*實(shí)驗(yàn)硬件:*用USB電纜連接SK-SmartRF05EB上的USB接口與用戶PC的USB接口。**作者:POWER*日期:2010-04-18******************************************************************************//*包含頭文件*//********************************************************************/#include"ioCC2530.h"http://CC2530的頭文件,包含對(duì)CC2530的寄存器、中斷向量等的定義#include"LCD.h"http://lcd驅(qū)動(dòng)頭文件#include"stdio.h"http://C語言標(biāo)準(zhǔn)輸入/輸出庫頭文件/********************************************************************//*定義枚舉類型*//********************************************************************/enumSYSCLK_SRC{XOSC_32MHz,RC_16MHz};//定義系統(tǒng)時(shí)鐘源(主時(shí)鐘源)枚舉類型/********************************************************************//**********************************************************************函數(shù)名稱:SystemClockSourceSelect*功能:選擇系統(tǒng)時(shí)鐘源(主時(shí)鐘源)*入口參數(shù):source*XOSC_32MHz32MHz晶體振蕩器*RC_16MHz16MHzRC振蕩器*出口參數(shù):無*返回值:無********************************************************************/voidSystemClockSourceSelect(enumSYSCLK_SRCsource){unsignedcharosc32k_bm=CLKCONCMD&0x80;unsignedchar__clkconcmd,__clkconsta;/*系統(tǒng)時(shí)鐘源(主時(shí)鐘源)選擇16MHzRC振蕩器,定時(shí)器tick設(shè)置為16MHz,時(shí)鐘速度設(shè)置為16MHzCLKCONCMD.OSC32K[b7]不改變32KHz時(shí)鐘源選擇保持先前設(shè)置CLKCONCMD.OSC[b6]=1系統(tǒng)時(shí)鐘源(主時(shí)鐘源)選擇16MHzRC振蕩器CLKCONCMD.TICKSPD[b5..b3]=001定時(shí)器tick設(shè)置為16MHzCLKCONCMD.CLKSPD[b2..b0]=001時(shí)鐘速度設(shè)置為16MHz*/if(source==RC_16MHz){/*CLKCONCMD.OSC32K[b7]*/CLKCONCMD=((osc32k_bm)|\/*CLKCONCMD.OSC[b6]=1*/(0x01<<6)|\/*CLKCONCMD.TICKSPD[b5..b3]=001*/(0x01<<3)|\/*CLKCONCMD.CLKSPD[b2..b0]=001*/(0x01<<0));}/*系統(tǒng)時(shí)鐘源(主時(shí)鐘源)選擇32MHz晶體振蕩器,定時(shí)器tick設(shè)置為32MHz,時(shí)鐘速度設(shè)置為32MHzCLKCONCMD.OSC32K[b7]不改變32KHz時(shí)鐘源選擇保持先前設(shè)置CLKCONCMD.OSC[b6]=0系統(tǒng)時(shí)鐘源(主時(shí)鐘源)選擇32MHz晶體振蕩器CLKCONCMD.TICKSPD[b5..b3]=000定時(shí)器tick設(shè)置為32MHzCLKCONCMD.CLKSPD[b2..b0]=000時(shí)鐘速度設(shè)置為32MHz*/elseif(source==XOSC_32MHz){CLKCONCMD=(osc32k_bm/*|(0x00<<6)|(0x00<<3)|(0x00<<0)*/);}/*等待所選擇的系統(tǒng)時(shí)鐘源(主時(shí)鐘源)穩(wěn)定*/__clkconcmd=CLKCONCMD;//讀取時(shí)鐘控制寄存器CLKCONCMDdo{__clkconsta=CLKCONSTA;//讀取時(shí)鐘狀態(tài)寄存器CLKCONSTA}while(__clkconsta!=__clkconcmd);//直到CLKCONSTA寄存器的值與CLKCONCMD寄存//器的值一致,說明所選擇的系統(tǒng)時(shí)鐘源(主//時(shí)鐘源)已經(jīng)穩(wěn)定}/**********************************************************************函數(shù)名稱:InitUART0*功能:UART0初始化*P0.2RX*P0.3TX*波特率:57600*數(shù)據(jù)位:8*停止位:1*奇偶校驗(yàn):無*入口參數(shù):無*出口參數(shù):無*返回值:無********************************************************************/voidInitUART0(void){/*片內(nèi)外設(shè)引腳位置采用上電復(fù)位默認(rèn)值,即PERCFG寄存器采用默認(rèn)值*//*P0.2RXP0.3TXP0.4CTP0.5RT*//*UART0相關(guān)引腳初始化*/P0SEL|=((0x01<<2)|(0x01<<3));//P0.2和P0.3作為片內(nèi)外設(shè)I/O/*P0口外設(shè)優(yōu)先級(jí)采用上電復(fù)位默認(rèn)值,即P2DIR寄存器采用默認(rèn)值*//*第一優(yōu)先級(jí):USART0第二優(yōu)先級(jí):USART1第三優(yōu)先級(jí):Timer1*//*UART0波特率設(shè)置*//*波特率:57600當(dāng)使用32MHz晶體振蕩器作為系統(tǒng)時(shí)鐘時(shí),要獲得57600波特率需要如下設(shè)置:UxBAUD.BAUD_M=216UxGCR.BAUD_E=10該設(shè)置誤差為0.03%*/U0BAUD=216;U0GCR=10;/*USART模式選擇*/U0CSR|=0x80;//UART模式/*UART0配置*/U0UCR|=0x80;//進(jìn)行USART清除/*以下配置參數(shù)采用上電復(fù)位默認(rèn)值:硬件流控:無奇偶校驗(yàn)位(第9位):奇校驗(yàn)第9位數(shù)據(jù)使能:否奇偶校驗(yàn)使能:否停止位:1個(gè)停止位電平:高電平起始位電平:低電平*//*用於發(fā)送的位順序采用上電復(fù)位默認(rèn)值,即U0GCR寄存器采用上電復(fù)位默認(rèn)值*//*LSB先發(fā)送*/URX0IF=0;//清零UART0RX中斷標(biāo)志U0CSR|=(0x01<<6);//使能接收器URX0IE=1;//使能UART0RX中斷}charrf_rx_buf[16];charpbuf[16];/**********************************************************************函數(shù)名稱:UART0SendByte*功能:UART0發(fā)送一個(gè)字節(jié)*入口參數(shù):c*出口參數(shù):無*返回值:無********************************************************************/voidUART0SendByte(unsignedcharc){U0DBUF=c;//將要發(fā)送的1字節(jié)數(shù)據(jù)寫入U(xiǎn)0DBUFwhile(!UTX0IF);//等待TX中斷標(biāo)志,即U0DBUF就緒UTX0IF=0;//清零TX中斷標(biāo)志}/**********************************************************************函數(shù)名稱:UART0SendString*功能:UART0發(fā)送一個(gè)字符串*入口參數(shù):無*出口參數(shù):無*返回值:無********************************************************************/voidUART0SendString(char*str){while(1){if(*str=='\0')break;//遇到結(jié)束符,退出UART0SendByte(*str++);//發(fā)送一字節(jié)}}voidrf_init(){TXPOWER=0xD5;//發(fā)射功率為1dBm//FRMCTRL0|=(0x20|0x40);/*AUTO_ACK|AUTO_CRC*/CCACTRL0=0xF8;//推薦值smartRF軟件生成FRMFILT0=0x0c;//靜止接收過濾,即接收所有數(shù)據(jù)包FSCAL1=0x00;//推薦值smartRF軟件生成TXFILTCFG=0x09;AGCCTRL1=0x15;//AGCCTRL2=0xFE;//TXFILTCFG=0x09;//推薦值smartRF軟件生成FREQCTRL=0x09;//選擇通道11RFIRQM0|=(1<<6);//使能RF數(shù)據(jù)包接收中斷IEN2|=(1<<0);//使能RF中斷RFST=0xED;//清除RF接收緩沖區(qū)ISFLUSHRXRFST=0xE3;//RF接收使能ISRXON}voidrf_receive_isr(){intrf_rx_len=0;charr[1]={0};charcrc_ok=0;char*rf_rx_buf;rf_rx_len=RFD-2;//長度去除兩字節(jié)附加結(jié)果rf_rx_len&=0x7F;for(inti=0;i<rf_rx_len;i++){rf_rx_buf[i]=RFD;//連續(xù)讀取接收緩沖區(qū)內(nèi)容}r[0]=RFD-73;//讀取RSSI結(jié)果crc_ok=RFD;//讀取CRC校驗(yàn)結(jié)果BIT7RFST=0xED;//清除接收緩沖區(qū)if(crc_ok&0x80){for(inti=0;i<=strlen(rf_rx_buf);i++){if(rf_rx_buf[i]==':'){strcat(rf_rx_buf,"\n");UART0SendString(rf_rx_buf);}//}//串口發(fā)送//UartSendString(r,1);}//else//{//UartSendString("CRCError",9);//}}}//unsignedlongrcv_count=0;//累計(jì)接收到的字節(jié)計(jì)數(shù)//unsignedlongrcv_charA_count=0;//累計(jì)接收到的字符'A'計(jì)數(shù)/**********************************************************************函數(shù)名稱:URX0_ISR*功能:UART0RX中斷服務(wù)函數(shù)*入口參數(shù):無*出口參數(shù):無*返回值:無********************************************************************/#pragmavector=RF_VECTOR__interruptvoidrf_isr(void){unsignedchare;P2_0=~P2_0;//LED1翻轉(zhuǎn)提示作用e=EA;EA=0;//接收到一個(gè)完整的數(shù)據(jù)包if(RFIRQF0&(1<<6)){rf_receive_isr();//調(diào)用接收中斷處理函數(shù)S1CON&=~0x03;//清除RF中斷標(biāo)志RFIRQF0&=~(1<<6);//清除RF接收完成數(shù)據(jù)包中斷}EA=e;}/**********************************************************************函數(shù)名稱:main*功能:main函數(shù)入口*入口參數(shù):無*出口參數(shù):無*返回值:無********************************************************************/voidmain(void){chars[16];charrcv_count[16];charrcv_charA_count[16];SystemClockSourceSelect(XOSC_32MHz);//選擇32MHz晶體振蕩器作為系統(tǒng)時(shí)鐘源(主時(shí)鐘源)HalLcdInit();//LCD初始化HalLcd_HW_Clear();//清屏/*在LCD上顯示相關(guān)信息*/HalLcdWriteString("CC253xUART0Recv",HAL_LCD_LINE_1);HalLcdWriteString("57600-8-1-N-N",HAL_LCD_LINE_3);HalLcd_HW_WaitUs(50000);InitUART0();//UART0初始化rf_init();rf_receive_isr();EA=1;//使能全局中斷/*在LCD上顯示從UART0累計(jì)接收到的字節(jié)數(shù)量以及字符'A'的數(shù)量*/while(1){sprintf(s,"0x%08X",rcv_count);HalLcdWriteString((char*)s,HAL_LCD_LINE_4);//累計(jì)接收(字節(jié))sprintf(s,"0x%08X",rcv_charA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度辦事處知識(shí)產(chǎn)權(quán)專利實(shí)施許可與授權(quán)合同
- 家裝項(xiàng)目監(jiān)管合同
- 二零二五年度辦公室清潔與員工健康關(guān)懷合同
- 農(nóng)產(chǎn)品銷售居間合同委托書
- 有保證人借款合同
- 全新借錢的合同
- 制造業(yè)自動(dòng)化技術(shù)指南
- 醫(yī)院技術(shù)合作協(xié)議
- 工程建設(shè)項(xiàng)目招標(biāo)代理協(xié)議書
- 商標(biāo)權(quán)轉(zhuǎn)讓合同
- 運(yùn)輸管理實(shí)務(wù)課件4.5鐵路運(yùn)費(fèi)計(jì)算1
- 垃圾清運(yùn)服務(wù)投標(biāo)方案技術(shù)方案
- 化學(xué)品安全員勞動(dòng)合同
- 民政局版離婚協(xié)議書模板
- 腎病科血栓性微血管病診療規(guī)范2023版
- 六年級(jí)英語完形填空60篇含答案及講解
- 新時(shí)代中小學(xué)教師職業(yè)行為十項(xiàng)準(zhǔn)則
- 《幼兒園英語口語》
- 2024年人教版(新起點(diǎn))三年級(jí)英語下冊(cè)知識(shí)點(diǎn)匯總
- 高考作文復(fù)習(xí):議論文的8種常見的論證方法寫作指導(dǎo)+課件
- 新生兒肛管排氣的課件
評(píng)論
0/150
提交評(píng)論