GPRS技术在数据采集
与监控系统中的应用
河北大学电子与信息工程学院(071002) 韩 冰 李芬华
摘 要 文章简述了GPRS技术要点,并提出了一种将GPRS技术应用于SCADA(数据采集与监
控系统)系统中的设计和实现方法,分析了该技术广泛的应用前景。关键词 GPRS SCADA 随着GPRS技术在移动通信领域中的发展,目前此技术已经能够实际应用到许多需要无线数据传输的领域,也为许多行业的SCADA系统提供了一种新的数据传输方法。
然,GPRS可以限制每个小区只工作于P频段。
GPRS有许多GSM系统所不具备的独特优势。(1)资源利用率高:GPRS引入了分组交换的传输模式,用户只有在发送或接收数据期间才占用资源,这意味着多个用户可高效率地共享同一无线信道,从而提高了资源的利用率。而GSM传输数据方式为电路交换模式,在整个连接期内,用户无论是否传送数据都将独自占有无线信道。GPRS用户的计费按通信的数据流量为计费标准。
(2)传输速率高:GPRS可提供高达115kbit/s的传输速率(最高值为171.2kbit/s,不包括FEC)。
(3)接入时间短:分组交换接入时间缩短为少于1s,能提供快速即时的连接,可大幅度提高一些事务(如信用卡核对、远程监控等)的效率。
(4)支持IP协议和X.25协议:GPRS支持In2ternet上应用最广泛的IP协议和X.25协议,而且由于GSM网络覆盖面广,使得GPRS能提供Inter2net和其它分组网络的全球性无线接入。
GPRS提供了一个完备的基于TCP/IP协议的
1 GPRS技术简介
GPRS(generalpacketradioservice)是通用分组无线业务的简称。GPRS是GSMPhase2.1规范实现的内容之一,能提供比现有GSM网9.6kbit/s更高的数据率。GPRS采用与GSM相同的频段、频带宽度、突发结构、无线调制标准、跳频规则以及相同的TDMA帧结构。因此,在GSM系统的基础上构建GPRS系统时,GSM系统中的绝大部分部件都不需要作硬件改动,只需作软件升级。
欧洲电信标准协会(ETSI)指定了GSM900MHz、1800MHz和1900MHz三个工作频段用于GSM,其中GSM900MHz频段还包含G1(E2GSM)频段和P频段。相应地,GPRS也工作于这三个频段,包括GSM900MHz的G1频段和P频段,当
图6 同步捕捉,同步保持和失锁示意图
26
中国传感器http://www.sensor.com.cn
《电子技术》2003年第8期
通信解决方案。
网络、通信与多媒体
GPRS数据终端上,然后将数据打成IP包,再通过GRPS空中接口接入到GPRS网络,最终通过各种
2 SCADA系统概述
SCADA(supervisorycontrolanddataacquisi2tion)系统,即数据采集与监控系统。SCADA系统
网关和路由到达系统数据中心。3.2 系统设计
整个系统的设计内容包括GPRS终端与用户设备的接口、TCP/IP协议处理、GPRS终端与数据中心的互联、数据中心的网络接入与软件设置。
GPRS数传终端的设计,需要解决的问题主要
的应用领域很广,可应用于电力、给水、石油、化工等领域的数据采集、监视控制及过程控制。
SCADA系统是以计算机为基础的生产过程控制与调度自动化系统。它可以对现场的运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节以及各类信号报警等各项功能。
SCADA系统自诞生之日起就与计算机软件、通信、自动化、数据库、网络等技术的发展紧密相关。SCADA系统的通信技术是制约其应用范围的最主要的因素,在很多情况下,通信条件的好坏直接决定SCADA系统的性能,而GPRS技术发展成熟到能够
有两点:(1)数据及控制命令的TCP/IP协议打包和分包;(2)GPRS终端自动附着网络。
数据中心的设计主要包括网络的接入、数据的收发与安全性管理,对终端的维护以及相关的数据库,此外,针对不同的用户对象,还要有一些应用层次的设计。3.3 终端硬件设计
GPRS数传终端的硬件结构采用模块化设计,
应用为SCADA系统提供了一种新的通信方式。从
GPRS技术的特点我们看出,它具有网络覆盖范围广,数据带宽宽,适应性强的优点,可以大大地提高SCADA系统的应用范围。
系统结构图如图2所示。其中TCP/IP协议处理单元采用上海精致科技E5112协议处理芯片,硬件处理协议可以保证处理速度与可靠性,另外,无需自定义协议栈,可以大大节约开发时间。
E5112是完成TCP/IP协议的专用芯片,用户
3 系统设计
3.1 系统结构
整个系统的结构如图1所示。
用户终端设备通过串口或无线方式连接到
只需外接MPU完成API调用;即可完成IP网络(如Internet)的接入,真正实现将嵌入式系统直接与IP网络的相连,E5112具有客户机功能可以主动请求TCP连接远方服务器通信,使E5112的系统之间只要知道对方IP地址和端口号,就可以通过IP网络进行通信。
E5112支持工业标准协议TCP/IP4.0、PPP、
图1 系统结构
UDP等,E5112提供透明通道和非透明通道两种工
图2 GPRS终端硬件结构
中国传感器http://www.sensor.com.cn
27
网络、通信与多媒体
作模式,在透明通道模式下E5112对用户的数据不进行处理,直接将数据发送出去,收到的数据也原封不动地传递给用户。在这个模式下,终端设备的初始化设置以及短消息和语音功能可以由用户自己通过AT命令来实现,也可以通过调用API来实现。在非透明通道模式下,用户通过串口采用帧格式与E5112通信,可以通过调用API来实现。
GPRS模块采用法国Wavecom公司的wismo2d模块,此模块为双频GSM模块(EGSM900/1800MHz或EGSM900/1900MHz),适合于手持蜂窝移动电话及其他无线通信产品应用,其设计及开发符合ETSIGSMPhase2+标准。
模块基本功能有:(1)话音功能(GSM状态);(2)GSM电路数据/传真功能;(3)GPRS数据传输功能;(4)短消息服务功能(GSM或GPRS状态)。与同类型GPRS模块相比,该模块在同等功能前提下设计更为小巧,重量轻,此外性价比也比较高。系统工作方式如图3所示。
《电子技术》2003年第8期
(5)AT+CGREG?若返回为0,1则可以继续,
若返回0,0则返回第一步重来。
一般情况下,当终端附着在GPRS网络上时,
GPRS系统将为其分配一个动态IP地址,通过AT+CGRADDR命令可以得到本地IP地址,然后将此
地址按一定格式发送给预先设置好的数据中心IP地址和端口,即可实现与中心的数据互通。此外,系统循环调用GPRS网络注册状态命令AT+CGREG和GPRS相关的错误命令AT+CMEERROR来检查系统状态。当网络出现异常或终端
与GPRS网络脱离时,终端可以自动切换到短信方式或GSM电路数据方式保证数据的传输,并向中心发送错误报告。当系统回复正常,立即切换回GPRS状态,并发送回中心更新数据状态。
部分代码实例(UDP方式)如下:
//函数ApiSysInit功能:设置ISP的电话号码、上网用户名和
密码
//函数ApiDial功能:开始Modem拨号,直到PPP协商成功。
ApiSysInit(ispnumber,username,password);
while(ApiFrameType==0);//等待应答帧
if(ApiFrameType==E-E51-ACK-FRAME)//表示收到
应答帧
ApiFrameType=0;ApiDial();
图3 系统工作方式
while(ApiFrameType==0);//等待PPP协商是否成功if(ApiFrameType==E-PPP-OK-FRAME)//这表示PPP协商成功
终端的GPRS上网功能实现即由单片机MCU编程实现控制IP协议模块相关指令及GPRS模块相关指令,完成上网、建立连接、发送数据等功能。3.4 终端软件设计
……//其他应答帧处理
mysock.localipaddress=myip;//初始化变量mysockmysock.remoteipaddress=dnsip;mysock.localport=0x0510;mysock.remoteport=0x35;ApiStartSocket(mysock);
终端软件实现各模块的初始化、数据中心IP地址和端口设置、上网指令及相关操作、状态检测、数据处理等功能。
GPRS核心模块的初始化、语音或数据操作及
状态检测等都是基于OpenAT指令完成的,wis2mo2d模块的GPRS上网设置相关部分AT指令如
……
if(ApiFrameType==E-E51-ACK-FRAME)//表示收
下:
(1)AT+CGCLASS为“B”:置为“B”模式。(2)AT+CGDCONT为1“,IP”“,CMNET”:设
到应答帧
{ApiFrameType=0;
ApiTxUDP(Userdata,dataLength);//发送UDP数据
}
if(ApiFrameType==E-SOCKET-DATA-FRAME){ApiFrameType=0;
置APN。
(3)AT+CSQ为检查信号,若返回10~31,0之间的信号数字则继续,如果信号是99,则系统重复发送A/命令,不停地让模块去搜寻网络。重试次数超过预定次数,可定义其他方式发送错误报告。
(4)AT+CGACT为1,表示激活,返回OK则继续。28
ApiRxUPD(udpdata,(INT8U3)&udplength);//接收
UDP数据}
ApiCloseSocket(MPU-INDEX-UDP-EN);//关闭UDP
插口
中国传感器http://www.sensor.com.cn
《电子技术》2003年第8期
while(1);}
网络、通信与多媒体
CCSockClientDlg3pDlg=(CCSockClientDlg3)pApp2>m-pMainWnd;
memcpy(m-szBuffer“,Connectedto”,13);strncat(m-szBuffer,pDlg2>m-szServerAdr,sizeof(pDlg2>m-szServerAdr));
pDlg2>m-MSGS.InsertString(0,m-szBuffer);
AsyncSelect(FD-READ);//提请一个“读”的网络事件,
3.5 中心软件设计
系统中心软件的主要功能是实现接受发送UDP或TCP协议的IP包,以实现与GPRS终端的IP协议通信。实现通信后,中心软件预留接口,针对不同类型的应用数据格式与协议,实现SCADA系统的远程数据监控。
中心软件的设计语言采用Microsoft公司的Vi2sualC++编程语言,C++语言应用灵活功能强大,并对网络编程有强大的支持。由于C++语言对底层操作的优越性,许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接
准备接收 }
CAsyncSocket∷OnConnect(nErrorCode);
}
CAsyncSocket类为我们使用Socket提供了极
利用动态连接库wsock32.dll进行操作,实现比较繁
琐。其实,VC++的MFC类库中提供了CAsync2Socket这样一个套接字类,用它来实现Socket编程,是非常方便的。
CAsyncSocket类用DoCallBack函数处理MFC
大方便。建立Socket的WSAStartup过程和bind过程被简化成为Create过程,IP地址类型转换、主机名和IP地址转换的过程中许多复杂的变量类型都被简化成字符串和整数操作,特别是CAsyncSocket类的异步特点,完全可以替代繁琐的线程操作。
4 结束语 GPRS移动数据传输系统的应用范围广泛,几乎所有中低速率的数据传输业务都能应用。除了支持传统的互联网应用,GPRS也可使无线终端支持BToB、BToC的电子商务和电子支付、股票交易、银行转帐等应用。GPRS同样可以应用于公司内部网(Intranet),基于IP的远程LAN接入,使无线终端成为LAN的延伸。
消息,当一个网络事件发生时,DoCallBack函数按网络事件类型:FD-READ、FD-WRITE、FD-AC2CEPT、FD-CONNECT分别调用OnReceive、On2Send、OnAccept、OnConnect函数。MFC把这些事件处理函数定义为虚函数,所以要生成一个新C++类,以重载这些函数,做法如下:以Public方式继承CAsyncSocket类,生成新类MySock;为MySock类添加虚函数OnReceive、OnConnect、OnSend。
中心程序基本流程(以TCP为例)如图4所示。
参考文献
1 GSM0161.DigitalCellularTelecommunicationsSystem
(Phase2+).GPRSCipherngAlgorithmRequirements(version6.0.1),2000.3
2 GSM0260.DigitalCellularTelecommunicationsSystem
(Phase2+).GPRSServiceDescription.Stage1(version7.4.0),2000.3
3 GSM0260.DigitalCellularTelecommunicationsSystem
(Phase2+).SecurityRelatedNetworkFunctions(version8.0.0),2000.10
4 GSM0360.DigitalCellularTelecommunicationsSystem
(Phase2+).GPRSServiceDescription,Stage2(version7.3.1),2000.7
5 SebastienLesrel.ATCommandsforGPRS(version1.3),
2000.11
6 Wavecom.WISMOQuikQ2403SeriesProductSpecifica2tion,2002.3
7 吕捷.GPRS技术.北京邮电大学出版社,2001.88 上海精致科技有限公司E5112用户手册PreliminaryV2.
1,2002
图4 中心程序主流程图
部分代码实例如下:
voidMysock∷OnConnect(intnErrorCode)
{if(nErrorCode==0) {m-bConnected=TRUE;
CCSockClientApp3pApp=(CCSockClientApp3)AfxGe2tApp();
中国传感器http://www.sensor.com.cn
29
因篇幅问题不能全部显示,请点此查看更多更全内容