《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于串口通信的短信收發(fā)中間件的研究與設(shè)計(jì)
基于串口通信的短信收發(fā)中間件的研究與設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2012年第17期
丁永尚,何旭明,朱 亮,芮文艷
(蘇州工業(yè)職業(yè)技術(shù)學(xué)院,江蘇 蘇州 215104)
摘要: 在對(duì)串口通信、AT指令和PDU編解碼進(jìn)行研究的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于串口通信的短信收發(fā)中間件,其具有很強(qiáng)的強(qiáng)內(nèi)聚和低耦合性的特點(diǎn),可直接應(yīng)用于各種應(yīng)用系統(tǒng),如家校通系統(tǒng)、企業(yè)管理系統(tǒng)、圖書(shū)信息查詢系統(tǒng)、教務(wù)信息系統(tǒng)等,為應(yīng)用系統(tǒng)提供短信息的收發(fā)和管理服務(wù)。
Abstract:
Key words :

摘  要: 在對(duì)串口通信、AT指令和PDU編解碼進(jìn)行研究的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于串口通信的短信收發(fā)中間件,其具有很強(qiáng)的強(qiáng)內(nèi)聚和低耦合性的特點(diǎn),可直接應(yīng)用于各種應(yīng)用系統(tǒng),如家校通系統(tǒng)、企業(yè)管理系統(tǒng)、圖書(shū)信息查詢系統(tǒng)、教務(wù)信息系統(tǒng)等,為應(yīng)用系統(tǒng)提供短信息的收發(fā)和管理服務(wù)。
關(guān)鍵詞: AT指令;串口通信;短信;信息化

 隨著移動(dòng)通信和電子技術(shù)的不斷發(fā)展,手機(jī)越來(lái)越成為人們?nèi)粘I詈凸ぷ髦斜夭豢缮俚耐ㄐ殴ぞ?。?jù)工業(yè)和信息化部的統(tǒng)計(jì)數(shù)據(jù)顯示,目前,我國(guó)移動(dòng)電話普及率達(dá)到每百人80.2部,超過(guò)固定電話28.1%,其用戶已躍居世界第一位[1]。
 SMS業(yè)務(wù)將手機(jī)的通話功能和尋呼機(jī)的尋呼功能合二為一,可以靈活地發(fā)送和接收各種信息。很多企事業(yè)單位開(kāi)始根據(jù)自身的需求,以短信息的形式發(fā)送企事業(yè)產(chǎn)品、服務(wù)、各種促銷活動(dòng)、通知、公告等信息;利用短信息提供信息互動(dòng)查詢,實(shí)現(xiàn)企事業(yè)內(nèi)部以及企事業(yè)與客戶之間的有效溝通,加強(qiáng)企事業(yè)單位內(nèi)部管理和客戶關(guān)系管理[2]。作為高職院校,根據(jù)高校繳費(fèi)管理工作的需要和發(fā)展趨勢(shì),加入短信平臺(tái)也將顯得尤為重要。
 基于以上考慮,本文在對(duì)GSM數(shù)字移動(dòng)通信網(wǎng)絡(luò)、串口通信、AT指令和PDU編解碼進(jìn)行研究的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)基于串口通信的短信收發(fā)中間件,根據(jù)提供的接口可方便地應(yīng)用于其他軟件中。
1 中間件在應(yīng)用系統(tǒng)中的地位
 為了能夠使得應(yīng)用系統(tǒng)中的短信息收發(fā)模塊具有更強(qiáng)的可擴(kuò)展性和可管理性,更具有模塊強(qiáng)內(nèi)聚性、低耦合性的特點(diǎn),本文設(shè)計(jì)的中間件和應(yīng)用系統(tǒng)之間以數(shù)據(jù)庫(kù)作為訪問(wèn)接口,即可把本中間件看作是短信底層接口通信模塊層MC(Message Communication)、應(yīng)用層中可設(shè)計(jì)短信收發(fā)平臺(tái)層MR(Message Receive and send)和短信應(yīng)用層MA(Message Application),形成獨(dú)立的三層架構(gòu)。
其中MC(中間件)作為短信平臺(tái)框架的基礎(chǔ),包含了系統(tǒng)的核心技術(shù),是系統(tǒng)實(shí)現(xiàn)的難點(diǎn),也是本文重點(diǎn)研究的內(nèi)容。系統(tǒng)總體框架圖如圖1所示。

 MC作為MR的核心組件是非常重要的,MC能夠把所有與硬件(GSM Modem)交互的細(xì)節(jié)全部封起來(lái),與其他模塊以數(shù)據(jù)庫(kù)表為接口相互協(xié)調(diào)工作。不論是對(duì)于MR還是MA來(lái)說(shuō),MC都是透明的,MC實(shí)際上起到的作用就是將GSM Modem與關(guān)系型數(shù)據(jù)庫(kù)緊密地聯(lián)系起來(lái),第三方應(yīng)用時(shí)只需要對(duì)MC中的數(shù)據(jù)庫(kù)進(jìn)行標(biāo)準(zhǔn)操作,就可以正常地對(duì)GSM Modem進(jìn)行控制,從而獲得對(duì)短信息的操作權(quán)。
