1 引言
随着全球移动通信系统(GSM)移动通信网络的迅速普及,具有通信成本低、频谱利用率高、系统容量大、业务种类多、保密性能好、抗干扰能力强、国际自动漫游等优点的短信息业务已得到越来越多的系统运营商和系统开发商的重视。以GSM网络作为数据无线传输网络,可以开发出多种极具前景的远程控制系统。由于西门子公司的TC35系列模块具有很高的性价比,下面以TC35模块为例简要介绍一下基于GSM网络远程水质监测系统的设计。 TC35是西门子公司推出的新一代无线通信GSM模块,可以快速安全可靠地实现系统方案中的数据传输、语音传输、短消息服务(SMS,Short Message Service)和传真。模块的工作电压为3.3~5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为2W(900M)和1W(1800M)。模块有AT命令集接口,支持文本和PDU模式的短消息,第三组的二类传真,以及2.4k、4.8k、9.6k的非透明模式。此外,该模块还具有电话簿、多方通话、漫游检测功能,常用工作模式有省电、IDLE、TALK等模式。通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号,及控制信号的双向传输。通过ZIF连接器及50Ω天线连接器,可分别连接SIM卡支架和天线。TC35模块主要由GSM基带处理器、GSM射频模块、供电模块(ASIC)、闪存、ZIF连接器、天线接口六部分组成。作为TC35的核心,基带处理器主要处理GSM终端内的语音、数据信号,并涵盖了蜂窝射频设备中所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持FR、HR和FR语音信道编码。 TC35模块数据接口采用串行异步收发,符合ITU-TRS-232接口电路标准,工作在CMOS电平(2.65V)。数据接口配置为8位数据位、1位停止位、无校验位,可以在300bps~115Kbps的波特率下运行,支持的自动波特率为4.8Kbps~115Kbps(14.4Kbps和28.8Kbps除外)。TC35模块还支持RTS0/CTS0的硬件握手和XON/XOFF的软件流控制。
2 远程水质监测系统
(1) 需求分析 随着我国经济和社会的飞速发展,环境保护也越来越紧迫,尤其是水资源,因为它关系到人们的日常生活。为此人们必须首先需要了解水质情况。但是要监测的河段短则几十公里,长则上百上千公里,水质监测点分布得相当分散。这些散布的监测点如何作到与中央控制中心的随时联系呢?如果依靠手工进行监测,这样既增加了测报人员的劳动强度,同时由于水动态需长期监测和记录,需处理的数据量大,给测报者分析数据带来了很大的麻烦和困难,也越来越不适应智能化仪表应用的速度。采用何种手段将监测到的信息及时汇总到控制中心是当今远程监测系统的重要议题。铺设有线网络价格不菲,而且实施存在困难,并且对于长距离的线路维护也很麻烦,存在安全隐患。利用无线模块通过GSM网络进行远程传送无疑是最佳的解决方案。
(2) 解决方案 远程水质监测系统由水质采集点子系统、无线模块、控制中心组成,具体方案如图1所示。采集点子系统可以分布于一条河流的各段以监测当地的水质情况。

图1 监测系统结构图
在各个水质采集点子系统中,由各种传感器或分析仪采集的监测数据经信号调理及模数转换后送到单片机或DSP编辑为短消息格式,然后利用串口程序通过GSM无线模块传回控制中心;控制中心利用GSM无线模块作为接收设备,接收到的消息通过控制中心从模块的串口读出并交后台完成数据分析等处理,为各种决策作参考,同时发送控制指令并通过GSM模块转换为短消息发送至远端控制设备。 为了彻底了解河流的水质情况,往往需要监测水质的多种参数,例如PH值、硝酸盐氮、高锰酸盐、氨氮、溶解氧、温度、电导率、挥发酚等。为此可以在采集点按要求配置相应的传感器或分析仪,单片机通过多路选择器确定哪个传感器或分析仪起作用。一般的传感器输出标准的4~20mA电流或0~5V电压,分析仪可以通过RS232串口与单片机或DSP相连。采集点结构如图2所示。

