基于單片機(jī)的無線射頻收發(fā)系統(tǒng)(完整資料).doc_第1頁
基于單片機(jī)的無線射頻收發(fā)系統(tǒng)(完整資料).doc_第2頁
基于單片機(jī)的無線射頻收發(fā)系統(tǒng)(完整資料).doc_第3頁
基于單片機(jī)的無線射頻收發(fā)系統(tǒng)(完整資料).doc_第4頁
基于單片機(jī)的無線射頻收發(fā)系統(tǒng)(完整資料).doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余39頁可下載查看

下載本文檔

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

文檔簡介

1、此文檔下載后即可編輯專業(yè)課程設(shè)計(jì)報(bào)告題目:基于單片機(jī)的射頻無線收發(fā)系統(tǒng)姓名:_OI專 業(yè):通信工程班級(jí)學(xué)號(hào):1()0423()9同組人:朱麗潔指導(dǎo)教師:張小林南昌航空大學(xué)信息工程學(xué)院20 13 年()7 月()5 日基于單片機(jī)的無線射頻收發(fā)系統(tǒng)摘 要:隨著現(xiàn)代電子技術(shù)的飛速發(fā)展,通信技術(shù)也取得了長足的 進(jìn)步。在無線通信領(lǐng)域,越來越多的通信產(chǎn)品大量涌現(xiàn)出來。但設(shè)計(jì) 無線數(shù)據(jù)傳輸產(chǎn)品往往需要相當(dāng)?shù)臒o線電專業(yè)知識(shí)和價(jià)格高昂的專 業(yè)設(shè)備,因而影響了用戶的使用和新產(chǎn)品的開發(fā)。nRF24L01是一個(gè) 為433MHz 1SM頻段設(shè)計(jì)的無線收發(fā)芯片,它為短距離無線數(shù)據(jù)傳 輸應(yīng)用提供了較好的解決辦法,使用nRF

2、24L01降低了開發(fā)難度,縮 短了開發(fā)周期,使產(chǎn)品能更快地推向市場。本文提出了一種應(yīng)用于 無線數(shù)據(jù)收發(fā)系統(tǒng)的設(shè)計(jì)思路及實(shí)現(xiàn)方案,給出了基于無線射頻芯 片nRF24L01和STC89C52單片機(jī)的無線數(shù)據(jù)傳輸模塊的設(shè)計(jì)方法, 詳細(xì)分析了各部分實(shí)現(xiàn)原理,并對系統(tǒng)的傳輸距離、傳輸數(shù)據(jù)的正 確性進(jìn)行了測試。試驗(yàn)表明,該系統(tǒng)性能穩(wěn)定,具有較強(qiáng)的抗干擾 能力,有較強(qiáng)的實(shí)用價(jià)值。關(guān)鍵詞:無線通信無線數(shù)據(jù)傳輸模塊單片機(jī)射頻前言 1系統(tǒng)設(shè)計(jì)11 .1系統(tǒng)設(shè)計(jì)22 .2實(shí)現(xiàn)過程23 系統(tǒng)組成22.1射 頻 收 發(fā) 控 制 模塊32.1.1 無線射頻收發(fā)芯片n R F 2 4 L 0 1介紹32.1.2 穩(wěn) 壓 部

3、分52.1.3 .2 單 片 機(jī) 控 制 部分62.2.1 STC89C52RC 功能介紹62.2.2 內(nèi) 部 結(jié)構(gòu)62.2.3 串 口 通信82.2.4 .3顯 示 部分103軟件設(shè)計(jì) 3.1主 程 序 流 程圖113 .2 數(shù)據(jù)收發(fā)子程序流程圖1 24 .3鍵 盤 子 程 序 流 程圖135 測 試 結(jié) 果 及 分析134.1硬 件 電 路 測試144.2系統(tǒng) 測試1 41.1.1 測 試 方法144.2.2 功 能 測 試 及 分析145 結(jié)論166 參考文獻(xiàn)17致謝 18附錄 1: 無線發(fā)射系 統(tǒng) 電路 圖19附錄2:發(fā)送程 序20前言伴隨著短距離、低功率無線數(shù)據(jù)傳輸技術(shù)的成熟,無線數(shù)

4、據(jù)傳 輸被越來越多地應(yīng)用到新的領(lǐng)域。與有線通信方式相比,無線通信 以其不需鋪設(shè)明線,使用便捷等一系列優(yōu)點(diǎn),在現(xiàn)代通信領(lǐng)域占重 要地位。但以往的無線產(chǎn)品存在范圍和方向上的局限。例如,一些無線 產(chǎn)品在使用時(shí),無法將信息反饋給控制者;還有一些無線產(chǎn)品不能 很好地顯示參數(shù)或狀態(tài)信息,如果能在系統(tǒng)中增加一塊小型液晶顯 示電路,產(chǎn)品不僅能向用戶顯示其狀態(tài)或狀態(tài)的改變,而且可以大 大降低成本。正如人們所發(fā)現(xiàn)的,只要建立雙向無線通信-雙工通信 并且選無線數(shù)據(jù)傳輸模塊基于微功耗單片射頻收發(fā)器NRF24L01設(shè) 計(jì),采用89c52單片機(jī)完成數(shù)據(jù)的處理和控制擇成本低的收發(fā)芯片, 就會(huì)出現(xiàn)許多新應(yīng)用。本次設(shè)計(jì)主要是利

