基于GPRS无线网络的机车远程数据传输系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按流量计费,从而提供了一种高效、低成本的无线分组数据业务。
特别适用于间断的、突发性的和频繁的、点多分散、中小流量的数据传输,也适用于偶尔的大数据量传输。
本文将针对GPRS无线通信技术在机车远程监控管理系统中的应用,着重探讨它的系统组网方式和数据传
输实现方法。
2 系统概述
2.1 系统简介
机车远程数据传输系统充分利用中国移动公网资源,建立了基于GPRS无线网络的远程数据传输平台。
如图1所示,该系统主要三部分组成:车载部分,网络通信部分和地面部分。
车载部分主要负责机车相关数据的采集、存储和发送;网络通信部分负责数据的传输;地面部分则主要负责数据的接收、存储和处理。
通过该系统就可以将机车远程数据传输到地面数据中心计算机,供地面对运行机车的状态进行实时监测和
故障诊断,为机车的安全运行起到保障作用。
同时,当通信链路建立后,车载和地面是双向通信的,通过其通信协议的配合使用,可以实现地面对车载的远程配置和命令响应。
该系统采用模块化设计思想,可对系统功能模块进行删减或扩展以符合具体需求和应用。
由于本文的侧重点在于机车远程数据传输方法的介绍,对此不再详述。
图1 机车远程数据传输系统组织结构框图
2.2 系统组网
要构建机车的远程监控管理系统,首先必须建立无线数据传输链路。
只要GPRS模块配备的SIM卡开通
移动互联网业务(即GPRS业务),就可使与之连接的电脑或其它设备方便、轻松地登录网络,进行INT ERNET连接,从而实现车载设备和地面数据中心计算机的网络连接,进而完成数据传输。
目前系统组网方式主要有以下两种选择:
1、数据中心计算机和车载终端设备都通过GPRS模块采用无线接入方式。
这种接入方式具体有两种不同情况,要么两者都申请为具有固定IP的SIM卡,此时,中心和终端可双向随时随地地建立连接;要么数据中心在模块上设置移动内网固定IP,终端为普通SIM卡,这时,终端必须主动向中心发起连接。
这种接
入方式需要当地的GPRS网络支持APN功能。
2、数据中心计算机采用公网接入,也即INTERNET接入方式,终端设备通过GPRS模块采用无线接入方式。
这种接入方式具体也分两种不同情况,一种是数据中心计算机采用公网固定IP,登录到移动网络的G PRS终端主动向数据中心固定IP和对其开放的端口发起连接。
另一种是采用动态域名方式,它不需要数据中心计算机具有固定IP,但需要为数据中心计算机申请一个动态域名,通过域名解析服务器就可以将域名解析成对应的IP地址,车载GPRS终端可以通过一个固定域名与数据中心计算机建立连接。
比较上述两种组网方案,由于费用和稳定性等方面的因素,本文采用第二种组网方案,数据中心由INTE RNET获取固定IP,终端设备通过GPRS网络获取动态IP,由车载终端设备主动连接数据中心。
3 数据传输的实现
3.1 系统通信方案
根据系统需求,机车远程数据传输系统采用了如图2所示的数据传输回路,它实际上提供了两个独立的数传回路。
一是通过GPRS网络和INTERNET网络构成的网络通信回路,二是通过GSM网络构成的短信回路。
其中前者是本系统的主要回路,负责机车远程数据的传输,后者作为特殊功能所用,或当GPRS回路异常时的一个备用通信手段。
另外保留了电话呼叫的命令接口,但由于车载设备暂无人机交互界面,故没有实际使用其语音通话功能,仅当车载出现无法自行恢复的错误或故障时,呼叫中心号码,达到报警的目的,或者用来数据中心通过电话呼叫而激活车载终端,要求其上线,从而争取在网络连接中的主动性。
图2中的GPRS模块和GSM模块实质上是同一款模块,为了从功能上有所区分,笔者将车载端开通了G PRS功能的模块称之为GPRS模块,将数据中心不需要开通GPRS功能的普通模块称之为GSM模块。
针
对上述的GPRS数据传输回路有几个地方值得注意:
图2 数据传输回路框图
1、车连地。
在现有的网络环境下,终端必须主动连接数据中心,否则数据中心无法通过网络找到终端设
备。
为此设定车载终端上电后自动向给定的数据中心IP地址和端口发起连接。
2、车载GPRS模块获得的端口是有时效的。
车载终端连接并注册到数据中心后,如果一段时间双方没有数据传输动作,车载终端的端口可能被收回,这时数据中心再按照原来的IP和端口是无法找到车载终端的。
若想使车载终端和数据中心保持实时通信,必须通过发送心跳包来维持此连接。
否则只能在需要时,
用电话或短信唤醒的方式,通知车载终端上线。
3、TCP连接方式。
内嵌了TCP/IP协议的GPRS模块为用户提供了TCP和UDP两种连接方式的选择,虽然UDP的传输效率较高,但是考虑到本系统传输数据量较大且要求可靠性较高等因素,笔者采用了TCP
连接方式。
对于只作为本系统后备通信手段的短信回路,由于篇幅有限,在此就不详加介绍了,短信部分在C++ Bu ilder6.0环境中用C语言编写调试,方便下位机移植,增强代码的可移植性和重用性。
3.2 数据中心网络通信实现方法
套接字(SOCKET)是网络通信的基本构件。
在Window系统下通过一套Winsock函数来实现套接字技术,不过使用Delphi设计基于套接字技术的网络通信程序大可不必关心这些系统功能,因为Delphi将这些功
能都封装在套接字控件之中了。
本系统采用的是典型的客户机/服务器(C/S)通信模式,其服务端(即数据中心计算机)的开发使用了I nternet组件中的TServerSocket控件。
Delphi的VCL提供的套接字基类(TServerClientWinSocket)封装了
Windows的套接字API函数,为TServerSocket控件提供了基础的TCP/IP网络功能支持,这使得我们在开发应用程序时不必关心套接字实现细节问题,只在其控件的使用上下功夫,就可以开发出满足自己设计需要的网络通信服务端应用程序,节省了大量的时间和精力。
TServerSocket控件的ServerType属性有两种选择:stThreadBlocking和stNonBlocking,即阻塞式和非阻塞式。
本文适应系统需要选择了阻塞式通信方式,为了避免主线程的阻塞,必须使用多线程技术,为每个连接创建独立的线程处理数据传输任务。
首先在Port属性中设置用于监听客户端连接的端口,当侦听到有客户端连接后,只需要在其OnGetThread事件函数中执行如下语句:
SocketThread := GPRSThread.Create (false,ClientSocket);
便为该连接创建了一个新线程,并马上进入到我们的自定义线程GPRSThread中,从而所有与这个客户相关的事务都由该线程来处理。
而在GPRSThread线程中,实际上所有的任务都是在GPRSThread.Execute 过程中完成的,于是所有负责数据传输任务的用户代码都写在这里,并且顺序执行。
在使用套接字的ThreadBlocking阻塞式通信方式时,客户端和服务器的信息交互是连续的,这里的套接字读写操作都是通过流来实现的,这种操作方式能够方便程序设计,而且具有一定的安全性,VCL提供了实现这种流操作功能的类TWinSocketStream。
在使用套接字流读写套节字中的信息前,需要先创建之并
将其与套接字建立联系,代码如下所示:
Stream := TWinSocketStream.Create (ClientSocket,TimeOut); TWinSocketStream提供了Winsock中没有的超时机制,其中的TimeOut是设定的超时值,以毫秒为单位,
为套接字的读写操作提供准备时间。
3.3 车载终端网络通信实现方法
GPRS模块主要完成无线上网的功能。
市场有一些成熟的产品,现在很多模块内部已经内嵌了TCP/IP协议,使上网更简单,只通过AT命令即可轻松上网,使用起来非常的方便。
华为GTM900便是一款内嵌了TCP/IP协议的GPRS模块,其建立GPRS连接并实现数据传输所使用的主
要AT命令如表1所示。
表1 TCP/IP常用AT命令列表
从表1可以看出,只要进行APN配置后执行TCPIP初始化命令成功,便可向服务器发起连接,若返回“C ONNECT”,则表示与服务器成功建立了TCP链接。
其网络配置过程如下:
车载GPRS模块登录上GPRS网络后,会获得一个移动网为其分配的动态IP(10.×.×.×),当它需要与处于公网上的地面数据中心计算机进行通信时,移动网关还会为其映射一个端口号,建立网络连接后,地面数据中心计算机便可获知车载设备的临时IP和端口号(此处的IP实际上是GPRS网关的IP,为211.×.×.×),根据双方的IP和端口号,便可建立车载终端和数据中心计算机之间的网络套接字,从而进行数据的
双向传输。
表1中仅对一些TCP/IP相关的主要AT命令进行了罗列和简单举例,详细的内容可以参看AT命令手册。
另外值得格外关注的还有一些重要的非请求结果码,例如%IPDATA、%IPCLOSE=5等等,他们都有重要的含义,当收到这些非请求结果码后,需要进行相应的处理,比如读取缓存数据,或重新进行GPRS连接
等。
在此不再详述。
车载GPRS数据传输终端软件采用C语言编写,借助ARM Developer Suite v1.2集成开发环境进行编译
和调试,整个程序的控制通过设置状态标志来实现。
4 结束语
无线通信技术的应用为机车状态监测和故障诊断领域注入了新鲜的血液,不仅可以节省人力物力,还提高了监测诊断的有效性和实时性,更好地适应了铁路的发展需求,本文介绍的基于GPRS的机车远程数据传输方法具有较强的通用性,保证了数据的安全、稳定传输,且为系统功能的实现起到了关键作用。
目前,经实验室测试结果表明,该系统传输数据丢包率几乎为零,数据传输的可靠性较高,但是由于目前采用了应答式的数据交互方式,数据传输相对速度偏低(收到相邻包的时间间隔较长),为了能够更好的
适应偶尔的大数据量传输的需要,还需要对代码和通信协议进行优化,进而提高数据传输效率。
参考文献
[1] 姜春宇, 喻方平. 基于GPRS的机车状态监测与管理系统[J]. 微计算机信息, 2006,(19): 106~108.
[2] Al-Taee., Majid A.; Khader, Omar B.; Al-Saber, Nabeel A. “Remote Monitoring of Vehicle Di agnost ics and Location Using a Smart Box with Global Positioning System and General Packet Radio Servic e”, Computer Systems and Applications, 2007. AICCSA’07.IEEE/ACS International Conference on 13~16
May 2007 Page(s):385~388.
[3] 张小强, 杨放春. 一种基于GPRS技术的无线监控系统[J]. 中国数据通信,2004, 6(11): 92~95.
[4] 孟艳花, 李赟. 基于GSM无线网络的数据传输应用研究[J]. 计算机与网络,2006, (6): 138,140.
[5] 刘华, 肖永顺. Delphi 5.0专题开发指南[M]. 北京:清华大学出版社,2000.
[6] 华为GTM900 无线模块AT命令手册-(V100R001, V1.11).
本文作者创新点:本文充分利用公网资源,系统建设成本低,开发效率高,实用性强,具有良好的应用前
景。
作者简介:陈特放(1957- ),男,湖南人,中南大学教授,博士生导师,研究方向:电力机车状态监测
及故障诊断技术。
王延翠(1982- ),女,吉林人,中南大学在读硕士研究生,研究方向:智能控制与智能自动化。
E-mail:
yancui_19820510@
通信地址:中南大学信息科学与工程学院。