APP下载

基于nRF24LE1的无线数据传输系统实现

2010-05-28马跃坤应时彦杨文君肖林荣

浙江工业大学学报 2010年6期
关键词:发送数据接收端寄存器

马跃坤,应时彦,杨文君,肖林荣

(1.浙江工业大学 信息工程学院,浙江 杭州 310032;2.杭州华尔数码科技有限公司,浙江 杭州 310032;3.嘉兴学院电气工程学院,浙江 嘉兴 314001)

RFID技术是一种非接触式的自动识别技术,通过对实体对象进行有效标识,可快速、实时、准确采集和处理对象信息,广泛应用于生产、零售、物流、交通、医疗及国防等各个行业.根据其工作频率的不同,可以分为低频、高频、超高频和微波等工作频段[1-4].通信频率为2.4 GHz的频段是全球开放的ISM(工业、科学和医学)微波频段,使用者无需申请许可证,给开发者和用户带来了很大方便;同时,可以有效地避免低频段信号、各类电火花及家用电器的干扰,而且其能量波束比较集中,携带信息量大,传输距离也更远.由基本射频集成电路搭建的无线数据通信系统往往存在电路复杂,成本较高,传输速率低下,可靠性差等缺点.为此,Nordic公司推出一款工业级内置硬件链路层协议的低成本单芯片nRF24LE1[4]型无线收发器件.该器件采用了抗干扰能力强的GFSK调制解调技术,125个频点自动跳频,片内自动生成报头和CRC校验码,具有出错自动重发功能[4-5],这些特性使得由nRF24LEl构建的无线数据传输系统具有电路简单、成本低、速率高以及传输距离远等优点,笔者将重点探讨nRF24LE1的无线数据传输实现.

1 nRF24LE1简介

nRF24LE1[4]是北欧集成电路公司(Nordic)推出的一款带增强型8051内核的无线收发模块,工作于2.4~2.5 GHz的ISM频段,有多达125个的频点,可通过改频和跳频来避免干扰,最大空中传输速率可达2 Mbps,灵敏度为-94 dBm,最大发射功率为0 dBm;在较为理想的环境中,室内传输距离可达30~40 m,室外传输距离可达100~200 m;工作电压为1.9~3.3 V,工作温度范围为-40~+85℃.图1给出 nRF24LEl的24脚QFN(4 mm×4 mm)封装引脚排列图.除正常的电源、复位端口外,其中引脚XC1,XC2为晶振输入输出引脚,IREF为模数转换的外部参考电压输入端,ANT1,ANT2为发射和接收的差分天线端子接口,P0.0~P0.6为多功能I/O口(如用于 UART,SPI,PWM,2-Wire等),PROG为Flash编程使能端口,DEC1,DEC2主要用于为连接器提供电源退耦输出.可以看出,其引脚数目较少、结构清晰,设计时所需外围器件较少,为开发应用带来了方便.

图1 QFN24 4 mm×4 mm封装nRF24LE1的引脚图Fig.1 QFN24 4 mm×4 mm package,the pin diagram of nRF24LE1

图2给出nRF24LEl的内部结构图,nRF24LE1是为单片超低功耗无线应用而优化设计的,内部集成了增强型8051内核,2.4 GHz无线收发器nRF24L01+,Flash存储器,低功耗振荡器,实时计数器,AES硬件加密器,随机数发生器以及节能控制器等.所有高频元件包括电感、振荡器等,全部集成在芯片内部,芯片的稳定性能高,受外界环境的影响很小.对于应用层,nRF24LE1提供了丰富的外设,如 SPI、I2C线,UART,6~12位ADC,PWM以及一个低功耗的可以作为系统电平唤醒的模拟比较器.nRF24LE1融合了 Enhanced ShockBurst技术,其中,输出功率、通信频道及自动重发次数等参数可通过编程设置[4-5].

图2 nRF24LE1内部结构图Fig.2 Internal structure of the nRF24LE1

nRF24LE1具有以下突出优点:(1)功耗低.能够在以-6 dBm的功率发射时,工作电流只有9 mA;在以0 dBm的功率发射时,工作电流仅11.1 mA;而在2 MHz接收时,工作电流仅13.3 mA,具有掉电和等待多种低功率工作模式.(2)体积小,最小采用QFN24封装,是目前世界上封装最小的一款射频收发芯片.(3)供电电压为1.9~3.6 V,可方便集成到各种电子器件.

2 系统硬件电路

无线数据传输系统采用模块化实现,主要由两个射频收发模块nRF24LE1和天线单元组成,其中一个作为数据发送,另一个作为数据接收.本系统实现如下功能:发送端按键按下时发送数据,点亮对应的LED;接收端接收到数据并判断正确后点亮对应的LED,同时把接收到的数据通过串口传递给计算机系统显示.

图3给出了发射模块和接收模块共同用到的典型电路,外围结构有晶振、I/O端口和天线单元三部分组成.由于发射模块相应引脚要连接LED指示灯和按键,接收模块要连接LED指示灯和UART串口,因此将对应的多功能I/O端口(P0.0~P0.6)引出,通过扩展槽来扩展I/O口的用途,如扩展为UART,SPI,2-Wire,PWM 及ADC等功能端口.为了实现1 Mbps的空中数据传输速率,采用16 MHz的晶体振荡器.电路右边部分是2.4 GHz单端天线匹配网路,为保证信号传输的稳定可靠性,采用了多级去耦方式实现,而高质量的RF电容去耦,则采用一个大的钽电容(2.2 nF)并联一个小电容实现.

图3 nRF24LE1典型应用原理图Fig.3 Typical application schematic of nRF24LE1

3 系统软件设计

3.1 工作模式选择

通过配置CONFIG寄存器可把nRF4LE1配置为发射、接收、待机及掉电四种工作模式[4-5],如表1所示.

表1 nRF24LE1射频收/发主要工作模式Table 1 Main RF T/R mode of nRF24LE1

待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;待机模式2则是在当FIFO寄存器为空且RFCE=1时进入此模式.待机模式下,所有配置字仍然保留.掉电模式下电流损耗最小,同时 nRF24LE1也不工作,但其所有配置寄存器的值仍然保留.nRF24LE1收发模式有Shock-BurstTM收发模式和Enhanced ShockBurstTM收发模式两种,收发模式由器件配置字决定,对应的数据包格式也有两种[4-5],如图4所示.

图4 两种模式的数据包格式Fig.4 Two modes of data packet format

Enhanced ShockBurstTM模式比ShockBurstTM模式多了一个确认数据传输的信号,保证数据传输的可靠性[4].Enhanced ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1 Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率.与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高.Enhanced ShockBurstTM技术同时也减小了整个系统的平均工作电流.在Enhanced ShockBurstTM收发模式下,器件内部完成需要高速处理的RF协议,自动处理前导码和CRC校验码,发送数据时只需将数据放入发送数据缓冲区,器件会自行产生前导字符CRC校验码,并将这些数据地址和地址信息、发送数据缓冲区的数据等组成一个数据包发送出去.在接收数据时,自动把前导码和CRC校验码移去.Enhanced ShockBurstTM收发模式下,系统的程序编制会更加简单,并且稳定性也会更高.

因此,在本无线数据传输系统中,采用 Enhanced ShockBurstTM收发模式.

3.2 工作流程

系统采用的是Enhanced ShockBurstTM收发模式,详细的发送和接收流程如下.

Enhanced ShockBurstTM发射流程:

(1)把接收机的地址和要发送的数据按时序送入nRF24L01+.

(2)配置CONFIG寄存器,使之进入发送模式.

(3)微控制器把 RFCE置高(至少10 μ s),激发nRF24LE1进行Enhanced ShockBurstTM发射.

(4)nRF24L01+EnhancedShockBurstTM发射:

(a)给射频前端供电.

(b)射频数据打包(加前导码、CRC校验码).

(c)高速发射数据包.

(d)发射完成,nRF24L01+进入待机状态.

Enhanced ShockBurstTM接收流程:

(1)配置本机地址和要接收的数据包大小.

(2)配置CONFIG寄存器,使之进入接收模式,把 RFCE 置高.

(3)130 μ s后 ,nRF24L01+进入监视状态,等待数据包的到来.

(4)当接收到正确的数据包(正确的地址和CRC校验码),nRF2401+自动把前导码、地址和CRC校验位移去.

(5)nRF24L01+通过把STATUS寄存器的RX_DR置位(STAT US一般引起微控制器中断)通知微控制器.

(6)微控制器把数据从nRF2401+读出.

(7)所有数据读取完毕后,可以清除STATUS寄存器.nRF2401+可以进入四种主要的模式之一.

3.3 数据的发送与接收

本系统中,发送端nRF24LE1模块完成初始化后,把nRF24LE1配置成PTX工作模式.若按下发送按键,则启动nRF24LE1发送数据,点亮对应的LED,若发送成功,则产生 TX_DS中断;若重发超限,则产生MAX_RT中断;若发送失败,则继续发送,否则进行出错处理.接收端nRF24LE1模块完成初始化后,把nRF24LEl配置成PRX工作模式.当正确接收数据时,nRF24L0l产生接收中断标志,点亮对应的LED,并向串口发送数据.图5给出了程序流程图.

图5 程序流程图Fig.5 Program flow chart

