《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于PIC16F726和nRF24L01的短距離無(wú)線傳輸系統(tǒng)設(shè)計(jì)
基于PIC16F726和nRF24L01的短距離無(wú)線傳輸系統(tǒng)設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2012年第21期
張肖漢,,陳 以,李明偉
(桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004)
摘要: 為了滿足當(dāng)前短距離無(wú)線通信的市場(chǎng)需求,,采用PIC16F726和nRF24L01芯片設(shè)計(jì)短距離無(wú)線傳輸系統(tǒng),給出了硬件設(shè)計(jì)方案和軟件設(shè)計(jì)流程,。測(cè)試結(jié)果表明,,系統(tǒng)實(shí)現(xiàn)了雙向通信,性能穩(wěn)定可靠,,實(shí)用性強(qiáng),,性價(jià)比高。
Abstract:
Key words :

摘  要: 為了滿足當(dāng)前短距離無(wú)線通信的市場(chǎng)需求,,采用PIC16F726和nRF24L01芯片設(shè)計(jì)短距離無(wú)線傳輸系統(tǒng),,給出了硬件設(shè)計(jì)方案和軟件設(shè)計(jì)流程。測(cè)試結(jié)果表明,,系統(tǒng)實(shí)現(xiàn)了雙向通信,,性能穩(wěn)定可靠,實(shí)用性強(qiáng),,性價(jià)比高,。
關(guān)鍵詞: 短距離無(wú)線傳輸;PIC16F726,;nRF24L01,;雙向通信

 21世紀(jì),短距離無(wú)線通信技術(shù)備受矚目,。短距離無(wú)線傳輸具有抗干擾能力強(qiáng),、可靠性高、安全性好,、受地理?xiàng)l件限制少,、安裝靈活等優(yōu)點(diǎn)[1],在電子通信,、家電,、民用與軍工領(lǐng)域均擁有廣闊的市場(chǎng)。特別是戶外應(yīng)用場(chǎng)合,,不宜采用有線數(shù)據(jù)傳輸方式,,無(wú)線通信則以無(wú)可比擬的優(yōu)勢(shì)占據(jù)先機(jī)。本文依據(jù)商業(yè)市場(chǎng)發(fā)展需求,,研究和設(shè)計(jì)了一種基于PIC單片機(jī)和無(wú)線射頻收發(fā)芯片實(shí)現(xiàn)的小成本,、低功耗,、對(duì)等通信且協(xié)議簡(jiǎn)單的短距離無(wú)線傳輸系統(tǒng)。
1 系統(tǒng)設(shè)計(jì)
 由于短距離無(wú)線傳輸對(duì)環(huán)境,、安全性有較高的應(yīng)用要求,,所以根據(jù)實(shí)際需求采用RF無(wú)線射頻收發(fā)一體芯片技術(shù)。相對(duì)于目前主流的IEEE802.11x無(wú)線局域網(wǎng)技術(shù),、藍(lán)牙技術(shù)等短距離無(wú)線通信技術(shù),,此技術(shù)具有通信距離遠(yuǎn)、功耗低,、抗干擾能力更強(qiáng),、自主開發(fā)程度高、開發(fā)成本低,、技術(shù)更成熟,、通信協(xié)議可自行定義、靈活度極高等優(yōu)點(diǎn)[2],。結(jié)合系統(tǒng)的現(xiàn)實(shí)需要,,選用了由Nordic公司研制的nRF24L01無(wú)線射頻收發(fā)芯片負(fù)責(zé)無(wú)線數(shù)據(jù)傳輸。
