主要特點
GFSK調製:
硬體集成OSI鏈路層;
具有自動應答和自動再發射功能;
片內自動生成報頭和CRC校驗碼;
數據傳輸率為l Mb/s或2Mb/s;
SPI速率為0 Mb/s~10 Mb/s;
125個頻道:與其他nRF24系列射頻器件相兼容;QFN20引腳4 mm×4 mm封裝;
供電電壓為1.9 V~3.6 V。
傳輸距離<5m
引腳功能
nRF24L01的封裝及引腳排列如圖1、2所示。各引腳功能如下:
CE:使能發射或接收;
CSN,SCK,MOSI,MISO:SPI引腳端,
微處理器可通過此引腳配置nRF24L01:
IRQ:中斷標誌位;
VDD:電源輸入端;
VDD_PA:為功率放大器供電,輸出為1.8 V;
ANT1,ANT2:天線接口;
IREF:參考電流輸入。
引腳 | 名稱 | 引腳功能 | 描述 |
1 | CE | 數字輸入 | RX或TX模式選擇 |
2 | CSN | 數字輸入 | SPI片選信號 |
3 | SCK | 數字輸入 | SPI時鐘 |
4 | MOSI | 數字輸入 | 從SPI數據輸入腳 |
5 | MISO | 數字輸出 | 從SPI數據輸出腳 |
6 | IRQ | 數字輸出 | 可禁止中斷腳 |
7 | VDD | 電源 | 電源(+3V) |
8 | VSS | 電源 | 接地(0V) |
9 | XC2 | 模擬輸出 | 晶體振盪器2腳 |
10 | XC1 | 模擬輸入 | 晶體振盪器1腳/外部時鐘輸入腳 |
11 | VDD-PA | 電源輸出 | 給RF的功率放大器提供的+1.8V電源 |
12 | ANT1 | 天線 | 天線接口1 |
13 | ANT2 | 天線 | 天線接口2 |
14 | VSS | 電源 | 接地(0V) |
15 | VDD | 電源 | 電源(+3V) |
16 | IREP | 模擬輸入 | 參考電流 |
17 | VSS | 電源 | 接地(0V) |
18 | VDD | 電源 | 電源(+3V) |
19 | DVDD | 電源輸出 | 去耦電路電源正極端 |
20 | VSS | 電源 | 接地(0V) |
工作模式
通過配置暫存器可將nRF24L01配置為發射、接收、空閒及掉電四種工作模式,如表1所示。
模式 | PWR_UP | PRIM_RX | CE | FIFO暫存器狀態 |
接收模式 | 1 | 1 | 1 | - |
發射模式 | 1 | 0 | 1 | 數據在TX FIFO 暫存器中 |
發射模式 | 1 | 0 | 1→0 | 停留在傳送模式,直至數據傳送完 |
待機模式2 | 1 | 0 | 1 | TX FIFO 為空 |
待機模式1 | 1 | - | 0 | 無數據傳輸 |
掉電 | 0 | - | - | - |
表 (1)
待機模式1主要用於降低電流損耗,在該模式下晶體振盪器仍然是工作的;
待機模式2則是在當FIFO暫存器為空且CE=1時進入此模式;
待機模式下,所有配置字仍然保留。
在掉電模式下電流損耗最小,同時nRF24L01也不工作,但其所有配置
暫存器的值仍然保留。
工作原理
發射數據時,首先將nRF24L01配置為發射模式:接著把接收
節點地址TX_ADDR和有效數據TX_PLD按照時序由SPI口寫入nRF24L01快取區,TX_PLD必須在CSN為低時連續寫入,而TX_ADDR在發射時寫入一次即可,然後CE置為高電平並保持至少10μs,延遲130μs後發射數據;若自動應答開啟,那么nRF24L01在發射數據後立即進入接收模式,接收應答信號(自動應答接收地址應該與接收節點地址TX_ADDR一致)。如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應答,則自動重新發射該數據(自動重發已開啟),若重發次數(ARC)達到上限,MAX_RT置高,TX FIFO中數據保留以便再次重發;MAX_RT或TX_DS置高時,使IRQ變低,產生中斷,通知MCU。最後發射成功時,若CE為低則nRF24L01進入空閒模式1;若傳送堆疊中有數據且CE為高,則進入下一次發射;若傳送堆疊中無數據且CE為高,則進入空閒模式2。
接收數據時,首先將nRF24L01配置為接收模式,接著延遲130μs進入接收狀態等待數據的到來。當接收方檢測到有效的地址和CRC時,就將
數據包存儲在RX FIFO中,同時中斷標誌位RX_DR置高,IRQ變低,產生中斷,通知MCU去取數據。若此時自動應答開啟,接收方則同時進入發射狀態回傳應答信號。最後接收成功時,若CE變低,則nRF24L01進入空閒模式1。
配置字
SPI口為
同步串列通信接口,最大傳輸速率為10 Mb/s,傳輸時先傳送低位
位元組,再傳送高位位元組。但針對單個位元組而言,要先送高位再送低位。與SPI相關的指令共有8個,使用時這些控制指令由nRF24L01的MOSI輸入。相應的狀態和數據信息是從MISO輸出給MCU。
nRF24L0l所有的配置字都由配置
暫存器定義,這些配置暫存器可通過SPI口訪問。nRF24L01
的配置暫存器共有25個,常用的配置暫存器如表2所示。
地址(H) | 暫存器名稱 | 功能 |
00 | CONFIG | 設定24L01工作模式 |
01 | EN_AA | 設定接收通道及自動應答 |
02 | EN_RXADDR | 使能接收通道地址 |
03 | SETUP_AW | 設定地址寬度 |
04 | SETUP_RETR | 設定自動重發數據時間和次數 |
07 | STATUS | 狀態暫存器,用來判定工作狀態 |
0A~0F | RX_ADDR_P0~P5 | 設定接收通道地址 |
10 | TX_ADDR | 設定傳送地址(先寫低位元組) |
11~16 | RX_PW_P0~P5 | 設定接收通道的有效數據寬度 |
表 (2)
6 nRF24L01套用原理框圖
圖(2)
跳頻功能
由於2.4G頻段沒有使用授許可權制,家用電器、手機、
無線網路都集中在此頻段,干擾問題難以避免。如何避開在家庭市場中易與其它無線傳輸間(Bluetooth、HomeRF)發生干擾成了首要解決的問題。
跳頻技術(Frequency-Hopping Spread Spectrum; FHSS)是在2.4GHz頻帶以一定的頻寬將其劃分為若干個無線電頻率信道(Radio Frequency Channel;RFC),並且以使用接收和傳送兩端一樣的頻率跳躍模式(Frequency Hopping)來接發訊號及防止數據擷取。其工作原理是,收發雙方傳輸信號的載波按照預定規律進行離散變化。以達到避開干擾,完成傳輸。簡單的說,
跳頻技術FHSS不是抑制干擾而是容忍干擾。圖3是跳頻實現的流程圖。