5、用無線收發(fā)電路,加上單片機(jī)控制與液晶顯 示制成一套完整的數(shù)據(jù)收發(fā)系統(tǒng)??紤]到目前市場上的一些需求, 設(shè)計(jì)的主要要求是方案成本低,體積小,低功耗,集成度高,盡量 無需調(diào)外部元件,傳輸時(shí)間短,接口簡單。第一章系統(tǒng)設(shè)計(jì)1.1 系統(tǒng)設(shè)計(jì)無線數(shù)據(jù)傳輸系統(tǒng)有點(diǎn)對點(diǎn),點(diǎn)對多點(diǎn)和多點(diǎn)對多點(diǎn)三種。本 系統(tǒng)由于實(shí)際應(yīng)用的需要,接收器和數(shù)據(jù)終端之間的數(shù)據(jù)傳輸通過 NRF24L01進(jìn)行,構(gòu)成點(diǎn)對點(diǎn)無線數(shù)據(jù)傳輸系統(tǒng)。整個(gè)系統(tǒng)中,兩數(shù) 據(jù)終端之間的無線通信采用433MHz的頻段作為載波頻率,收發(fā)通 過串口通信。無線數(shù)據(jù)收發(fā)系統(tǒng)可以分為無線收發(fā)控制電路、單片機(jī)控制電 路、顯示電路和按鍵電路四部分組成,系統(tǒng)原理框如圖所示:圖

6、1-1無線數(shù)據(jù)收發(fā)系統(tǒng)原理圖1.2 實(shí)現(xiàn)過程當(dāng)我們需要發(fā)送數(shù)據(jù)時(shí),使用按鍵來輸入所需發(fā)送的信息。按 鍵與單片機(jī)的STC89C52RC的P3.2-P3.5 口相接,單片機(jī)的P1.0 口控 制信息的發(fā)送與接收,并且TXD端與收發(fā)器輸入端相連,通過TXD 將數(shù)據(jù)傳入收發(fā)器,收發(fā)器接收到數(shù)據(jù)后,通過FSK調(diào)制,將信號(hào) 發(fā)送出去;接收端的收發(fā)器通過解調(diào),將載波信號(hào)轉(zhuǎn)換為數(shù)字信號(hào), 完成信息傳輸過程;收發(fā)器的輸出端通過RXD端將數(shù)字信號(hào)輸入到 單片機(jī);單片機(jī)將數(shù)據(jù)傳送到顯示器,這樣就完成了一次數(shù)據(jù)發(fā)送 與接收并顯示的過程。本系統(tǒng)采用的是半雙工傳送方式。所謂半雙工就是通信的雙方 均具有發(fā)送和接收信息的能力,

7、信道也具有雙向傳輸性能,但是, 通信的任何一方都不能同時(shí)既發(fā)送信息又接收信息,即在指定的時(shí) 刻,只能沿某一個(gè)方向傳送信息。所以上述實(shí)現(xiàn)過程只介紹了由一 方傳送到另一方的過程,而相反方向與其原理相同。第二章系統(tǒng)組成2.1 射頻收發(fā)控制模塊該模塊主要由NRF24L01構(gòu)成,RF24L01是一款工作在 2.42.5GHz世界通用1SM頻段的單片無線收發(fā)器芯片。無線收發(fā) 器包括:頻率發(fā)生器、增強(qiáng)型SchockBurst模式控制器、功率放大器、 晶體振蕩器調(diào)制器、解調(diào)器。輸出功率頻道選擇和協(xié)議的設(shè)置可以 通過SPI接口進(jìn)行設(shè)置。2.1.1 無線收發(fā)芯片nRF24L01介紹1 .主要引腳功能V311RF2

8、4L01圖2-1NRF24L01引腳圖表2NRF24L01主要引腳說明表接口電路管 腳說明管腳名稱管腳功能說明1GND接地電源電源地2VCC接電源正電源正。范圍在1.9-3.6V。3CE模塊輸入信 號(hào)由單片機(jī)給出信號(hào)控制 NRF24L01模塊內(nèi)部射頻 電路工作與否4CSN模塊輸入信 號(hào)模塊的片選信號(hào),單片機(jī) 發(fā)出信號(hào)來控制允許向模 塊讀或?qū)憯?shù)據(jù)5SCK模塊輸入信 號(hào)串行時(shí)鐘信號(hào)。由單片機(jī) 發(fā)出,來控制模塊的讀或 寫的運(yùn)作節(jié)拍6MOS1模塊輸入信 號(hào)是單片機(jī)向NRF24L01發(fā) 送數(shù)據(jù)的接口7MISO模塊輸出信 號(hào)是NRF24L01模塊向單片 機(jī)送數(shù)據(jù)的接口8IRQ模塊輸出信 號(hào)是NRF24L0

9、1產(chǎn)生中斷信 號(hào)發(fā)送給單片機(jī)的接口登 002 .內(nèi)部結(jié)構(gòu)圖2-2NRF24L01無線收發(fā)芯片內(nèi)部結(jié)構(gòu)圖3 . NRF24L01無線模塊特點(diǎn):(l)GFSK 調(diào)制:硬件集成OSI鏈路層;具有自動(dòng)應(yīng)答和自動(dòng)再發(fā)射功能;片內(nèi)自動(dòng)生成報(bào)頭和CRC校驗(yàn)碼;數(shù)據(jù)傳輸率為IMb/s或2Mb/s;(6)SP1 速率為()Mb/s1() Mb/s;(7)125個(gè)頻道:(8)與其他nRF24系列射頻器件相兼容;4.GFSK調(diào)制本系統(tǒng)中的NRF24L01是具備GFSK調(diào)制的無線收發(fā)芯片。 GFSK高斯頻移鍵控調(diào)制是把輸入數(shù)據(jù)經(jīng)高斯低通濾波器預(yù)調(diào)制濾 波后,再進(jìn)行FSK調(diào)制的數(shù)字調(diào)制方式。它在保持恒定幅度的同時(shí), 能

