基于NRF2401芯片的无线数据通信设计介绍
目前,无线数据通信的应用领域越来越多:遥控遥测,无线抄表,工业数据采集系统,身份识别,非接触AB智能卡,信息家电,无线语音图像传输,无线鼠标键盘等。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。大量射频IC(集成电路)芯片的出现与应用大大缩短了无线通信系统的开发周期,为此需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信。本文设计了+5V单片机AT89C52与nRF2401芯片的硬件接口电路,解决电平转换的问题,实现了数据的双向传输。
1.NRF2401芯片
nRF2401芯片工作于2.4GHz全球开放ISM频段,125个频道,满足多点通信和跳频通信需要,工作速率0~1Mb/s,最大发射功率0dBm,外围元件极少,内置硬件CRC(循环冗余校验)和点对多点通信地址控制,集成了频率合成器,晶体振荡器和调制解调器。输出功率、传输速率和频道选择可通过三线串行接口编程配置。
图1 nRF2401芯片引脚图
nRF2401芯片最突出的特点是有两种通信模式:DirectMode(直接模式)和ShockBurstTMMode(突发模式)。直接模式的使用与其它传统射频收发器的工作一样,需要通过软件在发送端添加校验码和地址码,在接收端判断是否为本机地址并检查数据是否传输正确。ShockBurstTMMode使用芯片内部的先入先出堆栈区,数据可从低速微控制器送入,高速(1Mb/s)发射出去,地址和校验码硬件自动添加和去除,这种模式的优点是:
①可使用低速微控制器控制芯片工作;
②减小功耗;
③射频信号高速发射,抗干扰性强;
④减小整个系统的平均电流。
因此,使用nRF2401芯片特有的ShockBurstTMMode使得系统整体的性能和效率提高。
2.NRF2401收发器的工作原理
关于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米的距离。
基于NRF24L01芯片的各种模块
图5 基于NRF24L01芯片的各种模块
第二个变体,不是板载天线,它有一个SMA连接器,我们可以连接一个鸭子天线以获得更好的传输范围。图4显示的第三种变体,除了鸭形天线外,还有一个RFX2401C芯片,其中包括PA(功率放大器)和LNA(低噪声放大器)。这会放大NRF24L01信号,并在开放空间中实现更远达1000米的传输范围。
3.硬件电路设计
硬件电路连接实现单片机与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引脚,注意调整电阻、电容和电感的位置。这样能够获得好的射频性能。
4.单片机对nRF2401芯片软件控制
使用nRF2401芯片进行无线数据通信时不需要进行曼彻斯特编码,编程和应用非常方便。单片机对nRF2401芯片的控制包括在配置模式下对nRF2401的初始化配置、发送数据和接收存储数据。配置字一共18byte,设定的具体参数见表2。发送端和接收端的配置必须匹配,只有配置字的最低位不同。数据包格式包括前缀、地址、有效数据和CRC。发送数据包时单片机只向nRF2401传送地址和数据,前缀和CRC会在nRF2401芯片内部自动加进去。接收数据包时,接收端检测到本机地址的数据包,检验正确后会自动移去前缀、地址和CRC,将有效数据传送给单片机。
5.调试
向单片机中载入程序,进行软硬件连调。单片机初始化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.关于NRF2401的常见问题
6.1 NRF24L01和NRF24L01+有什么区别?
NRF24L01+是NRF24L01的新版本,能够做的无线数据速率的额外的为250kbps,而且是没有唯一的“+”拥有1Mbps的和2Mbps的。只要使用1或2MBps作为数据速率,这两个版本就可以混合在一起。
6.2 如何编码NRF24L01?
首先,将模块上的VCC引脚连接到Arduino上的3.3V,将GND引脚接地。CSN和CE引脚可以连接到Arduino上的任何数字引脚。
6.3 NRF24L01是WIFI吗?
不是,因为nRF24L01+和wifi上的PHY层不同。
6.4 NRF24L01可以传输视频吗?
可以。nerfnet通过nRF24L01#Radio#Video流式传输视频。现在通过优化,这些单元可以拥有高达300kbps的速率,足以传输H.264HEVC视频。
6.5 NRF2401如何跟手机通信?
在Android设备上启用蓝牙。要查看原始数据,请将Nordic的nRF主控制面板(可在GooglePlay上免费获得)安装到您的Android设备上。运行应用程序并等待找到新的nRF24L01设备。不要点击连接按钮。
6.6 如何判断NRF24L01是否在正常工作?
在Mega2560的IDE窗口打开SerialMonitor,可以看到每500ms打印一次接收到的数据,即Rx=85,170,17。这说明NRF24L01模块都工作了。
6.7 什么是NRF通信?
nRF24L01+收发器模块在称为信道的特定频率上发送和接收数据。此外,为了使两个或更多收发器模块相互通信,它们需要在同一通道上。
结语
以上就是基于NRF2401芯片无线数据通信设计的介绍了。通过调试结果表明nRF2401芯片可以与微控制器连接实现无线数据通信,通信质量可靠稳定,传输速率也能适应不同应用领域;该设计可以嵌入各种无线传输系统,成本低,功耗小,具有很好的通用性。
壹芯微(二,三极管,MOS管专业生产商)主要生产与销售:肖特基二极管,整流/高效整流二极管,快恢复/超快恢复二极管,TVS二极管,场效应管,三极管,可控硅,三端稳压管,整流桥,IC集成电路;工厂直销价,品质保障,提供售前选型,送样测试,技术支持,售后FEA,如需了解产品详情或最新报价,欢迎咨询官网在线客服。
手机号/微信:13534146615
QQ:2881579535(点击可咨询)
工厂地址:安徽省六安市金寨产业园区
深圳办事处地址:深圳市福田区宝华大厦A1428
中山办事处地址:中山市古镇长安灯饰配件城C栋11卡
杭州办事处:杭州市西湖区文三西路118号杭州电子商务大厦6层B座
电话:13534146615
企业QQ:2881579535
深圳市壹芯微科技有限公司 版权所有 | 备案号:粤ICP备2020121154号