朱福民,沈宇华,江磊
(上海海事大学 物流工程学院,上海201306)
摘要:以工程机械为对象,研究并设计了一个基于ZigBee无线采集网络和GPRS远程通信的实时远程监测系统的无线网关,该网关由ZigBee协调器模块以及GPRS模块组成,以STM32为网关的核心控制器,并对ZigBee协调器和GPRS模块分别进行选型、硬件及软件设计。实现整个实时监测系统需要的相关技术有:ZigBee无线网络、GPRS、TCP/IP通信技术、Zstack协议栈。
关键词:工程机械;ZigBee网关; 远程监测;GPRS;Zstack
0引言
工程机械是国民经济建设的重要装备,在工业建设中占有举足轻重的地位。我国的工程机械行业在全球同行中占有重要位置,产品已经出口到欧美等工程机械强国。因此我国对工程机械产品的高效工作、安全作业的要求越来越苛刻,越来越规范化。近年来随着无线通信网络和嵌入式系统等技术的飞速发展,陆续出现了许多新的短距离无线通信技术,其中以低成本、低功耗、低复杂度为特色的ZigBee技术脱颖而出[1]。
本文研究了一种应用在工程机械远程监护系统中的ZigBee无线网关的设计方法[2]。通过将ZigBee无线网关放置在被监测者的传感器节点,实时采集被检测者的运行参数[3]。这些数据包将由ZigBee网关通过GPRS发送到远程服务器,并在客户端界面进行实时呈现[4]。
图1为基于ZigBee技术的无线网关系统体系结构。
1ZigBee网关模块硬件设计
ZigBee网关的作用就是将ZigBee无线网络中的数据传输到Internet网络的一个通道,没有这个通道,终端设备采集的数据无法送出,其中起到决定性作用的是GPRS无线通信模块,所有的数据只有通过GPRS模块以后,它们才可以访问远端服务器。本文将要实现的ZigBee结合GPRS的网关,其核心模块是由ZigBee的协调器中心节点和GPRS无线模块组成的,其中协调器节点采用美国德州仪器公司(TI)推出的CC2530芯片设计[5]。相比较其他的ZigBee解决方案,CC2530被当做一款主推的新型系统级芯片而得到了广泛的应用,是一款真正意义上的ZigBee体系架构解决方案。如图2所示,协调器节点主要负责将底层网络终端节点采集来的数据封装打包从UART串口传输到GPRS模块,串口是建立CC2530和GPRS联系的桥梁;GPRS模块则负责与远程服务器通信交互,从串口收到协调器采集来的数据之后再传输给远程服务器,将远程服务器发送至网关的指令送至STM32核心芯片进行处理。
本文选用的中央处理器是意法开云棋牌官网在线客服 (STMicroelectronics) 的STM32F103VCT6,这款芯片是基于STM32设计的一款加强型芯片,它拥有ARM CortexM3内核,同时具备卓越的工作性能,低廉的成本和低的功耗。这款增强型芯片的时钟频率可达72 MHz,是其他型号系列无法超越的,它是16位产品的最佳选择。图2是ZigBee网关核心模块,可以发现几个模块主要是通过串口通信。
GPRS模块是网关的另一个重要部分,由CC2530做协调器来开启网络,维护网络,采集终端节点的数据,但只有通过GPRS才能将该局域网内的数据和互联网交互[6]。本文采用的GPRS模块是GU900_GSM_GPRS无线模块,该产品支持业内领先的OPENAT工作方式,用户可以根据自己的需求来自定义应用程序,再将程序二次移植到GU900模块上去。GU900内置了丰富的API函数可供用户参考使用,方便灵活,值得开发利用。
2ZigBee网关模块软件设计
2.1网关系统流程设计
ZigBee的网关设计分成两个部分:协调器部分和GPRS模块部分,协调器负责建立无线采集网络,GPRS模块负责网关和外界网络的通信,协调器和GPRS之间用串口通信[7]。整个网关的工作流程如图3所示。
2.2ZigBee协议的设计
本文所用到的ZigBee协议体系框架总体上分成以下几个层次:从最底层的物理层(PHY),往上是媒体介质访问层(MAC),其等效于数据链路层、网络层(NWK)和应用层。其中,物理层定义了物理无线信道,有3个频段可供ZigBee使用,分别是2.4 GHz和868/915 MHz。媒体介质访问层则负责一切物理层的无线信道访问,产生网络信号和同步信号。使用的Zstack协议(TI公司所推出的ZigBee协议栈)是基于物理层和媒体介质访问层之上的,它主要实现了对网络层和应用层的支持。除了ZigBee体系结构中提到的4个层次,在Zstack协议中还添加了操作系统抽象层(Operating System Abstraction Layer,OSAL),它的地位就像是一个操作系统。Zstack协议栈的系统运行时遵循一个轮询的过程,以物理层为优先级,接着依次是介质层、网络层、硬件层和应用层。每一层都有一个或几个ID号,Zstack轮询代码如下。
do{
If(tasksEvents[idx])
{
Break;
}
}while(++idx
Unit16 events;
halIntState_t intState;
HAL_ENTER_CRITICAL_S ECTION(int State);
events = tasksEvents[idx];
tasksEvents[idx]=0;
HAL_EXIT _C RITICAL_SE CTION(int State);
events =( tasksArr[idx])(idx,events);
HAL_ENTER_CRITICAL_SECTION(int State);
tasksEvents[id x]=events;
HAL_EXIT_C RITICAL_SE CTION(int State);
}
2.3GPRS通信程序设计
ZigBee网关的GPRS模块部分用到了动态域名解析技术,为了实现动态域名解析,使用花生壳DNS服务来绑定域名和动态IP地址[8]。本系统使用的是GU900的GPRS模块,上电GPRS模块后,首先必须配置GPRS的AT命令,其中包括对GU900模块的短信功能还是上网模式的选择,对TCP/IP连接还是UDP连接的配置,远程服务器IP地址或者是域名的配置以及透传模式的切换等;在正确建立了TCP连接之后,等待远程Socket发来采集数据请求;收到请求之后STM32和CC2530就开始采集数据,采集完毕将数据从GPRS送出。
下面是GU900设置AT指令进入无线透传的部分代码,需要对一些参数进行初始化:
AT+CSTT="CMNET" //设置APN
AT+CIPCFG=1,50,0//对GU900进行初始化配置
AT+CIPPACK=0,"00"//设置网络心跳包的格式
AT+CIPMUX=0//设置GU900是在单链接模式下工作
AT+CIPMODE=1//进入透传模式
CIPSCONT=0,"TCP","www.smugenius.com",8080,2//设置成TCP模式,并且以域名的形式进行访问,端口号设置为8080
2.4系统测试
本测试过程中,选取了起重机刚提起物块的这段时间。通过温度传感器和压力传感器将数据传送给协调器,再由GPRS输出,由系统的3个节点在互联网平台的监测界面可知,主泵压力大约为12 MPa,卷扬机起升压力为10 MPa左右,另外,此时油温为50℃左右。
3结论
当前基于ZigBee技术的无线传感器网络受到越来越多的关注,应用也愈加广泛。本文针对工程机械监测系统中无线网络的要求,综合考虑实际应用中的成本和要求,研究并实现了基于ZigBee网络与GPRS模块进行信息交换的网关系统。
本文的创新点:(1)运用ZigBee无线采集网络对工程机械作业时的各项参数进行采集,相比较常规的有线监测方法,ZigBee的测点选择更加灵活,约束更少;(2)ZigBee网络结合GPRS模块组成ZigBee网关,通过网关来与远程服务器通信,传送采集数据,方便工作人员随时随地掌握设备工作情况。
参考文献
[1] 朱福民,刘炎民,朱英翔.基于ZigBee无线传感网络的人体动作信息采集平台设计[J].微型机与应用,2014,33(8):1921.
[2] 谢小芳,黄俊,谭成宇.基于RFID的电力温度监控系统的软件与设计[J].电子技术应用,2013,39(1):2326.
[3] 李红, 杨兆建, 李娟莉. 基于 GPRS 的矿井提升机制动系统故障远程监测诊断系统研究[J]. 机械管理开发, 2012(1): 2427.
[4] 章伟聪, 俞新武, 李忠成. 基于 CC2530 及ZigBee协议栈设计无线网络传感器节点[J].计算机系统应用,2011,20(7):181187.
[5] 张久朋, 王喆, 史洪玮. 基于 TDSCDMA 的ZigBee接入网关的设计[J]. 江汉大学学报 (自然科学版), 2011, 39(1): 5759.
[6] 金福宝. 基于GPRS的桥梁远程监测系统的研究[D]. 哈尔滨:东北林业大学, 2007.
[7] 张久朋, 王喆, 史洪玮. 基于 TDSCDMA 的ZigBee接入网关的设计[J]. 江汉大学学报 (自然科学版), 2011, 39(1): 5759.
[8] 王风. 基于 CC2530 的ZigBee无线传感器网络的设计与实现[D]. 西安:西安电子科技大学, 2012.