图2 采集点结构图
根据传感器的数量以及待处理数据量的大小选取合适的单片机或DSP。例如ATMEL公司的AT89系列就可以胜任一般的水质数据采集。由于该系统采用电池供电,功耗就越低越好。同时单片机平时可以工作在睡眠模式下。 信号调理电路包括放大电路,低通滤波电路等,使采集到的电量转换为标准的信号,同时滤除干扰。 为了避免短消息传输过程中发生错误,可以采用海量存储器将采集的数据保存起来。例如可采用ATMEL公司的AT45DB081串型Flash存储器,通过SPI串口与单片机或DSP相连,其容量可以达到1MByte。 电源采用免维护电池组,由交流充电器或太阳能充电器为其充电,在外部电源切断的情况下可单独为系统供电15~20天。RS232串口采用Maxim232芯片,只要一个5V电源和5只0.1μF的电容即可很好工作。通过RS232,GSM模块与单片机之间、各种分析仪和单片机之间就能进行可靠通信了。
(3) 系统工作过程分析 由于各个采集点的GSM模块有不同的号码,所以控制中心将命令短消息发送给不同的采集点就实现了一对多的控制。该系统根据单片机中程序的设定可以有不同的工作模式,并且可以由控制中心来转换。本系统采用了三种工作模式,即自动发送、单次发送和连续发送。 自动发送是最常用的发送模式,因为人们所需要监测的水质往往是某一时刻的。为此,采集点上的单片机就必须处于自动发送模式下,即隔一定时间将各个传感器和分析仪采集的数据按照约定的数据协议编辑成短消息内容,然后控制GSM模块将短消息发送出去。短消息通过GSM网络被控制中心的GSM模块收到,从短消息内容中分离出该采集点各种水质状况。单片机进入睡眠状态。 当控制中心发送一条命令短消息决定采用单次发送模式时,单片机从自动发送模式进入单次发送模式,将每个传感器和分析仪采集的数据发送给控制中心。 当控制中心发送一条命令短消息决定采用连续发送模式时,单片机从自动发送模式进入连续发送模式,完成单次发送模式下的发送任务。但是与单次发送不同的是,命令短消息中含有发送间隔时间,采集点上的单片机根据该间隔时间连续发送采集到的水质数据。
3 短消息格式
由于远程监测系统所进行的数据通信采取的主要方式为短消息,同时由于受到单片机中存储芯片的容量限制,短消息中每个数据信息代表的具体含义以及短消息中数据的排列规则都需要通信的双方达成一致。 GSM手机通过异步通信接口实现对SMS的控制共有三种接入协议:Block Mode;基于AT 命令的Text Mode;基于AT命令的 PDU Mode。PDU模式是发送或接受手机SMS信息的一种方法,在目前应用最为广泛,基本上全国所有的电信局都支持PDU Mode的短消息业务。有些地方不支持Text Mode 和Block Mode,这就限制了这两种接入协议的应用。为了保证系统最广泛的适用性,本系统采用 PDU 模式来收发短消息。PDU 相当于一个数据包,它由构成短消息的信息组成。作为一种数据单元,它必须包含源/目的地址、有效时间、数据格式、协议类型和正文,正文长度在7-bit编码时可有160 字节,在8-bit编码时为140个字节,在Unicode 编码时可一次能发送70个汉字。 表1 接收数据各字段含义

(1) 接收数据格式 例如:当接收到的数据为: +CMGR: 0,,24 0891683110300605F0040D91683111767476F000084050419145248006…… OK 各字段具体含义见表1。
(2) 发送数据格式 例如要发送如下一条短消息:0891683110300605F011000D91683111767476F000000006C8329BFD0E01,各字段含义如表2所示。 发送时,先输入AT+CMGS=21<CR>,其中21表示发送有效数据长度,即11000D91683111767476F000000006C8329 BFD0E01的长度除以2即得。发送之后,等待模块响应。如果返回“〈”,则可进行下一步。 输入数据串: 0891683110300605F011000D91683111767476F000000006C8329BFD0E01。 由于需要输入Ctrl+Z以确认,而Ctrl+Z的PDU码为1A,所以紧接着输入1A。 等待模块响应。如“+CMGS:2,21 OK”则表示发送成功,否则将返回“+CMS ERROR:”。 表2 发送数据各字段含义

(3) 数据协议 由于远程水质监测系统要传送的是数字量,所以可以采用8-bit编码。由于要监测的参数比较多,并且各个站点可能对监测的参数有所不同。所以数据协议就显得十分重要。 由控制中心向采集点发送命令短消息时,格式为@XXXXXXX%。 短消息中数据以单个“@”开头,以单个“%”结尾,X表示一个字节。该命令总共有9个字节。“@”后第一个数据字节表示采集点的工作模式,接着6个字节数据表示工作在自动发送和连续发送模式下的时间间隔,分别为小时、分、秒。如果是工作在单次发送模式下,则一致为零。 由采集点向控制中心发送水质状态信息时,格式根据发送内容有所不同。有的采集点要求采集的数据比较多,则要发送的状态信息就比较长,反之则比较短。同时由各个传感器和分析仪获得的数据长度不一,这使得该数据协议必须按照实际使用情况确定。但是务必使发送的总数据量少于140个字节。
4 控制中心的VB编程
为了增强人机操作性,在此采用VB制作了该系统控制中心的操作界面。Visual Basic的串口通信对象MSComm是将RS-232的初级操作予以封装,高级的Basic语法即可利用RS-232与外界通信,并不需要了解其他有关的初级操作,因此使用起来非常方便。
(1) 接收子程序 接收过程中,由于采用了Timer控件来触发,即Timer控件每隔一秒钟检测Mscomm控件的Inputcount,一旦有数据输入就触发执行程序。主要程序代码如下: …… If InStr(1, receivestr, "+CMTI:") And InStr(1, receivestr, "SM") Then RSTimer1.Enabled = False If k = 18 Then s1 = Mid(receivestr, 15, 2) Else s1 = Mid(receivestr, 15, 1) End If MSComm1.Output = "AT+CMGR=" + Trim(s1) + Chr(13) timedelay (3000) RSTimer1.Enabled = True
(2) 发送子程序 短信息的发送是通过Command控件来实现的。 VB程序代码如下: …… ready = "11000D9168" + numstr + "000000" + conlength + RSText5.Text '发送 MSComm1.Output = "AT+CMGS=" + Str(15 + i2) + Chr(13) + Chr(10) ' RSText5.Text 为采集到的水质情况数据,i2表示待发送短消息长度 receivestr = receivestr + MSComm1.Input If InStr(1, receivestr, ">") Then MSComm1.Output = ready MSComm1.InputMode = comInputModeBinary MSComm1.Output = 26 '1A的十进制数 MSComm1.InputMode = comInputModeText End If
5 结语
基于GSM网络远程水质监测系统只要配置合理,能够很好地完成河流水质监测任务。在实际应用中,运营费用一般是按照短消息的标准来收取,而对于集团用户或者大用户,则可以与GSM网络运营商协商采用按照信息流量计费或包月、包年计费的方式来降低运营成本。同时由于天气状况、通信线路等问题可能会造成短消息收发不畅,但笔者相信,随着技术的进步,基于GSM的远程控制方式一定会越来越经济、可靠。
|