目前,無線數(shù)據(jù)通信的應(yīng)用領(lǐng)域越來越多:遙控遙測,無線抄表,工業(yè)數(shù)據(jù)采集系統(tǒng),身份識別,非接觸AB智能卡,信息家電,無線語音圖像傳輸,無線鼠標(biāo)鍵盤等。凡是布線繁雜或不允許布線的場合都希望能通過無線方案來解決。大量射頻IC(集成電路)芯片的出現(xiàn)與應(yīng)用大大縮短了無線通信系統(tǒng)的開發(fā)周期,為此需要設(shè)計相應(yīng)的接口系統(tǒng),控制這些射頻芯片工作,完成可靠穩(wěn)定的無線數(shù)據(jù)通信。本文設(shè)計了+5V單片機(jī)AT89C52與nRF2401芯片的硬件接口電路,解決電平轉(zhuǎn)換的問題,實(shí)現(xiàn)了數(shù)據(jù)的雙向傳輸。
1.NRF2401芯片
nRF2401芯片工作于2.4GHz全球開放ISM頻段,125個頻道,滿足多點(diǎn)通信和跳頻通信需要,工作速率0~1Mb/s,最大發(fā)射功率0dBm,外圍元件極少,內(nèi)置硬件CRC(循環(huán)冗余校驗)和點(diǎn)對多點(diǎn)通信地址控制,集成了頻率合成器,晶體振蕩器和調(diào)制解調(diào)器。輸出功率、傳輸速率和頻道選擇可通過三線串行接口編程配置。
圖1 nRF2401芯片引腳圖
nRF2401芯片最突出的特點(diǎn)是有兩種通信模式:DirectMode(直接模式)和ShockBurstTMMode(突發(fā)模式)。直接模式的使用與其它傳統(tǒng)射頻收發(fā)器的工作一樣,需要通過軟件在發(fā)送端添加校驗碼和地址碼,在接收端判斷是否為本機(jī)地址并檢查數(shù)據(jù)是否傳輸正確。ShockBurstTMMode使用芯片內(nèi)部的先入先出堆棧區(qū),數(shù)據(jù)可從低速微控制器送入,高速(1Mb/s)發(fā)射出去,地址和校驗碼硬件自動添加和去除,這種模式的優(yōu)點(diǎn)是:
①可使用低速微控制器控制芯片工作;
②減小功耗;
③射頻信號高速發(fā)射,抗干擾性強(qiáng);
④減小整個系統(tǒng)的平均電流。
因此,使用nRF2401芯片特有的ShockBurstTMMode使得系統(tǒng)整體的性能和效率提高。
2.NRF2401收發(fā)器的工作原理
關(guān)于NRF24L01收發(fā)器,它使用2.4GHz頻段,可以在250kbps至2Mbps的波特率下運(yùn)行。如果在開放空間和較低的波特率下使用,其范圍可達(dá)100米。
圖2 NRF24L01收發(fā)器
該收發(fā)器模塊可以使用125個不同的通道,這使得在一個地方擁有一個由125個獨(dú)立工作的調(diào)制解調(diào)器組成的網(wǎng)絡(luò)成為可能。每個通道最多可以有6個地址,或者每個單元最多可以同時與6個其他單元通信。
圖3 NRF2401收發(fā)器工作原理圖
該收發(fā)器在傳輸過程中的功耗僅為12mA左右,甚至低于單個LED。模塊的工作電壓為1.9到3.6V,但好處是其他引腳可以承受5V邏輯,因此我們可以輕松地將其連接到Arduino,而無需使用任何邏輯電平轉(zhuǎn)換器。
圖4 NRF24L01收發(fā)器引腳連接圖
其中三個引腳用于SPI通信,它們需要連接到Arduino的SPI引腳,但是要注意,每個Arduino板都有不同的SPI引腳。引腳CSN和CE可以連接到Arduino板的任何數(shù)字引腳,它們用于將模塊設(shè)置為待機(jī)或活動模式,以及在傳輸或命令模式之間切換。最后一個引腳是一個不必使用的中斷引腳。
NRF24L01有多種變體,最受歡迎的是帶有板載天線的天線。這使得收發(fā)器更加緊湊,但另一方面,將傳輸范圍降低到大約100米的距離。
圖5 基于NRF24L01芯片的各種模塊
第二個變體,不是板載天線,它有一個SMA連接器,我們可以連接一個鴨子天線以獲得更好的傳輸范圍。圖4顯示的第三種變體,除了鴨形天線外,還有一個RFX2401C芯片,其中包括PA(功率放大器)和LNA(低噪聲放大器)。這會放大NRF24L01信號,并在開放空間中實(shí)現(xiàn)更遠(yuǎn)達(dá)1000米的傳輸范圍。
3.硬件電路設(shè)計
硬件電路連接實(shí)現(xiàn)單片機(jī)與nRF2401芯片的接口連接。發(fā)送端與接收端硬件連接幾乎一樣,具有通用性,可以實(shí)現(xiàn)半雙工通信。單片機(jī)使用的是MCS51系列的AT89C52,成本低,控制簡單,容易擴(kuò)展。硬件電路設(shè)計主要包括DC/DC電源供電電路設(shè)計、nRF2401芯片與+5V單片機(jī)的接口設(shè)計以及nRF2401芯片的外圍電路設(shè)計。電路圖如圖6所示。
圖6 單片機(jī)與nRF2401芯片的接口電路
由于nRF2401的供電電壓范圍為1.9~3.6V,而AT89C52單片機(jī)的供電電壓是5V,為了使芯片正常工作,需要進(jìn)行電平轉(zhuǎn)換和分壓處理。單電源供電時,采用MAX884芯片進(jìn)行5V-3.3V電平轉(zhuǎn)換。
+5V單片機(jī)I/O口與nRF2401芯片引腳的接口需要進(jìn)行分壓處理,單片機(jī)向nRF2401發(fā)送控制信號和配置信號時采用電阻分壓,nRF2401向單片機(jī)傳送數(shù)據(jù)或者發(fā)送數(shù)據(jù)狀態(tài)信號時采用74HC04反向器兩級反向,這樣就可以實(shí)現(xiàn)兩個芯片在電壓允許范圍內(nèi)的雙向通信。也可以使用專用的雙向電平轉(zhuǎn)換芯片。單片機(jī)通過PWM_UP,CE,CS三端設(shè)置nRF2401的工作模式,表1列出nRF2401的四種工作模式。配置模式時單片機(jī)通過CLK1和DATA端向nRF2401發(fā)送配置字,發(fā)送數(shù)據(jù)時通過CLK1和DATA端向nRF2401發(fā)送地址和數(shù)據(jù),接收數(shù)據(jù)時通過CLK1和DATA端從nRF2401讀取數(shù)據(jù),DR1是nRF2401通知單片機(jī)已經(jīng)接收到數(shù)據(jù)并且可以讀取的狀態(tài)信號。CLK2、DOUT和DR2端為通道二保留使用,nRF2401可以同時接收兩路信號。
nRF2401芯片以及其外圍元件電路組成了發(fā)送接收模塊。這部分重要的是PCB板的設(shè)計,使用兩層的PCB板,盡量多打一些通孔,使頂層和底層的地能夠充分接觸,空余部分大面積連續(xù)接地。電源濾波電容盡量靠近VDD引腳,注意調(diào)整電阻、電容和電感的位置。這樣能夠獲得好的射頻性能。
4.單片機(jī)對nRF2401芯片軟件控制
使用nRF2401芯片進(jìn)行無線數(shù)據(jù)通信時不需要進(jìn)行曼徹斯特編碼,編程和應(yīng)用非常方便。單片機(jī)對nRF2401芯片的控制包括在配置模式下對nRF2401的初始化配置、發(fā)送數(shù)據(jù)和接收存儲數(shù)據(jù)。配置字一共18byte,設(shè)定的具體參數(shù)見表2。發(fā)送端和接收端的配置必須匹配,只有配置字的最低位不同。數(shù)據(jù)包格式包括前綴、地址、有效數(shù)據(jù)和CRC。發(fā)送數(shù)據(jù)包時單片機(jī)只向nRF2401傳送地址和數(shù)據(jù),前綴和CRC會在nRF2401芯片內(nèi)部自動加進(jìn)去。接收數(shù)據(jù)包時,接收端檢測到本機(jī)地址的數(shù)據(jù)包,檢驗正確后會自動移去前綴、地址和CRC,將有效數(shù)據(jù)傳送給單片機(jī)。
5.調(diào)試
向單片機(jī)中載入程序,進(jìn)行軟硬件連調(diào)。單片機(jī)初始化nRF2401,寫入18byte的配置字,發(fā)送端的配置字為h8E08.1C50.5000.CCCC.CCCC.00CC.CCCC.CC83.6F04,接收端的配置字為h8EO8.1C50.5000.CCCC.CCCC.00CC.CCCC.CC83.6F05,設(shè)定發(fā)送端和接收端的地址長度為32bit,地址為0xCCCCCCCC,每次發(fā)送的數(shù)據(jù)長度為80bit(10byte),16bitCRC校驗使能,ShockBurstTM通信模式,發(fā)射功率0dBm,晶振頻率24MHz,工作頻道為2402MHz。軟件程序采用匯編語言完成,調(diào)試成功后,能夠?qū)崿F(xiàn)穩(wěn)定可靠的數(shù)據(jù)傳輸,測得的數(shù)據(jù)傳輸速率達(dá)到60kbit/s左右,主要是受到單片機(jī)讀取和寫入速度的限制,更換高速單片機(jī)如MSP430或者DSP可以提高傳輸速率,控制原理相同。
6.關(guān)于NRF2401的常見問題
6.1 NRF24L01和NRF24L01+有什么區(qū)別?
NRF24L01+是NRF24L01的新版本,能夠做的無線數(shù)據(jù)速率的額外的為250kbps,而且是沒有唯一的“+”擁有1Mbps的和2Mbps的。只要使用1或2MBps作為數(shù)據(jù)速率,這兩個版本就可以混合在一起。
6.2 如何編碼NRF24L01?
首先,將模塊上的VCC引腳連接到Arduino上的3.3V,將GND引腳接地。CSN和CE引腳可以連接到Arduino上的任何數(shù)字引腳。
6.3 NRF24L01是WIFI嗎?
不是,因為nRF24L01+和wifi上的PHY層不同。
6.4 NRF24L01可以傳輸視頻嗎?
可以。nerfnet通過nRF24L01#Radio#Video流式傳輸視頻。現(xiàn)在通過優(yōu)化,這些單元可以擁有高達(dá)300kbps的速率,足以傳輸H.264HEVC視頻。
6.5 NRF2401如何跟手機(jī)通信?
在Android設(shè)備上啟用藍(lán)牙。要查看原始數(shù)據(jù),請將Nordic的nRF主控制面板(可在GooglePlay上免費(fèi)獲得)安裝到您的Android設(shè)備上。運(yùn)行應(yīng)用程序并等待找到新的nRF24L01設(shè)備。不要點(diǎn)擊連接按鈕。
6.6 如何判斷NRF24L01是否在正常工作?
在Mega2560的IDE窗口打開SerialMonitor,可以看到每500ms打印一次接收到的數(shù)據(jù),即Rx=85,170,17。這說明NRF24L01模塊都工作了。
6.7 什么是NRF通信?
nRF24L01+收發(fā)器模塊在稱為信道的特定頻率上發(fā)送和接收數(shù)據(jù)。此外,為了使兩個或更多收發(fā)器模塊相互通信,它們需要在同一通道上。
結(jié)語
以上就是基于NRF2401芯片無線數(shù)據(jù)通信設(shè)計的介紹了。通過調(diào)試結(jié)果表明nRF2401芯片可以與微控制器連接實(shí)現(xiàn)無線數(shù)據(jù)通信,通信質(zhì)量可靠穩(wěn)定,傳輸速率也能適應(yīng)不同應(yīng)用領(lǐng)域;該設(shè)計可以嵌入各種無線傳輸系統(tǒng),成本低,功耗小,具有很好的通用性。
電話:18923864027(同微信)
QQ:709211280
〈烜芯微/XXW〉專業(yè)制造二極管,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產(chǎn)企業(yè)選用,專業(yè)的工程師幫您穩(wěn)定好每一批產(chǎn)品,如果您有遇到什么需要幫助解決的,可以直接聯(lián)系下方的聯(lián)系號碼或加QQ/微信,由我們的銷售經(jīng)理給您精準(zhǔn)的報價以及產(chǎn)品介紹