10、夠通過改變高斯低通濾波器的3dB帶寬對已調(diào)信號(hào)的頻譜進(jìn)行控 制,具有恒幅包絡(luò)、功率譜集中、頻譜較窄等無線通信系統(tǒng)所希望 的特性。因此,GFSK調(diào)制解調(diào)技術(shù)被廣泛地應(yīng)用在移動(dòng)通信、航空 與航海通信等諸多領(lǐng)域中。2.1.2穩(wěn)壓部分由于NRF24L01的VCC腳接電壓范圍為3.3V3.6V之間,不能 在這個(gè)區(qū)間之外,超過3.6V將會(huì)燒毀模塊,因此選用3.3V電壓。該穩(wěn)壓部分電路如下圖所示:圖2-3穩(wěn)壓電路該穩(wěn)壓部分主要由LM317和外圍電路構(gòu)成。LM317作為輸出電 壓可變的集成三端穩(wěn)壓塊,是一種使用方便、應(yīng)用廣泛的集成穩(wěn)壓 塊。穩(wěn)壓電源的輸出電壓可用下式計(jì)算:Vo =1.25(1+R2/R1)(2

11、-1)因此選擇R1為20()歐姆,為了便于調(diào)試R2使用滑動(dòng)變阻器。 在應(yīng)用中,為了電路的穩(wěn)定工作,需要接二極管作為保護(hù)電路,防 止電路中的電容放電時(shí)的高壓把LM317燒壞。2.2單片機(jī)控制部分控制電路主要組成部分為單片機(jī)STC89C52RC ,通過 STC89C52RC與nRF9()5進(jìn)行串行通信,并用其控制NRF24L01的工 作模式和SPI輸入輸出,從而調(diào)整收發(fā)狀態(tài)。STC89C52RC還控制液 晶屏的顯示和按鍵等系統(tǒng)工作。2.2.1 STC89C52RC 功能介紹STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash存儲(chǔ)器。STC89c52使用經(jīng)典的M

12、CS-51內(nèi)核,但 做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯 片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89c52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有 以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash, 512字節(jié)RAM, 32位1/??诰€, 看門狗定時(shí)器,內(nèi)置4KBEEPROM, MAX810復(fù)位電路,3個(gè)16位 定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳 統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外STC89c52可 降至()Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式 下,CPU停止工作,允許RAM、定時(shí)器/

13、計(jì)數(shù)器、串口、中斷繼續(xù) 工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī) 一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率 35MHz, 6T/12T 可選。2.2.2 內(nèi)部結(jié)構(gòu)STC89c52RC單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù) 存儲(chǔ)器(RAM)、定時(shí)器/計(jì)數(shù)器、并行I/O 口、串行I/O 口和中斷系 統(tǒng)等幾大單元以及數(shù)據(jù)總線、地址總線和控制總線三大總線構(gòu)成。1pl.OVCCpl.lPO.Opl.2P0.1pl.3P0.2pl.4P0.3pl.5P0.4pl.6P0.5pl.7P0.6RST.'VPD_P0.7RXDP3.0eZTPTXDP3.1

14、ALEPROG INT0T3.2PSENINT1T3.3P2.7TOP3.4P2.6TLP3.5P2.5WRT3.6P2.4RFP3.7P2.3XTAL2P2.2XTAL1P2.1ONDP2.0403933s437536635J34S3393210311130122913281427152616251724IS23192021圖2-4 STC89C52RC芯片引腳圖(1)電源和晶振VCC:供電電壓。GND:接地。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。(2) I/O 口P0 口P0 口的字節(jié)地址為80H ,位地址為80H87H。P0 口既可以

15、作 為通用1/??谑褂?,也可以作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用。當(dāng) 作為輸出口使用時(shí),由于輸出電路是漏極開路,必須外接上拉電阻 才能有高電平輸出。Pl 口Pl 口的字節(jié)地址為90H ,位地址為90H97H。P1 口只能作為 通用1/??谑褂?。當(dāng)作為輸出口使用時(shí),已能對外提供推拉電流負(fù) 載,外電路無需再接上拉電阻;當(dāng)作為輸入口使用時(shí),應(yīng)先向其鎖 存器寫入“1”,使輸出驅(qū)動(dòng)電路的FET截止。P2 口P2 口的字節(jié)地址為OAOH ,位地址為OAOH0A7H。P2 口用于 為系統(tǒng)提供高位地址,但只作為地址線使用而不作為數(shù)據(jù)線使用。 此外,P2 口也可作為通用1/0 口使用。P3 口P3 口的字節(jié)地址為

16、0B0H,位地址為0B0H0B7H。P3 口可以 作為通用I/O 口使用,但在實(shí)際應(yīng)用中它的第二功能信號(hào)更為重要。 P3.0RXD (串行輸入口) P3.1TXD (串行輸出口) P3.2 /INTO (外部中斷0) P3.3 /INT1 (外部中斷1) P3.4 TO (計(jì)時(shí)器0外部輸入) P3.5T1 (計(jì)時(shí)器1外部輸入) P3.6/WR (外部數(shù)據(jù)存儲(chǔ)器寫選通) P3.7/RD (外部數(shù)據(jù)存儲(chǔ)器讀選通) (3) 4根控制線RST:復(fù)位信號(hào)。保持RST腳兩個(gè)機(jī)器周期以上的高電平,就可 以完成CPU系統(tǒng)復(fù)位操作,使系統(tǒng)的一些單元內(nèi)容回到規(guī)定值。/PSEN:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部R

