基于GPRS的ZigBee协调器网关设计通信

2019-11-09来源: eepw关键字:GPRS  ZigBee协调器  网关

摘要:介绍了一种可进行远程监测和控制的数据采集系统。多个测控节点组成ZigBee无线传输网络,利用GPRS模块连接因特网扩展传输范围,与基于LabVIEW的上位机程序进行TCP/IP协议通信,从而实现远程监控。下位机设计了数据帧和采集控制指令;协调器网关可对数据进行选择性接收和处理,并实现断线后自动连接;上位机完成对采集数据的解析、显示以及保存,并能发送控制指令。

0 引言
ZigBee协议是一种基于IEEE 802.15.4标准的低功耗个域网协议,其主要特点是低复杂度、自组织、低功耗、低数据速率以及低成本,普遍应用于自动控制和测量领域,可以嵌入各种设备,是一种数据传输可靠性高的近距离无线组网通信技术。而GPRS模块则是通过手机终端连接因特网来实现数据的双向传输,它的协议规程体现了无线和网络相结合的特征。因此可以通过GPRS技术来拓展ZigBee测量控制网络的作用范围。目前GPRS的数据传输主要是基于TCP和UDP两种通信协议,其中TCP是面向连接的协议,提供IP环境下的数据可靠传输,适用于可靠性要求比较高的数据通信系统,而UDP不需要建立连接即可开始传输数据,通信效率较高,但可靠度不高,适用于一次只传输少量数据的场合LabVIEW作为一种图形化编程语言开发环境,为学术界、工业界和研究实验室所广泛接受,运用内嵌的TCP/IP网络通信协议组通信,可以直接调用TCP模块完成流程图编写,而无需过多考虑网络底层实现,使用该软件可方便完成上位机测量和控制程序的编制。

1 网络组建整体方案
系统网络组成如图1所示,首先由SHT11数字温湿度传感器和CC2530芯片的ADC通道组成传感器数据输入通道,输入的信息经CC2530芯片采集处理后打包无线发送到协调器节点,然后协调器节点利用串口2将数据发送给STC12C5A32S单片机,单片机将收到的数据进一步处理后,通过另一串口把有效数据传送至华为GTM-900C模块,最后GPRS模块利用Internet把最终数据发送至上位机,并同时监听上位机指令,一旦接收到指令将转发给协调器直至各采集控制节点,从而实现数据的双向传输。

a.JPG



2 下位机数据分析
协调器网关需要把测控节点无线传输过来的数据透明发送至上位机,有效的数据帧通过下位机编程为固定长度是20 B的数据,有些字节可变,有些字节是固定的。比如一个数据帧用十六进制表示为:FE 0F 46 87C6 E9 02 00 09 00 1A 21 00 00 48 9E 00 00 00 07。其中FE为每帧开始的字节;0F,02 00,09 00是固定的字节,表示数据包和有效数据位,46 87为接收标志;最后一个字节07是前面19个字节的异或运算值,C6 E9为传感器节点16位地址号,随着数据来自不同节点变化;1A为节点温度的整数部分,换算为十进制值为26 ℃,可变;21为节点10倍片上电压值,换算至十进制值为33 V,可变;0000为父节点地址;48为节点相对湿度值,转换至十进制值为72%,可变;9E为节点温度的小数部分,换算为十进制值的算法是(9×16+15)/256=0.62℃,可变;00 00 00为预留下来的3 B,用于其他传感器节点数据的传送。


协调器网关同时也接收上位机的命令数据并通过ZigBee网络发送至具体节点。命令数据为3 B,前2个字节为目标地址,第3个字节为采集控制命令。如设置80为停止采集指令,40为开始采集命令,01,02,03为采集周期选择命令。协调器地址是固定的十六进制数0x0000,其他传感器节点地址与之不同,因此当发送的前两个字节为0000时,可以此做为向全体传感器节点广播命令的判据。如果前两个字节是具体的单个节点地址,则只有相应节点接收到控制命令。


3 ZigBee协调器GPRS网关软件设计
ZigBee协调器GPRS网关软件设计流程如图2所示。其中等待GPRS注册成功是查看AT+CGREG?指令是否返回1或5,返回则表示GPRS模块上网注册成功;APN设置为CMNET;PPP拨号用AT%ETCPIP=\”\”,\”\””指令;域名解析指令AT%DNSR=”xxxx.3322.org”将返回与此域名绑定的IP;再用连接服务器指令AT%IPOPEN=“TCP”,xxx.xxx.xxx,1234连接上位机IP及监听端口。

