基于Zigbee的无线投票表决器基站设计思路
摘 要:设计了一款以ARM7 芯片AT91SAM7X256 为核心,μC/OS-II 为操作系统的基于Zigbee 技术无线投票基站。该基站用于连接Zigbee 网络和以太网。实现了无线投票表决器远程监控和多会议室同时投票功能。主要分析了该基站的软件设计,介绍了基站如何建立无线投票表决器网络,收集表决器的投票情况,接受远程监控访问的过程。并且对其硬件平台的结构做了相应描述。
本文引用地址:http://www.amcfsurvey.com/article/153811.htm1 引言
投票表决器在选举,会议,教学,娱乐节目中得到大量的使用。现行的无线表决系统采用单一的无线网络,使无线终端设备与上位机进行通信。由于无线网络存在传输距离有限,对障碍物穿透性较差等问题,无法实现远程监控和多会议室同时投票等问题。本文利用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 信号后,产生中断,进入到接收中断服务程序。接收中断服务程序与发送程序类似,这里不再一一列出。
评论