1.1 設(shè)計(jì)思路
 系統(tǒng)設(shè)計(jì)主要以單片機(jī)為核心,,控制無(wú)線通信模塊進(jìn)行發(fā)射與接收,,實(shí)現(xiàn)短距離無(wú)線傳輸系統(tǒng)的雙向?qū)Φ韧ㄐ拧U麄€(gè)系統(tǒng)的功能模塊示意框圖如圖1所示,。

 系統(tǒng)采用模塊化設(shè)計(jì)思想,,發(fā)射機(jī)端與接收機(jī)端均由PIC單片機(jī)和nRF24L01芯片組成。工作原理是:發(fā)射機(jī)端的PIC單片機(jī)在實(shí)時(shí)采集數(shù)據(jù)的同時(shí),,根據(jù)控制平臺(tái)的控制指令完成無(wú)線數(shù)據(jù)信號(hào)的發(fā)射,,接收機(jī)端的PIC單片機(jī)完成無(wú)線信道與嵌入式平臺(tái)之間的數(shù)據(jù)交換功能,嵌入式應(yīng)用平臺(tái)則是在接收到發(fā)射機(jī)信號(hào)的同時(shí),,通過(guò)接收機(jī)向發(fā)射機(jī)返回接收指令,。這種工作方式能增加系統(tǒng)的穩(wěn)定性,實(shí)現(xiàn)短距離控制平臺(tái)對(duì)嵌入式平臺(tái)應(yīng)用環(huán)境的無(wú)線控制,。本設(shè)計(jì)主要針對(duì)如何實(shí)現(xiàn)PIC單片機(jī)與嵌入式應(yīng)用平臺(tái)之間的無(wú)線數(shù)據(jù)傳輸,。
1.2 硬件設(shè)計(jì)
 主要針對(duì)短距離無(wú)線傳輸系統(tǒng)的nRF24L01無(wú)線射頻收發(fā)模塊和PIC單片機(jī)控制器模塊的接口進(jìn)行設(shè)計(jì)。
1.2.1 nRF24L01無(wú)線射頻收發(fā)模塊
 nRF24L01是工作在2.4 GHz世界通用ISM頻段免使用費(fèi)的單片無(wú)線收發(fā)一體芯片,,將射頻發(fā)射接收,、GFSK調(diào)制解調(diào)、增強(qiáng)型ShockBurst機(jī)制,、125頻道,、CRC校驗(yàn)、穩(wěn)壓電路,、SPI接口等集成到單芯片中[3],。nRF24L01相比其他公司研制的常用無(wú)線收發(fā)芯片(例如Chipcon的CC400,,RFMD的RF2915,Bluechip的BCC48等),,它可以直接接單片機(jī)串口使用,,數(shù)據(jù)無(wú)需曼徹斯特編碼,可直接傳輸串口數(shù)據(jù),,效率高,,發(fā)射電流消耗僅9.0 mA,數(shù)據(jù)傳輸速率可達(dá)1或2 Mb/s,,收發(fā)天線合一,。因此,,在目前較為流行的無(wú)線通信芯片中,,無(wú)論是從使用的方便性、傳輸速度還是輸出功率等各個(gè)方面考慮,,nRF24L01都是一種比較理想的選擇,,其接口電路如圖2所示。

 nRF24L01是通過(guò)SPI接口與外部控制器交換數(shù)據(jù),,如果外部控制器沒有SPI接口,,可以用I/O控制口模擬。ANT1和ANT2輸出腳是給天線提供穩(wěn)定的RF輸出,。在輸出功率最大時(shí)(0 dBm),,推薦使用負(fù)載阻抗15 ?贅+j88 ?贅,這樣,,通過(guò)簡(jiǎn)單的網(wǎng)絡(luò)匹配可以獲得較低的阻抗,。XC1和XC2接入16 MHz晶振,為了實(shí)現(xiàn)晶體振蕩器低功耗和快速啟動(dòng)的目的,,建議使用容值較小的電容,,考慮成本因素通常用7.0 pF的電容。
