亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于nRF24L01的無線數(shù)據(jù)傳輸系統(tǒng)

        2008-04-12 00:00:00王代華張志杰
        現(xiàn)代電子技術(shù) 2008年7期

        摘 要:介紹了一種利用無線數(shù)字傳輸芯片和單片機(jī)構(gòu)成的無線數(shù)據(jù)傳輸系統(tǒng),討論了系統(tǒng)的硬件電路設(shè)計和軟件編程,以及無線數(shù)字傳輸芯片在增強(qiáng)式突發(fā)傳遞模式下通過單片機(jī)的控制進(jìn)行無線數(shù)據(jù)傳輸?shù)脑?,設(shè)計了在增強(qiáng)式突發(fā)傳遞模式下可實現(xiàn)半雙工通信的通用電路,并討論了無線數(shù)字傳輸芯片初始配置和數(shù)據(jù)發(fā)送程序開發(fā)的關(guān)鍵技術(shù)。運(yùn)行表明,該系統(tǒng)控制方便、工作穩(wěn)定,能實現(xiàn)可靠的無線數(shù)據(jù)傳輸。

        關(guān)鍵詞:無線數(shù)據(jù)傳輸系統(tǒng);單片機(jī);nRF24L01芯片;SPI

        中圖分類號:TN919.72文獻(xiàn)標(biāo)識碼:B

        文章編號:1004-373X(2008)05-068-03

        Wireless Data Transmission System Based on nRF24L01

        JIA Qing,WANG Daihua,ZHANG Zhijie

        (Key Laboratory of Instrumentation Science Dynamic Measurement,North University of China,Taiyuan,030051,China)

        

        Abstract:This paper introduces a kind of wireless data transmission system implemented with a wireless digital transmission chip and a single chip microcomputer.The system hardware design and software design are discussed in detail,and the theory of wireless data transmission with wireless digital transmission chip under the enhanced ShockBurst mode is analyzed.The circuit is designed and the key features of programming for wireless digital transmission chip initial configuration and wireless data transmission are discussed.The running of system shows that it is easy to control and it works stably to perform reliable wireless data transmission.

        Keywords:data wireless transmission system;single chip microcomputer;nRF24L01;SPI

        1 nRF24L01芯片的介紹

        nRF24L01是單片射頻收發(fā)芯片,工作于2.4~2.5 GHz ISM頻段。工作電壓為1.9~3.6 V,有多達(dá)125個頻道可供選擇。可通過SPI寫入數(shù)據(jù),最高可達(dá)10 Mb/s,數(shù)據(jù)傳輸率最快可達(dá)2 Mb/s,并且有自動應(yīng)答和自動再發(fā)射功能。和上一代nRF2401相比,nRF2401數(shù)據(jù)傳輸率更快,數(shù)據(jù)寫入速度更高,內(nèi)嵌的功能更完備。

        芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融進(jìn)了增強(qiáng)式ShockBurst技術(shù),其中輸出功率和通信頻道可通過程序進(jìn)行配置。芯片能耗非常低,以-6 dBm 的功率發(fā)射時,工作電流只有9 mA,接收時工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計更方便。

        1.1 nRF24L01引腳介紹

        芯片引腳排列見圖1。

        各引腳具體功能如下:CE為發(fā)射和接收的使能端;CSN為SPI的使能端;SCK為SPI時鐘輸入;MOSI為SPI數(shù)據(jù)主輸從入端;MISO為SPI數(shù)據(jù)主入從輸端;IRQ為中斷輸出;VDD為電源端,接3 V直流電源;VSS為參考接地端;XC1,XC2為晶振端;VDD[CD#*2]PA給功率放大器供電1.8 V;ANT1,ANT2為天線接口端;IREF為參考電流端。

        圖1 nRF24L01引腳排列

        1.2 nRF24L01的指令結(jié)構(gòu)

        nRF24L01所有的配置字都由配置寄存器來定義,這些配置寄存器可通過SPI口訪問。

        1.2.1 SPI接口設(shè)置

        SPI接口由SCK,MOSI,MISO及CSN組成。

        (1) 在配置模式下單片機(jī)通過SPI接口配置nRF24L01的工作參數(shù)。

        (2) 在發(fā)射或接收模式下單片機(jī)SPI接口發(fā)送或接收數(shù)據(jù)。

        和SPI接口的指令共有8個,使用每個指令時必須使CSN變低,用完后將其變高。單片機(jī)的控制指令從nRF24L01的MOSI引腳輸入,而nRF24L01的狀態(tài)信息和數(shù)據(jù)信息是從其MISO引腳輸出并送給單片機(jī)的。利用SPI傳數(shù)時,他是先傳低位字節(jié),再傳高位字節(jié),并且在傳每個字節(jié)時是從高位字節(jié)傳起的。指令分別是:讀寄存器指令,格式是000AAAAA;寫寄存器指令,格式是001AAAAA(AAAAA代表寄存器在內(nèi)存中的地址;讀Payload指令;寫Payload指令;清發(fā)射堆棧指令;清接收堆棧指令;發(fā)射數(shù)據(jù)再利用;空操作。

        1.2.2 中斷

        當(dāng)nRF24L01的中斷源( TX[CD#*2]DS,RX[CD#*2]DR,MAX[CD#*2] RT)被置高時(TX[CD#*2]DS為發(fā)送成功標(biāo)志位,RX[CD#*2]DR為接收數(shù)據(jù)成功標(biāo)志位,MAX[CD#*2] RT為自動重發(fā)超上限標(biāo)志位),就會使IRQ引腳置低??梢韵驙顟B(tài)寄存器寫1來清這些中斷標(biāo)志位。通過設(shè)置CONFIG寄存器的某些位來屏蔽掉這些中斷源,默認(rèn)情況下,這三個中斷源都是允許的。

        1.2.3 內(nèi)存區(qū)

        下面介紹nRF24L01的內(nèi)存區(qū),一共24個寄存器,以下選取幾個重要的加以介紹。

        0號寄存器:第7位是保留位;第6位到第4位分別是TX[CD#*2]DS,RX[CD#*2]DR,MAX[CD#*2] RT屏蔽位,置高能屏蔽相應(yīng)的中斷源;第3位是CRC使能位;第2位是選擇CRC長度;第1位是PWR[CD#*2]UP位,高電平為使芯片上電;第0位是發(fā)射、接收選擇位,高電平是發(fā)射,低電平是接收。

        1號寄存器:第7和第6位是保留位,第5到第0位是使能通道5到通道0的自動應(yīng)答,高電平有效。

        2號寄存器:第7和第6位是保留位,第5到第0位是使能接收通道地址5到地址0,高電平有效。

        4號寄存器:第7位到第4位是設(shè)置自動重發(fā)的時間,第3位到第0位是設(shè)置自動重發(fā)的次數(shù)。

        7號寄存器是狀態(tài)寄存器,第7位是保留位,第6位是RX[CD#*2]DR位(1:接收堆棧中有了數(shù)據(jù)),第5位是TX[CD#*2]DS位(1:數(shù)據(jù)成功發(fā)送到接收方),第4位是MAX[CD#*2]RT位(1:達(dá)到重發(fā)射上限,產(chǎn)生超時中斷),第3到第1位是標(biāo)志哪個通道接收數(shù)據(jù),第0位是發(fā)射堆棧狀態(tài)位。

        1.3 nRF24L01的功能描述

        nRF24L01可以通過設(shè)置CE和狀態(tài)寄存器來選擇他的工作狀態(tài),如表1所示。

        配置為發(fā)射模式的nRF24L01將會利用增強(qiáng)式ShockBurst技術(shù)來發(fā)射數(shù)據(jù)包。發(fā)送設(shè)備在發(fā)完數(shù)據(jù)后將自動轉(zhuǎn)為接收狀態(tài)來等待接收方的應(yīng)答信號。若發(fā)送設(shè)備未接收到應(yīng)答信號,他將自動重發(fā)這包數(shù)據(jù)(自動重發(fā)開啟的情況下)直到接收這包數(shù)據(jù)或者重發(fā)次數(shù)超過了在寄存器SETUP[CD#*2]RETR[CD#*2]ARC設(shè)置的所允許的最大重發(fā)次數(shù)。如果是第二種情況,他將在STATUS寄存器里的MAX[CD#*2]RT位反映出來,并且給出中斷。

        表1 nRF24L01的工作模式

        當(dāng)nRF24L01收到應(yīng)答信號時,他將認(rèn)為該包數(shù)據(jù)成功發(fā)送到接收方,并把這包數(shù)據(jù)從發(fā)射堆棧中清除,同時IRQ變低,STATUS寄存器里的中斷標(biāo)志位TX[CD#*2]DS置高。

        用增強(qiáng)式ShockBurst技術(shù)來發(fā)射數(shù)據(jù)可以有以下好處:極大地降低了電流損耗;系統(tǒng)開銷低;極大地降低了數(shù)據(jù)在空氣中的碰撞率。

        2 系統(tǒng)設(shè)計

        2.1 硬件設(shè)計

        本系統(tǒng)采用的單片機(jī)是PIC16F877,將單片機(jī)的PORTC的0~5配置成通用I/O引腳,分別與nRF24L01的IRQ,CE,CSN,SCK,MOSI,MISO連接,控制nRF24L01的工作方式,采用單片機(jī)標(biāo)準(zhǔn)的SPI接口。系統(tǒng)上電時,PIC16F877首先對nRF24L01進(jìn)行寫配置寄存器操作,然后使nRF24L01進(jìn)入發(fā)射狀態(tài),將要發(fā)送的數(shù)據(jù)寫入nRF24L01,激活無線發(fā)射。然后檢測nRF24L01的IRQ引腳,由于關(guān)閉了自動重發(fā)射功能,因此如果引腳電平變低,即說明產(chǎn)生發(fā)送成功中斷,數(shù)據(jù)發(fā)送成功,然后從接收端讀出數(shù)據(jù)即可。

        圖2 硬件電路示意圖

        2.2 軟件設(shè)計

        程序流程圖如圖3所示。程序編程的基本思路是,系統(tǒng)上電首先配置nRF24L01的寄存器,本系統(tǒng)只對其中幾個寄存器進(jìn)行了重新配置,關(guān)閉自動重發(fā)射功能是想對發(fā)送失敗次數(shù)進(jìn)行統(tǒng)計,其他的均采用默認(rèn)值,如:通信速率2 Mb/s,輸出功率0 dBm等。

        圖3 程序流程圖

        nRF24L01寫配置子程序如下:

        BCFPORTC,2;CSN變低,開始SPI寫數(shù)

        NOP

        MOVLWH′20′ 

        MOVWFS[CD#*2]DATA

        CALL SEND

        B0MOVLWH′0A′;使能CRC,開啟POWER UP,選擇發(fā)射模式

        MOVWFS[CD#*2]DATA

        CALL SEND

        BSF PORTC,2;SPI寫數(shù)完成

        NOP

        BCFPORTC,2

        MOVLWH′21′ 

        MOVWFS[CD#*2]DATA

        CALLSEND 

        B1MOVLWH′01′ ;只開啟通道0的自動應(yīng)答功能

        MOVWFS[CD#*2]DATA

        CALLSEND

        BSFPORTC,2

        NOP

        BCF PORTC,2

        MOVLWH′22′ 

        MOVWFS[CD#*2]DATA

        CALL SEND 

        B2MOVLWH′01′;只使能接受通道地址0

        MOVWFS[CD#*2]DATA

        CALL SEND

        BSFPORTC,2

        NOP

        BCFPORTC,2

        MOVLWH′24′ 

        MOVWFS[CD#*2]DATA

        CALL SEND

        B4MOVLWH′00′;關(guān)閉自動重發(fā)射功能

        MOVWFS[CD#*2]DATA

        CALL SEND

        BSFPORTC,2

        NOP

        BCFPORTC,2

        MOVLWH′31′

        MOVWFS[CD#*2]DATA

        CALL SEND

        B17MOVLWH′20′;設(shè)置接受通道0的數(shù)據(jù)長度為16個字節(jié)

        MOVWFS[CD#*2]DATA

        CALL SEND

        BSFPORTC,2;CSN變高

        RETLW0

        nRF24L01發(fā)送子程序如下:

        BCFPORTC,2

        NOP

        MOVLWH′20′;寫配置寄存器

        MOVWFS[CD#*2]DATA

        CALL SEND

        MOVLWH′0A′;置PRIM[CD#*2]RX為低,置PWR[CD#*2]UP為高

        MOVWFS[CD#*2]DATA

        CALL SEND

        BSFPORTC,2

        CALL W[CD#*2]TX[CD#*2]PAY

        BSFPORTC,1

        CALL DLY10us

        CALL DLY10us

        BCFPORTC,1;開啟L01發(fā)射

        CALL DLY130us

        IRQ[CD#*2]JBTFSCPORTC,0;判斷IRQ

        GOTO IRQ[CD#*2]J

        BCF PORTC,2

        NOP 

        MOVLWH′07′

        MOVWFS[CD#*2]DATA

        CALL SEND

        MOVLWH′F1′

        MOVWFS[CD#*2]DATA

        CALL SEND1

        CALL READ

        BSFPORTC,2

        TX[CD#*2]1BTFSSR[CD#*2]DATA,5;判斷數(shù)據(jù)是否成功發(fā)送

        GOTO TX[CD#*2]3

        BCFPORTB,2

        BSFPORTB,1

        TX[CD#*2]2BCFPORTC,2;CSN變低

        NOP

        MOVLWH′27′;狀態(tài)寄存器恢復(fù)為默認(rèn)值

        MOVWFS[CD#*2]DATA

        CALL SEND

        MOVLWH′3E′

        MOVWFS[CD#*2]DATA

        CALL SEND

        BSFPORTC,2

        NOP

        RETLW0

        TX[CD#*2]3BCFPORTB,1;統(tǒng)計發(fā)送失敗的次數(shù)

        BSFPORTB,2

        INCF FAIL[CD#*2]NUM,1

        BTFSSSTATUS,Z

        GOTO TX[CD#*2]2

        INCF FAIL[CD#*2]N2,1

        GOTO TX[CD#*2]2

        W[CD#*2]TX[CD#*2]PAY;發(fā)送20個數(shù)

        BCFPORTC,2

        NOP

        MOVLWH′20′

        MOVWFTX[CD#*2]NUM

        MOVLWH′A0′

        MOVWFS[CD#*2]DATA

        CALL SEND 

        PAY[CD#*2]RE[KG*2/3]MOVLWH′55′

        MOVWFS[CD#*2]DATA

        CALL SEND

        DECFSZ TX[CD#*2]NUM,1

        GOTO PAY[CD#*2]RE

        NOP

        BSFPORTC,2

        RETLW0

        3 結(jié) 語

        本文介紹了利用PIC16F877和nRF24L01芯片設(shè)計的無線數(shù)據(jù)傳輸系統(tǒng),成本低,體積小,傳輸速率高,具有良好的通用性和可靠性,可供監(jiān)測和工業(yè)控制系統(tǒng)電路設(shè)計參考使用。

        參 考 文 獻(xiàn)

        [1]何信龍,李雪銀.PIC16F87X快速上手[M].北京:清華大學(xué)出版社,2002.

        [2]李學(xué)海.PIC單片機(jī)實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2004.

        [3]Nordic Semiconductor ASA.nRF24L01 product specification[R].2006.

        作者簡介 莢 慶 男,1981年出生,安徽巢湖人,碩士生。主要從事無線傳輸方向的研究。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。

        饥渴的熟妇张开腿呻吟视频| 精品国产中文久久久免费| 91九色人妻精品一区二区三区| 亚洲国产成人av在线观看| 国产亚洲精久久久久久无码| 亚洲中字幕永久在线观看| 亚洲综合久久精品少妇av| 久久精品国产亚洲av久| 7777精品伊人久久久大香线蕉| 亚洲欧美在线视频| 亚洲国产91精品一区二区| 国产爆乳美女娇喘呻吟| 天堂影院一区二区三区四区| 亚洲高清视频在线播放| 日本一区二区三区综合视频| 国产色欲av一区二区三区| 亚洲欧美日韩国产综合一区二区 | 国产成人免费一区二区三区| 国内精品女同一区二区三区| 狠狠色狠狠色综合网| 97久久精品午夜一区二区| 在线亚洲AV成人无码一区小说| 亚洲第一女优在线观看| 乱子轮熟睡1区| 亚洲国产综合精品 在线 一区| 九九久久精品大片| 国产精品熟女视频一区二区三区| 欧美亚洲国产一区二区三区| 国产另类综合区| 日本高清一区二区三区色| 无码av天天av天天爽| 色噜噜狠狠色综合成人网| 精品国产日韩无 影视| 日本一区二区三区四区高清不卡| 中文字幕丰满伦子无码| 久久av高潮av喷水av无码| 国产黄片一区二区三区| 蜜臀av色欲a片无码精品一区| 男女超爽视频免费播放| 国产精品成人久久一区二区| 精品天堂色吊丝一区二区|