基于nRF24E1的嵌入式2.4GHz无线接入系统

作者:吴钊炯 ;张莹 ;刘新朝
1; 概述
在短距离的通信中 , 无线技术被普遍看好 , 其中射频技术因为功耗低和无方向性等优点而受到青睐 。
通信频率为2.4GHz的频段是全球开放的ISM(工业、科学和医学)频段 , 使用者无需申请许可证 , 给开发者和用户带来了很大方便;同时 , 可以有效地避免低频段信号、各类电火花及家用电器的干扰 。因为这一频段具有这些优点 , 其他的一些应用 , 如蓝牙、WLAN , 也是在这一频段;但蓝牙和WLAN对于工业控制、医疗传感器、住宅和楼宇自动化装置等设备来说 , 过于复杂 , 其成本也过高 , 很难满足快速开发和低成本的要求 。因此 , 目前迫切需要一种低成本、低功耗、能够快速开发应用的方案 , 来实现设备的无线连接 。
另一方面 , 经过多年的发展 , TCP/IP协议已经成为目前被广泛应用于Internet的通信协议 。在嵌入式系统中实现TCP/IP协议栈 , 利用Internet进行远程数据传送 , 可以实现对远端设备运行状态的监视和控制 。
在嵌入式TCP/IP平台下利用工作频率为2.4GHz的无线收发模块nRF24E1 , 进行短距离的点对多点的无线通信;用无线技术解决最后10m的通信问题 , 可实现一种无线接入的解决方案 。
2; nRF24E1及其通信协议
2.1nRF24E1模块的基本特性
nRF24E1是北欧集成电路公司(Nordic)推出的一款带8051内核的无线收发模块 , 内部结构如图1所示 。该模块的无线收发器工作于2.4GHz的ISM频段 , 有多达125个的频点 , 可通过改频和跳频来避免干扰 。nRF24E1的集成度非常高 , 内部集成了增强型8051内核,2.4GHz无线收发器,100ksps的9路10位模数转换器 , UART接口 , SPI接口 , PWM输出 , 内置RC振荡器、看门狗和唤醒定时器以及专门的稳压电路 。所有高频元件包括电感、振荡器等 , 全部集成在芯片内部 , 因此芯片的性能稳定 , 受外界环境的影响很小 。
nRF24E1采用36脚QFN(6mm×6mm)封装 , 最大传输速率可达1Mb/s , 灵敏度为一90 dBm , 最大发射功率为O dBm;在较为理想的环境中 , 室内传输距离可达30~40 m , 室外传输距离可达100~200 m;其工作电压为1.9~3.3 V , 工作温度范围为一40~ 80℃ 。
2.2nRF24E1之间的通信协议
nRF24E1的无线数据包格式为
其中 , Preamble是前导码 , 是硬件自动加上去的;ADDR是发送的地址 , 为32~40位;PAYLOAD是有效数据;CRC是CRC校验和 , 由内置CRC纠检错硬件电路自动加上 , 可设为O、8或16位 。ADDR、PAYLOAD和CRC的总长度最大为256位 , 因此 , 设置较短的地址和校验和能提高传输效率 , 但也使得可靠性降低 。
nRF24E1通过软件设置收发模式、收发频率、接收地址、发射功率、CRC校验和的长度、有效数据的长度等 。无线收发器有2个频道:频道1可以接收和发送;频道2只能接收 , 且频道2的接收频率总比频道1高8MHz;同时 , 每个芯片可以设置2个地址 。收发频率和地址随时都可以通过软件更改 , 实现改频和跳频;但是 , 必须通过通信协议解决好 , 一致的频率和正确的地址才是数据传送的前提 。只有地址符合且校验和正确的包 , 才能被进一步处理;若有一项不正确 , 整个数据包就被硬件自动丢弃 。若地址与校验和相符 , 则由硬件产生中断DRl或DR2 , 8051才能将数据接收到缓冲区 。
在同一时刻 , nRF24E1只能处于接收或发送模式中的一种 。一般以接收模式为待机状态 。
【基于nRF24E1的嵌入式2.4GHz无线接入系统】 3; 无线接入解决方案
系统的解决方案示意图如图2所示 。
nRF24E1主机是无线系统的要害部分 。它不但作为接入点 , 负责与嵌入式TCP/IP模块交换数据 , 同时也负责与其他无线模块通信 。
为实现Internet网络互联 , 使用以太网控制芯片RTL8019AS , 并将TCP/IP协议栈嵌入在ATmegal28的内部 。除此之外 , ATmegal28内部还实现了一个小型通用的WebServer , 而远端的PC就作为客户端 。
数据的传送过程是远端PC通过Internet发送数据 , 由RTL8019AS接收数据包 , 再由ATmegal28对TCP/lP数据包进行处理 , 得到PC发送的信息 , AT-megal28再将数据通过SPI接口传送到nRF24E1主机 。nRF24E1主机根据内部协议又将数据传给相应的nRF24E1从机 , 再由nRF24E1从机对各自的设备进行通信或控制 。nRF24E1从机给远端PC传送数据为反向的过程 。

