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

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

 隨著移動通信和電子技術(shù)的不斷發(fā)展,,手機(jī)越來越成為人們?nèi)粘I詈凸ぷ髦斜夭豢缮俚耐ㄐ殴ぞ摺?jù)工業(yè)和信息化部的統(tǒng)計數(shù)據(jù)顯示,,目前,,我國移動電話普及率達(dá)到每百人80.2部,,超過固定電話28.1%,,其用戶已躍居世界第一位[1]。
 SMS業(yè)務(wù)將手機(jī)的通話功能和尋呼機(jī)的尋呼功能合二為一,,可以靈活地發(fā)送和接收各種信息,。很多企事業(yè)單位開始根據(jù)自身的需求,以短信息的形式發(fā)送企事業(yè)產(chǎn)品,、服務(wù),、各種促銷活動、通知,、公告等信息,;利用短信息提供信息互動查詢,實(shí)現(xiàn)企事業(yè)內(nèi)部以及企事業(yè)與客戶之間的有效溝通,,加強(qiáng)企事業(yè)單位內(nèi)部管理和客戶關(guān)系管理[2],。作為高職院校,根據(jù)高校繳費(fèi)管理工作的需要和發(fā)展趨勢,,加入短信平臺也將顯得尤為重要,。
 基于以上考慮,,本文在對GSM數(shù)字移動通信網(wǎng)絡(luò)、串口通信,、AT指令和PDU編解碼進(jìn)行研究的基礎(chǔ)上,,設(shè)計并實(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è)計的中間件和應(yīng)用系統(tǒng)之間以數(shù)據(jù)庫作為訪問接口,,即可把本中間件看作是短信底層接口通信模塊層MC(Message Communication)、應(yīng)用層中可設(shè)計短信收發(fā)平臺層MR(Message Receive and send)和短信應(yīng)用層MA(Message Application),,形成獨(dú)立的三層架構(gòu),。
其中MC(中間件)作為短信平臺框架的基礎(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é)全部封起來,與其他模塊以數(shù)據(jù)庫表為接口相互協(xié)調(diào)工作,。不論是對于MR還是MA來說,,MC都是透明的,MC實(shí)際上起到的作用就是將GSM Modem與關(guān)系型數(shù)據(jù)庫緊密地聯(lián)系起來,,第三方應(yīng)用時只需要對MC中的數(shù)據(jù)庫進(jìn)行標(biāo)準(zhǔn)操作,,就可以正常地對GSM Modem進(jìn)行控制,從而獲得對短信息的操作權(quán),。
2 中間件(MC)功能設(shè)計
 MC作為硬件(GSM Modem)和數(shù)據(jù)庫的樞紐,,設(shè)計應(yīng)該具備以下功能:
 (1)被動處理:將GSM Modem接入到計算機(jī)標(biāo)準(zhǔn)COM口上,,當(dāng)GSM Modem接收到信息并且通過COM反饋到MC后,,MC可以把收到的的短信數(shù)據(jù)存放到數(shù)據(jù)庫中。
?。?)主動處理:當(dāng)數(shù)據(jù)庫中的信息發(fā)送表中有新的數(shù)據(jù)時,,MC每隔1 min進(jìn)行掃描,并在作出反應(yīng)后,,MC把相關(guān)數(shù)據(jù)通過COM口發(fā)送給GSM Modem,。
MC功能示意圖如圖2所示。

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

3.1 類庫接口
 其他模塊只需要訪問ATPort類的7個公共方法即可很方便地實(shí)現(xiàn)短消息平臺系統(tǒng)。7個接口方法的功能和參數(shù)描述如下:
?。?)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方法說明如下:
 功能描述:發(fā)送短信,。
 Sms_TelNum:發(fā)送的終端號碼,。
 Sms_Text:發(fā)送的短信內(nèi)容。
 Sms_Send:返回值(0:發(fā)送短信失??;1:發(fā)送短信成功)。
?。?)int Sms_Receive(string Sms_Type,,string Sms_Text)
 Sms_Receive方法說明如下:
 功能描述:接收指定類型的短信。
 Sms_Type:短信類型(0:未讀短信,;1:已讀短信;2:待發(fā)短信,;3:已發(fā)短信,;4:全部短信)。
 Sms_Text:返回指定類型的短信內(nèi)容字符串(短信內(nèi)容字符串說明:短信與短信之前用"|"符號作為分隔符,,每條短信中間的各字段用"#"符號作為分隔符),。
 (4)int Sms_Delete(string Sms_Index)
 Sms_Delete方法說明如下:
 功能描述:刪除指定的短信。
 Sms_Index:短信的索引號,。
