基于GPRS/Internet的实时水质监测系统中关键难题的研究解决

2015-12-25 09:10王海沛李中志
软件 2015年8期

王海沛++李中志

摘要:对GPRS/Internet水质监测系统在水质参数在线监测的数据精度和稳定性方面的不足,数据丢包率高,数据反馈速度慢等问题,经过对GPRS无线通信与物联网网络协议的研究,和在项目实践中的探索应用,提出一种基于Tcp/Ip协议的有限重传算法去解决水质监测中面临的问题。实验应用和仿真结果表明,提出的算法应用到实际中后,数据传输丢包率大大降低,数据传输的稳定性和准确性都有明显改善。

关键词:GPRS/Internet;实时水质监测系统;有限重传;误码丢包率

中图分类号:TP393

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.08.022

0 引言

城市周边河流,水库等作为我国重要的水利工程设施、水资源保障基地,是保障工农业生产和城镇居民生活的关键设施之一。水质监测与评价是水资源管理与保护的重要基础,是保护水环境的重要手段。随着自动控制、通信、计算机和物联网技术的不断发展,我国很多城市已经把遥测监测、无线通信、网络技术应用于水质自动监测、计算、分析、评价中去。但是由于通信与网路技术本身的局限性,影响着水质监测的准确性与数据传输的实时性等问题。但是随着技术的发展和项目中的不断探索实验,为找到解决这些问题的方案提供了基础。同时也为提高水质监测监测系统的效率做出贡献。

1 当前基于GPRS/Internet实时水质监测系统面临主要问题

实时水质监测系统中(图1),通过GPRS网络与因特网进行组网,将GPRS数据终端的数据通过GGSN与因特网相连,将数据从地面仪表通过因特网传送到上位机,这是GPRS数据终端常用的方式,现场监控点通过水质检测仪自动采集水质数据信息,通过水质监测下位机把数据经过接口传到GPRS Modem模块,GPRS Modem模块根据预先设定在其内部的IP地址或者域名来主动访问网络通信服务器,通过通信服务器和监控中心建立TCP/IP链路。用过GPRS网络把数据发送到中国移动的内部网(CMNET),接着通过GPRS服务节点(GGSN),把数据传输到Internet上,并且去寻找在Internet上指定的监控中心数据接收设备,数据接收设备通过数据接收软件将数据转发到指定网络的数据服务器上,进而对数据进行整理保存分析。整个数据传输通道使用TCP/IP协议进行数据通信。

图1所示GPRS数据终端发送的数据经GPRS网络中转,然后被传送进因特网,因此GPRS数据终端发送的数据报文必须符合TCP/IP协议规定。一方面由于无线环境与有线环境相比,具有误码率高、时延长、带宽窄、信道不对称以及频繁的移动等特性,使无线网络中的通信质量比之于有线网络相比通信速率偏低,丢包率高,延时高,可靠性受地理环境影响比较明显;另一方面与互联网互联,速率负载不均衡,同时需要嵌入式系统实现TCP/IP协议族来进行数据转换,嵌入式系统任务加重,且一般的TCP协议栈的实现非常复杂且占用较多的处理器时间。由于GPRS向上支持IP协议,因此在网络层以上,可以使用任何IP协议所支持的协议,通常在传输层会用到TCP协议。众所周知,TCP协议是面向连接的可靠通信协议,在传输层使用TCP协议会大大提高通信质量,但是TCP协议的固有缺陷却并不能保证通信的可靠。TCP协议通过头部校验和的计算以及滑窗协议是提供了可靠性保障和流量控制。然而TCP协议中校验和的计算方法是简单的将校验位补零,然后按照每16位字以二进制反码求和:J=∑Xi。由于网络中异常干扰的存在,报文信息容易因为异常干扰出现某些偶然错误,使得TCP中的校验和就无法检测报文中出现的错误。此外, 在实时水质监测系统中,监测环境比较恶劣,TCP连接断开率高,因此需要经常进行TCP连接,严重影响水质监测参数传输的实时性。而在GPRS网络中,特别是在移动通信的高峰期,延迟甚至能达到秒以上的程度,这种程度的延迟在行业标准里面被认为是数据丢失,进而也影响水质监测的准确性。因此找到一种既能符合GPRS/Internet协议,又能降低传输延迟和误码率,提高水质实时监测传输效率和准确性的方案已经成为影响水质监测项目成功与否的关键因素。

2 解决方案的设计与实现

基于上述分析的当前实时水质监测系统在数据传输中存在的问题,结合在项目中的实验探索,本文设计提出了基于TCP/IP协议的有限重传算法去解决上述问题。本算法采用对TCP/IP协议的数据链路层、网络传输层和应用层分层实现的思想。在TCP/IP协议的有限重传算法中传输层使用的是受限制的UDP协议,由于UDP协议是无连接的不可靠协议。因此为了实现可靠的数据传输,在应用层使用了交错扩展海明编码来保证数据通信的可靠性。与上位机TCP/IP协议相比,由于下位机平台的计算能力以及硬件性能的限制,无法使用完整的TCP/IP协议栈,并需要综合GPRS网络的特点进行改进,除了帧格式相同之外,使用的各层协议相差较大,数据链路层则使用改进的PPP协议,网络层除了IP协议外还使用了ICMP协议,传输层则使用了UDP协议。其算法流程如图2所示。

2.1 有限重传算法数据链路层协议设计

数据链路层主要解决数据成帧和传输问题,考虑到水质监测系统的实时性,而且还是点对点链路,所以在本算法中,数据链路层使用改进型PPP协议。PPP帧格式如图3所示,PPP协议不需要使用帧编号,且支持多种协议,持多种链路类型(串行或并行,同步或异步等),所以可以降低网络数据的传输开销。

数层重传算法特点是GPRS模块只与固定IP地址的基站进行通信,且下位机无需进行自组网以及复杂的路由,无需进行IP地址的路由寻址,减少开销。因此,在基于有限重传的TCP/IP协议中,在IP协议时只需进行简单的封装IP头、解封IP头。具体算法过程如下:

①下位机发送请求,请求选项:位掩码为OxFFFFFFFF,认证协议为Oxc023,指定认证协议为PAP协议。该请求选项为水质监测站发送数据包的认证模式。②GPRS基站接收请求并向下位机发送确认,下位机发送数据包的格式确定完成。⑧下位机发送拒绝或者抛弃报文。拒绝选项:位掩码只能为OxFFFFFFFF。抛弃选项为:控制压缩域属性与协议压缩域属性。④GPRS基站发送请求报文,此时只请求认证域为PAP认证。⑤下位机发送确认报文,接收报文格式协商完毕。⑥下位机发送用户名与密码给GPRS基站。⑦GPRS基站发送确认,确认报文为下位机发送的用户名与密码。⑧下位机发送报文。报文数据段为空。此报文是为了激活IPCP协商而发送。⑨GPRS基站发送带有自己的内网(该IP地址为192.168.X.X)IP地址的请求报文。⑩下位机发送请求报文,由于GPRS模块中的SIM卡没有开通绑定IP地址服务,只能靠GPRS基站分配临时IP。因此,在下位机发送的请求IP中,使用Ox00000000,表示希望上位机分配IP。⑩GPRS基站收到发送的IP请求报文,然后在自己的内网IP池中选择空闲IP,作为建议IP发送给下位机。⑥下位机解析出GPRS基站分配的IP地址,并将此IP地址作为自己的IP地址向GPRS基站发送请求报文。⑥GPRS基站发送确认报文。整个IP地址分配过程完毕,下位机可以使用该IP地址进行通信了。endprint