基于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