?。?)int Sms_AutoFlag()
 Sms_AutoFlag方法說明如下:
 功能描述:檢測連接的終端是否支持自動收發(fā)短信功能。
 Sms_AutoFlag:返回值(0:不支持,;1:支持),。
 (6)int Sms_NewFlag()
 Sms_NewFlag方法說明如下:
 功能描述:查詢是否收到新的短信息,。
 Sms_AutoFlag:返回值(0:未收到,;1:收到)。
?。?)int Sms_Disconnection()
 Sms_Disconnection方法說明如下:
 功能描述:斷開終端與串口的連接,。
3.2 類庫處理事務(wù)流程
 調(diào)用此類庫進(jìn)行AT串口編程時,首先要調(diào)用Sms_Connection方法對GSM Modem進(jìn)行硬件初始化,,包括串口號,、串口速率等參數(shù)設(shè)置;之后打開相應(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方法斷開終端與串口的連接,。具體的流程如圖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 中間件與應(yīng)用層之間接口數(shù)據(jù)庫的設(shè)計
 模塊高內(nèi)聚,、低耦合性是軟件開發(fā)必須重點(diǎn)考慮的問題,,所以系統(tǒng)設(shè)計應(yīng)用層(MR)與中間件(MC)之間的接口以數(shù)據(jù)庫的形式設(shè)計。根據(jù)系統(tǒng)實(shí)際需求應(yīng)該有7個表,,即待發(fā)短信表,、正在發(fā)送表、發(fā)送成功表,、發(fā)送失敗表,、過期未發(fā)送表、收到新短信表,、收到短信已讀表等7個數(shù)據(jù)表,,而且7個數(shù)據(jù)表在結(jié)構(gòu)上是一致的。其數(shù)據(jù)結(jié)構(gòu)如表1所示,。
至此,,本文就完成了整個中間件的設(shè)計與實(shí)現(xiàn)。應(yīng)用系統(tǒng)如典型的信息管理系統(tǒng),,對中間件來說只是一個提供數(shù)據(jù)的對象,,此數(shù)據(jù)以數(shù)據(jù)庫的方式提供?;谶@樣一種架構(gòu),,不僅使得系統(tǒng)結(jié)構(gòu)更清晰,而且更易于管理,、維護(hù)和擴(kuò)充,。
 本文設(shè)計并實(shí)現(xiàn)了基于串口通信的短信收發(fā)中間件系統(tǒng),由于其具有很強(qiáng)的高內(nèi)聚和低耦合性,,可直接應(yīng)用于各種應(yīng)用系統(tǒng),,如家校通系統(tǒng)、企業(yè)管理系統(tǒng),、圖書信息查詢系統(tǒng),、教務(wù)信息系統(tǒng)等。但本中間件還有改進(jìn)之處,,例如對于彩信(MMS)格式的支持,。隨著3G的逐步發(fā)展,彩信的使用已經(jīng)逐漸滲入到普通百姓的生活當(dāng)中,,多媒體信息的表現(xiàn)形式將在不久的將來占據(jù)越來越多的市場的份額,。克服GSM Modem的自身瓶頸(如發(fā)送穩(wěn)定性和發(fā)送吞吐量),,可以考慮采用“GSM Modem池”的方式來構(gòu)架短信平臺。
參考文獻(xiàn)
[1] 肖明華.Wap業(yè)務(wù)發(fā)展淺析[J].科技和產(chǎn)業(yè),2005(2).
[2] 王子禎,,孫亞夫.移動定位業(yè)務(wù)的開發(fā)[J].微計算機(jī)應(yīng)用,,2006(1):23-25.
[3] 郭梯云,鄔國揚(yáng),,李建東.移動通信[M].西安:西安電子科技大學(xué)出版社,,1995.
[4] 張云.基于GSM的短消息業(yè)務(wù)協(xié)議分析[J].無線電工程,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é)報,,2002(12).
[8] 歐洲電信標(biāo)準(zhǔn)協(xié)會.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)載。