陈 城,李瑞祥,刘婷婷,刘 毅
(上海理工大学 光电信息与计算机工程学院,上海 200082)
基于nRF24L01的无线数据传输系统研究
陈 城,李瑞祥,刘婷婷,刘 毅
(上海理工大学 光电信息与计算机工程学院,上海 200082)
针对传统有线数据采集系统使用不灵活和布线困难等缺点,介绍了基于nRF24L01的无线数据传输系统,采用模块化的设计方法,系统通过MSP430单片机控制,由nRF24L01芯片将数据在收发模块间进行传输。该系统的总体结构结合了硬件及软件设计,通过测试结果证明,系统稳定、便捷,在实际应用中有效、可靠。
无线数据传输;nRF24L01;有效可靠;MSP430
信息传输可采用有线传输或无线传输。无线传输利用无线电波作为数据传输的媒介,在本地发送端和远程接收端之间实现无线数据的传输。无线传输技术因可以克服铺设线路的困难,同时便于移动,目前已得到广泛应用。
系统通过MSP430的控制,当语音信号输入时,将其模数转换为离散数字信号,通过nRF24L01芯片将数据在收发模块间进行传输,再转换为音频信号输出。
此次无线数据传输系统中,发射和接收部分选用的核心处理单片机为MSP430。无线收发过程,以nRF24L01芯片实现,使用它的增强型ShockBurst功能模式。单片机将采集到的音频数据,以32 Byte为一个数据包,通过SPI口nRF24L01定时发送。
具体设计过程中为两个MSP430单片机之间的通信,实现单工无线通信的模块。发射部分由单片机最小系统、电容式驻极体麦克风、nRF24L01模块组成:电容式驻极体麦克风实现音频信号输入,无线模块实现信息的无线发送。接收部分由单片机最小系统、nRF24L01模块组成:迷你音响实现音频信号输出,nRF24L01实现信息的无线接收。
1.1 无线传输系统原理
无线通信系统实现的是模拟信号的数字传输过程,即模拟信号经过数字化后在数字通信系统中的传输,而模拟信号即指话音信号。模拟信号的数字传输经过3个步骤:第一步将模拟信号数字化,变为数字信号;第二步进行数字信号的传输;第三步将数字信号还原为模拟信号。本次无线数据传输系统将重点讨论模拟信号数字化传输过程的第二步骤,即数字信号的传输。模拟信号数字化传输系统框图如图1所示。
图1 模拟信号数字化传输系统框图
在数字通信系统中采用的是无线信道传输,数字通信系统原理框图如图2所示。
图2 数字通信系统原理框图
1.2 无线数据传输的工作过程
无线数据传输系统使用低功耗的MSP430构建,主要涉及无线数据传输模块的应用,无线数据传输模块选用性价比较高的nRF24L01芯片实现。在MSP430单片机的控制下,通过nRF24L01芯片,将数字数据从发送模块传送到接收模块,此过程要求无线通信。
(1)数据发送模块。通过语言程序控制,发送端单片机MSP430首先对此芯片的参数进行一些设置,然后进行数据的发送,若启动了自动应答模式,而应答信号又是在有效应答时间内收到的,则认为接收端已成功收到数据,则寄存器TX FIFO中的下一包数据将被发射。若在有效时间内未能收到应答信号则重新发送数据,若发送次数超过原先设定的值或超过了预定的时间,则会产生中断,而进行中断函数的处理;
(2)数据接收模块。通过程序控制,接收端MSP430可对无线射频芯片的参数进行配置,将其配置为接收模式。当接收端nRF24L01收到了数据,则会自动发送确认信号给接收端,通知发送端的数据已收到。nRF24L01会对收到的数据进行检测,若为有效数据,会对数据进行存储并产生中断通知接收端单片机进行数据的后续应用。接收端单片机在收到中断的同时,要同发射端进行时间上的协同,以确保发送和接收的配合。最后nRF24L01的状态寄存器清除,做好下一次数据接收的准备。
该无线数据传输系统中,发射和接收部分选用的核心处理芯片为MSP430。无线收发过程,以nRF24L01芯片实现。系统硬件设计方案如图所示。
图3 硬件示意图
2.1 单片机模块
此模块由MSP430芯片相成,它是整个系统单片发射和接收部分的核心。MSP430单片机的工作电压范围2.2~3.6 V,在此最小系统的设计中单片机电源电路选用3.3 V直流电源。同时为保护单片机的工作,采用电解电容和电容保护电路。
时钟电路是为了保证单片机能够有条不紊的进行工作,用于向单片机提供基本的工作时序。通常有内部时钟方式和外部时钟方式两种,本系统选用内部时钟方式[11]。
2.2 无线接口模块设计
MSP430和nRF24L01之间通过SPI进行通信。SPI总线系统作为一种同步串行外设接口,其不仅通信速度较高,且通信方式是全双工通信,能够实现同步通信,SPI通信只使用芯片管脚的4根线,可节省PCB布局空间。SPI采用环形总线结构,在时序脉冲的控制下,实现单片机和无线模块之间的数据传输。SPI的工作方式是主从方式,此系统中单片机作为主设备, nRF24L01作为从设备。
2.3 UART通信电路设计
UART通信采用RS-232通信协议,是一种异步传输标准接口。一般情况下RS-232接口是以9个或25个引脚的形态出现。在此系统的过程中,采用DB-9引脚的RS-232接口。
电脑的串行通讯端口是标准的RS-232接口,其高电平为-12 V,低电平为+12 V,MSP430的串口要想与标准RS-232通信,就必须经过电平转换,转换芯片电压为3.3 V,所以选择SP3232进行电平转换。
2.4 电源电路设计
由于MSP430单片机的工作电压为2.2~3.6 V,nRF24L01芯片的工作电压在1.9~3.6 V[12],所以一般选用3.3 V作为工作电压,而电源适配器的输出电压为5 V,所以需要设计电压转换电路对系统进行供电,在此电路设计中采用spx1117m3-3.3电压调节器来进行电压转换。电源电路的外围电路连接如图4所示。
图4 电源电路设计原理
在编写C语言程序采用Keil uVision4开发软件。MSP430单片机为中心控制系统,配有nRF24L01无线收发模块,对采集的语音信号进行无线传输。通过对nRF24L01模块的认真研究,编写了无线系统传输的接收和发送程序,使用nRF24L01的Enhanced Shock Burstrm通信方式,2 Mbit·s-1的传输速率,2 ByteCRC校验,RF频道选择为40,选择通道0,发射功率0 dBm。软件主要分为发射、接收模块软件编程部分和nRF24L01模块的程序设计。
3.1 发射、接收模块软件流程
发射部分,nRF24L01的数据发送过程为首先将CE位置低,使得芯片工作在待机模式,再将要发送的数据装载到TX FIFO中,之后将CE位置高,启动发射模式,将数据进行发射在数据接收时,首先需要将芯片的工作模式设置为接收模式,当接收方接收到有效数据后,将数据存放在RX_FIFO寄存器中,产生中断,通知单片机去取接收到的数据。
图5 发射模块的具体流程图
图6 接收模块的具体流程图
3.2 nRF24L01模块的程序设计
nRF24L01共有23个可配置寄存器,在程序开发的过程中,需要对相应的寄存器进行配置,才能保证nRF24L01模块的正常工作。
nRF24L01模块的初始化配置包括将nRF24L01工作通道频率设定为40 MHz,允许数据通道0接收以及开启自动应答,在编程过程中,传输数据长度设置为32 Byte,空中发射速率配置为2 MHz,而发射功率为0 dBm,2位CRC校验以及工作模式的设置。
整个系统测试由发射电路和接收电路构成,接收电路与PC机相连,用于观察接收到的数据是否正确。
本文使用声音测试软件Audio Tester对系统进行了验证性测试,该软件可利用计算机的声卡发出指定频率、指定波形的声波。语音信号的频率范围一般在300~3 400 Hz,测试中利用该软件发出1 000 Hz的正弦波,由语音采集系统进行采集传输,上位机监控软件监测到的信号波形如图7所示,系统监测到的信号波,频率集中在1 000 Hz,与软件发出的声波信号相符,从而验证了系统采集、传输的正确性。
图7 监测到的信号波形
通过测试,本系统的主要功能实现成功,但仍存在一些瑕疵,如路径损耗、外界干扰均会对传输产生一定的影响,后续会继续改进。该系统的成本低、体积小,在无线数据传输场合有较为广阔的应用前景。
[1] 王振,胡清,黄杰.基于nRF24L01的无线温度采集系统设计[J].电子设计工程,2009,17(12):24-26.
[2] 刘志平,赵国良.基于nRF24L01的近距离无线数据传输[J].应用科技,2008,35(3):55-58.
[3] 李莎,谭永丽.基于nRF24L01的无线数据传输系统设计[J].湖北第二师范学院学报,2011,28(2):109-111.
[4] Ma Bin,Sun Jie. The research of lighting control system based on NRF24L01 wireless network[J].Advanced Materials Research,2012,488(15):1742-1746.
[5]ZhuYaolin.Designofwirelessmulti-pointtemperaturetransmissionsystembasedonnRF24L01[J].BusinessManagementandElectronicInformation,2011,10(15):1368-1370.
[6]SonavaneSS,PatilBP.ExperimentationforpacketlossonMSP430andnRF24L01basedwirelesssensornetwork[J].JournalofAdvancedNetworkingandApplications,2009, 1(1):25-29.
[7] 鲍金宝,袁冰冰,郭黎利.基于89C52和射频芯片NRF401无线数传模块的设计[J].应用科技,2005,32(12):13-15.
[8] 孙力.C语言程序设计实验指导与习题解答[M].北京:中国农业出版社,2009.
[9] 马忠梅,王美刚,孙娟,等.单片机的C语言应用程序设计[M].5版.北京:北京航空航天大学出版社,2013.
[10]MaBin,SunJie.TheresearchoflightingcontrolsystembasedonNRF24L01wirelessnetwork[J].AdvancedMaterialsResearch,2012,488(15):1742-1746.
[11] 魏小龙.MSP430系列单片机接口技术及系统设计实例[M].北京:北京航天航空大学出版社,2002.
[12] 沈建华,杨艳琴.MSP430系列16位超低功耗单片机原理与应用[M].北京:北京航天航空大学出版社,2008.
[13]NordicIT.nRF24L01singlechip2.4GHztransceiverproductspecification[M].Norway:NordicIT,2007.
[14] 时志云,王代华,张志杰.基于nRF24L01和PIC16F877的无线数据传输系统设计[J].电子测量技术,2008,31(1):127-129.
[15] 王强,张和生,叶华.交通信息采集的UDP通信方法[J].电子测量与仪器学报,2009,23(3):39-44.
Research on Wireless Data Transmission System Based on nRF24L01
CHEN Cheng, LI Ruixiang, LIU Tingting, LIU Yi
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology,Shanghai 200082, China)
Traditional data acquisition systems suffer inflexibility and difficult wiring. This paper introduces the wireless data transmission system based on nRF24L01, and adopts the method of modularization. The system is controlled by the MSP430 MCU, and the data is transmitted between the receiving and sending module through the nRF24L01 chip. The overall structure of the system combines the hardware and software design. Tests show that the system is stable, convenient, effective and reliable in practical applications.
wireless data transmission; nRF24L01; MSP430
2016- 01- 23
陈城(1993-),男,硕士研究生。研究方向:物联网,无线通信。
10.16180/j.cnki.issn1007-7820.2016.11.007
TN919.72
A
1007-7820(2016)11-022-04