nRF24L01/nRF24L01+无线模块原理介绍

nRF24L01模块提供了非常有效和廉价的通信方式,nRF24l01模块实际上是一个无线电收发器模块,它工作在2.4GHz频率上。该模块具有同时发送和接收数据的功能,可用于各种IOT项目以创建无线连接。通过显示它是一个非常小的模块,但它的功能是惊人的。

nRF24L01无线模块


nRF24L01/nRF24L01+模块    

nRF24L01是由Nordic半导体生产的一种单片无线收发器芯片,它的射频频段在2.4GHz~2.5GHz之间,这个频段也属于我们之前所说的免许可的ISM(工业、科学和医学)开放频段。围绕这个芯片设计的模块就是我们常见的nRF24L01模块,这类模块种类名称也很多,比如nRF24L01模块,nRF24L01+模块,nRF24L01+ PA/LNA模块。

它们其实大同小异,nRF24L01+是nRF24L01芯片的升级版本,nRF24L01只支持1Mbps和2Mbps的传输速率,而nRF24L01+还支持250Kbps的传输速率,nRF24L01+ PA/LNA模块是在nRF24L01+模块的基础上集成了收发放大的外置天线信号模块,增大了模块的传输距离,如果在空旷的环境里,使用板载PCB天线的nRF24L01/nRF24L01+模块传输最大距离只有100米,而PA/LNA模块可以到达1000米。

nRF24L01/nRF24L01+模块的工作原理  

nRF24L01/nRF24L01+模块收发在特定的频率上,这个频率被成为信道 (Channel)。一对或者多个模块相互通信就必须在同一个频率上。所以这个频率必须在2.4GHz~2.5GHz之间的任意一个频率上,更准确点,应该是2400MHz到2525MHz。由于每个频率占用的信道带宽(bandwidth)要至多1MHz,那么在同一个范围内,如果带宽为1MHz,理论上就可以有125个独立的频率可以用。

nRF24L01工作原理


nRF24L01/nRF24L01+模块提供了一个原生的多发一收的功能,即多个发送端可以发给一个接收端,但发送端最多是6个。每个物理信道(Channel)被分成6个软件逻辑上的数据管道(Data Pipes),每个数据管道都有自己的配置地址。

nRF24L01原理图

中心的nRF24L01/nRF24L01+模块可以同时接收其他6块nRF24L01/nRF24L01+模块的消息,也可以随时停止接收变成发送模块,向其他模块发送消息,但发送过程不能同时,只能一次一个数据管道。

增强ShockBurst协议    

nRF24L01/nRF24L01+模块通信时,通信的信息是遵循一定格式的,这个格式就是ShockBurst协议。最初ShockBurst协议格式是只有Preamble、Address、Payload以及CRC字段的。

增强ShockBurst协议


nRF24L01+后ShockBurst协议就升级成了增强型ShockBurst协议。加入了Packet Control字段。加入Packet Control字段有以下几个好处:

  1. 可以在Packet Control字段里描述Payload字段的长度,可以说明每个包数据的长度。

  2. PacketControl字段里加入了包的ID标记,即Packet ID,这样方便后期处理数据。

  3. 可以规定是否要求返回应答字符(ACK),来确认发出去的数据包是否被接收。

两个nRF24L01/nRF24L01+模块通信时,发送端会以增强型ShockBurst协议向接收端发送包数据,接收到接到包以后就会向发送端回复一个应答字符(ACK),这样一个正常发送过程就完成了。


当然这个过程中有时候会出现另外两种情况:


第一种,数据包在发送过程中丢包了,那么接收端没收到也不会返回ACK,发送端没等到ACK过一段时间就会重新发送一次。


第二种,数据包送到了,接收端返回ACK给发送端,但ACK丢了。那同样,发送端没等到ACK过一段时间还是会重新发送一次。


https://www.wjx.cn/jq/84863372.aspx