基于nRF2401的无线数据通信系统

更新时间:2023-07-29 19:03:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于nRF2401的无线数据通信系统

文章编号:1002-8692(2008)S1-0072-02

基于nRF2401的无线数据通信系统

刘晓红,何永洪

(重庆邮电大学通信工程学院,重庆400065)

【摘

实用设计··

要】设计了一种利用nRF2401和ARM芯片LPC2104构成的无线数据传输系统,讨论了系统的硬件电路设计和软件设计,以

及无线数字传输芯片在突发传递模式下通过单片机的控制进行无线数据传输的原理。设计了在突发传递模式下可实现半双工通信的通用电路,运行表明,该系统控制方便、工作稳定,能实现可靠的无线数据传输。【关键词】nRF2401;无线数据通信;数据传输【中图分类号】TN925

【文献标识码】A

WirelessDataCommunicationSystemBasedonnRF2401

LIUXiao-hong,HEYong-hong

(SchoolofCommunicationandInformationEngineering,ChongqingUniversityofPostsandTelecommunications,Chongqing400065,China)

【Abstract】AwirelessdatatransmissionsystemimplementedwithanRF2401andanARMsinglechipLPC2401isdesigned.The

systemhardwareandsoftwaredesignsarediscussedindetail,andthetheoryofwirelessdatatransmissionwithwirelessdigitaltransmissionchipundertheShockBurstmodeisanalyzed.Theoperationofsystemshowsthatitiseasytocontrolandstablytoperformreliablewirelessdatatransmission.

【Keywords】nRF2401;wirelessdatacommunication;datatransmission

1

引言

nRF2401是挪威Nordic公司推出的单片无线收发

nRF2401使用片内的FIFO堆栈区,数据低速从微控制器送入,但以高速(1Mbit/s)发射数据,这样可以尽量节能,而且使用低速的单片机也能实现很高的发射数据速率。

一体芯片,工作于2.4~2.5GHz的ISM(工业、科学和医疗)频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,只需少量外围元件便可组成射频收发电路,常用于无线鼠标和键盘、无线手持终端、无线频率识别、数字视频、遥控和汽车电子等方面。

nRF2401内置循环冗余校验(CRC)纠检错硬件电路和协议,可完成RF检验,发射数据时自动加上处理字头和

CRC码,接收数据时自动把字头和CRC码移去。每个芯片可通过软件设置最多40bit地址,只有收到与本机地址一致时才会接收数据。因此,在本系统中选择突发模式作为其工作方式。

nRF2401采用SoC(片上系统)方法设计[1],有125个频道,支持多点间通信和跳频通信,最高传输速率达到

1Mbit/s,内置硬件CRC检错和点对多点通信地址控制。nRF2401没有复杂的通信协议,对用户完全透明,同种产品之间可以自由通信。

2.2状态字

nRF2401具有144bit状态字。控制器将nRF2401设为配置方式,然后由通道1向nRF2401写入状态字的配置值,写时高位在前。配置方式下控制器写状态字的过程与激活方式下向nRF2401写人数据的过程完全相同,都经由CLK,DR和DATA组成的三线接口完成[2]。

LPC2104带有一个支持实时仿真和跟踪的ARM7TDMI-SCPU,并嵌入了128Kbyte高速Flash存储器和RealMonitor模块支持实时调试。它拥有双UART、

I2C串行接口、SPI串行接口、通用I/O口等,适用于工业控制。

2.3数据帧格式

nRF2401在突发传递模式下的帧格式见图1。

PRE-AMBLE

ADDRESS

PAYLOAD

CRC

2

2.1

nRF2401芯片主要特征及工作原理

工作模式

图1nRF2401的帧格式

nRF2401有4种工作模式,分别是配置模式、收发模式、空闲模式以及关机模式,这4种模式由PWR-UP,

RE-AMBLE为数据包头,可设为4bit或8bit。它的值与ADDRESS第1位有关。当ADDRESS第1位为0时,包头取值为01010101,反之则为10101010。一帧数据从ADDRESS到CRC最多包含256bit。ADDRESS为接收方通道硬件地址段,可设定为8~40bit,只有符合本

CE,CS3个引脚控制。

nRF2401的收发模式有ShockBurstTM收发模式(突发模式)和直接收发模式。在ShockBurstTM收发模式下,

基于nRF2401的无线数据通信系统

机硬件地址的数据帧才会被接收。CRC为数据校验段,开始

可设定8bit或16bit校验位。PLYLOAD段为待发送数nRF2401初始配置子程序

AT89C52初始化子程序

据段,长度为帧长度减去ADDRESS段和CRC段的长进入激活方式度。发送数据时,控制器将数据写入nRF2401,控制其将N