1.2.2 PIC單片機(jī)外圍接口電路設(shè)計(jì)
 系統(tǒng)選用了自帶SPI接口的PIC16F726單片機(jī),,便于與nRF24L0l進(jìn)行連接,。PIC16F726作為數(shù)據(jù)采集的控制器,它是Microchip公司專門針對(duì)中國(guó)市場(chǎng)最新推出的低成本,、8 bit閃存單片機(jī),,具有高性能的RISC CPU,內(nèi)含高精度內(nèi)部振蕩器,,低功耗,、節(jié)能休眠模式,支持1.8~5.5 V的寬工作電壓范圍,,25個(gè)I/O控制口,,11路AD通道,,帶有2個(gè)8 bit定時(shí)器(Time0、Time2)和1個(gè)16 bit定時(shí)器增強(qiáng)型Time1[4],。PIC單片機(jī)主要完成數(shù)據(jù)的處理,,向nRF24L01模塊發(fā)送數(shù)據(jù)并且接收對(duì)應(yīng)的接收機(jī)傳送過(guò)來(lái)的數(shù)據(jù)。nRF24L01模塊主要是將發(fā)射機(jī)端單片機(jī)的待傳數(shù)據(jù)通過(guò)射頻信號(hào)發(fā)送到接收機(jī)端的nRF24L01模塊,,并能接收接收機(jī)端傳送過(guò)來(lái)的射頻信號(hào),,實(shí)現(xiàn)雙向通信。PIC單片機(jī)的外圍接口電路如圖3所示,。

 PIC16F726通過(guò)SPI接口控制nRF24L01,。nRF24L01的SCK引腳與單片機(jī)的RC0引腳相連,即Timer1的時(shí)鐘作為SPI時(shí)鐘,;nRF24L01的MOSI引腳與單片機(jī)的RC1引腳連接,,nRF24L01的MISO引腳與單片機(jī)的RC2引腳連接,實(shí)現(xiàn)串行數(shù)據(jù)傳輸,;nRF24L01的IRQ與單片機(jī)的RB0相連,,作為中斷控制;nRF24L01的CSN引腳與RA4連接,,即Timer0的時(shí)鐘作為SPI的片選信號(hào),;nRF24L01的CE引腳與單片機(jī)的RA3相連,無(wú)線通信模塊的工作模式由PWR-UP,、PRIM-RX寄存器和CE決定(在后文的軟件實(shí)現(xiàn)部分中再做詳細(xì)描述),。
 PIC16F726單片機(jī)采用5 V(VCC)電源供電,內(nèi)含復(fù)位電路,,16 MHz的晶振,,它決定了單片機(jī)的串口傳輸速率。SPBRG寄存器決定自由運(yùn)行的波特率定時(shí)器的周期,,異步模式下,,波特率周期的倍頻值由TXSTA寄存器的BRGH位決定,使用高波特率(BRGH=1)有助于降低波特率誤差,。在系統(tǒng)中,,由軟件設(shè)置SPBRG寄存器的值為16,SYNC=0且BRGH=1,,則無(wú)線模塊和單片機(jī)的通信速率為57 600 b/s,,與實(shí)際波特率Fosc/[16(n+1)]的值58 800 b/s僅有2.12%的誤差。單片機(jī)與上位機(jī)之間采用RS-232標(biāo)準(zhǔn)接口,,系統(tǒng)采用單電源電平轉(zhuǎn)換芯片MAX232連接單片機(jī)和控制中心,。MAX232芯片是美信(MAXIM)公司專為EIA/TIA-232E以及V.28/V.24通信接口設(shè)計(jì),內(nèi)部有兩個(gè)電荷泵,將5 V轉(zhuǎn)換為+10 V,,為RS-232驅(qū)動(dòng)器提供工作電壓,,所以,系統(tǒng)只需要單一的5 V電源即可[5],。系統(tǒng)采用24LC01B型號(hào)EEPROM(電可擦可編程只讀存儲(chǔ)器)滿足系統(tǒng)即插即用,、多次修改參數(shù)的要求。24LC01B采用I2C接口方式,,輸入電壓范圍為2.5~5.5 V,,系統(tǒng)采用3.3 V電壓輸入,400 kHz高頻時(shí)鐘,,頁(yè)寫數(shù)據(jù)只需2 ms,,具有千萬(wàn)次擦寫的壽命周期并能夠保留數(shù)據(jù)超過(guò)200年[6]。
