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