一、实物图(型号:NRF24L01-2.4G )
二、原理图
nRF24L01 与 89C51 单片机的连接(只适用于高阻口):
NRF24L01 模块引脚布局如下图:
NRF24L01 模块引脚定义如下表:
编号 | 名称 | 功能 |
1 | VCC | 电源输入 |
2 | CE | 模式控制线,在CSN为低电平时,CE协同config寄存器共同决定 NRF24L01 的状态 |
3 | CSN | SPI片选线 |
4 | SCK | SPI时钟线 |
5 | MOSI | 主主机输出从机输入 |
6 | MISO | 主机输入从机输出 |
7 | IRO | 中断信号线,低电平中断 |
8 | GND | 电源地 |
三、简介
1、模块介绍
NRF24L01 是由 NORDIC 生产的工作在 2.4GHz~2.5GHz 的 ISM 频段的单片无线收发器芯片。两块 NRF24L01 可以构成一个简单的收发器。一块用来做主机收发,另一块放在从机作为接收器。输出功率频道选择和协议的设置可以通过 SPI 接口进行设置。乎可以连接到各种单片机芯片,并完成无线数据传送工作。
2、基本参数
- 2.4GHz ISM频段
- 250Kbps , 1Mbps , 2Mbps 三种空中传输速率
- 输出功率为 0dBm 时发射功耗为 11.3mA
- 空中传输速率为 2Mbps时接收功耗为 13.5mA
- Power down 模式功耗低至 900nA, Standby-I 模式功耗低至 26uA
- 1.9-3.6V 的电压工作范围
- 支持 6 个接收通道(地址)
- IO 口能承受 5V 电压
- ± 60ppm 16MHz 晶体振荡器
- 4×4mm QFN 封装
四、工作原理
NRF24L01模块通过射频信号进行通信,发射端将数据以数字信号的方式输入给模块,经过无线射频信号的传输到接收端,接收端会将射频信号转换回数字信号给控制器使用。此模块按照一种基于GFSK调制的协议进行通讯,在传输中带有自动校验和冗余验证功能,实现了高效和可靠的数据传输。
五、工作流程
1、发送流程
- MCU通过SPI对NRF24L01进行基本配置, 配置自动应答通道使能, 设置自动重发次数不为0(在此设置可以重发数据包)设置为发送模式
- MCU把要发送的数据和接收数据设备的地址通过SPI写入NRF24L01
- CE引脚置高, 启动发送
- 此时有两种情况
- 在有限时间内收到应答信号, 则TX_DS置高(发送数据成功标志位), 并引发IRQ中断(引脚IRQ置低), 并清除TX buff(发送缓冲寄存器, 自行写代码清除), IRQ中断需要写状态寄存器进行复位(因为此处IRQ由TX_DS引发, 将TX_DS复位即可使IRQ复位)
- 重发数据次数超过设定值, 则 MAX_RT 置高(达到最多重发次数标志位), 并引发IRQ中断(引脚IRQ置低), 不清除TX buff, IRQ中断需要写状态寄存器进行复位(因为此处IRQ由MAX_RT引发,将MAX_RT复位即可使IRQ复位)
- 接收到应答信号产生中断或者达到最大重发次数产生中断后,NRF24L01继续发下一包数据
- 当TX buff为空时, 进入待机模式二(当CE为高, TX buff为空时进入待机模式二), NRF24L01的工作模式图表在后面. 只要在适当时候拉高CE进行发送即可, 配置NRF24L01时CE置低)
2、接收流程
- 与发送模式一样, 一开始MCU通过SPI对NRF24L01进行基本配置, 设置数据通道自动应答使能(在EN_AA寄存器进行设置, 即收到数据后自动向主机发送应答信号), 还有进行接收数据通道使能(在EN_RXADDR寄存器配置), 即选择六个接收通道的某一通道来接收数据, 设置为接收模式, 以及其他配置.
- 拉高CE引脚(CE置高), 启动接收状态
- 接收到一个有效数据包后, 数据存储在RX buff, 并产生RX_DR中断(RX_DR为接收数据成功标志位, 接收成功置1), 中断和发送模式一样, 需要复位
- 接收设备自动向发送设备发送确认信号(这步是自动的)
- 设置CE引脚为低, NRF24L01进入待机模式一
- MCU通过SPI读取NRF24L01收到的数据