1 引言
投票表决器在选举,会议,教学,娱乐节目中得到大量的使用。现行的无线表决系统采用单一的无线网络,使无线终端设备与上位机进行通信。由于无线网络存在传输距离有限,对障碍物穿透性较差等问题,无法实现远程监控和多会议室同时投票等问题。本文利用Zigbee 技术具有低功耗,使用频段免费和以太网具有传输远,传输速率快等特点,将二者相结合,设计了一款无线投票表决器基站。实现了无线投票表决器远程监控和多会议室同时投票功能。
2 系统概述
整个无线投票表决器系统,由监控中心,基站,表决器组成,如图1 所示。基站既作为远程监控中心与无线投票表决器设备通信的枢纽,并且还作为无线投票表决器网络中的协调器,维护和管理整个无线网络。基站收集各投票表决器的投票情况,接受远程监控中心的指令和定时访问。
图1 无线投票表决器系统整体结构
3 硬件设计
基站硬件结构如图2 所示,由ARM7 处理器AT91SAM7X256、无线模块、以太网模块,存储模块,电源模块,和显示模块组成。
图2 硬件整体结构
其中AT91SAM7X256 作为整个基站的主控芯片,由Atmel 公司出品,它集成了ARM7TDMI 处理器,片内256KB Flash 和64KB SRAM,还包括了USART、SPI、CAN 控制器、Ethernet 网口等外围设备。
无线模块采用CC2520 芯片。CC2520 是由TI 公司推出的第二代基于Zigbee/IEEE802.15.4 协议的收发芯片。丰富的硬件支持帧处理,数据缓存,数据加密,CCA 等操作。CC2520 通过SPI 接口与AT91SAM7X256 实现通信。AT91SAM7X256 分别通过/CSN 引脚和VREG_EN 引脚对CC2520 进行片选和使能,GPIO4 引脚为AT91SAM7X256 提供接收数据帧起始信号和发送数据帧结束信号。
以太网模块采用DM9161 芯片,DM9161 是Davicom 公司推出的能实现全部10M/100M 以太网物理功能的低功耗高性能物理层收发器。
4 软件设计
图3 软件整体结构。
软件整体结构框图如图3 所示。本基站采用μC/OS-II 操作系统,并在此操作系统上完成基于TCP/IP协议的LwIP 协议栈和基于Zigbee 协议的msstatePAN协议栈的移植,以及以太网网卡驱动程序,无线收发芯片驱动程序,应用程序的编写工作[3,4].下面将详细对驱动程序和应用程序进行详细的说明。
4.1 以太网网卡驱动
由EMAC_INIT()函数完成对EMAC 的初始化设置,其中包括对EMAC 操作模式、MII 接口和PHY进行配置,设置发送和接收缓冲区描述符[5].MII 接口是IEEE-802.3 定义的以太网行业标准,用于 FastEthernet MAC-block 与各种类型的PHY 连接[6]. 它包括一个数据接口,以及一个MAC 和PHY 之间的管理接口。在PHY 上电后,先对DM9161 进行一次软件复位操作,待软件复位结束后使EMAC 和PHY 各自进行初始化设置,并使能EMAC 和PHY 接口,然后实现自动协商过程,在自动协商过程中,依靠MDIO接口是EMAC 和PHY 进行通讯,使二者配置成相同的速度和双工模式。最后设置EMAC 地址并完成接收和发送缓冲区标识符的初始化工作,使得每个描述符指向正确的缓冲地址并将描述符首地址写入队列指针寄存器。EMAC 的数据包读取和数据包传送分别由EMACReadPacke()和EMACSendPacket()函数来完成,其中为了保证获得正确的数据包读取位置在读取数据包之前必需先调用GetInputPacketLen()函数获得数据包的长度。
4.2 Zigbee 收发芯片CC2520 驱动
由初始化模块,数据发送模块和数据接收模块组成。通过初始化模块对CC2520 进行初始化配置。其中包括对CC2520 进行启动,设置网络频道号,发射功率,自动CRC 校验,将GPIO4 管脚配置成用来接收SFD 帧起始信号。
发射模块完成数据的发送任务。下面程序为数据发送过程。
先清除发送缓冲区,再将待发数据包写入发送缓冲区内并进入待发状态,然后根据GPIO4 管脚信号判断数据是否发送完毕,若未发送完毕继续等待,若发送完毕清楚SFD 标志位,最后使CC2520 进入空闲状态。
接收模块完成数据的接收任务。当检测到CC2520的GPIO4 管脚的SFD 信号后,产生中断,进入到接收中断服务程序。接收中断服务程序与发送程序类似,这里不再一一列出。
4.3 应用层
主要实现:1.以太网和Zigbee 网络的建立。2.接受远程监控中心的访问和各项指令。3.维护并管理整个Zigbee 网络。4.接收来自Zigbee 网络中的各投票表决器的投票数据帧。程序流程图如图4 所示。
首先建立以太网络,完成与上位机的连接后,上位机向基站发出建立无线投票表决器网络的基础信息帧。基站根据基础信息帧中指定的频段,PAN 号,发射功率等参数建立Zigbee 网络。各无线表决器申请加入该网络,成功加入后将会将获得由基站(Zigbee 网络中的协调器)分配的一个16 位动态网络短地址。并同时提示用户表决器通信正常。否则提示通信失败。
在设定时限内,基站统计成功加入该网络的投票表决器数目,并向上位机发送统计结果。屏蔽此后所有申请加入该网络的投票表决器设备直到基站收到上位机更新网络的命令。上位机收到参与该阶段的投票表决器总数若大于设定的最低人数时,则向基站发送投票信息帧。若参与该阶段的投票表决器总数若小于设定的最低人数时上位机则向基站发送延长等待投票表决器加入网络的时限指令。若再次超过时限仍未达到指定人数则提示该阶段投票无效。投票信息帧中包括本阶段投票的投票格式,投票类型等内容。基站收到投票信息帧后并向整个Zigbee 网络进行广播,此时投票开始进行。Zigbee 网络中的各投票表决器根据收到的投票信息帧,将提示用户进行相应的投票操作。用户完成投票操作后,投票表决器将投票数据帧发送给基站,基站将投票数据帧存入到Zigbee_BUF 数据缓冲区中,并向投票表决器发送回复帧,向用户指示成功发送。然后收回该投票表决器的网络短地址,使其脱离该网络,防止用户进行二次投票。
图4 应用程序。
上位机定时向基站进行访问,基站收到访问请求后向上位机传输数据缓冲区内容。上位机收到后返回信息确认帧。基站接受到上位机的信息确认帧之后清除数据缓冲区内容。基站在规定投票时限内,收回所有网络短地址,使本次加入该网络的投票表决器全部脱离,停止用户进行投票。
完成该阶段投票过程后,进入新阶段投票时,上位机向基站发送更新网络命令。此时,基站重新允许投票表决器加入该网络。开始新一轮的投票过程。
4.4 实现结果
基站完成了联调工作。成功的实现了本文介绍的全部功能。图5 为频谱仪监测基站与无线投票表决器进行通信时的数据传输情况。
图5 远程监控中心上位机监控软件。
5 结论
本文设计的基站实现了以太网和Zigbee 网络的连接,为Zigbee 网络实现远程监控提供了一些思路。该基站已投入市场,并取得良好的经济效益。如何在功耗和传输速度上提高基站的性能以及设计出能与现行的多种协议互联的基站是我们今后研究的重点。