2 軟件設(shè)計(jì)
 軟件設(shè)計(jì)采用Microchip的MPLAB IDE作為本系統(tǒng)的編程開發(fā)工具,。正確的設(shè)置工作模式對(duì)于使用無(wú)線射頻收發(fā)芯片至關(guān)重要,,對(duì)于nRF24L01而言,它的工作模式設(shè)置主要包括發(fā)送,、接收,、待機(jī)和掉電四個(gè)狀態(tài),,這是由PWR-UP,、PRIM-RX、CE三個(gè)引腳共同決定,。具體配置如表1所示,。

 短距離無(wú)線傳輸系統(tǒng)軟件設(shè)計(jì)主要包括發(fā)送數(shù)據(jù)和接收數(shù)據(jù)兩個(gè)部分。在提高系統(tǒng)性能和保證通信效率的前提下,,依據(jù)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的特性,,采用查詢和中斷兩種模式來(lái)分別完成數(shù)據(jù)的發(fā)送與接收。系統(tǒng)的發(fā)送與接收程序流程圖如圖4所示,。

 

 

3 系統(tǒng)測(cè)試
 將系統(tǒng)發(fā)射機(jī)和接收機(jī)端分別通過(guò)RS232與PC機(jī)連接,,通過(guò)串口調(diào)試助手進(jìn)行模擬測(cè)試。經(jīng)過(guò)多組測(cè)試,,無(wú)誤碼情況,,可實(shí)現(xiàn)兩者之間的可靠通信。系統(tǒng)測(cè)試如圖5所示,。系統(tǒng)使用串口3進(jìn)行發(fā)射機(jī)數(shù)據(jù)傳輸模擬,,使用串口4對(duì)接收機(jī)進(jìn)行模擬。兩串口進(jìn)行通信,,其波特率,、校驗(yàn)位、數(shù)據(jù)位與停止位需相互匹配,均定為57 600波特率,、無(wú)校驗(yàn)位,、8位數(shù)據(jù)位與1位停止位。通過(guò)串口對(duì)采集的數(shù)據(jù)“test dates:12 24 37……”等進(jìn)行傳輸,,從圖5測(cè)試的結(jié)果可以看出,,系統(tǒng)實(shí)現(xiàn)了兩者之間的無(wú)線雙向通信。

 結(jié)合高效,、節(jié)能的政策,,本文利用IT相關(guān)技術(shù),系統(tǒng)達(dá)到了設(shè)計(jì)的任務(wù)要求,,實(shí)現(xiàn)了短距離雙向無(wú)線傳輸功能,,可應(yīng)用于各種嵌入式平臺(tái)。本設(shè)計(jì)采用的是低價(jià)格,、低功耗且易于開發(fā)的PIC16F726和nRF24L01芯片進(jìn)行設(shè)計(jì),,通用性強(qiáng),具有廣泛的市場(chǎng)基礎(chǔ)與較高的推廣價(jià)值,。
參考文獻(xiàn)
[1] 戴佳,,戴衛(wèi)恒.51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2006.
[2] 宋海波.基于RF無(wú)線射頻芯片的通信技術(shù)在分布式網(wǎng)絡(luò)傳感器中的應(yīng)用[D].吉林:吉林大學(xué),,2006.
[3] Nordic. nRF24L01 Product Specification[Z]. Nordic Corporation,, 2004.
[4] PIC16F72X/PIC16LF72X數(shù)據(jù)手冊(cè)[Z]. Microchip Technology Inc.2009.
[5] MAX232 中文資料[Z]. [2012-06-01] http://wenku.
baidu.com/view/65bf19a1284ac850ad02427d.html.
[6] 24LC01B DateSheet[Z]. [2012-06-01] http://wenku.
baidu.com/view/7228502ded630b1c59eeb5c1.html.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。