NRF24L01无线通信模块

1.NRF24L01无线模块定义

1.1概念

NRF24L01是一款新型单片射频收发器件,工作与2.4GHz~2.5GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
NRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式,工作在100mw时电流为160mA,在数据传输方面相对wifi距离更远,但传输数量不如WIFI(掉电模式和空闲模式)使节能设计更方便。

1.2特点
有自动应答和自动再发射功能;
片内自动生成报头和CRC校验码;
数据传输速率为1Mb/s或2Mb/s;
SPI速率为0Mb/s~10Mb/s;
供电电压为1.9 V~3.6 V;
传输距离<5m

2.模块电路图、接口电路

在这里插入图片描述
在这里插入图片描述
CE:模块控制线,CSN为低时,与CONFIG寄存器共同决定NRF24L01状态,RX/TX模式选择;
CSN:SPI的片选线
SCK:SPI的时钟线
MOSI:SPI的数据线(主机输出从机输入)
MISO:SPI的数据线(主机输入从机输出)
IRQ:中断标志位。中断时变为低电平,三种情况变低:Tx FIFO发完并且收到ACK(使能ACK情况下)、Rx FIFO收到数据、达到最大重发次数;

3.工作原理

NRF24L01模块既可以作为发送端也可以作为接收端,需要发送或接收数据只要进行相应配置即可。

3.1 作为发送端-发送数据

  • 将NRF24L01配置为发射模式:将TX_ADDR接收节点的地址只需要发送一次,所以可以在配置为发送模式时发送,TX_PLD有效数据按照时序由SPI口写入nrf缓冲区,数据必须在CSN为低时连续写入,然后CE置为高电平,开启数据发送;
  • 当收到应答时,说明此次通信成功,TX_DS置高,同时数据从 TX FIFO数据中清除;
  • 若未收到应答,则自动重新发送该数据(自动重发开启情况下),重发次数达到上限时,MAX_RT置高,TX FIFO中数据保留,以便重发;
  • MAX_RT置高或TX_DS置高时,IRQ会变低,产生中断,通知MCU;
  • 最后发射成功时,若CE为低,则NRF进入空闲模式1,若发送堆栈中有数据且CE为高,则进入下一次发送,若发送堆栈中无数据且CE为高,则进入空闲模式2。

3.2 作为接收端-接收数据

  • 同样,我们首先需要将NRF配置为接收模式,进入接收状态等待数据的到来。
  • 当接收端检测到有效的地址和CRC时,将数据包存储在RX FIFO中,同时将中断标志位RX_DR置高,使IRQ变低,产生中断,通知MCU去取数据
  • 若此时自动应答开启,接收方同时进入发射状态回传应答信号
  • 最后接收成功时,若CE变低,则nrf进入空闲模式1。

4.工作模式

通过配置寄存器可将nrf24L01配置为发射、接收、空闲及掉电四种工作模式,由CE和CONFIG寄存器(0x00)的PWR_UP(第1位)和PRIM_RX(第0位)共同控制,如图所示:
在这里插入图片描述
4.1待机模式
待机模式下所有配置字仍然保留。
(1)待机模式1:主要用于降低电流损耗,该模式下晶体振荡器仍然是工作的;
(2)待机模式2:在当FIFO寄存器为空且CE=1时进入此模式;
4.2收发模式
收发模式有三种:Enhanced ShockBurstTM收发模式、ShockBurstTM收发模式和直接模式三种,收发模式由器件配置字决定。
这里主要说一下第一种收发模式。

  • Enhanced ShockBurstTM收发模式
    (1)发送端:发送数据时,自动加上字头和CRC校验码,发送模式下,CE置为高,至少10us,将使能发送过程;接收数据时,自动把字头和CRC校验码移去。
    (2)接收端:IRQ产生中断,接收数据,确认收到数据后记录地址(接收地址与发送地址应该相同),接收端通过该地址发送ACK应答信号。在发送端,通道0用作接收应答信号,一定要注意两端地址需相同,才能接收到正确的ACK信号。

  • 发送流程
    a.把地址和要发送的数据按时序送入NRF24L01;
    b.配置CONFIG寄存器,使之进入发送模式;
    c.mcu将CE置为高(至少10us),激发Enhanced ShockBurstTM发射;
    d.Enhanced ShocqkBurstTM发射:1)给射频前端供电;2)射频数据打包(加字头、CRC校验码);3)高速发射数据包;4)发射完成,NRF24L01进入空闲状态

  • 接收流程
    a.配置接收地址和要接收的数据包大小;
    b.配置CONFIG寄存器,使之进入接收模式,把CE置高;
    c.130us后,NRF24L01进入监视状态,等待数据包的到来;
    d.当接收到正确的数据包(正确的地址和CRC校验码),NRF24L01自动移去字头、地址和CRC校验位;
    e.NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起MCU中断)通知MUC;
    f.MCU把数据从FIFO读出(0x61指令);
    g.所有数据读取完毕后,可清除STATUS寄存器,NRF24L01进入四种主要模式之一。

未完…

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值