2 中間件(MC)功能設(shè)計(jì)
 MC作為硬件(GSM Modem)和數(shù)據(jù)庫(kù)的樞紐,設(shè)計(jì)應(yīng)該具備以下功能:
?。?)被動(dòng)處理:將GSM Modem接入到計(jì)算機(jī)標(biāo)準(zhǔn)COM口上,當(dāng)GSM Modem接收到信息并且通過(guò)COM反饋到MC后,MC可以把收到的的短信數(shù)據(jù)存放到數(shù)據(jù)庫(kù)中。
?。?)主動(dòng)處理:當(dāng)數(shù)據(jù)庫(kù)中的信息發(fā)送表中有新的數(shù)據(jù)時(shí),MC每隔1 min進(jìn)行掃描,并在作出反應(yīng)后,MC把相關(guān)數(shù)據(jù)通過(guò)COM口發(fā)送給GSM Modem。
MC功能示意圖如圖2所示。

3 底層通信類庫(kù)框架設(shè)計(jì)
 ATPort類庫(kù)設(shè)計(jì)的目的是把底層調(diào)用AT指令進(jìn)行串行通信的細(xì)節(jié)分裝,然后以方法的形式提供外部調(diào)用接口,使整個(gè)短信平臺(tái)有一個(gè)很好的擴(kuò)展性、穩(wěn)定性和低耦合性;而且編譯封裝之后可以以二次開(kāi)發(fā)包的身份供其他程序員或項(xiàng)目使用。ATPort類庫(kù)的內(nèi)部結(jié)構(gòu)如圖3所示。

3.1 類庫(kù)接口
 其他模塊只需要訪問(wèn)ATPort類的7個(gè)公共方法即可很方便地實(shí)現(xiàn)短消息平臺(tái)系統(tǒng)。7個(gè)接口方法的功能和參數(shù)描述如下:
 (1)int Sms_Connection(int Com_Port,int Com_BaudRate, string Mobile_Type)
 Sms_Connection方法說(shuō)明如下:
 功能描述:用于初始化終端與串口的連接。
 Com_Port:串口號(hào)(0為紅外接口,1,2,3,…為串口)。
 Com_BaudRate:波特率。
 Mobile_Type:返回終端型號(hào)。
 Sms_Connection:返回值(0:連接終端失??;1:連接終端成功)。
(2)int Sms_Send(string Sms_TelNum, string Sms_Text)
 Sms_Send方法說(shuō)明如下:
 功能描述:發(fā)送短信。
 Sms_TelNum:發(fā)送的終端號(hào)碼。
 Sms_Text:發(fā)送的短信內(nèi)容。
 Sms_Send:返回值(0:發(fā)送短信失??;1:發(fā)送短信成功)。
?。?)int Sms_Receive(string Sms_Type,string Sms_Text)
 Sms_Receive方法說(shuō)明如下:
 功能描述:接收指定類型的短信。
 Sms_Type:短信類型(0:未讀短信;1:已讀短信;2:待發(fā)短信;3:已發(fā)短信;4:全部短信)。
 Sms_Text:返回指定類型的短信內(nèi)容字符串(短信內(nèi)容字符串說(shuō)明:短信與短信之前用"|"符號(hào)作為分隔符,每條短信中間的各字段用"#"符號(hào)作為分隔符)。
?。?)int Sms_Delete(string Sms_Index)
 Sms_Delete方法說(shuō)明如下:
 功能描述:刪除指定的短信。
 Sms_Index:短信的索引號(hào)。
?。?)int Sms_AutoFlag()
 Sms_AutoFlag方法說(shuō)明如下:
 功能描述:檢測(cè)連接的終端是否支持自動(dòng)收發(fā)短信功能。
 Sms_AutoFlag:返回值(0:不支持;1:支持)。
?。?)int Sms_NewFlag()
 Sms_NewFlag方法說(shuō)明如下:
 功能描述:查詢是否收到新的短信息。
 Sms_AutoFlag:返回值(0:未收到;1:收到)。
?。?)int Sms_Disconnection()
 Sms_Disconnection方法說(shuō)明如下:
 功能描述:斷開(kāi)終端與串口的連接。