数据按帧格式打包无线发送;接收数据时,nRF2401一旦N

位是否为1?

是否为检测到符合本机硬件地址的数据帧,便将数据帧解包,

Y

DR信号置1提请控制器读取数据。

进入接收状态进入接收状态3

硬件电路设计

发送1位数据

N

接收1位数据

N

nRF2401与微处理的接口有I/O直接连接方式和

Y

Y

SPI连接方式。本系统选用SPI连接方式,可以充分发挥Y

SPI接口的高效以及nRF2401高速无线传输的优势,数数据软校验子程序据吞吐量大。CPU只要将要发送的数据写入SPI的缓存,接收数据是否正确?

就可以执行其他程序。

N

与LPC2104的SPI接口相比,nRF2401只有1个

丢弃接收数据请求重发

DATA数据端口与之对应。将LPC2104的SPI接口MOSI图3系统软件设计流程图

和MISO接2kΩ的电阻,另一端接到nRF2401的DATA端口,以实现阻抗匹配和隔离(见图2)。但在软件设计过验段,单通道接收,ShockBurstTM突发模式,通信速率程中,因在用SPI进行数据传输时会有误码产生,如

为1Mbit/s,晶振频率16MHz,输出功率0dBm,工作LPC2104直接用SPI的方式对nRF2401进行初始化会导频段2402MHz,接收状态。

致初始化失败,故采用先将LPC2104的MOSI配置成普

2)LPC2104向nRF2401发送数据

(1)设置CE高,使nRF2401进入TX模式;PWR-UP通I/O口,以较慢发送速DRI

(2)nRF2401的Data脚为输入状态;

MUPCS

率完成nRF2401初始化

(3)主机通过MOSI写入数据,从MISO读出数据;SPIMaster

CE

CLKnRF2410

工作,再将LPC2104的I/

(4)设置数据通过nRF2401的Data脚输入,并输入MISO

2kΩDATA

O配置成SPI接口并且初道MISO

2kΩ

始化SPI寄存器。这样可TXFIFO;

(5)设置CE低,开始突发传输模式。

图2硬件连接示意图

以保证nRF2401芯片的3)LPC2104从nRF2401读取数据

配置字准确无误。

(1)nRF2401在接收模式下,并且已经接收到数据包;配置模式时单片机通过CLK和DATA端向

(2)主机通过MOSI写入数据,从MISO读出数据;nRF2401发送配置字,发送数据时通过CLK1和DATA(3)因为有2个电阻,在MOSI写入的数据不会影端向nRF2401发送地址和数据,接收数据时通过CLK1响从和DATA端从nRF2401读取数据nRF2401输出的数据,控制器循环监测系统状态,。

当有数据要发送,控制nRF2401读出数据;当接收数据4LPC2104对nRF2401的软件控制

就绪,从nRF2401读出数据。接收数据时,为确认数据的系统软件流程图如图3所示。

正确性,在使能位16检验段的同时,增加程序数据软校nRF2401的与LPC2104的通信过程如下[3]:验功能。

1)LPC2104配置nRF2401

nRF2401数据发送函数定义如下:

(1)设置CS高,CE低,使nRF2401进入编程模式;voidnRF2401_TxPacket(unsignedcharTxBuf[]){uint32i;

(2)nRF2401的Data脚为输入状态;

unsignedcharvariable2;(3)主机通过MOSI写入数据,从MISO读出数据;IOSET=CE;//CE=1;

(4)配置数据通过nRF2401的Data脚输入。Delay100();

按照硬件电路设计,系统只需对状态字后120bit进for(i=0;i<(ADDR_W/8);i++)行配置,其值为0x500800d0dddddd00dddddddd836f5。配{variable2=TxAddress[i];置后nRF2401的频道1数据段长度为8bit,地址段长度ByteWrite(variable2);为32bit,频道1硬件地址为0xdddddddd,使能位16校

}

(下转第81页)

基于nRF2401的无线数据通信系统

systemswithinter-pulseinterference[C]//Proc.[S.l.]:IEEEPress,2005:420-424.

[4]CASSIOLID,WINM,MOLISCHA.Theultra-widebandwidthindoorchannel:Fromstatisticalmodeltosimulations[C]//Proc.IEEEJ.Select.AreasCommun.[S.l.]:IEEEPress,2002,20:1247-1257.[5]BAHRAMGIRIH,SALEHIJ.Multipleshiftacquisitionalgorithminultra-widebandwidthframetime-hoppingwirelessCDMAsystems[C]//Proc.13thIEEEPersonal,IndoorandMobileRadioCommun.[S.l.]:IEEEPress,2002,4:1824-1828.[6]

YANGLiuqing,

acquisition

TIANZ,of

ultra

GIANNAKISGB.-wideband

Non-dataaided

using

timing

transmissions

2005IEEE6th

Telecommunications.[S.l.]:IEEEPress,206:258-261.[12]

FRANZS,

MITRAU.

Integrationintervaloptimizationand

performanceanalysisforUWBtransmittedreferencesystems[C]//Proc.JointUWBST.[S.l.]:IEEEPress,2004:26-30.

[13]AEDUDODLAS,VIJAYAKUMARANS,WONGTF.Acquisitionofdirect-sequencetransmittedreferenceultra-widebandsignals[C]//Proc.IEEEJournalonSelectedAreasInCommunications.[S.l.]:IEEEPress,2006:759-765.[14]

DJAPICR,

LEUSG,

VEENAJ.

Blindsynchronizationin

asynchronousUWBnetworksbasedonthetransmit-referencescheme[C]//Proc.ConferenceRecordoftheThirty-EighthAsilomarConferenceonsignals,systemsandCompurers.[S.l.]:IEEEPress,2004:1506-1510.

[15]HOMIEREA,SCHOLTZRA.Signalgraphapproachforhybridacquisitionofultra-widebandsignals[J].

InternationalJournalof

wirelessInformationNetworks,2003,10(4):179-191.

[16]VIJAYAKUMARANS,WONGTF.Asearchstrategyforultra-widebandsignalacquisition[J].2015-2019.

作者简介:

康荣宗(1983-),硕士生,主研超宽带无线通信系统;汪

涛(1978-),博士生,讲师,主研超宽带无线通信系统;刘洛琨(1963-),副教授,硕士生导师,主要研究方向为卫星通信系统、无线自组织网络、超宽带无线通信系统;

剑(1973-),博士生,讲师,主研超宽带无线通信系统。

收稿日期:2008-06-21

责任编辑:许

WorkshoponSignalProcessingAdvancesinWirelessCommunications.

cyclostationarity[C]//Proc.2003IEEEIntl.Conf.Acoustics,SpeechandSignalProc.[S.l.]:IEEEPress,2003,4:121-124.[7]

TIANZ,

GIANNAKISGB.

AGLRTApproachtodata-aided

timingacquisitioninUWBradios-partI:algorithms[J].IEEETransOnwirelessCommunications,2005,4(6):2956-2967.[8]

TIANZ,

GIANNAKISGB.

AGLRTapproachtodata-aided

timingacquisitioninUWBradios-partII:trainingsequencedesign[J].IEEETransWirelessCommunications,2005,4(6):2994-3004.[9]

HENing,

TEPEDELENLIOGLUC.

Fastandlow-complexity

frame-levelsynchronizationfortransmittedreferencereceivers[J].IEEETransWirelessCommunications,2007,6(3):1014-1023.

[10]CHAOYL,SCHOLTZRA.Optimalandsuboptimalreceiversfor

transmitted

reference

ultra-wideband

systems.

[C]//Proc.

GLOBECOM2003.[S.l.]:IEEEPress,2003:759-763.

[11]YANGGang,KANGJie.NovelPNsequenceassistedtransmittedreferencesystem[C]//Proc.

20066thInternationalConferenceonITS

mun,2005,53(12):

笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕笕

(上接第73页)

for(i=0;i<(DATA1_W/8);i++){variable2=TxBuf[i];ByteWrite(variable2);}

IOCLR=CE;Delay100();Delay100();}

//CE=0;

5

小结

调试结果表明,nRF2401芯片可以与微控制器连接

实现无线数据通信,通信质量可靠稳定,传输速率也能适应不同应用领域。笔者给出了nRF2401芯片与LPC2104的接口设计,解决了串行接口误码率高的问题。该设计可以嵌入各种无线传输系统,成本低,功耗小,具有很好的通用性。参考文献

[1]nRF2401与SPI接口[EB/OL].[2008-02-18]./SPI%20interface.pdf.

2]张崇,于晓琳,刘建平.单片2.4GHz[EB/OL].[2008-02-18]./Technic/technic/2007/4/5/IcNews9078.htm.

[3]周立功.ARM微控制器基础与实战[M].2版.北京:北京航空航天大学出版社,2003.

nRF2401数据接收函数定义如下:

unsignedcharnRF2401_RxPacket(unsignedchar*RxBuf)

{uint32i;IOSET=DR1;if(DR1)

{for(i=0;i<DATA1_W/8;i++){*RxBuf=ByteRead();RxBuf++;}return1;}return0;}

//DR1=1;

作者简介:

刘晓红(1985-),女,硕士生,主研电信增值业务;何永洪,重庆邮电大学副教授。责任编辑:任健男

收稿日期:2008-06-18

本文来源:https://www.bwwdw.com/article/e92m.html

Top