b.JPG


数据传输程序的设计是重点,数据传输包括将采集到的数据透明上传至TCP服务器以及上位机指令的检测和通信是否掉线的检测。串口2接收到FEOF帧头后再执行AT指令将有效测量数据透明上传,收到心跳帧636F 6F6E后也透明上传,收到其他字符则不处理。当串口1接收缓存中有%IPCLOSE字符串时表示通信断开,此时则在下位机程序中重新执行连接服务器程序直至再次连接成功,保证数据通信可靠。

4 上位机程序设计
整个上位机软件设计流程如图3所示,即编写一个TCP服务器程序。采用LabVIEW通信工具中TCPListen来侦听客户端的连接请求,建立连接后,利用TCP Read读取传输的数据,工作模式设置为standard,即等待直至读取所有“读取的字节”中指定的字节或“超时毫秒”用完,返回目前已读取的字节,如字节数少于请求的字节数,则返回部分字节并报告超时错误。由于数据帧通过下位机编程为固定长度是20 B的数据,心跳帧为4 B的数据,因此在配置TCP Read函数时,要将“读取的字节”设置为20,“超时毫秒”设置为0。这样既可以侦听到心跳帧,又不至于因心跳帧的4 B打乱数据帧的20 B而导致数据错误。程序控制部分可向下位机发送控制指令,实现对单个或多个节点数据采集周期以及开始结束的控制,以适应不同的工作场合。主要原理是利用TCP Wtite函数向已建立的连接发送指令,程序中两次利用TCP Write函数,第一次写入指令的长度,第二次写入指令的内容。

c.JPG

数据处理程序如图4所示。在数据处理的过程中,只需要处理数据帧,心跳帧是不用进行处理的,因此有必要对心跳帧进行剔除。由于下位机编程时以十六进制FE作为每个数据帧开始的字节,而心跳帧则为十六进制636F 6F6E,因此在服务器程序进行数据处理前可先检测数据的帧头,这样即可将数据帧和心跳帧分别开来。具体做法便是利用String Subset函数截取每帧数据的第一个字节,然后与十六进制FE比较,再运用Case Structure的方式组织,如果相等,则进行处理,不相等的情况则不采取任何动作,只需保持之前的数据即可。这样不仅可以避免错误接收结果,还可提高程序的运行效率。

d.JPG


数据处理部分首先利用String To Byte Array函数将接收的字符串保存为字节数组,然后利用Search1D Array函数搜索到第三个十六进制字节46,进一步增强数据读取的可靠性,使用Index Array函数将数组中相应的子节点地址、温度、相对湿度、电压值字节数据提取出来,并利用数值运算函数及相应的字符串处理函数将需要的参数以十进制字符串形式送到Chart控件中显示波形。不同节点的信息需要显示在不同的Chart控件中,此时的实现思路就是判断不同节点的地址,然后利用Case Structure进入不同的事件结构。在历史数据的存储方面主要是通过Write To Spreadsheet File子VI把数据写入电子表格,以此来实现历史数据的方便查看。

e.JPG


整个系统经过调试后运行正常,下位机与上位机连接良好,数据传输通畅,运行效果如图5所示。

5 结语
下位机设计的网关能够选择性透明发送有效数据和心跳帧字节,不仅提高了发送效率,而且保障了上位机接收数据的可靠性,在服务器与GPRS模块通信中断后,会立即重新申请连接直至再次连接成功。上位机程序设计的TCP服务器界面友好而简洁,能够分辨出有效数据和心跳帧,并可靠地解析出数据帧的信息,显示温度以及湿度的变化趋势,同时将历史数据写入电子表格,方便保存和查看。本系统可移植性强,应用范围广,可用与粮情监测以及温室环境的监测,具有较大的实际参考价值。


关键字:GPRS  ZigBee协调器  网关 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/Test_and_measurement/ic479493.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:对PWM电路关键点波形进行自动测量并输出的判断
下一篇:在无人机制导、导航与控制中应用半实物仿真

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

