




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計 題目 基于nRF905的無線數據發(fā)射器電 路 設 計學院名稱 電氣工程學院指導老師 黃智偉 班 級 通信工程092班學 號 20094400228學生姓名 張晉杰 二0一二年五月摘要簡要介紹內嵌AVR RISC微控制器的無線數據發(fā)射器nRF905的功能、內部結構、引腳排列及典型的應用電路。nRF905單片無線收發(fā)器是挪威Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9-3.6V,32引腳QFN封裝(5mm×5mm),工作于433/868/915MHz3個ISM頻道。要求只有一個晶振,一個LiMnO2 鑄造單元(CR2032或者類似的),三個電容,一個感應器,一個
2、調諧環(huán)路天線來實現(xiàn)完整的開關無線RF數據傳送。關鍵字: 微型發(fā)射器 微控制器 VCO電感 外部環(huán)路濾波器 1. nRF905芯片簡介-22. nRF905模塊介紹-32.1 NRF905無線模塊特點-41. 2.2 接口電路管腳說明nRF905可以自動完成處理字頭和CRC(循環(huán)冗余碼校驗)的工作,可由片內硬件自動完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置非常方便,其功耗非常低,以-10dBm的輸出功率發(fā)射時電流只有11mA,在接收模式時電流為12.5mA。 nRF905單片無線收發(fā)器工作由一個完全集成的頻率調制器,一個帶解調器的接收器,一個功率放大器,一個晶體震蕩器和一個調節(jié)器
3、組成。ShockBurst工作模式的特點是自動產生前導碼和CRC,可以很容易通過SPI接口進行編程配置。 2.1 模塊介紹NRF905無線模塊特點:(1) 433Mhz 開放ISM 頻段免許可證使用(2) 最高工作速率50kbps,高效GFSK調制,抗干擾能力強,特別適合工業(yè)控制場合(3) 125 頻道,滿足多點通信和跳頻通信需要(4) 內置硬件CRC 檢錯和點對多點通信地址控制(5) 低功耗1.9 -3.6V 工作,待機模式下狀態(tài)僅為2.5uA (6) 收發(fā)模式切換時間< 650us (7) 模塊可軟件設地址,只有收到本機地址時才會輸出數據(提供中斷指示),可直接接各種單片機使用,軟件
4、編程非常方便(8) TX Mode: 在+10dBm情況下,電流為30mA; RX Mode: 12.2mA (9) 標準DIP間距接口,便于嵌入式應用(10)RFModule-Quick-DEV 快速開發(fā)系統(tǒng),含開發(fā)板2.2 接口電路管腳說明2.4.3 ShockBurst RX 接收流程接收流程寄存器包含目標器件地址字節(jié)長度由配置寄存器設置發(fā)送有效數據TX-Payload寄存器包含發(fā)送的有效ShockBurst 數據包數據字節(jié)長度由配置寄存器設置接收有效數據TX-Payload 寄存器包含接收到的有效ShockBurst 數據包數據字節(jié)長度由配置寄存器設置在寄存器中的有效數據由數據準備就緒
5、DR 指示2.5.2 SPI 指令設置當CSN 為低時, SPI接口開始等待一條指令。任何一條新指令均由CSN 的由高到低的轉換開始。用于SPI 接口的有用命令見下表:SPI 串行接口指令設置3. 單片機最小系統(tǒng)介紹1.51單片機最小系統(tǒng)復位電路的極性電容C1的大小直接影響單片機的復位時間,一般采用1030uF,51單片機最小系統(tǒng)容值越大需要的復位時間越短。2.51單片機最小系統(tǒng)晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,51單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。3.51單片機最小系統(tǒng)起振電容C2、C3一般
6、采用1533pF,并且電容離晶振越近越好,晶振離單片機越近越好4.P0口為開漏輸出,作為輸出口時需加上拉電阻,阻值一般為10k。其他接口內部有上拉電阻,作為輸出口時不需外加上拉電阻。設置為定時器模式時,加1計數器是對內部機器周期計數(1個機器周期等于12個振蕩周期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器周期Tcy就是定時時間t。設置為計數器模式時,外部事件計數脈沖由T0或T1引腳輸入到計數器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數器加1,更新的計數值在下一個機器周期的S3P1期間裝入計數器。由于檢測一個從
7、1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為12MHz時,最高計數頻率不超過1/2MHz,即計數脈沖的周期要大于2 ms。 標識符號 地址 寄存器名稱P3 0B0H I/O口3寄存器PCON 87H 電源控制及波特率選擇寄存器SCON 98H 串行口控制寄存器SBUF 99H 串行數據緩沖寄存器TCON 88H 定時控制寄存器TMOD 89H 定時器方式選擇寄存器TL0 8AH 定時器0低8位TH0 8CH 定時器0高8位TL1 8BH 定時器1低8位TH1 8DH 定時器1高8位4. 原理圖及PCB圖5.發(fā)射程序#include<reg52.
8、h>#define uint unsigned int#define uchar unsigned charsbit wei1 =P10;sbit wei2 = P11;sbit wei3=P12;sbit wei4=P13;uchar code table=0xc0,0xf9,0xa4,0xb0, /不帶小數點的數碼管編碼表0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uchar code table1=0x40,0x79,0x24,0x30, /帶小數點的數碼管編碼表0x19,0x12,0x02,0x78,0x
9、00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e/*,0x3f,0x7f*/;unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;unsigned char data temp_data2 = 0x00,0x00 ;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ;/*-ptr8000.h無線發(fā)射nRF905模塊Using for play
10、RF unit PTR8000-*/sbit ptr_en=P36;/1為發(fā)射模式,0為接收模式sbit ptr_ce=P15;/使能發(fā)射、接收模式sbit ptr_pwr=P31;/上電掉電模式sbit ptr_cd=P34;/載波檢測輸出檢測到頻率匹配的載波就變1)sbit ptr_am=P16;/地址匹配輸出 地址匹配就變1這三個標志位只對取出數據進行標志sbit ptr_dr=P35;/數據就緒輸出數據就緒就變1) 注意,所有動作完成后,三個1都被拉低了sbit ptr_miso=P17;/SPI的輸入口 注意,sck低時在miso上準備數據,sck高時把數據讀出sbit ptr_mo
11、si=P14;/SPI的輸出口 注意,sck低時先把數據放到mosi上,sck高時再送出去sbit ptr_sck=P33;/SPI的時鐘口 注意,I/O數據都是在上升沿讀出/寫入的數據都是先高后低sbit ptr_csn=P32;/SPI的數據使能口 注意,SPI的數據出入都是在csn的低電平動作的uchar tdat=0xf0,0x0f;/要發(fā)送的3字節(jié)數據uchar rdat=0x00,0x00;/要接收的3字節(jié)數據uchar config10=0x4c,0x00,0x11,0x02,0x02,0xaa,0xab,0xac,0xad,0x58;/* 名稱 : delay()* 功能 :
12、延時,延時時間大概為140US。* 輸入 : 無* 輸出 : 無*/void delay11()int i,j;for(i=0; i<=10; i+)for(j=0; j<=2; j+);/*1:工作頻率430MHz2:-10dBm,433MHz頻段,正常功耗,不重發(fā)數據3:發(fā)射/接收地址寬度均為1字節(jié),1字節(jié)地址可放8字節(jié)數據4:接收數據寬度3字節(jié)5:發(fā)送數據寬度3字節(jié)6,7,8,9:4字節(jié)的地址,地址可隨便定義,但一定要保證收發(fā)端的地址一致10:8位CRC校驗,外接16MHz晶振,無時鐘輸出 */<設置器件為發(fā)送模式> void SetTxMode(void) ui
13、nt i; ptr_en=1; ptr_ce=0; for(i=0;i<255;i+); /<設置器件為接收模式> void SetRxMode(void) uint i; ptr_en=0; ptr_ce=1; for(i=0;i<255;i+); void spi_wr(uchar dat)/sck低時先把數據放到mosi上,sck高時再送出去uchar i,d=0;/記得一定要把數據清0,不然會頭疼的for(i=0;i<8;i+)ptr_sck=0;d=dat;d=(d>>(7-i)&0x01;/發(fā)送最高位ptr_mosi=d;ptr_s
14、ck=1;/for(j=0;j<200;j+);/若用高速MCU,在此加上延時函數,1ms即可ptr_sck=0;uchar spi_re(void)/sck低時在miso上準備數據,sck高時把數據讀出uchar i,d=0,dat=0;/記得清0!ptr_sck=0;for(i=0;i<8;i+)ptr_sck=1;/置高,讀取數據d=ptr_miso; d=d<<(7-i);/發(fā)送最高位dat=dat|d;ptr_sck=0;/準備下一次讀取的數據/若用高速MCU,在此加上延時函數,1ms即可return dat;void ptr_init(void)/初始化配置
15、,想改的話參照一下資料uchar i;ptr_csn=1;ptr_sck=0;/SPI控制引腳的安全狀態(tài)ptr_pwr=1;ptr_ce=0;ptr_en=0;/配置為待機模式ptr_csn=0;/注意,csn拉低時可以連續(xù)寫指令,寫到其被拉高為止spi_wr(0x00);/寫配置寄存器的指令,資料上提都不提,他奶奶的for(i=0;i<10;i+)spi_wr(configi);/想什么配置去資料上對照ptr_csn=1;/拉高以保證其安全性void ptr_tx(uchar *p)/發(fā)送數據,一次發(fā)送3字節(jié)uchar i;ptr_en=1;/參照時序圖寫ptr_csn=0;/開始寫發(fā)
16、送的數據的地址spi_wr(0x22);/寫地址的指令spi_wr(0xaa);spi_wr(0xab);spi_wr(0xac);spi_wr(0xad);/寫地址ptr_csn=1;/地址寫入完畢f(xié)or(i=0;i<255;i+);/延時,保存地址ptr_csn=0;/開始寫發(fā)送的數據spi_wr(0x20);/寫數據的指令for(i=0;i<2;i+)spi_wr(pi);/寫入數據ptr_csn=1;/數據寫入完畢f(xié)or(i=0;i<255;i+);/延時,保存數據ptr_ce=1;/在ce為高時發(fā)出數據for(i=0;i<255;i+);/等待數據發(fā)送完畢pt
17、r_ce=0;/歸位ptr_en=0;/歸位for(i=0;i<255;i+);/*注意:接收數據時,是按配置中的位數依次接收進來的。比如在初始化中設置的四個地址分別為0xaa、0xab、0xac、0xad,但在接收/發(fā)射模式的數據位數上只設置了9字節(jié),且只發(fā)射了9位,那么接收時只會判斷前兩字節(jié)地址是否匹配。如果匹配,則把0xaa中的前8字節(jié)和0xab中的后1字節(jié)接收過來,其余兩個字節(jié)地址不管了。意思就是,0xaa這四個地址每個都對應8個字節(jié)的數據,但是不能通過尋址的方式取出哪個地址里的8字節(jié)的數據,只能從第一個地址里一個一個字節(jié)的取數據。建議一次取8個數據為好。*/uchar ptr_
18、rx(void)/接收數據,一次接收3字節(jié)uchar i,dat=0;ptr_ce=1;/此時en為低,ce高en低,進入接收模式for(i=0;i<200;i+);/等待650us,切換狀態(tài)while(ptr_dr=0);ptr_csn=0;/準備接收數據spi_wr(0x24);/讀RX的數據之指令for(i=0;i<2;i+)rdati=spi_re();/把數據從miso上讀出來ptr_csn=1;/數據接收完畢while(ptr_dr=0);/等到標志歸位,更保險ptr_ce=0;/歸位for(i=0;i<255;i+);return dat;/如果只需要接收一位數
19、據可以開這個void display_temp()P2=tabledisplay3;wei1=0;wei2=1;wei3=1;wei4=1;delay11();wei1=1;/P1=0xff;P2=tabledisplay2;wei1=1;wei2=0;wei3=1;wei4=1;delay11();wei2=1;/P1=0xff;P2=table1display1;wei1=1;wei2=1;wei3=0;wei4=1;wei3=1;delay11();/P1=0xff;P2=tabledisplay0;wei1=1;wei2=1;wei3=1;wei4=0;delay11();wei4=1
20、;/P1=0xff;void main()uint tt=0;uchar dat=0;ptr_init();SetRxMode();while(1)dat=ptr_rx();display4=rdat0&0x0f ; display0=ditabdisplay4 ; /查表得小數位的值 display4=(rdat0&0xf0)>>4)|(rdat1&0x0f)<<4) ; display3=display4/100 ; display1=display4%100 ; display2=display1/10 ; display1=display
21、1%10 ;while(tt+<1)display_temp();tt=0;6.總結本次課程設計的過程中,遇到很多問題。但通過詢問同學和查閱資料,基本都順利解決。同時通過這次課程設計,我學到了很多知識,尤其是對以前課程的掌握,比如高頻、數電和模電等等。同時也意識到知識融合的重要性。所以以后的學習中,要盡量聯(lián)系前面所學的知識,做到融會貫通,只有這樣,才能真正掌握東西,真正學到東西。課程設計的過程中,我查閱了很多通信方面的前沿科技,感嘆科技的偉大力量的同時,也意識到了自己的不足,同時也懂得了只有好好學習才能跟上時代的腳步。7.參考書目通信電子線路課程設計任務書1課程設計的內容和要求(包括原始數據、技術要求、工作要求等):一、課程設計內容 題目:一個基于單片機的無線數據收發(fā)與控制系統(tǒng)設計要求:輸入信號為傳感器、電壓、電流、開關等形式,輸出控制信號為模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江國企招聘2025臺州市人力資源開發(fā)有限公司招聘6人筆試參考題庫附帶答案詳解
- 2025貴州高速公路集團有限公司招聘77人筆試參考題庫附帶答案詳解
- 2025湖南蓉園集團有限公司招聘10人筆試參考題庫附帶答案詳解
- 2025浙江縉云縣保安服務有限公司招聘國有企業(yè)項目用工10人筆試參考題庫附帶答案詳解
- 2025河南省儲備糧管理集團有限公司招聘12人筆試參考題庫附帶答案詳解
- 2025年信陽鼎信產業(yè)投資集團有限公司及所屬二級公司招聘工作人員24名筆試參考題庫附帶答案詳解
- 2025年宿州市宿徐實業(yè)發(fā)展有限公司招聘6人筆試參考題庫附帶答案詳解
- 2025年合肥高新美城物業(yè)有限公司招聘30人筆試參考題庫附帶答案詳解
- 2025內蒙古中煤鄂爾多斯能源化工有限公司招聘98人筆試參考題庫附帶答案詳解
- 2025“才聚齊魯成就未來”山東省商業(yè)集團有限公司春季招聘133人筆試參考題庫附帶答案詳解
- 責任制整體護理護理
- 金融機構資管產品模板報數指引(2022年)
- 人工智能的風險與挑戰(zhàn)
- 月度能耗分析報告
- 北京鏈家地產經紀有限公司簡介演示文稿
- 物理建模思想方法課件
- 家族性腺瘤性息肉病學習課件
- 中國電力資產重組現(xiàn)狀及未來發(fā)展趨勢研究
- 肺癌麻醉科教學查房
- 民爆物品治安隱患排查標準清單
- 店鋪轉讓協(xié)議書 合同
評論
0/150
提交評論