引 言
短消息业务是GPRS/CDMA系统中最为简单和方便的数据通信方式,它不需要附加其他较为庞大的数据终端设备,仅使用GPRS/CDMA模块就可以进行信息交流。短消息业务是通过信道传输的,所以这些信息的发送和接收可以在GPRS/CDMA网络上与语音、数据和传真服务同时进行而不会彼此产生任何干扰。在诸多增值业务中,短消息服务因其价格低廉、使用方便、信息传递准确及时、可存储转发等优点而备受欢迎。短消息服务具有良好的市场,并最早应用于电力系统传输领域。
1 短消息在电力通信中的应用
短消息电力负荷系统中数据的传输模式有2种:对电力负荷管理终端进行数据召测,及终端数据主动上传。短消息在终端侧的连接方式相同,在主站侧的连接方案有2种:
方案一是通过短消息通信方式,在主站设置一个或若干个GSM/CDMA中心主台,与终端的GPRS/CDMA通信模块直接“点对点”通信。这种方式适用于终端数量较少的场所,可减少主站的设备投资。
方案二是从短消息服务中心建立专线连接,短消息通过专线发送到服务中心,服务中心再转发到终端中;终端侧的数据先发到短消息服务中心,再通过专线传到电力负荷主站上。该方式可以解决主站侧多个终端设备上报造成的信道容量问题。但是,这种方式需要申请数据专线的连接并承担一定的运行费用。
短消息业务在电力负荷系统中的应用存在以下缺点:
◆实时性差,不适用于对实时控制功能要求很高的负荷管理系统;
◆短消息业务还不适用于电力负荷管理系统的分组与群发功能;
◆数据传输长度受到限制,每条短消息的长度最多为140字节,这样也不利于大量数据的传输。
基于以上的原因及GPRS/CDMA通信技术的不断发展,大多数电力设备在数据传输通信上都使用GPRS或CDMA,而短信功能则慢慢成为电力设备应用中的辅助操作功能。这些辅助功能必不可少,可以极大地扩展设备产品应用的功能性,提高便利性。例如利用短信实现实时报警功能,如负荷管理预付费报警、电力线防盗系统、电力通信网的管理报警等;利用短信实现参数修改的功能,如本文中实现短信修改负荷管理终端中IP地址和端口号等。
2 短消息操作的AT命令和报文格式
AT命令是由美国Hayes公司推出的Mdoem操作命令集,是Modem通信接口的工业标准。GPRS/CDMA模块在实际应用中,通信方式和任何通信相关的参数均利用AT命令的形式通过串口本地更改设置。
在GPRS模块(以MC55为例)中短信操作相关的AT命令有:
AT+CMGF=1(设置短信格式为文本)
AT+CNMI=3,1(设置新消息提示)
+CMTI:"MT",2(收到新短消息提示,表示新消息存储于存储空间第2条)
AT+CMGR=2(读出存储序号为2的消息)
AT+CMGD=2(删除存储序号为2的消息)
AT+CMGS=139********\r>"Message"OxlA(短信发送操作)
在CDMA模块(以AnyDATA公司的模块为例)短信相关的AT命令有:
AT+UGSM=1(选择使用第2套短信指令)
AT+CMGF=1(格式化输出,实际数据的每个字节输出其ASCII值)
AT+CMGF=0(普通格式,输出短消息的二进制原文)
CMT:1(有短信来时终端显示,为1表示新消息存储于空间的第1个位置)
AT+CMGR=1(读存储序号为1的消息)
+CMGR:00000220,13956083950,,2008/08/29/10:13,0,123456789\r\nOK\r\n(模块回复)
AT+CMGS=2,13956083950,,0,123(发信息过程)
+CMGS:2\rknOK\r\nCMGS:2,1(发送成功模块回复)
在设计中,主要利用GPRS/CDMA的短信功能来修改和查询终端系统的IP地址、端口号和服务类型,以及利用短信复位终端系统的GPRS/CDMA模块。自定义了短信的报文格式,这些报文主要由字母和数字组成。为了方便短信操作,在GPRS和CDMA的短信操作中都选用文本格式。
短信报文命令格式:
AT+KDC 修改命令
具体格式:PAT+KDC=210.45.240.8,8080,192.168.0.18,9999,,,cmnet#
前半部分为主IP和端121号,接着是备用IP和端口号,最后是服务类型。其他短信报文格式有:
AT+KDC? 查询命令
AT+RET 复位命令
终端系统在给操作用户回复相关结果时,也严格按照这种短信报文格式进行操作。
3 短消息功能的程序设计
GPRS和CDMA短信整体的设计框架是一样的,只是在某些具体细节上有些区别。由图1所示的流程可以了解到,当有短信来的时候,MCU的串口会收到短信来提示符,接着系统会发送读操作AT命令,将相应短信存储器中的消息读出来,再对读出的短信进行解包处理判断出本条短信的操作类型,然后进行相应的操作。如修改操作,需要将终端系统的原有IP地址、端口和服务类型修改成操作者需要的IP地址、端口和服务类型,并将修改后的 IP地址、端口和服务类型作为回复信息发回给操作者,然后复位GPRS/CDMA模块。另外,在进行短信操作时,需要及时清理GPRS/CDMA模块的短信存储空间,以免短信存储空间满,造成新的短信不能接收。
整个短信功能实现的主要函数如下:
需要注意,短信功能作为整个GPRS/CDMA通信功能的一部分,其本身必须与整个GPRS/CDMA通信框架融合。为了将短信处理函数 HandleSMS()很好地放在GPRS/CDMA通信框架中,使短信操作与GPRS/CDMA通信无缝连接,互不影响,考虑和解决了以下几点:
①短信的操作不能发生在GPRS/CDMA模块正在拨号连接的过程中,所以在设计中,对模块的拨号过程进行强制保护。短信的具体操作主要发生GPRS/CDMA模块的未连接状态和数据传输状态。
②短信在修改过系统参数后,需将修改后的参数作为应答信息回复给操作者,然后GPRS/CDMA模块复位,按照新的参数进行上线连接。需要注意的是模块复位时间与应答信息回复时间之间的操作匹配,否则会造成应答信息收不到。设计中,利用相关定时器控制复位操作的执行时间,确保在收到应答信息后模块再复位。
③CDMA模块在进行AT模式操作连接后进入透传模式。在该模式下任何AT操作都会视为传输数据,所以当在透传模式下进行短信操作时,需要将已建立的连接断开。设计中,在透传模式下进行短信操作时,强制复位CDMA模块,使模块上电但不连接上线,然后再进行短信操作。
④为了防止短信存储空间满,或者因为信号强度等原因造成短信没有及时收到,在程序设计中短信解包处理操作后会立即删除存储区的短信,并在AT的拨号中设置1次读操作和1次删除操作,以保证有足够的储存空间来接收短信。读操作用来处理上次没有及时收到的短信。
结 语
本文重点介绍了在负荷管理系统中,如何实现短信修改负荷管理终端IP地址和端口号的功能。文中详细说明了实现GPRS/CDMA短信功能所需的AT命令以及各命令之间的关系和操作顺序,阐述了实现GPRS/CDMA短信功能的软件设计流程,给出了功能函数的框架,具体说明了在软件设计中的重点和难点并给出了若干解决方法。该设计已应用到终端现场,运行稳定可靠,具有很好的工程应用价值。