主要特點
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:使能發射或接收;
引腳說明1CSN,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是跳頻實現的流程圖。