色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于nRF24L01的無線數據傳輸系統(tǒng)

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

          作者:莢 慶,王代華,張志杰 時間:2008-06-26 來源:現代電子技術 收藏

            1 nRF24L01的介紹

          本文引用地址:http://cafeforensic.com/article/84847.htm

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

            內置、、等功能模塊,并融進了增強式ShockBurst技術,其中輸出功率和通信頻道可通過程序進行配置。芯片能耗非常低,以-6 dBm的功率發(fā)射時,工作電流只有9 mA,接收時工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便。

            1.1 nRF24L01引腳介紹

            芯片引腳排列見圖1。

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

            1.2 nRF24L01的指令結構

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

            1.2.1 SPI接口設置

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

            (1)在配置模式下單片機通過SPI接口配置nRF24L01的工作參數。
            (2)在發(fā)射或接收模式下單片機SPI接口發(fā)送或接收數據。

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

            1.2.2 中斷
           
            當nRF24L01的中斷源(TX_DS,RX_DR,MAX_RT)被置高時(TX_DS為發(fā)送成功標志位,RX_DR為接收數據成功標志位,MAX_RT為自動重發(fā)超上限標志位),就會使IRQ引腳置低??梢韵驙顟B(tài)寄存器寫1來清這些中斷標志位。通過設置CONFIG寄存器的某些位來屏蔽掉這些中斷源,默認情況下,這三個中斷源都是允許的。

            1.2.3 內存區(qū)

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

            0號寄存器:第7位是保留位;第6位到第4位分別是TX_DS,RX_DR,MAX_RT屏蔽位,置高能屏蔽相應的中斷源;第3位是CRC使能位;第2位是選擇CRC長度;第1位是PWR_UP位,高電平為使芯片上電;第0位是發(fā)射、接收選擇位,高電平是發(fā)射,低電平是接收。

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

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

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

            7號寄存器是狀態(tài)寄存器,第7位是保留位,第6位是RX_DR位(1:接收堆棧中有了數據),第5位是TX_DS位(1:數據成功發(fā)送到接收方),第4位是MAX_RT位(1:達到重發(fā)射上限,產生超時中斷),第3到第1位是標志哪個通道接收數據,第0位是發(fā)射堆棧狀態(tài)位。

            1.3 nRF24L01的功能描述

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

            配置為發(fā)射模式的nRF24L01將會利用增強式ShockBurst技術來發(fā)射數據包。發(fā)送設備在發(fā)完數據后將自動轉為接收狀態(tài)來等待接收方的應答信號。若發(fā)送設備未接收到應答信號,他將自動重發(fā)這包數據(自動重發(fā)開啟的情況下)直到接收這包數據或者重發(fā)次數超過了在寄存器SETUP_RETR_ARC設置的所允許的最大重發(fā)次數。如果是第二種情況,他將在STATUS寄存器里的MAX_RT位反映出來,并且給出中斷。

            當nRF24L01收到應答信號時,他將認為該包數據成功發(fā)送到接收方,并把這包數據從發(fā)射堆棧中清除,同時IRQ變低,STATUS寄存器里的中斷標志位TX_DS置高。

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

            2 系統(tǒng)設計

            2.1 硬件設計

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

            2.2軟件設計

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

            nRF24L01寫配置子程序如下:



            3 結 語

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



          評論


          相關推薦

          技術專區(qū)

          關閉