历史上的今天
今天是:2025年04月02日(星期三)
2018年04月02日 | 基于Zigbee 技术无线投票基站设计
2018-04-02 来源:eefocus
本文主要介绍了一款以ARM7 芯片AT91SAM7X256 为核心,μC/OS-II 为操作系统的基于Zigbee 技术无线投票基站的设计。该基站用于连接Zigbee 网络和以太网。实现了无线投票表决器远程监控和多会议室同时投票功能。主要分析了该基站的软件设计,介绍了基站如何建立无线投票表决器网络,收集表决器的投票情况,接受远程监控访问的过程。并且对其硬件平台的结构做了相应描述。
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 网络实现远程监控提供了一些思路。该基站已投入市场,并取得良好的经济效益。如何在功耗和传输速度上提高基站的性能以及设计出能与现行的多种协议互联的基站是我们今后研究的重点。
史海拾趣
|
汽车防抱死制动系统(ABS)是在常规制动装置的基础上研究发展起来的一种机电一体化的新型制动系统,其结构、使用、维护等都有其特点。虽然ABS系统的型号繁多,结构又比较复杂,但其使用维护大体相同。无论是使用维护哪种ABS系统,均应注意以下几个问 ...… 查看全部问答> |
|
1.谈谈火花塞 一般用车者相信都会到维修站做一些基本的保养维修工作,如换机油、火花塞等,但阁下是否认识到这些简单的东西,如果选择得宜的话,对爱车的保护及性能,将有很大的功用。 火花塞 汽车改装的基本动作,是从引擎的点火系 ...… 查看全部问答> |
|
在综合中,发现状态机里综合出了latch,是因为FSM里面有段组合逻辑的always块里 有一句A_state=A_state,但是设计里好像又必须保存状态。这样就会综合出latch。请问大家这个latch怎么处理?是一定不能出现latch么? 还是怎么进行latch的时序检查? ...… 查看全部问答> |
|
一,熟练PIC每个指令的使用方法。PIC16F877仅35个指令易学易用。可以用最简单的程序来试验这些指令。二,熟悉PIC内部功能模块的结构与作用。建意对每个模块都亲手做一下最简实验。三,拿一个现成的且程序量较大的程序,花时间去搞懂它然后,修改这 ...… 查看全部问答> |
|
用过IR公司驱动芯片的请进!急需帮忙。IR2118工作不了。。 IR2118外围电路也很简单呀,电源地之间有个电容,VB和VS之间有个自举电容,VCC和VB之间有个二极管。 不管输入信号时低电平还是12V的高电平,输出HO和VS都是一样的电平?为什么呀?怎么做实验都这样。而且VS的电平不同芯片实验结果还不一样,有的是 ...… 查看全部问答> |
|
随着技术的发展,芯片的集成度必然会越来越高,应用领域的延伸会越来越广,现在我们眼中的高端应用也会越来越普及。 曾几何时,个人电脑的普及让人多么欢欣鼓舞,电脑机箱内部的扩展槽,超频,DIY配置都为厂商带来了商机。第一代享受个人电脑的人 ...… 查看全部问答> |
|
哈哈 又来发表了,欢迎大家给些学习的意见!~这个文档通过AMI编码来详细介绍了Chipscope的详细操作,我用的软件是ISE11.1开发板是nexys 2… 查看全部问答> |
|
要求: 1)做过电子开发相关的工作,有相关产品开发实际经验,开发过实际产品; 2)对电子器件比较了解,知识面比较广; 3)工作经验不低于3年,大专以上学历; 4)对工作有热情,能吃苦耐劳,敬业,人品好 工作职责: 1)对立创商 ...… 查看全部问答> |




