《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 基于串口通信的短信收发中间件的研究与设计
基于串口通信的短信收发中间件的研究与设计
来源:微型机与应用2012年第17期
丁永尚,何旭明,朱 亮,芮文艳
(苏州工业职业技术学院,江苏 苏州 215104)
摘要: 在对串口通信、AT指令和PDU编解码进行研究的基础上,设计并实现了基于串口通信的短信收发中间件,其具有很强的强内聚和低耦合性的特点,可直接应用于各种应用系统,如家校通系统、企业管理系统、图书信息查询系统、教务信息系统等,为应用系统提供短信息的收发和管理服务。
Abstract:
Key words :

摘  要: 在对串口通信AT指令和PDU编解码进行研究的基础上,设计并实现了基于串口通信的短信收发中间件,其具有很强的强内聚和低耦合性的特点,可直接应用于各种应用系统,如家校通系统、企业管理系统、图书信息查询系统、教务信息系统等,为应用系统提供短信息的收发和管理服务。
关键词: AT指令;串口通信;短信;信息化

 随着移动通信和电子技术的不断发展,手机越来越成为人们日常生活和工作中必不可少的通信工具。据工业和信息化部的统计数据显示,目前,我国移动电话普及率达到每百人80.2部,超过固定电话28.1%,其用户已跃居世界第一位[1]。
 SMS业务将手机的通话功能和寻呼机的寻呼功能合二为一,可以灵活地发送和接收各种信息。很多企事业单位开始根据自身的需求,以短信息的形式发送企事业产品、服务、各种促销活动、通知、公告等信息;利用短信息提供信息互动查询,实现企事业内部以及企事业与客户之间的有效沟通,加强企事业单位内部管理和客户关系管理[2]。作为高职院校,根据高校缴费管理工作的需要和发展趋势,加入短信平台也将显得尤为重要。
 基于以上考虑,本文在对GSM数字移动通信网络、串口通信、AT指令和PDU编解码进行研究的基础上,设计并实现基于串口通信的短信收发中间件,根据提供的接口可方便地应用于其他软件中。
1 中间件在应用系统中的地位
 为了能够使得应用系统中的短信息收发模块具有更强的可扩展性和可管理性,更具有模块强内聚性、低耦合性的特点,本文设计的中间件和应用系统之间以数据库作为访问接口,即可把本中间件看作是短信底层接口通信模块层MC(Message Communication)、应用层中可设计短信收发平台层MR(Message Receive and send)和短信应用层MA(Message Application),形成独立的三层架构。
其中MC(中间件)作为短信平台框架的基础,包含了系统的核心技术,是系统实现的难点,也是本文重点研究的内容。系统总体框架图如图1所示。

 MC作为MR的核心组件是非常重要的,MC能够把所有与硬件(GSM Modem)交互的细节全部封起来,与其他模块以数据库表为接口相互协调工作。不论是对于MR还是MA来说,MC都是透明的,MC实际上起到的作用就是将GSM Modem与关系型数据库紧密地联系起来,第三方应用时只需要对MC中的数据库进行标准操作,就可以正常地对GSM Modem进行控制,从而获得对短信息的操作权。
2 中间件(MC)功能设计
 MC作为硬件(GSM Modem)和数据库的枢纽,设计应该具备以下功能:
 (1)被动处理:将GSM Modem接入到计算机标准COM口上,当GSM Modem接收到信息并且通过COM反馈到MC后,MC可以把收到的的短信数据存放到数据库中。
 (2)主动处理:当数据库中的信息发送表中有新的数据时,MC每隔1 min进行扫描,并在作出反应后,MC把相关数据通过COM口发送给GSM Modem。
MC功能示意图如图2所示。

3 底层通信类库框架设计
 ATPort类库设计的目的是把底层调用AT指令进行串行通信的细节分装,然后以方法的形式提供外部调用接口,使整个短信平台有一个很好的扩展性、稳定性和低耦合性;而且编译封装之后可以以二次开发包的身份供其他程序员或项目使用。ATPort类库的内部结构如图3所示。

3.1 类库接口
 其他模块只需要访问ATPort类的7个公共方法即可很方便地实现短消息平台系统。7个接口方法的功能和参数描述如下:
 (1)int Sms_Connection(int Com_Port,int Com_BaudRate, string Mobile_Type)
 Sms_Connection方法说明如下:
 功能描述:用于初始化终端与串口的连接。
 Com_Port:串口号(0为红外接口,1,2,3,…为串口)。
 Com_BaudRate:波特率。
 Mobile_Type:返回终端型号。
 Sms_Connection:返回值(0:连接终端失败;1:连接终端成功)。
