目录
1.NRF2401芯片 |
2.NRF2401收发器的工作原理 |
3.硬件电路设计 |
4.单片机对NRF2401芯片软件控制 |
5.调试 |
6.关于NRF2401的常见问题 |
结语 |
目前,无线数据通信的应用领域越来越多:遥控遥测,无线抄表,工业数据采集系统,身份识别,非接触AB智能卡,信息家电,无线语音图像传输,无线鼠标键盘等。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。大量射频IC(集成电路)芯片的出现与应用大大缩短了无线通信系统的开发周期,为此需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信。本文设计了+5V单片机AT89C52与nRF2401芯片的硬件接口电路,解决电平转换的问题,实现了数据的双向传输。
nRF2401芯片工作于2.4GHz全球开放ISM频段,125个频道,满足多点通信和跳频通信需要,工作速率0~1Mb/s,最大发射功率0dBm,外围元件极少,内置硬件CRC(循环冗余校验)和点对多点通信地址控制,集成了频率合成器,晶体振荡器和调制解调器。输出功率、传输速率和频道选择可通过三线串行接口编程配置。
图1 nRF2401芯片引脚图
nRF2401芯片最突出的特点是有两种通信模式:DirectMode(直接模式)和ShockBurstTMMode(突发模式)。直接模式的使用与其它传统射频收发器的工作一样,需要通过软件在发送端添加校验码和地址码,在接收端判断是否为本机地址并检查数据是否传输正确。ShockBurstTMMode使用芯片内部的先入先出堆栈区,数据可从低速微控制器送入,高速(1Mb/s)发射出去,地址和校验码硬件自动添加和去除,这种模式的优点是:
①可使用低速微控制器控制芯片工作;
②减小功耗;
③射频信号高速发射,抗干扰性强;
④减小整个系统的平均电流。
因此,使用nRF2401芯片特有的ShockBurstTMMode使得系统整体的性能和效率提高。
关于NRF24L01收发器,它使用2.4GHz频段,可以在250kbps至2Mbps的波特率下运行。如果在开放空间和较低的波特率下使用,其范围可达100米。
图2 NRF24L01收发器
该收发器模块可以使用125个不同的通道,这使得在一个地方拥有一个由125个独立工作的调制解调器组成的网络成为可能。每个通道最多可以有6个地址,或者每个单元最多可以同时与6个其他单元通信。
图3 NRF2401收发器工作原理图
该收发器在传输过程中的功耗仅为12mA左右,甚至低于单个LED。模块的工作电压为1.9到3.6V,但好处是其他引脚可以承受5V逻辑,因此我们可以轻松地将其连接到Arduino,而无需使用任何逻辑电平转换器。
图4 NRF24L01收发器引脚连接图
其中三个引脚用于SPI通信,它们需要连接到Arduino的SPI引脚,但是要注意,每个Arduino板都有不同的SPI引脚。引脚CSN和CE可以连接到Arduino板的任何数字引脚,它们用于将模块设置为待机或活动模式,以及在传输或命令模式之间切换。最后一个引脚是一个不必使用的中断引脚。
NRF24L01有多种变体,最受欢迎的是带有板载天线的天线。这使得收发器更加紧凑,但另一方面,将传输范围降低到大约100米的距离。
图5 基于NRF24L01芯片的各种模块
第二个变体,不是板载天线,它有一个SMA连接器,我们可以连接一个鸭子天线以获得更好的传输范围。图4显示的第三种变体,除了鸭形天线外,还有一个RFX2401C芯片,其中包括PA(功率放大器)和LNA(低噪声放大器)。这会放大NRF24L01信号,并在开放空间中实现更远达1000米的传输范围。
硬件电路连接实现单片机与nRF2401芯片的接口连接。发送端与接收端硬件连接几乎一样,具有通用性,可以实现半双工通信。单片机使用的是MCS51系列的AT89C52,成本低,控制简单,容易扩展。硬件电路设计主要包括DC/DC电源供电电路设计、nRF2401芯片与+5V单片机的接口设计以及nRF2401芯片的外围电路设计。电路图如图6所示。
图6 单片机与nRF2401芯片的接口电路
由于nRF2401的供电电压范围为1.9~3.6V,而AT89C52单片机的供电电压是5V,为了使芯片正常工作,需要进行电平转换和分压处理。单电源供电时,采用MAX884芯片进行5V-3.3V电平转换。
+5V单片机I/O口与nRF2401芯片引脚的接口需要进行分压处理,单片机向nRF2401发送控制信号和配置信号时采用电阻分压,nRF2401向单片机传送数据或者发送数据状态信号时采用74HC04反向器两级反向,这样就可以实现两个芯片在电压允许范围内的双向通信。也可以使用专用的双向电平转换芯片。单片机通过PWM_UP,CE,CS三端设置nRF2401的工作模式,表1列出nRF2401的四种工作模式。配置模式时单片机通过CLK1和DATA端向nRF2401发送配置字,发送数据时通过CLK1和DATA端向nRF2401发送地址和数据,接收数据时通过CLK1和DATA端从nRF2401读取数据,DR1是nRF2401通知单片机已经接收到数据并且可以读取的状态信号。CLK2、DOUT和DR2端为通道二保留使用,nRF2401可以同时接收两路信号。
nRF2401芯片以及其外围元件电路组成了发送接收模块。这部分重要的是PCB板的设计,使用两层的PCB板,尽量多打一些通孔,使顶层和底层的地能够充分接触,空余部分大面积连续接地。电源滤波电容尽量靠近VDD引脚,注意调整电阻、电容和电感的位置。这样能够获得好的射频性能。
使用nRF2401芯片进行无线数据通信时不需要进行曼彻斯特编码,编程和应用非常方便。单片机对nRF2401芯片的控制包括在配置模式下对nRF2401的初始化配置、发送数据和接收存储数据。配置字一共18byte,设定的具体参数见表2。发送端和接收端的配置必须匹配,只有配置字的最低位不同。数据包格式包括前缀、地址、有效数据和CRC。发送数据包时单片机只向nRF2401传送地址和数据,前缀和CRC会在nRF2401芯片内部自动加进去。接收数据包时,接收端检测到本机地址的数据包,检验正确后会自动移去前缀、地址和CRC,将有效数据传送给单片机。
向单片机中载入程序,进行软硬件连调。单片机初始化nRF2401,写入18byte的配置字,发送端的配置字为h8E08.1C50.5000.CCCC.CCCC.00CC.CCCC.CC83.6F04,接收端的配置字为h8EO8.1C50.5000.CCCC.CCCC.00CC.CCCC.CC83.6F05,设定发送端和接收端的地址长度为32bit,地址为0xCCCCCCCC,每次发送的数据长度为80bit(10byte),16bitCRC校验使能,ShockBurstTM通信模式,发射功率0dBm,晶振频率24MHz,工作频道为2402MHz。软件程序采用汇编语言完成,调试成功后,能够实现稳定可靠的数据传输,测得的数据传输速率达到60kbit/s左右,主要是受到单片机读取和写入速度的限制,更换高速单片机如MSP430或者DSP可以提高传输速率,控制原理相同。
6.1什么是NRF24L01?
nRF24L01是一款适用于全球2.4-2.5GHzISM频段的单芯片无线电收发器。该收发器由一个完全集成的频率合成器、一个功率放大器、一个晶体振荡器、一个解调器、调制器和增强型ShockBurst™协议引擎组成。
6.2NRF24L01是WIFI吗?
使用NRF24L01模块,可以创建无线连接并在网络中传输数据。
6.3NRF24L01和NRF24L01+有什么区别?
不同之处在于:NRF24L01+是NRF24L01的更新版本,能够额外提供250kbps的广播数据速率,而没有“+”的只有1Mbps和2Mbps。只要使用1或2MBps作为数据速率,两个版本都可以混合使用。
6.4可以在没有Arduino的情况下使用NRF24L01吗?
您不需要“Arduino”,但您确实需要一个微控制器内核,因为该特定芯片没有用户可编程的。
6.5NRF24L01能穿墙吗?
使用修改后的RF24模块,可以穿过四面墙,距离约为100英尺。当与视线应用一起使用时,该模块的距离也应该是标准nRF24模块的近一倍;如射频飞机、四铜、汽车和船只(100米)。
6.6什么是NRF24L01PALNA?
NRF24L01模块是最新的射频模块。该模块使用NordicSemiconductor的2.4GHz收发器NRF24L01+。如果您想以低成本设置无线通信系统,此无线收发器模块是一个简单且合适的模块。
6.7什么是NRF模块?
NRF24L01基本上是一个无线收发器,用于通过无线电波发送和接收数据。它是一个单芯片收发模块。它使用SPI协议传输数据。它的数据传输速度高达2Mbps。NRF24L01通常用于工业设备和项目中进行数据传输。
6.8NRF模块如何工作?
它使用2.4GHz频段,可以在250kbps到2Mbps的波特率下运行。如果在开放空间和较低波特率下使用,其范围可达100米。该模块可以使用125个不同的通道,从而可以在一个地方拥有一个由125个独立工作的调制解调器组成的网络。
6.9什么是NRFArduino?
NRF24L01模块通过SPI通信与Arduino协同工作。该模块的工作电压为1.9至3.6V,但其他引脚可承受5V,这意味着其他引脚可以直接连接到Arduino。
以上就是基于NRF2401芯片无线数据通信设计的介绍了。通过调试结果表明nRF2401芯片可以与微控制器连接实现无线数据通信,通信质量可靠稳定,传输速率也能适应不同应用领域;该设计可以嵌入各种无线传输系统,成本低,功耗小,具有很好的通用性。