基于GSM网的分布式测控系统研究
2010-06-25张林吴伯农
张林,吴伯农
(北方工业大学机电工程学院,北京 100144)
张林(硕士研究生),主要研究领域为通信电子和测控。
引 言
随着计算机和通信技术的发展,分布式测控系统的应用范围越来越广,特别是在油井工况的监测中。油井一般都分布在地貌复杂的区域,地处偏远,使得控制台和油井之间的通信十分不方便。采取人工到现场进行检查、人工采集数据这种落后的方式将需要大量的人力,不能较好地维护生产设备的良好运转。采取有线通信的方式则需要铺设相关的电缆,其维护也需要不少的人力物力。种种客观条件都说明,采取无线通信的方式来传输数据是最好的选择。采用GSM网进行无线通信既可以避免传统的有线通信方式在构建系统时的布线问题,从而降低了成本,又可以远距离通信,使系统的构建变得容易和快捷。另外,采用基于GSM网的分布式测控可以实现作业现场的无人工作,在控制端就可以对所有的现场作业点进行测控。
系统主要由中央主控制系统、通信系统和现场测控系统3部分组成,如图1所示。其中最关键的是通信系统的选取设计,本系统采取GSM网的GPRS通用分组无线数据传输业务来实现无线数据的传输。
图1 分布式测控系统的组成
1 通信系统
该系统主要是针对油井现场工况的远程测控,各个油井之间以及油井与测控中心都离得较远,并且油井所处的环境都很艰苦。所以需要选择一种合适的通信方式,来实现中央主控制系统对各个油井的现场工作情况进行远程测控,以及实现二者之间的数据传输。
从分布式测控系统的通信手段来看,分为基于有线通信的和基于无线通信的两种。基于有线通信的分布式测控系统主要采取的方式有专线(如电缆)、公用电话网、光纤以及Internet-Intranet。这些方式的成本都很高,因为都要涉及铺设电缆或者光纤,既需要消耗时间并且这些有线设备还需要相关人员对其进行维护,这些无疑都增加了不小的成本。而第二种基于无线通信的分布式测控系统,无线通信技术方面有红外技术、蓝牙技术、802.11b无线局域网标准技术等,但这些技术都只适合短距离的无线通信,针对地理位置相对较为分散的测控系统,如油井工况监测系统、地下水位监测等,就不合适了。此外,当测控对象对实时性要求不高,定时、间断上传数据或只有当接收到控制端的指令后才进行相应的操作,且向控制端传送数据采用查询方式工作,采用GSM网进行通信将是最好的选择。
全球移动通信系统(Global System for Mobile communications,GSM)是目前基于时分多址技术的移动通信体制中最成熟、最完善、应用最广的一种系统,我国目前已建成了覆盖全国的GSM(数字蜂窝移动通信网),是公众陆地移动通信的主要方式。它提供多种业务,主要有话音、短消息、数据业务等。数据业务中的GPRS(General Packet Radio Service,通用分组无线业务),是在GSM 网络的基础上进行的软件升级,采用了分组交换技术,可提供高速无线IP或X.25服务。为了实现数据承载,GPRS网在GSM网中增加SGSN(SGSN业务支持节点)和GGSN(GPRS网关支持节点)以及 PCU和其他辅助数据业务管理和应用的单元,如DNS和DHCP服务器、网络时间协议(NTP)、计费网关(CG)等。GPRS的设计使得它既能支持间歇的爆发式数据传输又能支持偶尔的大量数据的传输,能在0.5~1 s内恢复数据的重新传输。GPRS的计费一般以数据传输量为依据。[1]
随着GSM网应用的发展,市场上就出现了许多工业级的GSM模块和GPRS模块。GR64是Sony Ericsson公司最新推出的一款内嵌TCP/IP协议栈的GSM/GPRS模块,可向下兼容GR47,内嵌的ARM9 CPU可以开放给用户。GR64的存储资源非常丰富:256 KB的脚本空间可同时容纳2个脚本,在CSD方式下脚本可以远程升级;至少50 KB的数据NVM空间和100 KB的RAM;丰富的功能库涵盖所有的底层驱动,用户只需编写自己的应用程序。GR64提供的接口也很丰富:对外有2个自适应波特率和帧格式的串口,其中UART 1用于AT命令控制或本地脚本下载,UART 3是通用串口;另外,还有USB2.0可用于模块自身固件升级和脚本调试信息的输出,SPI、I2C、天线、音频接口、12根I/O线(8根复用)、AD/DA转换器、蜂鸣器和实时时钟等内置外设[2]。
系统的通信部分的组成如图1所示。现场测控系统的GR64无线模块上电后自动运行已下载的通信脚本,获得GSM网提供商分配的动态IP地址,把此IP地址发送给已连接Internet网的PC上位机进行通信连接,连接成功后现场测控系统便可以和中央主控制系统进行无线数据通信。中央主控制系统通过GSM网发送相关的控制指令给现场测控系统。现场测控系统接收到指令后就把采集的数据进行处理后传输到GR64无线模块,再由GR64无线模块通过GSM网的GPRS业务传送给中央主控制系统进行处理。通信脚本的实现采取GR64无线模块的内嵌脚本方式,将编写好的无线通信控制程序通过UART 1接口下载到模块内部的非易失性存储空间中,采用模块内嵌的ARM9控制完成IP连接和数据传输。
2 中央主控制系统
系统控制部分主要有2种实现方式。第1种方式是由远程的上位PC机和无线模块组成,上位PC机和无线模块之间的数据通过RS232或RS485进行通信。但是这种方式和后面的数据采集端的无线模块不好连接。因为无线模块是由无线网络提供商及移动分配的动态IP和上位机连接的,当采用这种方式时上位机也是由提供商分配的动态IP,这样两端的动态IP不容易连接成功,需要通过动态域名解析。第2种方式只需远程的PC上位机接入Internet网即可,连上Internet网后就有1个固定的IP地址。首先把PC机的端口对外网开放,并运行端口监听程序。通信时,先由无线模块向中央控制端IP地址发起连接,中央控制端监听到有动态IP连入后就立即响应,并将无线模块的动态IP地址记入地址数据库,然后就建立起了双向通信通道。这样,中央控制端就可以接收数据,或者向现场测控系统发送控制命令,进行远程测控。
3 现场测控系统
现场测控系统部分一般的实现方法是,由微控制器控制数据的采集,把采集到的数据通过 RS232传输给外接的无线模块,再由无线模块发送给上位机。但是这种方法无法实现数据采集部分的单片化,成本高。在本系统中选择无线模块GR64来实现无线通信,并且不需要外接微控制器和A/D转换器,直接用GR64模块内嵌的ARM9 CPU和自带的A/D转换器。在本文中主要介绍硬件的实现,现场测控系统的组成如图2所示。系统的硬件电路原理图如图3所示。
图2 现场测控系统框图
图3 系统硬件电路原理图
GR64模块有内部脚本方式和外部控制器方式两种开发方式。这里采取内部脚本方式,直接采用模块开放给用户的CPU和系统资源。GR64模块有配套的开发环境M2mpower IDE,只需在开发环境中用GR64支持的类C语言编写所要实现的应用系统的脚本,编写完后在开发环境中把脚本在开发环境中调试,调试无误就可以通过串口UART 1把脚本下载到GR64中,在开发环境中设置为上电自动运行即可。但是要把脚本下载到GR64模块中,需要通过PC机的串口来和GR64模块的串口UART 1进行数据传输。但是GR64模块的串口UART1是2.75 V的CMOS电平和PC机的串口标准RS232电平不匹配,所以要采用标准的集成电路芯片MAX3241来进行电平匹配。系统采取全9针的接法,以便实验系统中硬件流的控制。
系统的无线数据传输是基于GSM网的GPRS实现的,因此必须有1张GSM卡,并且得开通GPRS业务。因为这款GR64模块没有自带SIM卡卡槽,所以就得设计卡槽电路。因为SIM卡是通过卡面上的铜制触点来连接卡内的逻辑电路和移动终端设备,通常芯片与移动设备连接只需要6个触点,即数据端口I/O、可编程口、接地端、时钟CLK、复位RST和电源VCC,所以SIM卡槽的连接也有6条连线必须连接。其中SIM卡插座从GR64的引脚SIMVCC取电,可以兼容1.8 V和3.0 V两种SIM卡。在实际应用中,不管是插入还是取出SIM卡之前,必须保证不带静电,所以要先关掉设备,千万不要触摸SIM卡插座的连接器,以免释放电流损害设备或SIM卡。卡槽的SIMDET引脚是用来检测有无SIM卡插入,当检测到已经插入SIM卡后便开始注册GSM网。GR64模块和SIM卡之间的数据通信通过卡槽的I/O脚实现,SIMRST和SIMCLK分别为SIM卡复位信号脚和时钟引脚。
另外在系统的硬件电路中还设计了3个指示灯,其中与图3中的TX-ON引脚连接的发光二极管指示与GPRS网络的交互状态,与LED引脚连接的发光二极管指示模块GSM网络注册状态,另外一个发光二极管指示电源状态。
对系统现场机电设备或控制开关的控制可以直接采用无线GR64模块的数字I/O。这些数字I/O可以通过AT命令或采取模块支持的类C语言编程来设置为输入或输出。GR64模块自带4路采样精度为10位的A/D转换器。在该系统中,现场传感器采集到的模拟数据信号经过信号调理电路调理好后,模拟数据信号需要经过A/D转换器转换为数字信号进入无线GR64模块,通过无线模块发送给中央控制中心。由于本系统要求的精度不是很高,模块自带的10位A/D转换器满足系统的要求,所以在实现系统的数据A/D转换时直接用GR64模块自带的A/D转换器即可。ADIN1~3为专门的ADC,ADIN 4和GPIO 5复用,ADC转换完后存储在无线CPU内部的寄存器里。当无线CPU接收到适当的AT命令后,就读取存储在寄存器里的值。读取 A/D转换器的值的AT命令为AT*E2IO。该命令的格式为:
AT*E2IO=<op>,<io>,[<adc_val>]
<op>的取值分别为:0为读,1为写,2为配置,3为配置检查,4为触发,5为触发检查。
<io>为具体I/O或ADC的名字:当为IO 1~IO25、IO28~IO41时,表示通用可配置数字I/O,支持所有6种操作。当为IO26、IO27时,表示通用可配置数字I/O,支持0、1、2、3四种操作。当为 AD1~AD4时,表示 A/D 转换器输入,只支持读操作。
<adc_val>表示ADC的输入值,当该指令到达,十进制模拟电压值就转换为1个10位二进制值输入。
以ADIN1为例,实现的AT命令为:
AT*E2IO=0,“AD1”
*E2IO:0,“AD1” ,,62
OK
但是GR64模块自带的ADC转换器的采样需要5个时钟周期,所以实际最大的采样率为20 ksps左右。在硬件电路的设计中把A/D转换器用4个插针式插座引出,方便本系统适用于各种应用。
系统中GR64工作于内部脚本方式,利用集成开发环境M2mpower IDE把脚本程序通过串口UART1下载到模块的内部脚本空间,并设置为上电自动运行。因此,在硬件的实现中串口是全9针串口,否则当有新脚本下载到模块内并让新脚本运行,当模块重启,会自动重新运行原先的旧脚本。用全9针串口可以在开发环境中把旧脚本删除。无线数据传输模块上电完成GSM网络注册后,脚本开始自动运行。先从数据NVM中读出相关参数,初始化后按预定运行。参数包括GPRS接入点APN(GA:cmnet)、ADC的采样频率和采样源、上位机服务器的IP和端口号、通信协议(CP:TCP/UDP/SMS)、激活模式下无数据传输断网时间间隔(在这设为IT:30 min)、TCP通信方式下的工作模式(实时在线/短信激活)、连续登陆失败停止登陆次数(在系统中设为10次)。可以通过短信远程更改参数,通过通信串口方式及短信方式控制模块上下线和软件重启动。
在脚本开发中,需要先调用atcrt()函数创建内部AT命令通道[3],然后调用atsnd()发送AT指令完成模块与GPRS网络的IP连接,并获取GSM网给分配的动态IP地址,再调用atdst()关闭AT命令通道。获取动态IP后,调用模块内部的IP Library函数[4],与上位机服务器建立TCP连接,完成数据的传送。具体进程为先激活PDP,调用pdpatt(1),pdpa(1,1)激活PDP Context,然后调用ipo(CM,&ScNm)函数来选择IP连接类型,其中CM=1为TCP,CM=0为 UDP。在本系统的进程中为ipo(1,&tcpSocket),如果选择UDP方式,此时就可以透明传输UDP数据。然后调用tcpc(tcpSocket,port,ipAddress,pdpContext)函数向服务器发起TCP连接。TCP连接成功后就可以向服务器传送数据了。数据传送结束后,程序先调用ipc(char socknum)函数关闭IP,然后调用pdpatt(int attach)函数来与GPRS网络分开,最后调用pdpcont()函数断开PDP连接。
考虑到GPRS业务有可能会出现长期掉线,导致现场测控系统的数据无法传送给中央控制中心的问题,在设计中出现此种情况时,系统将通过短信的形式给相关的工作人员进行报警并向中央控制系统传送数据。
结 语
实验表明,本系统能较稳定和较快地传输数据,偶尔由于GSM网信号的原因数据传输速度会比较慢。GR64内嵌的 TCP/IP协议栈让终端与In ternet的连接无比方便,大大缩短了系统的开发时间。GR64模块自带的A/D转换器的精度满足系统的要求。由于是应用GR64模块内的ARM9来控制脚本的运行,所以模块一旦掉线,会自动快速重新连接。由于该系统的所有功能都集成在GR64模块内,所以硬件结构非常简洁,降低了开发成本和设备故障率,使用范围非常广泛,可以应用于各种远程数据采集、远程监控系统中。
[1]文志成.通用分组无线业务——GPRS[M].北京:电子工业出版社,2004:4-5.
[2]Sony Ericsson.Integrators Manual GR64 GSM/GPRS Wireless CPU,2006.
[3]Sony Ericsson.User Manual AT Command Manual for GR64&GS64 Wireless CPU,2007.
[4]Sony Ericsson.Languages and Libraries for the M2m power Editor,2006.
[5]梁娟,王典洪,熊月华.基于GR64模块的通用GPRS数传单元设计[J].新器件新技术,2007(2).
[6]Sony Ericsson.M2M power Application Guide R2A,2006.