17、OM時(shí),/PSEN 有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。/EA/VPP:訪問程序存儲(chǔ)器控制信號(hào)。當(dāng)/EA信號(hào)為低電平時(shí), 對ROM的讀操作限定在外部程序存儲(chǔ)器;而當(dāng)/EA為高電平時(shí), 則對ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延續(xù)至外部程序 存儲(chǔ)器。ALE/PROG:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控 制P0 口輸出的低8位地址送入鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和 數(shù)據(jù)的分時(shí)傳送。此外由于ALE是以六分之一晶振頻率的固定頻率 輸出的正脈沖,因此也可作為外部時(shí)鐘或外部定時(shí)脈沖使用。2.2.3串口通信通信主要有兩種方式:并行通信和串行通信。并行通信是在傳 送數(shù)據(jù)過程中每個(gè)字

18、節(jié)的各位同時(shí)進(jìn)行傳送的通信方式,而串行通 信口可是指每個(gè)字節(jié)的各位分別進(jìn)行傳送的通信方式。1串口通信方式STC89c52串行口可設(shè)置四種工作方式,可有8位、1()位和11 位幀格式。本系統(tǒng)中,STC89c52RC采用串行口工作于方式1,即每 幀10位的異步通信格式:1位起始位,8位數(shù)據(jù)位(低位在前),1 位停止位。當(dāng)SM()H, SM1:S時(shí),串行口選擇方式1 其幀格式為: 起始 DO DI D2 D3 D4 D5 D6 D7 停止圖2-5幀格式圖2串行通信控制寄存器(1)串行控制寄存器(SCON)SCON的地址為98H,用于選擇串行口的工作方式和指示串 行口的工作狀態(tài)。各位含義如下:SMO、

19、SM1:串行口工作方式選擇位。SM2:多機(jī)通信選擇位。REN:串行口允許接收位。1'時(shí)允許接收,()時(shí)禁止接收。T1:串行口發(fā)送中斷標(biāo)志位。在方式1中,于發(fā)送停止位之前, 由硬件置位。因此表示幀發(fā)送結(jié)束。RI:串行口接收中斷標(biāo)志位。在方式1中,當(dāng)接收到停止位時(shí), 該位由硬件置位。RI=1,表示幀接收結(jié)束。(2)串行數(shù)據(jù)緩沖器(SBU分串行數(shù)據(jù)緩沖器SBUF的地址為99 H,用來存放需發(fā)送和接收 的數(shù)據(jù),它由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)送緩沖器,另一個(gè) 是接收緩沖器,它們占用同一地址(99H)。當(dāng)執(zhí)行寫SBUF指令時(shí),數(shù)據(jù)寫入到串行口發(fā)送緩沖器中,讀SBUF就是讀串行口接收緩沖 器。(

20、3)電源控制寄存器(PCON)PCON的地址為87H,該寄存器的最高位(SMOD)是串行口 波特率的倍增位,當(dāng)SMOD=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位時(shí), SMOD=()o中斷允許寄存器(IE)在IE中,ES位為串行中斷允許控制位。ES=O時(shí)禁止串行中斷, ES=1時(shí)允許串行中斷。3數(shù)據(jù)發(fā)送與接收(1)數(shù)據(jù)發(fā)送在不發(fā)送數(shù)據(jù)時(shí),TXD端保持高電平。當(dāng)執(zhí)行寫SBUF的指令 時(shí),便啟動(dòng)一次發(fā)送過程;發(fā)送數(shù)據(jù)時(shí),先發(fā)送一個(gè)起始位,該位 通知接收端開始接收,也使發(fā)送和接收過程同步。接下來發(fā)送8位 數(shù)據(jù),先發(fā)送低位,最后發(fā)送的是高電平的停止位。數(shù)據(jù)接收REN=1, CPU允許串行口接收數(shù)據(jù),接收數(shù)據(jù)開始

21、于檢測到 RXD (P3.0)端發(fā)生一個(gè) T 到“()”的跳變。先接收起始位,然后 依次將采樣RXD端并將數(shù)據(jù)移入移位寄存器中。若滿足條件R1=O且SM2=0或接收到停止位,則將前8位數(shù)據(jù) 送入SBUF并置位RI;如果上述條件不滿足,則數(shù)據(jù)丟失。(3)波特率的設(shè)定串口方式1的波特率是可變的,由定時(shí)器T1的溢出率決定:jSMOD波特率= f_x定時(shí)器T1溢出率(2.2)其中,SMQD為PCON寄存器最高位的值。溢出率為溢出周期的倒數(shù),假定計(jì)數(shù)初值為X,則計(jì)數(shù)溢出周 期為(2.3)19溢出周期=-m(256-X)fosc其中,fosc為晶振頻率。則波特率計(jì)算公式為:2 波特率=-翻。 fosc 3

22、2-X12x(256-X)(2.4)由波特率算出計(jì)數(shù)初值,以便進(jìn)行定時(shí)器的初始化。初值X確 定如下:foscx2SMOD X = 256- 7,;384x波特率(2. 5)2.3顯示部分該部分由鎖存器74HC573與數(shù)碼管構(gòu)成,單片機(jī)通過兩片 74HC573分別對共陰極數(shù)碼進(jìn)行位選和段選。第三章軟件設(shè)計(jì)無線數(shù)據(jù)傳輸主要由無線數(shù)據(jù)收發(fā)器NRF24L01. STC89C52RC單片機(jī)、顯示器和按鍵組成,收發(fā)器與STC89c52RC間用串行口通 信。整個(gè)系統(tǒng)的各個(gè)部分都是服務(wù)于無線數(shù)據(jù)傳輸這個(gè)目的。所以, 在整個(gè)系統(tǒng)的軟件設(shè)計(jì)中,無線數(shù)據(jù)的傳輸是最為重要的。這里使 用C語言編寫單片機(jī)控制程序。3.1