3.2 類庫(kù)處理事務(wù)流程
 調(diào)用此類庫(kù)進(jìn)行AT串口編程時(shí),首先要調(diào)用Sms_Connection方法對(duì)GSM Modem進(jìn)行硬件初始化,包括串口號(hào)、串口速率等參數(shù)設(shè)置;之后打開(kāi)相應(yīng)串口,檢驗(yàn)GSM Modem的初始化是否成功。成功之后,即可以進(jìn)行調(diào)用Sms_Send方法發(fā)送短信、調(diào)用Sms_Receive接收短信、調(diào)用Sms_Delete方法刪除短信等事務(wù)處理。處理完之后調(diào)用Sms_Disconnection方法斷開(kāi)終端與串口的連接。具體的流程如圖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為串口號(hào),為紅外接口;,2,3,...為串口
            {
             State_Show.Text=TypeStr;
//WAVECOM MODEM
                ap.Sms_Send(TelNum_Text.Text,
SendSms_Text.Text);
            }
            else
                return;

 


4 中間件與應(yīng)用層之間接口數(shù)據(jù)庫(kù)的設(shè)計(jì)
 模塊高內(nèi)聚、低耦合性是軟件開(kāi)發(fā)必須重點(diǎn)考慮的問(wèn)題,所以系統(tǒng)設(shè)計(jì)應(yīng)用層(MR)與中間件(MC)之間的接口以數(shù)據(jù)庫(kù)的形式設(shè)計(jì)。根據(jù)系統(tǒng)實(shí)際需求應(yīng)該有7個(gè)表,即待發(fā)短信表、正在發(fā)送表、發(fā)送成功表、發(fā)送失敗表、過(guò)期未發(fā)送表、收到新短信表、收到短信已讀表等7個(gè)數(shù)據(jù)表,而且7個(gè)數(shù)據(jù)表在結(jié)構(gòu)上是一致的。其數(shù)據(jù)結(jié)構(gòu)如表1所示。
至此,本文就完成了整個(gè)中間件的設(shè)計(jì)與實(shí)現(xiàn)。應(yīng)用系統(tǒng)如典型的信息管理系統(tǒng),對(duì)中間件來(lái)說(shuō)只是一個(gè)提供數(shù)據(jù)的對(duì)象,此數(shù)據(jù)以數(shù)據(jù)庫(kù)的方式提供?;谶@樣一種架構(gòu),不僅使得系統(tǒng)結(jié)構(gòu)更清晰,而且更易于管理、維護(hù)和擴(kuò)充。
 本文設(shè)計(jì)并實(shí)現(xiàn)了基于串口通信的短信收發(fā)中間件系統(tǒng),由于其具有很強(qiáng)的高內(nèi)聚和低耦合性,可直接應(yīng)用于各種應(yīng)用系統(tǒng),如家校通系統(tǒng)、企業(yè)管理系統(tǒng)、圖書(shū)信息查詢系統(tǒng)、教務(wù)信息系統(tǒng)等。但本中間件還有改進(jìn)之處,例如對(duì)于彩信(MMS)格式的支持。隨著3G的逐步發(fā)展,彩信的使用已經(jīng)逐漸滲入到普通百姓的生活當(dāng)中,多媒體信息的表現(xiàn)形式將在不久的將來(lái)占據(jù)越來(lái)越多的市場(chǎng)的份額??朔礼SM Modem的自身瓶頸(如發(fā)送穩(wěn)定性和發(fā)送吞吐量),可以考慮采用“GSM Modem池”的方式來(lái)構(gòu)架短信平臺(tái)。
參考文獻(xiàn)
[1] 肖明華.Wap業(yè)務(wù)發(fā)展淺析[J].科技和產(chǎn)業(yè),2005(2).
[2] 王子禎,孫亞夫.移動(dòng)定位業(yè)務(wù)的開(kāi)發(fā)[J].微計(jì)算機(jī)應(yīng)用,2006(1):23-25.
[3] 郭梯云,鄔國(guó)揚(yáng),李建東.移動(dòng)通信[M].西安:西安電子科技大學(xué)出版社,1995.
[4] 張?jiān)?基于GSM的短消息業(yè)務(wù)協(xié)議分析[J].無(wú)線電工程,2001(4).
[5] 劉濤.基于手機(jī)模塊TC35的單片機(jī)短消息收發(fā)系統(tǒng)[J].電子技術(shù),2003(3).
[6] Dino Esposito.構(gòu)建Web解決方案[M].北京:清華大學(xué)出版社,2002.
[7] 劉德山,楊春志.基于C/S和B/S混合結(jié)構(gòu)的高校教務(wù)管理信息系統(tǒng)[J].遼寧師范大學(xué)學(xué)報(bào),2002(12).
[8] 歐洲電信標(biāo)準(zhǔn)協(xié)會(huì).AT command set for GSM mobile equipment.1999.
[9] SIEMENS. SIEMENS mobile. AT command set.2002.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。