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


为实现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的应用系统更为简化 , 大大增强了无线系统的稳定性和可靠性;同时 , 也使得开发变得简单 , 成本进一步降低 。

推荐阅读