23、 主程序流程圖當(dāng)單片機(jī)上電開始執(zhí)行之后,對液晶和單片機(jī)寄存器進(jìn)行初始 化,同時(shí)設(shè)置串口控制字及波特率,接著進(jìn)入鍵盤掃描程序和接收 程序。若有某個(gè)按鍵按下,則執(zhí)行相應(yīng)的鍵盤子程序;若單片機(jī)判 斷接收到數(shù)據(jù),則開始進(jìn)行CRC校驗(yàn),如果數(shù)據(jù)正確就通過液晶顯 示傳送的信息。主程序流程圖見圖3-1。3.2 數(shù)據(jù)收發(fā)子程序流程圖單片機(jī)STC89C52控制nRF2401的收發(fā)狀態(tài)、完成編解碼等工 作。nRF2401芯片“PWRUP”端接高電平,“FREQ”端接低電 平,分別表示系統(tǒng)在上電后始終處于“正常工作模式”和“工作頻 道為通道1"。單片機(jī)STC89c52控制nRF2401,使其一直為接收狀態(tài)

24、。當(dāng)按鍵4按下時(shí),STC89c52接收到輸入的低電平信號(hào),從腳送出高 電平至P1.0腳,使nRF24L01進(jìn)入發(fā)射狀態(tài)。數(shù)據(jù)收發(fā)子程序流程 圖見圖3-2o圖3-2數(shù)據(jù)收發(fā)子程序流程圖3.3 鍵盤子程序流程圖下圖為鍵盤子程序流程圖,此流程圖的含義是:當(dāng)有按鍵按下 時(shí),程序開始進(jìn)行判斷是哪個(gè)按鍵按下,判斷完畢后則轉(zhuǎn)向相應(yīng)的 鍵處理子程序,進(jìn)行字符的輸入或命令的處理,并通過按鍵4把要 發(fā)送的數(shù)據(jù)進(jìn)行CRC校驗(yàn)編碼,再把編碼后的數(shù)據(jù)發(fā)送出去。圖3-4鍵盤子程序流程圖第四章測試結(jié)果及分析4.1硬件電路測試本設(shè)計(jì)中將控制模塊和無線射頻模式分開設(shè)計(jì),控制模塊通過 一只單排7腳的接口控制射頻模塊,測試的步驟如

25、下:(1)將控制模塊和無線射頻模塊焊好,檢查確認(rèn)無虛焊、粘焊;(2)先對控制模塊上電進(jìn)行測試,主要是測試控制模塊的串口能否收 發(fā)數(shù)據(jù),測試方法是將控制模塊的串口與PC機(jī)的串口通過RS232 標(biāo)準(zhǔn)相連接,并將串口的程序?qū)懙絊TC89c52上,然后用串口測試軟 件測試,如果串口能收發(fā)數(shù)據(jù),便可開始對無線射頻模塊進(jìn)行測試; 將無線收發(fā)模塊與控制模塊連接起來,上電進(jìn)行測試,按照程序, 上電時(shí)處于接收狀態(tài),看是否與程序吻合;(4)確認(rèn)射頻模塊上電處于接收狀態(tài)后,可測試nRF24()l的第4管腳 是否為L1V左右,如果是,則說明VC。電感設(shè)計(jì)合理,否則要重 新設(shè)計(jì)PCB板,此外,nRF4()l在沒有數(shù)據(jù)接

26、收時(shí),仍會(huì)自動(dòng)從DOUT 發(fā)送隨機(jī)數(shù)據(jù),使用萬用表進(jìn)行測試時(shí),該引腳電壓應(yīng)為2.5V左右。 4.2系統(tǒng)測試4.2.1測試方法(1)首先讓電路正常工作,把接收器放在一定的位置,將發(fā)射器從遠(yuǎn) 處逐漸靠近接收器,可測到傳送的最遠(yuǎn)距離。 在距離接收器一定的距離時(shí),間隔一段時(shí)間就發(fā)送數(shù)據(jù)信息,可 測出接收器的接收靈敏度。(3)比較發(fā)射器和接收器的數(shù)據(jù)顯示是否相同,以測試傳輸數(shù)據(jù)的正 確性。422功能測試及分析由于無線通信環(huán)境的不確定性,各種環(huán)境下的傳輸效果是不盡 相同的,路徑損耗、建筑物影響、人體影響、外界干擾、多徑現(xiàn)象 和周圍環(huán)境的吸收等都會(huì)對傳輸?shù)木嚯x產(chǎn)生一定的影響,只能在一 個(gè)給定的條件下進(jìn)行測試

27、和評(píng)估。因此,分別選擇了不同的試驗(yàn)場 地來進(jìn)行實(shí)驗(yàn)。(1)當(dāng)建筑物很多的時(shí)候,數(shù)傳模塊兩端均離地面1.5m (2.0m)高時(shí), 能夠達(dá)到的最佳通信距離為510m;接收靈敏度為23秒;當(dāng)發(fā) 送端發(fā)送MESSAGE時(shí),接收端能準(zhǔn)確顯示MESSAGE這段英文字 符。(2)在空曠場地,數(shù)傳模塊兩端均離地面1.5m高時(shí),最遠(yuǎn)的通信距 離能夠達(dá)到50m;接收靈敏度為35秒;當(dāng)發(fā)送端發(fā)送字母A時(shí), 接收端能準(zhǔn)確顯示。但測試中的通信距離與數(shù)據(jù)手冊上的說明相差較大,原因可能 源于調(diào)諧天線。在實(shí)驗(yàn)中發(fā)現(xiàn),當(dāng)有人員走動(dòng)或其它信號(hào)出現(xiàn)的時(shí) 候,通信的距離會(huì)變得不穩(wěn)定,這是由于天線是一個(gè)輻射器件,任 何環(huán)境的改變都會(huì)影