2440裸机编程之十一 GPRS
GPRS (General Packet Radio Service)是一种基于包的无线通讯服务。它将使得通讯速率从56一直上升到114Kbps,并且支持计算机和移动用户的持续连接。较高的数据吞吐能力使得可以使用手持设备和笔记本电脑进行电视会议和多媒体页面以及类似的应用。GPRS是基于Global System for Mobile(GSM),并且能完成现有的一些服务,例如:蜂窝电话电路交换(circuit-switched)连接和短消息服务(SMS)。GPS/GPRS 的AT命令是对早期调制解调器AT命令的一个扩充,在早其AT命令的基础上加上对GSM/GPRS业务支持的扩展AT命令集,扩展AT命令集基本格式为“AT+”+命令字
发表于 2019-11-09
2440裸机编程之十一 GPRS
无线远程医疗监护系统的设计
摘要:介绍了一种基于GPRS技术的无线远程医疗监护系统。以SPCE061A为主控芯片,将数据采集模块和GPRS通信模块相结合,以无线的方式连接到Internet,由监护中心接收数据并保存到数据库中。运用LabVIEW工具进行监控中心服务器端主面板的设计与处理,实现对患者生理参数的远程监测、分析及异常情况的判断和报警。阐述了系统的总体结构,从硬件和软件两个方面说明了系统的设计及实现方法。系统具有结构简单、实时性强、传输数据量大,在自然灾害和战争中伤病员的现场抢救等方面,具有良好的应用前景。远程医疗监护是利用远程通信技术和计算机技术实现远距离的疾病诊断、疾病治疗和健康护理等多种医学功能的一种医疗模式。它实时、连续、长时间地监测病人重要
发表于 2019-10-23
无线远程医疗监护系统的设计
SIM900A GPRS调试笔记
/************************* ********GPRS调试笔记********************************调试目的:通过SPCE061A单片机控制SIM900A GPRS模块发送短信调试过程:         1.利用延时来发送PDU格式的短信(不接受GPRS的返回值)         a.发送AT+CMGF=0\r\n指令         b.延时
发表于 2018-05-05
GPRS模块与单片机开发的注意事项
单片机微控制器以其体积小、功耗低、使用方便等特点,广泛应用于各种工业、民用的嵌入式系统中;而随着互联网(Internet)的兴起与普及,使微控制 器通过互联网传送数据就变得非常有意义。目前使微控制器上网的解决方案一般有两种:一种是采用微控制器驱动网卡,通过以太网连接Internet;另一种 是使微控制器直接驱动调制解调器(MODEM)通过电话线向ISP拨号上网。这两种方案的缺点在于都要使用有线的网络,无法应用于在边远地区或可移动系统 中。 针对这一问题,提出一种基于GPRS的单片机上网的解决方案,即在单片机中实现PPP协议,并通过驱动GPRS模块经过GPRS无线网连接到 Internet实现上网。这种方案的优点
发表于 2018-05-05
GPRS模块与STM32的数据传输
函数清单和注意事项(底层驱动部分)1. IO口初始化:控制 IO 和通讯 IO,控制包括电源控制,复位和低功耗模式,通讯就是串口啦,相信大家应该都很熟悉了。                      当然在这个基础上还可以组合出复位的功能,复位在GPRS连接出错的时候会用到。2. 串口初始化:模块的波特率为115200,8位数据位,1位停止位,没有校验位和流控。                      串口还需要
发表于 2018-04-22
5G+Wi-Fi6,高通全新固定无线接入家庭网关参考设计问市
— 面向CPE终端的完整解决方案助力业界加速向消费者提供即插即用的数千兆比特宽带服务,提供DSL、有线和光纤部署的替代方案 — Qualcomm Incorporated全资子公司Qualcomm Technologies, Inc.今日宣布推出面向5G固定无线接入(FWA)家庭网关的全新参考设计。该参考设计采用完整的一站式解决方案,集成Qualcomm Technologies最先进的连接技术解决方案,包括第二代Qualcomm® 骁龙™ X55 5G调制解调器及射频系统、支持高性能Wi-Fi 6连接的Qualcomm® Networking Pro 1200平台、以及其它先进的网关功能和特性。这一全新参考设计可帮助
发表于 2019-10-15
小广播
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved