基于nRF24L01模块的中继协作通信系统设计与实现
2015-11-09谢宁俊等
谢宁俊等
摘 要: 设计一种基于nRF24L01无线射频模块的中继协作通信系统,研究中继协作传输相比于直传链路的系统性能。利用无线射频模块和STC89C51组成硬件系统实现数据收发和转发,阐述系统电路设计和软件设计的实施关键。以降低系统误码率为目标,最大限度减少信道中噪声干扰和信号衰减程度。测试实验结果表明,使用该系统实现的中继协作通信具备更强的抗干扰性能,提升了通信的整体质量。
关键词: 协作通信; 单向中继; 误码率; 射频
中图分类号: TN925?34 文献标识码: A 文章编号: 1004?373X(2015)21?0067?05
Design and implementation of relay cooperative communication
system based on nRF24L01 module
XIE Ningjun, SHI Xiaoyi, YANG Jie, CHEN Rui
(School of Communication Engineering, Nanjing Institute of Technology, Nanjing 211167, China)
Abstract: A relay cooperative communication system based on nRF24L01 radio frequency (RF) module was designed. The system performance of relay cooperative transmission in comparison with the direct passing link is studied. The hardware system is composed of RF module and STC89C51 to realize data transceiving and transmitting. The implementation keys of system circuit design and software design are described. The goal is to reduce the system error rate, and decrease the noise interference and the signal attenuation degree in channel. The test experiment results show that the relay cooperative communication implemented by this system has strong anti?jamming performance, and has improved the integration quality of the communication.
Keywords: cooperative communication; one?way relay; error rate; RF
0 引 言
1979年,Cover和Gamal在对中继信道的研究中,首次提到了协作通信的模型,他们研究了由源端、中继和目的三节点构成的中继通信网络模型的信道容量。中继在无线协作传输系统中起着重要作用,它能够扩展覆盖率,提高可靠性和增强传输能力[1]。无线中继协作技术由于能够扩大传输半径及对抗衰落的影响,近年来成为无线通信领域的研究热点[2?3]。
文献[4]设计了一种中继选择通信系统并给出一种自适应中继选择方案(ARSS),系统以降低中断概率和提高平均吞吐量为目标。文献[5]研究的中继协作通信可以在较少的瞬时信道信息情况下以低复杂度的中继选择算法获取更优的中断性能。文献[6]给出了一种增加传输范围,提高传输可靠性的系统设计方案,文献[7?8]从系统能量效率的角度研究了协作通信并给出优化后的中继协作传输系统模型。
然而现有的研究多基于理论模型,实际的通信系统的设计与实现较少,无线通信系统对传输性能和通信质量有很高的要求。文献[9]设计了一种基于nRF24L01模块的无线通信系统,满足了网络化条件下实现数据的可靠传输通信。文献[10]通过设计一种基于ARM和射频模块的通信系统运用于无线数字传输和无线测控中。文献[11]设计的通信系统具有传输稳定、传输速率高的特点。但以上系统的设计对于中继协作传输的实现较少,在协作通信上的应用不多。
本文在已有成果的基础上,设计了一种基于nRF24L01模块的中继协作通信系统,系统实现中继转发及完成接收端处两路信号的合并,提高了系统的通信质量。
1 系统模型
本文设计一个单向中继协作通信系统,系统模型如图1所示。系统有3个节点,分别为由nRF24L01无线模块设计组成的源点S、终端D和中继节点R,整个系统工作在实际环境当中,单向直传链路和中继转发链路中有噪声和各类干扰,在S端和D端分别通过串口连接调试。
2 硬件设置
2.1 nRF24L01无线通信模块简介
nRF24L01是由Nordic公司生产的无线收发器芯片,引脚封装如图2所示。其工作在2.42~2.48 GHz ISM频段,数据传输速率为0~2 Mb/s,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块以及硬件CRC (循环冗余校验)和点对多点通信地址控制,并融合了Enhanced ShockBurst 技术。
nRF24L01主要性能特点如下[12]:
(1) 极低的功耗:工作在各模式下的能耗较低,极大地减少了电流消耗;待机模式下的电流消耗为22 μA,掉电模式电流消耗仅为900 nA;
(2) 低工作电压:在2.7~3.6 V电压工作,工作温度范围为-40~80 ℃;
(3) 高速率,多通道: 6个数据通道,满足多点通信和调频需要,2 Mb/s的最高速率使得高质量VoIP成为可能;
(4) 拥有自动重发功能、地址及CRC校验功能,具有125个可选工作频道,拥有很短的频道切换时间,可用于跳频;
(5) 数据包每次可传输1~32 B的数据,4线SPI通信端口,通信速率最高可达8 Mb/s,适合与各种MCU连接,编程简单;
(6) 输出功率频道选择和协议的设置可以通过SPI 接口进行设置,几乎可以连接到各种单片机芯片,并完成无线数据的传送工作。
2.2 STC89C51芯片
STC系列单片机是美国STC公司推出的一种51内核单片机。其片内含有FLASH程序存储器,SRAM,UART,SPI,A/D,PWM等模块,片上集成512 B RAM,片内含8 KB的可反复擦写1 000次的FLASH只读程序存储器,器件兼容标准MCS?51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP FLASH存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,且速度较快。
工作电压:3.8~5.5 V,工作温度:0~75 ℃(3.8 V)/-40~ 85 ℃(5.5 V)。
3 电路设计
系统硬件主要由STC89C51芯片搭载nRF24L01无线射频模块,STC89C51作为主控芯片其接口数量可以满足nRF24L01模块需求,射频模块的工作电压为2.7~3.6 V,设计中采用3.3 V的电源对其进行独立供电。单片机接11.059 2 kHz的低频晶振工作,nRF24L01的工作频率为16 MHz,由低速的MCU控制高速收发的射频芯片为本系统的特点。
nRF24L01和STC89C51的连接电路图如图3所示。
在图3中,CE,CSN,SCK,MOSI,MISO和IRQ分别与STC89C51的P0.0,P0.1,P0.2,P0.3,P0.4和P0.5相连接,单片机通过SPI接口对nRF24L01进行状态配置,发送端配置成发送模式,当P0.0(CE)信号从高电平跳变到低电平,nRF24L01将数据以2 Mb/s的速率发射出去,单片机检测到其成功发射的信息后继续准备下一个数据发送。接收端配置成接收模式,一旦检测到与自身相同的信息地址就取出包中的信息并使P0.5(IRQ)变低,通知单片机将接收到的数据取走并再次置为接收模式。
4 软件设计
单片机对nRF24L01 模块的软件控制包括在配置模式下对nRF24L01的初始化配置、发送数据、接收存储数据以及转发数据配置,具体软件工作流程如下:
(1) 干扰源未工作,模拟理想直传链路传输。在开始阶段,源点准备好待传输的数据信息,开始冗余位以及结束标志位;终点设置成接收模式,等待源点发送的数据,在接收到开始标志后将接收到的信息经过比较判决后,通过串口调试助手发送到电脑,基本流程如图4所示。
(2) 干扰源加入系统,模拟信号干扰,对直传链路产生影响,源点和终点的配置模式保持不变,干扰源工作模式同源点工作模式相同,基本流程如图5所示。
(3) 在干扰存在的情况下,使能中继端,模拟中继对协作传输系统的改善。作为中继的nRF24L01模块设置为可在接收和发送两种状态之间切换,初始设置为接收模式,待收到源点的开始标志位后将传输信号进行转发,直至收到源点的结束标志位后停止转发,基本流程如图6所示。
图6 中继协作传输过程
4.1 nRF24L01传输配置
nRF24L01工作状态下的SPI时序表示如下:
unsigned char NRFSPI(unchar date)
{
unchar i;
for(i=0;i<8;i++)
{
if(date&0x80)
MOSI=1;
else
MOSI=0; //byte最高位输出至MOSI
date<<=1; //低一位移至最高位
SCLK=1;
if(MISO)
date|=0x01; //读MISO至byte最低位
SCLK=0; //SCK置低
}
return(date);
}
4.2 nRF24L01数据收发设计
发送端配置成发送模式,根据sta的状态判断发送是否成功,单片机识别到TX_DS(数据发送完成中断位)为1或检测到MAX_RT(达最多发送次数)为1时进行对应处理,nRF24L01配置发送模式并发送数据TxDate的过程如下:
void NRFSetTxMode(unchar *TxDate)
{
CE=0;
NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_
ADR_WITDH);
NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);
NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_
WITDH);
NRFWriteReg(W_REGISTER+EN_AA,0x01);
NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);
NRFWriteReg(W_REGISTER+SETUP_RETR,0x00);
NRFWriteReg(W_REGISTER+RF_CH,0x40);
NRFWriteReg(W_REGISTER+RF_SETUP,0x07);
NRFWriteReg(W_REGISTER+CONFIG,0x0e);
CE=1;
Delay(5);
}
终端配置成接收模式,目的接收地址和发送地址保持一致,在nRF24L01的对应通道中使能选定通道对源点发送来的信号进行接收,nRF24L01配置成接收模式的过程如下:
void NRFSetRXMode( )
{
CE=0;
NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,RxAddr1,TX_ ADDR_WITDH);
NRFWriteReg(W_REGISTER+EN_AA,0x01);
NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);
//enable channel 0
NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_ WITDH);
NRFWriteReg(W_REGISTER+RX_PW_P1,TX_DATA_ WITDH);
NRFWriteReg(W_REGISTER+RX_PW_P2,TX_DATA_ WITDH);
NRFWriteReg(W_REGISTER+RX_PW_P3,TX_DATA_ WITDH);
NRFWriteReg(W_REGISTER+RX_PW_P4,TX_DATA_ WITDH);
NRFWriteReg(W_REGISTER+RX_PW_P5,TX_DATA_ WITDH);
NRFWriteReg(W_REGISTER+RF_CH,0x40);
NRFWriteReg(W_REGISTER+CONFIG,0x0f);
CE=1;
Delay(5);
}
5 系统性能测试
整个系统测试运行在实际环境当中,无线协作传输系统由源点、终点、中继和干扰源构成,干扰源可全程对直传链路和协作传输链路进行干扰,接收端对接收到的信号进行合并,实验设定的发送均值为5,因此在接收端处,数据均值越靠近5则表明误码率越低;反之,误码率越高。
无干扰的时候,接收端接收到的信号均值为5,误码率很低。当干扰信号对链路进行干扰,终点收到的信号随着干扰程度的加深,信号均值产生很大的偏移,造成较大的误码率。经测试,干扰源信号分别从0~3,1~4,2~5,3~6,4~7,5~8,6~9中选择,并将所得结果表现出来,如图7所示。
6 结 语
本文设计了一种基于nRF24L01无线射频模块的中继协作通信系统。系统运行功耗低、成本少,在实际环境中运行稳定,传输效果良好,显著降低了误码率。协作传输链路的设计改善了系统整体通信质量,增强了抗干扰性能,在此基础上将进一步完成双向分布式中继协作通信系统的设计。本文实现的通信系统再做改动,还可应用于一些其他无线通信领域。
参考文献
[1] DOHLER M, LI Y. Cooperative communications: hardware, channel & PHY [M]. New Jersey: John Wiley & Sons, 2010.
[2] SENDONARIS A, ERKIP E, ZHANG B W. User cooperation diversity, Part I: system description [J]. IEEE Transactions on Communications, 2003, 51(11): 1927?1938.
[3] SENDONARIS A, ERKIP E, ZHANG B W. User cooperation diversity, Part II. implementation aspects and performance analysis [J]. IEEE Transactions on Communications, 2003, 51(11): 1939?1948.
[4] CHEN Huijuan, LIANG Xiaowen. Research on the relay selection scheme based on cooperative communication system [J]. Electronic Technology, 2011, 38(4): 66?68.
[5] SUN Liyue, ZHAO Xiahui, GUO Ming. Outage probability based power allocation and relay selection algorithm in cooperative communication [J]. Journal on Communications, 2013, 34(10): 84?91.
[6] 赵玉丽,郭丽,朱志良,等.协作通信中一种中继节点选择方案的设计[J].计算机应用,2015,35(1):1?4.
[7] MADAN R, MEHTA N, MOLISCH A, et al. Energy?efficient cooperative relaying over fading channels with simple relay selection [J]. IEEE Transactions on Wireless Communications, 2008, 7(8): 3013?3025.
[8] JI Wei, ZHENG Baoyu. Study on cooperative nodes deployment based on energy efficiency [J]. Signal Processing, 2011, 3(3): 321?327.
[9] 朱慧彦,林林.基于MCU和nRF24L01的无线通信系统设计[J].电子科技,2012,25(4):81?84.
[10] 李辉,宋诗,周建江.基于ARM和nRF24L01的无线数据传输系统[J].国外电子元器件,2008(12):44?46.
[11] 刘志平,赵国良.基于nRF24L01的近距离无线数据传输[J].应用科技,2008,35(3):55?58.
[12] 深圳市蓝科迅通科技有限公司.nRF24L01单片2.4G无线射频收发芯片手册[EB/OL].[2006?08?03].http://wenku.it168.com/d_001332748.shtml.