28、響天線的性能。測試中還發(fā)現(xiàn),在現(xiàn)場即使沒有任何發(fā)送器,在nRF4()l的DQUT 引腳上也會(huì)觀察到微小的連續(xù)數(shù)字“噪聲”。后來通過研究發(fā)現(xiàn), 當(dāng)接收器打開時(shí),環(huán)境中的任何信號(hào)(數(shù)據(jù)或噪聲)都會(huì)被天線捕 捉到并被解調(diào)。這就是所看到的系統(tǒng)中沒有工作的發(fā)送器卻存在“噪 聲”的原因。通過對系統(tǒng)數(shù)據(jù)傳輸能力的測試,該系統(tǒng)發(fā)送和接收數(shù)據(jù)正確、 可靠,各元件工作正常。在硬件連接正確的基礎(chǔ)上,利用nRF24()l 進(jìn)行串行數(shù)據(jù)接收及發(fā)送,收到了較好效果。結(jié)論此次設(shè)計(jì)將應(yīng)用于無線通信領(lǐng)域,并且針對當(dāng)前市場上無線產(chǎn) 品的不足進(jìn)行了改進(jìn)。本文根據(jù)nRF2401的特點(diǎn),提出了一種將其 應(yīng)用無線數(shù)據(jù)收發(fā)系統(tǒng)的實(shí)現(xiàn)方案。

29、此方案采用了較完善的軟硬件 設(shè)計(jì)和抗干擾措施,保證了系統(tǒng)工作的安全性和可靠性,是一種較 好的設(shè)計(jì)思路,具有通用性,便于投入實(shí)際應(yīng)用。并且只要稍作改 動(dòng)就可以應(yīng)用到小區(qū)傳呼、工業(yè)數(shù)據(jù)采集、自動(dòng)讀表、警報(bào)和安全 系統(tǒng)、無線鍵盤、無線操縱桿、家庭自動(dòng)化、遙測和玩具等其他一 些短距離無線通信領(lǐng)域,實(shí)現(xiàn)無線數(shù)據(jù)的雙向傳輸,具有較好的市 場應(yīng)用價(jià)值。參考文獻(xiàn)1黃智偉.無線數(shù)字收發(fā)電路設(shè)計(jì),第2版,電子工業(yè)出版社,2004 年,253-269.2 WU Xunwei, HANG Guoqiang. Low power DC circuits employing AC power supply, SCIENC

30、E IN CHINA (INFORMATION SCIENCES), 2002, VoL45 No.3, 232.3苗長云,沈保鎖,竇晉江等.現(xiàn)代通信原理,第1版,電子工業(yè)出 版社,2005 年,174-177.4 Behrouz Forouzan. Introduction to Data Communications and Networking, First Edition, mechanic industry book concern, 1999, 121-125.5 Kaveh Pahlavan .Nordic nRF401 Product Specification , Nordi

31、c corporation, 2000, 36.6 Nigel Brooke.串行數(shù)據(jù)標(biāo)準(zhǔn)的選擇與使用,電子產(chǎn)品世界,2000 年,10 月,31-32.7 Richard G.lyons. Understanding Digital Signal Processing, Bradford University,2001, 36-37.8 Tugal. D. A, Tugal. 0. Data Transmission-analysis Design Applications, Florence, Italy, 2004, 32.9趙景波,劉金輝,榮盤祥等.Protcl DXP基礎(chǔ)與實(shí)例培訓(xùn)教

32、程, 第1版,中國電力出版社,2005年,119-144.10臧鐵鋼,唐才峰,陳學(xué)鋒等.PrctclDXP電路設(shè)計(jì)與應(yīng)用,第1 版,中國鐵道出版社,2004年,172-179.11劉立楓,趙民建.信號(hào)接收機(jī),中國無線電電子學(xué)文摘,2005年, 31 期,45-47.12周仕鳳.用MCS-51做LCD接口實(shí)驗(yàn),電子世界,20()2年,第8 期,37.13李廣第,朱月秀,王秀山等.單片機(jī)基礎(chǔ),第2版,北京航空航 天大學(xué)出版社,2001年,40-70.14楊振江,杜鐵軍,李群等.流行單片機(jī)實(shí)用子程序及應(yīng)用實(shí)例, 第1版,西安電子科技大學(xué)出版社,2002年,102-115.15張俊謨.MCS-51和8

33、0C51系列單片機(jī),電子世界,2001年,第8 期,30.16蔡瑩.液晶技術(shù)與電子紙,電子產(chǎn)品世界,2003年,11上半月, 38-40.17康華光,鄒壽彬.電子技術(shù)基礎(chǔ),第1版,高等教育出版社,2002 年,191-197.18黃智偉,王彥,陳文光等.全國大學(xué)生電子設(shè)計(jì)競賽訓(xùn)練教程, 第1版,電子工業(yè)出版社,2004年,73-80.致謝為期三周的課程設(shè)計(jì)已經(jīng)接近尾聲,這次課程設(shè)計(jì)不僅使我將所 學(xué)的知識(shí)都融合在一起,還給了我一次鍛煉動(dòng)手能力的機(jī)會(huì),并且 在指導(dǎo)教師的幫助下,使我的專業(yè)水平有了很大的提高。在課程設(shè)計(jì)即將結(jié)束之際,我要感謝我的指導(dǎo)教師張小林老師 以及陳光老師。他們不辭辛苦,經(jīng)常利用

