摘 要:利用CC2430无线收发模块实现数据的采集和无线传输,现场采集器采集数据并通过逐级跳转的方式把数据传送到协调器,协调器通过RS232串行口与ARM处理器通信并实现在ARM上的实时数据采集和显示,ARM处理器最终通过网线连接井下路由器与井上PC机进行通信,接入局域网中的客户端可以随时以网页形式访问ARM上的数据以及实时的视频监控。以网页的形式访问ARM上由ZigBee传来的数据是该项目中的一大创新点,此外,协调井下ARM与井上PC间通信的路由器本身就具有易于扩充节点和扩大网络规模的优势。
关键词:ZigBee;无线传感网;CC2430;ARM处理器;Web
随着国家对煤矿安全生产工作的日益重视,而且近几年来,ZigBee技术在中国迅速发展,基于ZigBee的无线传感网成为业界的研究热点,人们通过研究发现基于ZigBee的无线传感网具有数据传输安全可靠、组网简易灵活、设备成本低、使用寿命长等优势[1]。ZigBee技术是一个具有统一技术标准的短距离无线通信技术,其物理层和媒体访问控制层协议基于IEEE802.15.4协议标准,网络层和应用层由ZigBee联盟制定。为了充分利用ZigBee无线传感器网络,有必要将已经成熟的基于TCP/IP技术的以太网与ZigBee无线传感网络相结合,从而实现以太网通过网关来访问ZigBee无线传感器网络。
传统的网关大多是用单片机来实现,本设计把嵌入式系统的ARM处理器和Linux操作系统加进网关系统,能够更高效、更稳定地传递来自无线传感网络的数据和来自以太网的用户控制命令,同时还能实现ZigBee无线传感器网络新节点的动态链接[1]。
1 系统概述
无线传感网对网关的要求较高,用传统的单片机技术实现比较复杂,采用具有较强信息处理能力和网络功能的ARM9系列芯片S3C2440作为处理器,在Linux2.6.32操作系统下设计ZigBee与TCP/IP间通信的网关。Linux嵌入式系统与ZigBee无线传感网络相结合,可以实现各节点有序、高效的工作[1]。
前端采集器ZigBee负责采集信息,采集器将温度、电压(瓦斯气体浓度可通过传感器转换成电压参量)等数据采集后通过无线转发给协调器,协调器接收信息并通过串口将信息传给ARM,ARM作为网关一端连接ZigBee组成的无线传感网,另一端连接以太网,在ARM上又建有基于BOA的Web服务器,井上接入局域网的客户端可以通过网页访问ARM上的数据以及对井下实时的视频监控。ARM可以在井下实时显示温度、电压等信息以及控制全网报警,实现矿井下的实时监控。系统的整体构建如图1所示。
2 硬件设计
2.1 采集器模块
采集器模块采用CC2430芯片,CC2430芯片除了具有符合IEEE 802.15.4规范的2.4 GHz无线射频前端,它还在片内集成了微处理器,这种在单芯片上集成RF射频、处理器和内存的ZigBee解决方案的优点是集成度高、功耗低, 它只需要很少的外部元器件就可以实现无线传输[2]。负责数据的采集和预处理的ZigBee模块称之为采集器,如图2所示。
2.3 处理器模块
网关采用嵌入式系统技术,基于Linux操作系统本身的易于移植、开源、优异的网络支持等优点,采用ARM9处理器加上Linux操作系统来设计ZigBee与TCP/IP间通信的网关。嵌入式系统与ZigBee无线传感器网络相结合,可以更好地控制网络的信息传递。
ARM通过串口接收协调器传来的信息,并将信息及时保存下来。为了实现对多个ARM的访问,将ARM通过网线连接至路由器,路由器连接到局域网中,这样可以更好地扩充网关节点的数量,有效地扩大了网络覆盖面,避免了网络盲区, 降低了安全隐患,具有有线测量和人工测量无法比拟的优越性[3]。结构如图4所示。
2.4 服务器模块及嵌入式开发
分析嵌入式TCP/IP协议的选取原则,采用ARM芯片和网络接口控制芯片设计以太网接口,通过ARM芯片对网络接口控制芯片DM9000的控制过程和TCP/IP协议栈处理数据包的流程,完成嵌入式TCP/IP系统的开发。该系统可以将ARM获得的数据按网络协议处理,实现数据的以太网传输。此时ARM又充当服务器的角色,将信息及时地保存在文件中,然后通过网页读取文件,井上接入局域网的客户端可以通过网页访问ARM上的数据以及对井下实时的视频监控。
3 软件设计
3.1 ZigBee模块程序流程图
先利用IAR Embedded Workbench软件完成C语言程序的编写和编译,然后把程序SimpleCollector烧写到采集器节点上,程序主要负责信息的采集,把程序SimplSensor烧写到协调器节点上,程序主要负责接收协调器的数据以及把数据发送给ARM,最终实现网络的建立和信号在网内的无线传输。
采集器的主要作用是对温度、电压等数据进行采集, 并对数据进行简单的处理,再通过无线信道发送给协调器。首先对采集器进行初始化,包括处理器、协议栈、中断、串口等,其流程图如图5所示。
协调器的主要作用是组建一个网络、接受采集器入网、接收采集器发送来的数据、处理数据并通过串口发送数据至ARM。首先对协调器进行初始化,包括处理器、协议栈、中断、串口等。协调器初始化后新建一个网络并进入网络监听和等待状态,当收到子节点(采集器)的入网请求后,协调器随机给子节点(采集器)分配一个网络地址,之后向子节点(采集器)发送入网确认信息,建立连接,等待接收终端节点发送的采集数据。数据接收成功后发送数据到ARM9。因为协调器始终监测网络信号,所以协调器一直处于正常工作模式。其流程如图6所示[3]。
3.2 ARM处理器程序流程图
ARM处理器的工作主要分为两部分:
(1)将ZigBee传送过来的温度、电压及ZigBee的地址等数据按一定格式存储在普通文件中。程序采用C语言,主要涉及到ZigBee与ARM之间的串口协议通信,以及ARM处理器将内存中的数据写到文件中去。
(2)编写网页能够读取文件数据并显示,在ARM上建立BOA服务器以支持网页能被连接在局域网中的客户端访问。从网上下载BOA的源码之后在Linux系统下进行编译,生成可执行文件BOA,将其拷贝到ARM开发板上;网页主要以html语言完成,能对文件进行读取。先利用嵌入在HTML中的JavaScript读取fil.txt,其中fil.txt文件以行的形式存放数据,每行依次存放的是设备名、温度、温度值或者设备名、电压、电压值。为了保证数据的实时更新,在网页的头部设置每两秒定时刷新一次。为了实现井上接入局域网的客户端同时通过网页访问ARM上的数据以及对井下实时的视频监控,用户可以选择观测ZigBee的数据或者视频监控,有助于提高用户体验。
本文设计的网关已在“矿井监测与应急导引系统网关的设计”项目中得以使用,取得了较好的效果。经测试,该网关具有覆盖范围广、灵敏度高、稳定性好、抗干扰能力强、数据传输准确等特点,并且具有很好的实用性。此外本系统还具有较强的通用性,不仅可以运用于矿井下监测瓦斯浓度,还可以用于对温度、湿度等信号的监测,只需把本系统中的瓦斯传感器换成其他的信号传感器就可以使用[4]。
参考文献
[1] 凌兴锋,何小敏.基于ZigBee的无线网关解决方案研究[J].微处理机,2010,31(4):36-38,42.
[2] ZigBee Alliance.ZigBee Speeifieation[EB/OL].(2006-8-25)[2010-5-4].http://www.C51rf.com/download/read.aspx?id=4.
[3] 王延年,穆文静.基于ZigBee的无线信号采集传输系统的研究[J].西安工程大学学报,2010,24(4):510-515.
[4] 乔大雷,夏士雄,杨松,等.基于ARM9的嵌入式ZigBee网关设计与实现[J].微计算机信息,2007,23(12-2):156-158.