;;; 4; 接入系统的控制及其实现
4.1无线系统的控制方法
将所有的nRF24E1模块都设置为同一频率 , 通过设置不同的地址来区分各个无线模块 。为了避免多个从机同时给主机发送数据产生冲突 , 主机不但要作为接入点 , 同时要控制整个无线系统 , 避免冲突 。
系统采用主机轮询 , 从机应答的方法 , 即主机按照一定的规则 , 给从机发送一个答应从机发送数据的标志 。该标志相当于一个令牌 , 从机若有数据发送 , 得到令牌后 , 可在令牌的有效时间内连续地发送多帧数据 。当然 , 也可以设置只能发送1帧数据 , 数据发送完毕后必须有一个结束的信号END标志;假如从机没有数据发送 , 也必须给主机返回END标志 , 从机的回应可以让主机判定与该从机的通信链路是否正常 。
主机对无线系统的控制主要是通过令牌来实现的 , 因此主机对从机的令牌是否有效的判定是其中的要害 , 而且必须考虑足够的容错性能 。可以通过两个方法来判定和控制令牌的有效时间:一是从机收到令牌到返回END标志的时间内令牌为有效 , 而主机根据从机返回的END标志即可判定该从机的令牌已经失效;二是规定令牌的最大有效时间 , 从机收到令牌后开始计时 , 达到规定的最大时间后 , 令牌自动失效 , 主机也通过计时来判定从机的令牌是否失效 。这两个方法同时起作用 。第一个方法可以提高系统效率 , 避免在空闲的链路上消耗过多的时间 , 使系统的品质得到提高;而设置最大时间是为了限制一个从机占用通信链路的时间 , 也可以防止丢失END标志甚至通信链路不正常所产生的错误 , 尽量减少不正常的链路对系统其他部分的影响 。
当然 , 主机不仅可以采用轮询的方法 , 也可以根据各个从机的通信优先级不同来分配令牌 , 而且每个从机令牌的最大有效时间也可以不一样 。从机必须在令牌的有效时间内才能给主机发送数据 , 每一时刻只有一个从机的令牌有效 , 以避免冲突 。主机要发送数据 , 必须先查询从机的令牌是否有效 。若令牌有效 , 还必须等从机的END标志到来后 , 或者时间超过了令牌的最大有效时间 , 且这时所有从机的令牌都见效 , 主机才可以发送数据 。
4.2系统的实现
nRF24E1主机不但要与ATmegal28通信 , 还要与其他nRF24E1从机通信;同时 , 还要控制整个无线系统 。因此 , nRF24E1主机是整个无线接人系统的要害 , 它能否高效地运行 , 关系到整个系统的效率 。
图3所示为 。nRF24E1主机在正常情况下的运行流程 。主机在令牌发出去以后 , 就只能处于无线接收的状态 , 直到从机的令牌无效后才能进行与ATmegal28的通信或者给从机发送数据 。
nRF24E1从机的通信任务要简单得多 , 另外还有各自的应用 。可以用nRF24E1的I/O端口直接控制设备 , 也可以连接其他MCU实现其他功能 。
由于nRF24E1内置了增强型8051控制器 , 使nRF24E1成为一种集无线数据接收和发送于一体 , 以及对数据进行处理的片上系统(SoC) , 并且有模拟输入和PWM输出 , 因此 , 不但可以作为无线接口实现无线数据传送 , 在一些较为简单的控制系统中 , 可以用它作为控制核心 , 无需另接MCU 。这使得nRF24E1的应用系统更为简化 , 大大增强了无线系统的稳定性和可靠性;同时 , 也使得开发变得简单 , 成本进一步降低 。
在一些较为复杂的系统中 , 由于nRF24E1的端口有限 , 只有256字节的RAM空间 , 805l的处理能力也不是很强 。在这样的系统中 , 可通过连接功能更为强大的MCU , 让MCU进行处理 。应用中 , 采用了ATmegal28 , 而nRF24E1只作为无线通信的接口 , 将数据通过UART或SPI接口传送到Atmegal28 , 让Atmegal28进行较为复杂的运算和处理 。
图4为ATmegal28与nRF24E1的SPI接口电路图 。nRF24E1为SPI的主机 , ATmegal28为从机 。通过SPI接口可使nRF24El与ATmegal28的最大通信速率达到2Mbps , 因此 , 传输的速度可以满足大多数场合的应用 。
本系统可以应用于数据采集系统、信息家电的无线通信接口、住宅和楼宇自动化装置以及工业自动化的无线连接等场合 。上述方案已经在数据采集系统上得到应用 , 很方便地实现了设备间的无线连接;而且对原有模块的改动很少 , 开发时间较短 , 系统的稳定性很好 。
结语
蓝牙工作在2.4GHz频段 , 但由于其芯片的成本一直居高不下 , 产品很难开发 , 因此到目前为止 , 蓝牙的产品还是很少 。另外 , 市场尚未出现非蓝牙不可的应用需求 , 蓝牙的一些市场定位能够轻易地被其他更专业的产品所取代 。nRF24E1就是以较低的价格和较轻易应用开 发等优势来代替一些领域的蓝牙应用 , 为一些只需要简单 的无线连接的应用领域 , 提供一种低成本、低功耗、能够快 速开发应用的方案 , 以实现无线连接 。另外 , 在嵌入式系 统中实现TCP/IP协议栈 , 利用Internet进行数据的远程 传送;而在本地端采用嵌入式的2.4 GHz无线接入技术 , 将这两者结合起来 , 具有一定的先进性和广阔的应用前景 。