34、自己的休息時(shí)間幫助我。 當(dāng)我有不明白的問題時(shí),老師們會(huì)耐心地給我講解,并在學(xué)習(xí)和科 研方面給了我大量的指導(dǎo),為我提供了良好的科研環(huán)境,不僅讓我 學(xué)到了知識(shí),掌握了科研的方法,也獲得了實(shí)踐鍛煉的機(jī)會(huì)。老師 們言傳身教、循循善誘,使我學(xué)到了作為一名大學(xué)生應(yīng)該具備的那 種踏實(shí)勤懇、一絲不茍、求真務(wù)實(shí)的優(yōu)良品質(zhì)和嚴(yán)謹(jǐn)?shù)慕虒W(xué)態(tài)度。 在本論文的撰寫過程中,老師從選題直至成稿一直給予我重要的指 導(dǎo)和幫助,為我解開了無數(shù)的困惑,提供了很多關(guān)鍵性的建議。在 課題的設(shè)計(jì)中,我對各種編程方法都有了更進(jìn)一步的了解,拓寬了 知識(shí)面,開闊了眼界,提高了對知識(shí)的綜合應(yīng)用能力,增強(qiáng)了學(xué)習(xí)知 識(shí)的興趣。在內(nèi)容的研究中,他們在技

35、術(shù)上給予了我極大的幫助, 并且在論文的最后評(píng)閱過程中,也給我提出了非常有價(jià)值的意見, 使我受益匪淺。在此祝愿老師們身體健康,全家幸福。最后,我要再一次感謝所有在此期間幫助過我的人,我衷心的祝 福你們!附錄1無線發(fā)射系統(tǒng)電路圖PI OTOP13 P14 P15PM Pl* mtP3D詢 P3t<D® 3空碎 P3>ni>R皿 P3S萼 P3-<« XT.Al: XTAll GNDve葉K :-AZC; W.llAUl; PJ:L皿 A “3 a&皿 as(m P3C<AE<;Pl “If P,"4; P2 S(A1S) P

36、lfllALI:附錄2發(fā)送程序W2冷冷冷七»Q_8U 22D3C-CRQQ 2#includc <reg52.h>#includc <intrins.h> typedef unsigned char uchar;typedef unsigned char uint;<1*l*1< 11"l*端口定義sbil MISO =P1A3;sbit MOS1 =P1A4;sbitSCK sbitCE sbitCSN sbitlRQ /=P1A2;二 Pl"=P3A2;=P3A3;*.Lz*J*"*T* vXz* T1 * T1,

37、i*T* T1sbitKEYl=P3A4;sbitKEY2=P3A5;sbitKEY3=P3A6;sbitKEY4=P3A7;sbit dula=P26;sbit wela=P2A7;/ / / /不不不不不不不不下不不不不不不不不不不不不不不不不不不不不不不不不不不不zyT/drd J, 、"T、"T、"T、1T1*管位選/sbit led3=P()A0;/sbit led2=P0Al;/sbit ledl=P0A2;/sbit led()=P()A3;/VX * j1*T1T1* 1* T1 1* 1* VZ '* .C1*T <T1T1&quo

38、t;|* * Tt*sbit BELL=P2A3;數(shù)碼管 ()-9 編碼uchar#define TX_ADR_W1DTH#define RX_ADR_W1DTH#define TX_PL()AD_W1DTH#define RX PLOAD WIDTH552020/ 5 uints TX address width / 5 uints RX address width / / 20 uints TX pay load / / 20 uints TX pay loaduintconst0x34,0x43,()x10,0x1 (),()x()1;uintconst0x34,0x43,0x10,0x

39、1 (),()x()1;TX_ADDRESS TX_ADR_W1DTH =本地地址RX_ADDRESS RX_ADR_W1DTH =接收地址f , J, J,,/ *T1*"T、*T*T1T1scg10 = ()x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,()x()7,0x7f,0x6f;HO9段碼/ /半林不衿料林亭林亭林料*松林亭林不林希本本本林本本不料不nk卜24L01 * *d J,d J,d J,T1T1"T、"T、T1 T,»/*nrf24L01 寄存 器指令d J, d J, d J,d J, d J, d J,d

40、J, d J,T1T1"T、"T、T1 1T1 "T、#define READ_REG#define WR1TE_REG#define RD_RX_PL()AD#definc WR_TX_PL()AD#define FLUSH_TX#define FLUSH_RX#define REUSE_TX_PL#define NOP0x0()0x200x61OxAOOxEl0xE20xE3OxFF/f f,/ *T1*"T、/讀寄存器指令寫寄存器指令/讀取接收數(shù)據(jù)指令/寫待發(fā)數(shù)據(jù)指令沖洗發(fā)送FIFO指令沖洗接收FIFO指令/定義重復(fù)裝載數(shù)據(jù)指令 保留*SPI(nR

41、F24L01)寄存 器地址* 1* T1T1<1T"T1*T*T*T*T"*T*T*#define CONFIG以及收發(fā)狀態(tài)響應(yīng)方式#define EN_AA#define EN_RXADDR#define SETUP_AW0x00 /配置收發(fā)狀態(tài),CRC校驗(yàn)?zāi)J?x01 /自動(dòng)應(yīng)答功能設(shè)置0x02 /可用信道設(shè)置0x03 /收發(fā)地址寬度設(shè)置#define SETUP_RETR#define RF_CH#define RF_SETUP#define STATUS#define ()BSERVE_TX#define CD#define RX_ADDR_P()#defin

42、e RX_ADDR_P1#define RX_ADDR_P2#define RX_ADDR_P3#define RX_ADDR_P4#define RX_ADDR_P5#define TX_ADDR#define RX_PW_P()#define RX_PW_P1#define RX_PW_P2#define RX_PW_P3#define RX_PW_P4#define RX_PW_P5#define F1F()_STATUS 置/0x04 /自動(dòng)重發(fā)功能設(shè)置0x05 /工作頻率設(shè)置0x06 /發(fā)射速率、功耗功能設(shè)置0x07 /狀態(tài)寄存器0x08 /發(fā)送監(jiān)測功能0x09 /地址檢測OxOA

43、/頻道0接收數(shù)據(jù)地址OxOB 頻道1接收數(shù)據(jù)地址OxOC /頻道2接收數(shù)據(jù)地址OxOD /頻道3接收數(shù)據(jù)地址OxOE /頻道4接收數(shù)據(jù)地址OxOF /頻道5接收數(shù)據(jù)地址0x1() /發(fā)送地址寄存器0x11 /接收頻道0接收數(shù)據(jù)長度 0x12 /接收頻道0接收數(shù)據(jù)長度 0x13 /接收頻道0接收數(shù)據(jù)長度 0x14 /接收頻道0接收數(shù)據(jù)長度 0x15 /接收頻道0接收數(shù)據(jù)長度0x16 /接收頻道()接收數(shù)據(jù)長度0x17 FIFO棧入棧出狀態(tài)寄存器設(shè)* T1* T1* T1* T1* T1* T1* T1* T1* T1* T1* T1*T1* 1*T1*void Dclay(unsigncd in

44、t s);void inerDclay_us(unsigned char n);void init_NRF24L01(void);uint SPI_RW(uint uchar);uchar SPl_Rcad(uchar reg);void SctRX_Mode(void);uint SPl_RW_Rcg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars); uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars); unsigned

