详细介绍:NRF24L01工作原理

0.参考资料


1.NRF24L01无线通信模块


2.NRF24L01简介

NRF24L01是Nordic Semiconductor公司开发的一款单芯片2.4GHz无线收发器

可设置工作频率:2.400GHz~2.525GHz(2.400~2.4835GHz为全球ISM频段)

可配置数据传输速率:250kbps(仅+版本支持),1Mbps,2Mbps可配置3~5字节地址宽度,1~32字节有效载荷宽度

可配置发射功率:0dBm,-6dBm,-12dBm,-18dBm

dBm是功率的单位,计算方法:功率值与1毫瓦的比值,取以10为底的对数后再乘10

0dBm = 10^0mW = 1mW,-6dBm = 10^-0.6约等于1.25mW,-12dBm = 10^-1.2约等于0.063mW,-18dBm = 10^-1.8约等于0.016mW

1个发送通道,6个接收通道,支持一对多通信

Enhanced ShockBurst™,自动数据包组装和定时,自动应答,自动重传

其他高级作用:动态包长,应答附加载荷,动态应答


3.NRF24L01框图

框图的三部分

Baseband,基带信号处理,基带信号可以简单理解为1010……这样的二级制数据流

RF Transmitter,射频发射部分,作用就是把基带的1010……数据流,调制成适合天线发送的高频信号,随后通过天线发射出去

RF Receiver,射频接收部分,作用从天线接收高频信号,随后解调成1010……的数据流,传回基带信号部分

右边的6个引脚

CSN,SPI的片选,N表示低电平管用

通过SCK、MISO、MOSI,SPI通信引脚,有了SPI可以实现,写入数据,读取数据,配置寄存器等等功能,SPI通过读写寄存器,能够实现对芯片电路的掌控

IRQ,中断信号输出,当收到数据,发射成功,发送失败这些事件发送时,IRQ引脚会输出低电平跳变,IRQ可以配合STM32的外部中断,来实现中断式收发材料,也可以通过检查IRQ引脚电平,来查询事件有没有发生

CE,主要控制芯片的工作模式,CE置高电平,表示进入收发模式,开始运行;CE置低电平,表示退出收发模块,进入待机或停机

TX FIFOs和RX FIFOs

通过FIFO是一段存储器,可以称之为队列,简单来说就是排队,发送FIFO和接收FIFO都有3个层级,能够有3个数据包在FIFO排队,FIFO存储的是最关键的有用数据载荷,也就是待传输的1~32字节数据,发出的数据,行通过SPI的写TX FIFO指令,写入到TX FIFO里进行排队,随后控制芯片进入发送模式,之后这个数据就会转入到左边的射频发射器,进行发送,同理射频接收器,接收到数据后,倘若确认这个数据是我们必须的就会进入RX FIFO进行排队,之后通过SPI读RX FIFO指令

增强型ShockBurst基带引擎

就是一堆控制电路,控制整个发送、接收过程的执行,还有自动应答、自动重传这些功能的执行

Radio Control:

无线电控制

Power Management

VSS:电压负

VDD:电压正

IREF:参考电流,接一个电阻到GND就行了

DVDD:内部数字电源输出,接一个去耦电容

VDD_PA:功率放大器的电源输出,外面需要通过电路接到天线部分

XC1和XC2是晶振引脚,外部接晶振,给芯片给出射频信号的时钟

ANT1和ANT2就是天线,发送器的输出是天线,接收器输入也是天线

引脚定义

发送部分

GFSK:将基带发送的1010……数据流调制到2.4GHz的工作频率下

TX Filter:发送滤波器

PA:功率放大器

调制后的数据流,通过发送滤波器和PA功率放大器,输出到ANT1输出引脚天线

接收部分

LNA:低噪声放大器,调制后的数据流通过天线,天线信号会经过这里

RX Filter:接收滤波器

GFSK:解调,还原基带的1010……二进制数据流,随后写入到RX FIFOs中


4.硬件电路

参考手册有元器件的选型表、PCB的布局示例


5.主要工作流程

工作频率就是红色是待发送的基带信号,位速率就是信息传输速率(红线的位速率才是真正的信息传输速率),还要再生成绿线这样的载波,载波的频率一般比较高,就

发送部分:

如果基带信号的数据位是1,那么就让载波的频率升高一点再输出,如果基带信号的数据位是0,那么就让载波的频率降低一点再输出,调制后,蓝线信号会达到2.4GHz附近的高频,接收方收到蓝线信号时,若是发现频率比载波高,就认为接到1,反之,为0,这种调制方法就叫FSK,频移键控(频率的移动,受1010这样的“键”控制),而GFSK高斯频移键控,就是先把基带信号,通过高斯低通滤波器平滑处理一下,之后再进行FSK,最终的频率的过度更平滑,频谱特性更好

总结:

FSK就是数字版本的FM(调频),最终目的是,把一个设备的1010……数据流,借助无线电传给另一个设备

接收部分:

当接收方利用天线获得这样一共调试后的信号(蓝线波形)时,最初会进行GFSK解调,还原数据流,拆解数据包,比对接收地址

增强型ShockBurst基带引擎,有自动接收应答效果,发完一次波形后,接收方变为发送方,发送方变为接收方,传一个空数据包过去


6.数据包格式(芯片自动做完)

ShockBurst数据包(旧版)

1字节的前导码(1010交替)+3~5字节地址+1~32字节的有效载荷数据+1~2字节CRC校验码

Enhanced ShockBurst数据包

1字节的前导码(1010交替)+3~5字节地址+9位的包控制域+1~32字节的有效载荷数据+1~2字节CRC校验码

9位的包控制域:

6位有效载荷长度:为了动态包长设计,表示9位包控制域后面的有效载荷有几个字节

2PID:包标识符,为了支持自动应答和自动重发,发送方每发一个新的数据包时,PID就会自动自增,假如发送失败,那么发送方会自动重发,而重发的包,PID不会自增,这样接收方如果连续收到了两个PID一样的数据包,那它就可以知道,这是重发的数据包,是重复接收了,得丢掉

1位NO_ACK:不要应答标志位,0应答、1不应答


7.状态转移图

Undefined(未定义状态),直到VDD>=1.9V后经过100ms的上电复位,随后芯片进入Power Down掉电模式(芯片不会工作,同时拥有最低的功耗),将PWR_UP(寄存器里的一个位)置1,芯片经过Tpd2stby(用于晶振起振)这段时间后,就进入Standby-1待机模式1,如果PWR_UP(寄存器里的一个位)置0,回到Power Down掉电模式

在Standby-1待机模式1,PRIM_RX(寄存器的一个位)=1、CE=1,再经过130us,进入RX Mode接收模式(可以持续进入),接收后,倘若CE=0回到待机模式1

在Standby-1待机模式1,PRIM_RX(寄存器的一个位)=0、CE=1 10us(意思是10us就发一个数据包,假设一直给高电平就一直发),TX_FIFO不为空,再经过130us的TX发送设置后,进入TX Mode发送模式;PRIM_RX(寄存器的一个位)=0、CE=1,TX_FIFO为空,进入Standby-2待机模式2,在待机模式2,FIFO不为空,就会进入发送模式,FIFO为空后,又会回到待机模式2


8.模式控制

掉电模式: PWR_UP = 0

待机模式I: PWR_UP = 1,CE = 0

接收模式: PWR_UP = 1,CE = 1,PRIM_RX = 1

发送模式: PWR_UP = 1,CE = 1,PRIM_RX = 0

待机模式II:PWR_UP = 1,CE = 1,PRIM_RX = 0,发送FIFO空


9.一对多

第一步:PTX设备发出数据包,PRX设备地址匹配的接收通道收到数据包

第二步:PRX设备以相同地址发出应答包,PTX设备接收通道0收到应答包


10.自动应答和自动重传

正常的传输和应答过程

通过开始,MCU PTX进行UL,发送方单片机通过SPI写入要发送的数据,写入信息后,PTX设备开始产生发送波形,PRX设备,开始接收波形,在这个时刻,发送波形结束,同时PRX接收数据结束,因此,PRX设备IRQ引脚输出信号RX_DR,表示接受数据准备好了,RX_DR也是状态寄存器里的一位,查询状态寄存器的RX_DR位,也可以得知有没有收到资料,之后,MCU PRX,就能够通过SPI进行DL,把接收数据读走,不过数据传输还没有结束,在等待130us后,PRX设备会进入发送模式,PTX设备会进入接收模式,PRX设备向PTX设备在发送一个应答包

发送时受干扰丢包

通过第一次,发送PID=1的数据包,但该数据包在传输中丢失了,接收方没收到,自然不会有应答,所以,PTX转入接收模式后,收不到应答,在ARD(寄存器的位,用于配置自动重传时间)时间后,自动开始重传,PTX开始重传,如果发送数据包持续丢失,不会一直重传,寄存器里能够配置最大重传次数,达到最大重传数后,发送方状态寄存器的MAT_RT置1,表示达到了最大重传次数还没有发送成功

应答包丢失

最初PTX发送PID = 1的数据包,PRX接收正常,但是后面应答时,应答包丢失了,所以PTX没有收到应答,它认为发送失败,但其实,发生并没有失败,PRX已经收到了数据,只是应答丢失了,但PTX不知道,于是PTX会自动重传PID = 1的数据包,但是,PRX已经有了数据包,会丢弃PTX重传的数据包,通过PID值判断,缘于重传前和重传后的PID值相等(新数据包PID会自增,重传PID值不变)

posted @ 2026-01-08 11:32  gccbuaa  阅读(13)  评论(0)    收藏  举报