(2)int Sms_Send(string Sms_TelNum, string Sms_Text)
 Sms_Send方法说明如下:
 功能描述:发送短信。
 Sms_TelNum:发送的终端号码。
 Sms_Text:发送的短信内容。
 Sms_Send:返回值(0:发送短信失败;1:发送短信成功)。
 (3)int Sms_Receive(string Sms_Type,string Sms_Text)
 Sms_Receive方法说明如下:
 功能描述:接收指定类型的短信。
 Sms_Type:短信类型(0:未读短信;1:已读短信;2:待发短信;3:已发短信;4:全部短信)。
 Sms_Text:返回指定类型的短信内容字符串(短信内容字符串说明:短信与短信之前用"|"符号作为分隔符,每条短信中间的各字段用"#"符号作为分隔符)。
 (4)int Sms_Delete(string Sms_Index)
 Sms_Delete方法说明如下:
 功能描述:删除指定的短信。
 Sms_Index:短信的索引号。
 (5)int Sms_AutoFlag()
 Sms_AutoFlag方法说明如下:
 功能描述:检测连接的终端是否支持自动收发短信功能。
 Sms_AutoFlag:返回值(0:不支持;1:支持)。
 (6)int Sms_NewFlag()
 Sms_NewFlag方法说明如下:
 功能描述:查询是否收到新的短信息。
 Sms_AutoFlag:返回值(0:未收到;1:收到)。
 (7)int Sms_Disconnection()
 Sms_Disconnection方法说明如下:
 功能描述:断开终端与串口的连接。
3.2 类库处理事务流程
 调用此类库进行AT串口编程时,首先要调用Sms_Connection方法对GSM Modem进行硬件初始化,包括串口号、串口速率等参数设置;之后打开相应串口,检验GSM Modem的初始化是否成功。成功之后,即可以进行调用Sms_Send方法发送短信、调用Sms_Receive接收短信、调用Sms_Delete方法删除短信等事务处理。处理完之后调用Sms_Disconnection方法断开终端与串口的连接。具体的流程如图4所示。

流程代码如下:
ATPort ap;
String TypeStr="";  ///建立与GSM MODEM的连接
    String CopyRightToCOM="";
String CopyRightStr = "";
if(ap.Sms_Connection(CopyRightStr,uint.Parse(MobPort.Text.Trim()),
9600,out TypeStr,out CopyRightToCOM) = = 1)
 ///5为串口号,为红外接口;,2,3,...为串口
            {
             State_Show.Text=TypeStr;
//WAVECOM MODEM
                ap.Sms_Send(TelNum_Text.Text,
SendSms_Text.Text);
            }
            else
                return;

 


4 中间件与应用层之间接口数据库的设计
 模块高内聚、低耦合性是软件开发必须重点考虑的问题,所以系统设计应用层(MR)与中间件(MC)之间的接口以数据库的形式设计。根据系统实际需求应该有7个表,即待发短信表、正在发送表、发送成功表、发送失败表、过期未发送表、收到新短信表、收到短信已读表等7个数据表,而且7个数据表在结构上是一致的。其数据结构如表1所示。
至此,本文就完成了整个中间件的设计与实现。应用系统如典型的信息管理系统,对中间件来说只是一个提供数据的对象,此数据以数据库的方式提供。基于这样一种架构,不仅使得系统结构更清晰,而且更易于管理、维护和扩充。
 本文设计并实现了基于串口通信的短信收发中间件系统,由于其具有很强的高内聚和低耦合性,可直接应用于各种应用系统,如家校通系统、企业管理系统、图书信息查询系统、教务信息系统等。但本中间件还有改进之处,例如对于彩信(MMS)格式的支持。随着3G的逐步发展,彩信的使用已经逐渐渗入到普通百姓的生活当中,多媒体信息的表现形式将在不久的将来占据越来越多的市场的份额。克服GSM Modem的自身瓶颈(如发送稳定性和发送吞吐量),可以考虑采用“GSM Modem池”的方式来构架短信平台。
参考文献
[1] 肖明华.Wap业务发展浅析[J].科技和产业,2005(2).
[2] 王子祯,孙亚夫.移动定位业务的开发[J].微计算机应用,2006(1):23-25.
[3] 郭梯云,邬国扬,李建东.移动通信[M].西安:西安电子科技大学出版社,1995.
[4] 张云.基于GSM的短消息业务协议分析[J].无线电工程,2001(4).
[5] 刘涛.基于手机模块TC35的单片机短消息收发系统[J].电子技术,2003(3).
[6] Dino Esposito.构建Web解决方案[M].北京:清华大学出版社,2002.
[7] 刘德山,杨春志.基于C/S和B/S混合结构的高校教务管理信息系统[J].辽宁师范大学学报,2002(12).
[8] 欧洲电信标准协会.AT command set for GSM mobile equipment.1999.
[9] SIEMENS. SIEMENS mobile. AT command set.2002.

此内容为AET网站原创,未经授权禁止转载。