45、 char nRF24L01_RxPacket(unsigned char* rx_buf); void nRF24L01_TxPackct(unsigned char * tx_buf);void display(uchar dip)P0=segdip;dula=l;dula=();P()=()xc();wela=l;wela=0;/void Dclay(unsigncd int s)unsigned int i;for(i=0; i<s; i+);for(i=0; i<s; i+);t t f 9"T、"1/T1"T、"T、T、T1T、T

46、1T1T1T1T1T、* l*"T、T1uint bdata sta; /狀態(tài)標(biāo)志sbitRX DR =staA6;sbitTX DS =staA5;sbitMAX RT =staA4;f/*t* T1T1T、"T、"T、T1T1 T1 "T、"T、"T、/*延時(shí)函數(shù)t、J,/T1T1T、"T、"T、T1T1T1"T、"T、"T、void inerDclay_us(unsigned char n)for(;n>0;n)/_nop_Q;*,*"*T1* T1* T1* T

47、1* |* T1/*NRF24L()1 初始化*1*,*"*T1*T1T1*T1void init_NRF24L01 (void)inerDelay_us(l 00);CE=0;/ chip enableCSN=1; / Spi disableSCK=0; / Spi clock line init highSPl_Write_BufOX7RlTE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_W1DTH); / 寫本地地址SPl_Write_BufOX7RlTE_REG + RX_ADDR_P(), RX_ADDRESS,RX_ADR_W1DTH); /寫接收

48、端地址SPl_RW_Reg(KrRlTE_REG + EN_AA, 0x01);/ 頻道()自動(dòng)ACK應(yīng)答允許SPl_RW_Reg(KrRlTE_REG + EN_RXADDR, 0x01); / 允許接 收地址只有頻道0,如果需要多頻道可以參考Pagc21SPl_RW_Reg(KrRlTE_REG + RF_CH, 0);/ 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPl_RW_Reg(KrRlTE_REG + RX_PW_P(), RX_PLOAD_W1DTH); 設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)SPl_RW_Reg(KrRlTE_REG + RF_SETUP, 0x07); 設(shè)置發(fā)

49、射速率為1MHZ,發(fā)射功率為最大值OdB *U*U* vz *U*J*J1*XvX *U*J*_* «,L*_*T/* 函數(shù):uint SPl_RW(uint uchar)/*功能:NRF24L01的SP1寫時(shí)序t/T1 T1"T、T1T、T*T* T1 "T、T1 "T、"T、"T、uint SPl_RW(uint uchar)uint bit ctr;fbr(bit_ctr=();bit_ctr<8;bit_ctr+ +) / output 8-bitMOS1 = (uchar & 0x80);MOSIuchar =

50、 (uchar << 1);SCK= 1;uchar | = MISO;SCK = 0;) return(uchar);/ / output,uchar MSB to/ shift next bit into MSB. / Set SCK high./ capture current MISO bit / .then set SCK low again/ return read uchar/* 函數(shù):uchar SPl_Read(uchar reg)/*功能:NRF24L01的SP1時(shí)序 f*_*/T1T,T1T、T*"T、T1T,T,T1T1uchar SPl_Rcad

51、(uchar reg)uchar re_val;CSN = 0;/ CSN low, initialize SP1communication.SPI_RW(reg);/ Select register to read from.re_val = SPI_RW(0); / .then read registerx7alueCSN = 1;/ CSN high, terminate SP1communicationreturn(reg_val);/ return register value«iz* T1* T1*T"* T1* T1* T1* T1* T1*/*功能:NRF24L01讀寫寄存器函數(shù)*-*«iz* T1* |* T1*T"* |*T*T1T1* T1T1* T1* T1* T1* T1*T1T1uint SPI_RW_Rcg(uchar reg, uchar value)uint status;CSN = 0;status = SPI_RW(reg);SPl_RW(value);CSN = 1;return(status);/ CSN low, init SP1 transaction / select register/ .and write value to it./ / CSN high again/ return

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論