1、nRF24L01 点对点跳频技术应用(转载)分类:技术应用关键字:nRF24L01;射频;无线通信;跳频1 nRF24L01 概述nRF24.L01 是一款新型单片射频收发器件,工作于 2.4 GHz2.5 GHz ISM 频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型 ShockBurst 技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01 功耗低,在以-6 dBm 的功率发射时,工作电流也只有 9 mA;接收时,工作电流只有 12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。nRF24L01 主要特性如下:GFSK 调制
2、:硬件集成 OSI 链路层;具有自动应答和自动再发射功能;片内自动生成报头和 CRC 校验码;数据传输率为 l Mb/s 或 2Mb/s;SPI 速率为 0 Mb/s10 Mb/s;125 个频道:与其他 nRF24 系列射频器件相兼容;QFN20 引脚 4 mm4 mm 封装;供电电压为 1.9 V3.6 V。2 引脚功能及描述nRF24L01 的封装及引脚排列如图 1 所示。各引脚功能如下:图 (1)CE:使能发射或接收;CSN,SCK,MOSI,MISO:SPI 引脚端,微处理器可通过此引脚配置 nRF24L01:IRQ:中断标志位;VDD:电源输入端;VSS:电源地:XC2,XC1:晶
3、体振荡器引脚;VDD_PA:为功率放大器供电,输出为 1.8 V;ANT1,ANT2:天线接口;IREF:参考电流输入。3 工作模式通过配置寄存器可将 nRF241L01 配置为发射、接收、空闲及掉电四种工作模式,如表 1 所示。模式 PWR_UP PRIM_RX CE FIFO 寄存器状态接收模式 1 1 1 -发射模式 1 0 1 数据在TX FIFO 寄存器中发射模式 1 0 10 停留在发送模式,直至数据发送完待机模式 2 1 0 1 TX FIFO 为空待机模式 1 1 - 0 无数据传输掉电 0 - - -表 (1)待机模式 1 主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作
4、的;待机模式 2 则是在当 FIFO 寄存器为空且 CE=1 时进入此没收;待机模式下,所有配置字仍然保留。在掉电模式下电流损耗最小,同时 nRF24L01 也不工作,但其所有配置寄存器的值仍然保留。4 工作原理发射数据时,首先将 nRF24L01 配置为发射模式:接着把接收节点地址 TX_ADDR 和有效数据TX_PLD 按照时序由 SPI 口写入 nRF24L01 缓存区,TX_PLD 必须在 CSN 为低时连续写入,而 TX_ADDR 在发射时写入一次即可,然后 CE 置为高电平并保持至少 10s,延迟 130s 后发射数据;若自动应答开启,那么 nRF24L01 在发射数据后立即进入接
5、收模式,接收应答信号(自动应答接收地址应该与接收节点地址 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。接收数据时,首先将
6、 nRF24L01 配置为接收模式,接着延迟 130s 进入接收状态等待数据的到来。当接收方检测到有效的地址和 CRC 时,就将数据包存储在 RX FIFO 中,同时中断标志位 RX_DR 置高,IRQ 变低,产生中断,通知 MCU 去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若 CE 变低,则 nRF24L01 进入空闲模式 1。5 配置字SPI 口为同步串行通信接口,最大传输速率为 10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与 SPI 相关的指令共有 8 个,使用时这些控制指令由 nRF24L01
7、的 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 状态寄存器,用来判定工作状态0A0F RX_ADDR_P0P5 设置接收通道地址10 TX_ADD
8、R 设置接收接点地址1116 RX_PW_P0P5 设置接收通道的有效数据宽度表 (2)6 nRF24L01 应用原理框图图(2)7 跳频功能实现由于 2.4G 频段没有使用授权限制,目前家用电器、手机、无线网络都集中在此频段,干扰问题难以避免。如何避开在家庭市场中易与其它无线传输间(Bluetooth、HomeRF)发生干扰成了首要解决的问题。跳频技术 (Frequency-Hopping Spread Spectrum; FHSS)是在 2.4GHz 频带以一定的频宽将其划分为若干个无线电频率信道(Radio Frequency Channel;RFC),并且以使用接收和发送两端一样的频率
9、跳跃模式(Frequency Hopping)来接发讯号及防止数据撷取。其工作原理是,收发双方传输信号的载波按照预定规律进行离散变化。以达到避开干扰,完成传输。简单的说,FHSS 不是抑制干扰而是容忍干扰。图 3 是跳频实现的流程图。 上电初使化单片机配置 2 4 L 0 1 为发射模式写数据并开启发送是否收到应答信号 ?向串口传送数据结束切换到下个频率发送在两秒内都没有收到应答信号 ?否是接收端已关机或者信号干扰严重是否收到应答信号 ?是否上电初使化单片机配置 2 4 L 0 1 为接收模式检测载波信号存在当前频点的载波信号 ?结束是正确的数据包 ?否否跳到下一个频率跳频发射流程图跳频接收流程图图 (3)8 结束语nRF24L01 整体性能良好,使用方便。跳频功能的应该很好的解决了无线传输干扰问题,实际应用测试效果良好。