nRF24LE1通过内部SPI接口和外部控制器件进行数据交换,其SPI协议是 MSB在前,LSB在后.如果要读写多个字节,先读写低字节.如果外部控制器件没有SPI接口,可用普通I/0接口模拟.表2给出了nRF24LEl命令表[4-5].

表2 nRF24LE1关键命令字Table 2 The key command words of nRF24LE1

nRF24LEl的各种命令字都只有一个字节,分为读寄存器、写寄存器、读数据接收缓冲区及写发送数据缓冲区等.在输入任意命令字的同时,MISO输出的都是STATUS寄存器的内容.

nRF24LE1在使能数据收发之前需要正确的配置,如前所述 Enhanced ShockBurstTM收发模式流程可知,主要设置包括数据收发的地址、通道、功耗、速率以及自动重发方式等等,在本系统中,发送端和接收端公用初始化函数,主要对nRF24LEl的初始化功能有:配置成PTX模式时,重新发送的等待时间为500 μ s,重新发送次数为 10次,地址是 TX_ADR_WIDT H,输出功率为0 dBm,速度为1 Mbps,并且使能发送完成和重发送次数超限两种中断,CRC校验位为2字节;配置成PRX模式时,地址是RX_ADR_WIDTH(同发送端地址 TX_ADR_WIDTH),负载数据宽度是 TX_PLOAD_WIDTH(同发送端),CRC校验位为 2字节.初始化函数如下:

发射数据时,经初始化将nRF24LE1配置为发射模式,接着把接收节点地址TX_ADDR和有效数据TX_PLOAD按照时序由内部SPI口写入nRF24LE1缓存区,TX_PLOAD必须在RFCSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后RFCE置为高电平并保持至少 10 μ s,延迟130 μ s后发射数据;若自动应答开启,那么nRF24LE1在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致).如果收到应答,则认为此次通信成功,TX_DS置高,同时 TX_PLOADD从 TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若自动重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或 TX_DS置高时,使IRQ变低,产生中断,通知 MCU.最后发射成功时,若 RFCE为低,则nRF24LE1进入待机模式1;若发送堆栈中有数据且 RFCE为高,则进入下一次发射;若发送堆栈中无数据且RFCE为高,则进入待机模式

2.主要的数据发送程序如下:

接收数据时,经初始化将nRF24LE1配置为接收模式,接着延迟130 μ s进入接收状态等待数据的到来.当接收方检测到有效的地址和CRC时,就将数据包存储在 RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据.若此时自动应答开启,接收方则同时进入发射状态回传应答信号.最后接收成功时,若RFCE变低,则nRF24LE1进入等待模式1.主要数据接收程序如下:

3.4 测试与验证

为了检验无线通信的实际结果,程序中发送端预先设定将要发送的数据包大小为32字节(最大长度为32字节),内容由01-32组成.按下发送端按键时将把数据发送出去且对应的LED闪烁一次,接收端通过RS232与电脑串口相连,串口通信波特率为19 200 bps.如图6所示为发送端距离接收端50 m以上情况下,两次按下按键后,通过串口调试软件在接收端检测到的正确数据,即发送端发送的由01-32组成的数据包在接收端被正确的接收到,从而验证50 m以上的无线数据传输的正确性,达到了预期的远距离无线数据传输目的.

4 结 语

研究了基于射频收发芯片nRF24LEl的无线数据传输系统,重点探究了Enhanced ShockBurstTM收发模式下的无线数据收发实现.该系统在实际室外测试中实现了50 m以上的远距离无线数据传输,可以广泛应用于无线测控、无线遥控、RFID、医学参数检测、无线语音、工业控制以及无线数据采集等领域.

[1] 宁焕生,张彦.RFID产品研发及生产关键技术[M].北京:电子工业出版社,2007:1-16.

[2] 游战清,李苏剑.无线射频识别技术(RFID)理论与应用[M].2版.北京:电子工业出版社,2004:11-12.

[3] 谭民,刘禹,曾隽芳,等.RFID技术系统工程与应用指南[M].北京:机械工业出版社,2007:11-15.

[4] 谭晖.nRF无线SOC单片机原理与高级应用[M].北京:北京航空航天大学出版社.2009:1-177.

[5] 李辉,宋诗,周建江,等.基于 ARM 和nRF24L01的无线数据传输系统[J].国外电子元器件.2008,12:44-46.

猜你喜欢

发送数据接收端寄存器
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
基于多接收线圈的无线电能传输系统优化研究
Lite寄存器模型的设计与实现
手机无线充电收发设计
二进制翻译中动静结合的寄存器分配优化方法
一种车载自组织网络的媒体接入控制协议
带标记方式的CRDSA++协议性能分析*
移位寄存器及算术运算应用
多优先级无时隙CSMA/ CA算法研究