基于nRF24L01的移动数据通讯网络设计
2011-07-28曹青梅徐立友曹艳玲席志强
曹青梅,徐立友,曹艳玲,席志强
(河南科技大学 车辆与动力工程学院,河南 洛阳471003)
利用无线射频技术实现无线数据传输具有便捷、成本低、适合可移动设备等优点,特别适用于各种手持式仪器、仪表以及其他不便于布线的嵌入式系统。本文采用无线射频收发芯片nRF24L01组建了可以点对多点之间数据短距离传输的小规模通讯网,并利用时分技术和跳频技术使网内数据之间以及不同网络之间的数据传递互不干扰,保证了数据传递的可靠性。
1 系统基本结构
移动数据通讯网络由移动数据终端、无线数据接收主机、数据处理主机三部分组成,如图1所示。移动数据终端与无线数据接收主机采用星形组网方式,构成点对多点的无线数据双向传输。无线数据接收主机与数据处理主机采用局域网连接,无线数据接收主机接收到的数据存入数据处理主机的数据库,并由数据处理主机进行处理。数据处理主机还可以通过无线数据接收机向移动数据终端发送数据,从而实现对移动数据终端的管理和控制。
移动数据通讯网络也可以通过建立不同工作频率的子网络来进行扩展。图1中网络1内的移动数据终端和无线数据接收主机使用同一初始工作频率和跳频表,网络2使用与网络1不同的频率和跳频表,从而使两个网络内的通讯互不干扰。采用这种允许多个不同频率的网络同时进行通讯的扩展方式可以增加网络内移动数据终端的数量,缩短子网内数据接收主机的轮询时间,从而提高整个网络的工作效率。
2 nRF24L01芯片特点和工作原理
nRF24L01无线通讯芯片工作在 2.4 GHz~2.52 GHz免许可证ISM频段,高效GFSK调制,抗干扰能力强;工作频率可分为125个信道,支持高速跳频,能够在全球无线市场畅通无阻。nRF2401支持多点间通讯,最高传输速率达1 Mb/s。同时nRF2401芯片能耗非常低,其工作电压为 1.9 V~3.6 V,以 0 dBm的功率、1 Mb/s的传输速率发射时,工作电流只有11.3 mA,接收时工作电流只有11.7 mA,待机模式下状态为 22 μA;掉电模式下为900 nA[1,2]。nRF24L01 是目前体积最小、功耗最少、外围元件最少的低成本射频系统级芯片之一。
nRF24L01一般常采用突发工作模式进行数据的收发。发射数据时,首先将芯片配置为发射模式,并把发射地址和数据从微控制器送入nRF24L01片内的FIFO堆栈区。nRF24L01在发送数据时,自动给所发射数据加上字头、地址和CRC校验码,然后高速发射。如果开启了芯片自动应答功能,则nRF24L01芯片在发射完数据后立即进入接收模式,以接收应答信号。如果收到应答,则此次通讯成功;如果未收到应答,则自动重新发射,若重发次数达到设定的上限,配置寄存器的MAX_RT位置高,表明通讯失败。
nRF24L01接收数据时,需先配置为接收模式,延迟130 μs之后即进入接收状态。当 nRF24L01接收到数据时,若检测到有效的地址和CRC校验码时,便自动把数据中字头和CRC校验码移去,并把有效数据包存储在接收堆栈中。如果自动应答开启,接收方同时进入发射状态回传应答信号。接收过程完成后,nRF24L01通知微控制器读取数据。
nRF24L01射频协议可以通过SPI口对芯片的配置寄存器写入相应的配置字来体现。突发模式的配置字共有30 B,主要用于设置工作模式、传输数据宽度、地址宽度、地址、通道、发射频率、发射功率、CRC、工作状态、自动应答使能、自动重发的次数等。配置完成后,在nRF24L01工作的过程中,只需改变其REXN配置寄存器相应位的内容,就可以实现接收模式和发送模式之间的切换。
3 移动数据终端设计
3.1 移动数据终端硬件设计
移动数据终端的系统硬件由单片机、nRF24L01无线射频模块、液晶显示模块、信息数据采集(包括采集传感器信号和按键信号)模块和电源模块组成。nRF24L01无线射频模块的外围电路如图2所示。nRF24L01无线射频模块与微控制器相连接的引脚有 CE、CSN、SCK、MOSI、MISO、IRO。CE决定是否允许收发信号。CSN为芯片内部SPI硬件接口的使能端,低电平有效,SCK为SPI的时钟输入端,MOSI为SPI接口的数据输入端,MISO为SPI接口的数据输出端,IRQ为中断请求端,nRF24L01输出3种中断请求:发送数据完成中断、接收数据完成中断和重发次数超限中断。这些引脚可以与3.3 V供电的微控制器的普通I/O口直接相连,对于5 V供电的微控制器,则需要串联2 kΩ的限流电阻。
3.2 通讯协议的设计
移动数据终端数据传输的可靠性是无线通讯系统必须要解决的问题。虽然nRF24L01内部通讯协议中的差错重传机制对接收的每个数据帧进行片内CRC校验,可以保证接收数据的正确性。但在多机无线数据通讯组网中,会因为网内多机通讯中多点接入冲突、不同网络间同频率干扰、以及其他应用电路和外界的噪声干扰,或者元器件老化导致的信号衰减等造成传输过程中数据丢失[3]。针对上述问题,可以分别通过制定合理的通讯协议进行解决。
网内多机通讯过程中,由于从机的频率是相同的,如果遇到多个从机同时发射数据就会产生网内同频干扰。采用时分技术,通过无线数据接收主机扫描轮询网内移动数据终端的方法,可以实现同一时间点接收主机接收数据终端的数据是点对点数据通讯,从而解决多点接入冲突。移动数据终端将需要发射的数据存在发射寄存器内,先将数据终端设为接收状态,一旦接收到无线数据接收主机发送的广播信息就与本机的机器码相对照,如果机器码不对应则继续接收,如果与本机机器码一致则立即进入发射状态将存在发射寄存器内的数据发射出去,同时检测应答信号ACK。如果发射成功则进入待机模式,等待需要发射的数据,否则重新发射。
由于移动数据终端工作在免许可证ISM频段,所以就有与周围其他的无线射频设备出现同频的可能。为了避免不同网络间同频率干扰,移动数据终端采用跳频的方法,选取通讯质量好的频点来替换被干扰的频点。相对于军事用途的无线通讯系统,移动数据终端所受的干扰是随机和无意识的[4],所以可以采用比较简单的自适应跳频协议[5-6]。在通讯的空闲阶段,无线数据接收主机向网络内的移动数据终端节点发送信标帧,同时检测反馈信号。如果没有收到网络内的移动数据终端的有效信号,则丢帧计数值加1。当丢帧计数值在设定时间内大于规定值,则认为目前的信道质量不佳,无线数据接收主机向网内的发送数据终端广播信息进行跳频。如果终端节点与主机失去联系,则按照事先设定的跳频表切换信道,以捕获接收主机的信标帧信息。
3.3 移动数据通讯网络软件设计
移动数据终端通讯网络的软件部分主要包括主程序、初始化程序、跳频处理子程序、信息处理子程序等,通过主程序对各子程序的调用实现系统总体功能。
初始化程序的主要功能是设置数据终端和接收主机的工作模式、数据通道、接收地址、CRC模式、重发次数、发射功率和初始握手频率。信息处理子程序的功能是信息采集、显示和存储,采用中断触发的方式实现运行。接收主机跳频处理子程序的功能是在系统初始化后,通过轮询的方法检测反馈信号,如果系统轮询丢帧计数值大于规定值或数次轮询反馈信号出现不一致的现象,则判断出现干扰频率,根据跳频表重新设置系统通讯频率。移动数据终端的跳频处理子程序的功能是在系统初始化后检测接收主机的信号,如果在一定时间内检测不到主机信号,则按跳频表切换信道,直到检测到主机的握手信号为止。系统主程序流程图如图3所示。
在数据终端和接收主机初始化并相互检测握手信号之后,数据终端处于接收模式,接收主机处于发射模式并发射带有数据终端号码的广播轮询信号。数据终端接收到广播信号后与自己的机器码对照,若不对应则丢弃此信息并继续保持接收状态,若机器码对应,则根据目前是否有需要发射的信息向主机发射数据信息或仅发射响应信号。信号发射完毕后,数据终端回到接收模式。主机接收到数据信号,即立即向数据终端发射响应信号并向上位机传递数据,若仅接收到数据终端的响应信号或在规定时间内未接收到信号则将数据终端机器码的地址指针加1开始下一轮询问。数据终端发射数据信息之后需要等待主机的反馈信号,若接收到反馈信号则显示发射完成,若在规定时间内未接收到反馈信号则提示发射超时,信息需要在下一次轮询过程中重新发射。
基于nRF24L01的移动数据通讯网络已经成功应用于科研评价系统中的评委分数采集。移动数据终端经过测试,可靠的数据传输距离在70 m以上;轮询子网内60台移动数据终端时,无线数据接收主机所用时间不超过1 s;通过设置不同初始频率和跳频技术的应用,在同一地点可以允许同时存在多个移动数据终端的通讯子网络。测试结果表明本文所提出的软硬件设计方案能够满足近距离无线数据网络传输的需要。
[1]Nordic Corporation.nRF2401 Wireless hands-free DEMO[EB/OL].(2008-11-21)[2011-03-16].http://www.Nordic.com.
[2]李泉溪,孙君顶.基于无线传感器网络的煤矿报警系统节点的设计及实现[J].微计算机信息,2008,24(5):265-267.
[3]HAYKIN S.Cognitive radio:brain-empowered wireless communications[J].IEEE journal on selected areas in communications,2005,23(2):201-220.
[4]郝卫亮.无线传输系统中nRF2401芯片数据丢失问题的研究[J].电子技术应用,2007,33(8):55-57.
[5]刘琪,苏伟,李承恕.基于跳频的自适应频谱共享方案[J].电子学报,2010,38(1):105-110.
[6]郭丽华,穆晓敏,朱春华.一种新的A适应跳频通信系统[J].电讯技术,2009,49(2):19-23.