摘 要: 為了滿足當前短距離無線通信的市場需求,,采用PIC16F726和nRF24L01芯片設計短距離無線傳輸系統(tǒng),給出了硬件設計方案和軟件設計流程,。測試結果表明,,系統(tǒng)實現(xiàn)了雙向通信,性能穩(wěn)定可靠,,實用性強,,性價比高,。
關鍵詞: 短距離無線傳輸,;PIC16F726;nRF24L01,;雙向通信
21世紀,,短距離無線通信技術備受矚目。短距離無線傳輸具有抗干擾能力強,、可靠性高,、安全性好、受地理條件限制少,、安裝靈活等優(yōu)點[1],,在電子通信、家電,、民用與軍工領域均擁有廣闊的市場,。特別是戶外應用場合,不宜采用有線數(shù)據(jù)傳輸方式,,無線通信則以無可比擬的優(yōu)勢占據(jù)先機,。本文依據(jù)商業(yè)市場發(fā)展需求,,研究和設計了一種基于PIC單片機和無線射頻收發(fā)芯片實現(xiàn)的小成本、低功耗,、對等通信且協(xié)議簡單的短距離無線傳輸系統(tǒng),。
1 系統(tǒng)設計
由于短距離無線傳輸對環(huán)境、安全性有較高的應用要求,,所以根據(jù)實際需求采用RF無線射頻收發(fā)一體芯片技術,。相對于目前主流的IEEE802.11x無線局域網(wǎng)技術、藍牙技術等短距離無線通信技術,,此技術具有通信距離遠,、功耗低、抗干擾能力更強,、自主開發(fā)程度高,、開發(fā)成本低、技術更成熟,、通信協(xié)議可自行定義,、靈活度極高等優(yōu)點[2]。結合系統(tǒng)的現(xiàn)實需要,,選用了由Nordic公司研制的nRF24L01無線射頻收發(fā)芯片負責無線數(shù)據(jù)傳輸,。
1.1 設計思路
系統(tǒng)設計主要以單片機為核心,控制無線通信模塊進行發(fā)射與接收,,實現(xiàn)短距離無線傳輸系統(tǒng)的雙向?qū)Φ韧ㄐ?。整個系統(tǒng)的功能模塊示意框圖如圖1所示。
系統(tǒng)采用模塊化設計思想,,發(fā)射機端與接收機端均由PIC單片機和nRF24L01芯片組成,。工作原理是:發(fā)射機端的PIC單片機在實時采集數(shù)據(jù)的同時,根據(jù)控制平臺的控制指令完成無線數(shù)據(jù)信號的發(fā)射,,接收機端的PIC單片機完成無線信道與嵌入式平臺之間的數(shù)據(jù)交換功能,,嵌入式應用平臺則是在接收到發(fā)射機信號的同時,通過接收機向發(fā)射機返回接收指令,。這種工作方式能增加系統(tǒng)的穩(wěn)定性,,實現(xiàn)短距離控制平臺對嵌入式平臺應用環(huán)境的無線控制。本設計主要針對如何實現(xiàn)PIC單片機與嵌入式應用平臺之間的無線數(shù)據(jù)傳輸,。
1.2 硬件設計
主要針對短距離無線傳輸系統(tǒng)的nRF24L01無線射頻收發(fā)模塊和PIC單片機控制器模塊的接口進行設計,。
1.2.1 nRF24L01無線射頻收發(fā)模塊
nRF24L01是工作在2.4 GHz世界通用ISM頻段免使用費的單片無線收發(fā)一體芯片,將射頻發(fā)射接收,、GFSK調(diào)制解調(diào),、增強型ShockBurst機制、125頻道、CRC校驗,、穩(wěn)壓電路,、SPI接口等集成到單芯片中[3]。nRF24L01相比其他公司研制的常用無線收發(fā)芯片(例如Chipcon的CC400,,RFMD的RF2915,,Bluechip的BCC48等),它可以直接接單片機串口使用,,數(shù)據(jù)無需曼徹斯特編碼,,可直接傳輸串口數(shù)據(jù),效率高,,發(fā)射電流消耗僅9.0 mA,,數(shù)據(jù)傳輸速率可達1或2 Mb/s,收發(fā)天線合一,。因此,,在目前較為流行的無線通信芯片中,無論是從使用的方便性,、傳輸速度還是輸出功率等各個方面考慮,,nRF24L01都是一種比較理想的選擇,其接口電路如圖2所示,。
nRF24L01是通過SPI接口與外部控制器交換數(shù)據(jù),,如果外部控制器沒有SPI接口,可以用I/O控制口模擬,。ANT1和ANT2輸出腳是給天線提供穩(wěn)定的RF輸出,。在輸出功率最大時(0 dBm),推薦使用負載阻抗15 ?贅+j88 ?贅,,這樣,,通過簡單的網(wǎng)絡匹配可以獲得較低的阻抗。XC1和XC2接入16 MHz晶振,,為了實現(xiàn)晶體振蕩器低功耗和快速啟動的目的,,建議使用容值較小的電容,,考慮成本因素通常用7.0 pF的電容,。
1.2.2 PIC單片機外圍接口電路設計
系統(tǒng)選用了自帶SPI接口的PIC16F726單片機,便于與nRF24L0l進行連接,。PIC16F726作為數(shù)據(jù)采集的控制器,,它是Microchip公司專門針對中國市場最新推出的低成本、8 bit閃存單片機,,具有高性能的RISC CPU,,內(nèi)含高精度內(nèi)部振蕩器,低功耗、節(jié)能休眠模式,,支持1.8~5.5 V的寬工作電壓范圍,,25個I/O控制口,11路AD通道,,帶有2個8 bit定時器(Time0,、Time2)和1個16 bit定時器增強型Time1[4]。PIC單片機主要完成數(shù)據(jù)的處理,,向nRF24L01模塊發(fā)送數(shù)據(jù)并且接收對應的接收機傳送過來的數(shù)據(jù),。nRF24L01模塊主要是將發(fā)射機端單片機的待傳數(shù)據(jù)通過射頻信號發(fā)送到接收機端的nRF24L01模塊,并能接收接收機端傳送過來的射頻信號,,實現(xiàn)雙向通信,。PIC單片機的外圍接口電路如圖3所示。
PIC16F726通過SPI接口控制nRF24L01,。nRF24L01的SCK引腳與單片機的RC0引腳相連,,即Timer1的時鐘作為SPI時鐘;nRF24L01的MOSI引腳與單片機的RC1引腳連接,,nRF24L01的MISO引腳與單片機的RC2引腳連接,,實現(xiàn)串行數(shù)據(jù)傳輸;nRF24L01的IRQ與單片機的RB0相連,,作為中斷控制,;nRF24L01的CSN引腳與RA4連接,即Timer0的時鐘作為SPI的片選信號,;nRF24L01的CE引腳與單片機的RA3相連,,無線通信模塊的工作模式由PWR-UP、PRIM-RX寄存器和CE決定(在后文的軟件實現(xiàn)部分中再做詳細描述),。
PIC16F726單片機采用5 V(VCC)電源供電,,內(nèi)含復位電路,16 MHz的晶振,,它決定了單片機的串口傳輸速率,。SPBRG寄存器決定自由運行的波特率定時器的周期,異步模式下,,波特率周期的倍頻值由TXSTA寄存器的BRGH位決定,,使用高波特率(BRGH=1)有助于降低波特率誤差。在系統(tǒng)中,,由軟件設置SPBRG寄存器的值為16,,SYNC=0且BRGH=1,則無線模塊和單片機的通信速率為57 600 b/s,,與實際波特率Fosc/[16(n+1)]的值58 800 b/s僅有2.12%的誤差,。單片機與上位機之間采用RS-232標準接口,,系統(tǒng)采用單電源電平轉(zhuǎn)換芯片MAX232連接單片機和控制中心。MAX232芯片是美信(MAXIM)公司專為EIA/TIA-232E以及V.28/V.24通信接口設計,,內(nèi)部有兩個電荷泵,,將5 V轉(zhuǎn)換為+10 V,為RS-232驅(qū)動器提供工作電壓,,所以,,系統(tǒng)只需要單一的5 V電源即可[5]。系統(tǒng)采用24LC01B型號EEPROM(電可擦可編程只讀存儲器)滿足系統(tǒng)即插即用,、多次修改參數(shù)的要求,。24LC01B采用I2C接口方式,輸入電壓范圍為2.5~5.5 V,,系統(tǒng)采用3.3 V電壓輸入,,400 kHz高頻時鐘,頁寫數(shù)據(jù)只需2 ms,,具有千萬次擦寫的壽命周期并能夠保留數(shù)據(jù)超過200年[6],。
2 軟件設計
軟件設計采用Microchip的MPLAB IDE作為本系統(tǒng)的編程開發(fā)工具。正確的設置工作模式對于使用無線射頻收發(fā)芯片至關重要,,對于nRF24L01而言,,它的工作模式設置主要包括發(fā)送、接收,、待機和掉電四個狀態(tài),,這是由PWR-UP、PRIM-RX,、CE三個引腳共同決定,。具體配置如表1所示。
短距離無線傳輸系統(tǒng)軟件設計主要包括發(fā)送數(shù)據(jù)和接收數(shù)據(jù)兩個部分,。在提高系統(tǒng)性能和保證通信效率的前提下,,依據(jù)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的特性,采用查詢和中斷兩種模式來分別完成數(shù)據(jù)的發(fā)送與接收,。系統(tǒng)的發(fā)送與接收程序流程圖如圖4所示,。
3 系統(tǒng)測試
將系統(tǒng)發(fā)射機和接收機端分別通過RS232與PC機連接,通過串口調(diào)試助手進行模擬測試,。經(jīng)過多組測試,,無誤碼情況,可實現(xiàn)兩者之間的可靠通信,。系統(tǒng)測試如圖5所示,。系統(tǒng)使用串口3進行發(fā)射機數(shù)據(jù)傳輸模擬,,使用串口4對接收機進行模擬,。兩串口進行通信,,其波特率、校驗位,、數(shù)據(jù)位與停止位需相互匹配,,均定為57 600波特率、無校驗位,、8位數(shù)據(jù)位與1位停止位,。通過串口對采集的數(shù)據(jù)“test dates:12 24 37……”等進行傳輸,從圖5測試的結果可以看出,,系統(tǒng)實現(xiàn)了兩者之間的無線雙向通信,。
結合高效、節(jié)能的政策,,本文利用IT相關技術,,系統(tǒng)達到了設計的任務要求,實現(xiàn)了短距離雙向無線傳輸功能,,可應用于各種嵌入式平臺,。本設計采用的是低價格、低功耗且易于開發(fā)的PIC16F726和nRF24L01芯片進行設計,,通用性強,,具有廣泛的市場基礎與較高的推廣價值。
參考文獻
[1] 戴佳,,戴衛(wèi)恒.51單片機C語言應用程序設計實例精講[M].北京:電子工業(yè)出版社,,2006.
[2] 宋海波.基于RF無線射頻芯片的通信技術在分布式網(wǎng)絡傳感器中的應用[D].吉林:吉林大學,2006.
[3] Nordic. nRF24L01 Product Specification[Z]. Nordic Corporation,, 2004.
[4] PIC16F72X/PIC16LF72X數(shù)據(jù)手冊[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.