nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调製器等功能模组,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程式进行配置。nRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式,工作在100mw时电流为160mA,在数据传输方面实现相对WiFi距离更远,但传输数据量不如WiFi(掉电模式和空闲模式)使节能设计更方便。
基本介绍
- 中文名nRF24L01无线模组
- 频段2.4 GHz~2.5 GHz ISM
- 属性新型单片射频收发器件
- 工作电流12.3 mA
主要特点
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,MISOSPI引脚端,微处理器可通过此引脚配置nRF24L01
IRQ中断标誌位;
VDD电源输入端;
VSS电源地
XC2,XC1晶体振荡器引脚;
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是跳频实现的流程图。
图 (3)