對于特殊字符串的sms短信接口模塊設(shè)計
來源:原創(chuàng) 時間:2018-02-22 瀏覽:0 次Based on the distributed application of short message service , one necessary job is to realize the automatic receipt / sending of short messages by computer . At present , there are three basic modes to realize the automatic sending and receiving of short messages , which are gateway mode , website mode and terminal mode .
終端模式通過短信模塊來收發(fā)短信,具有成本低廉,搭建和部署方便等優(yōu)點.本文主要討論的是終端模式.1工作原理1·1通信子系統(tǒng)的組成一般情況下,利用短信模塊來收發(fā)短信的子系統(tǒng)至少包含IT6z1KJ]3個功能部件,如圖1所示.圖1基于短信模塊的通信子系統(tǒng)的組成其中,通信接口程序是運行于計算機上,與短信模塊進行交互.根據(jù)空中接口的不同,短信模塊可分為CDMA和GSM兩種.本文基于GSM短信模塊討論.目前,國內(nèi)最常見短信模塊的核心部件是由WavCom,Siemens和Motorola等提供的.本文使用WavCom內(nèi)核的USB短信模塊.數(shù)據(jù)連接線是將短信模塊與計算機連接的一種電纜,主要包括RS-232-C串口線,藍牙,紅外或者USB等媒介的連接方式.GSM SMS的有關(guān)協(xié)議和規(guī)范是參考CCITT v·24來定義短信模塊和計算機之間的連接電路[3-5],因此無論采用哪種連接媒介,在接口程序看來都是通過串口與短信模塊進行交互的.1·2 AT命令計算機是通過AT命令來操縱短信模塊的.上世紀90年代初,AT命令僅用于Modem操作,為了控制移動電話的文本消息,人們相繼開發(fā)了Block,Text和PDU模式的AT命令.而PDU支持UTF7,UTF8和Unicode三種編碼.UTF7只能用于對標準的ASCII字符信息進行編碼,UTF8則主要用于圖像和鈴聲等多媒體信息的編碼,而要發(fā)送和接收中文,只能使用PDU模式的Unicode編碼.本文只考慮采用PDU模式.短信模塊所支持的AT命令覆蓋的范圍涉及語音,傳真,短信,SIM應(yīng)用工具集等.與短信相關(guān)的AT命令如表1所示[4-5].表1與GSM短信有關(guān)的AT命令命令作用AT+CPMS選擇短信儲存地點.可選擇ME(SIM卡)和MT(機身)AT+CMGL列出指定狀態(tài)的短信息的PDU代碼AT+CMGR列出指定序號的短信息PDU代碼AT+CMGS發(fā)送短信AT+CMGD刪除指定的短信AT+CMGF短信格式:Text模式和PDU模式AT+CNMI設(shè)置新短消息通知電腦端AT+CSCA短信中心在設(shè)計過程中,使用AT+CMGF,AT+CNMI,AT+CMGS三條命令,分別用于設(shè)置短信的模式,到達通知模式中華測控網(wǎng)chinamca.com和發(fā)送.(1)設(shè)置模塊的模式:短信模塊模式的設(shè)置由AT+CMGF來完成.若為TEXT模式,向短信模塊連接的串口發(fā)送字 ( 1 ) The mode of setting module : The setting of short message module mode is completed by AT + CMGF . In the case of TEXT mode , the serial port sent to the short message module is sent : AT + CMGF = 1 . In case of PDU mode , the module will return the string : AT + CMGF = 0 . In the implementation process , the module will return the string " OK " as the response , otherwise , return " ERROR " .
如果成功設(shè)置,SMS模塊返回字符串“OK”。計算機將從串口讀取一個字符串如下:CMT:42進入0f0040 dfc006f00f00c00輸入3)發(fā)短信:短信是在CMGS做的。在不同的模式,在CMGS使用的是不同的。所以只有采用PDU模式。PDU模式發(fā)送短消息分為兩個步驟:第一步是輸入用戶數(shù)據(jù)的字節(jié)信息,語法是:在CMGS =其中長度參數(shù)的計算將在編碼部分;以下是發(fā)送一個“HelloWorld”代碼例如:在CMGS = 37的回報如果短信模塊是正確的。第二步是PDU單元輸出的編碼,根據(jù)用戶的數(shù)據(jù)。
輸出語法為:如果成功發(fā)送,則為。返回一個字符串,如下:198飼料車好:CMGS換行1.3發(fā)送PDU編碼如表2所示,發(fā)送PDU包括13場[ 3 ],其中一些通??梢栽O(shè)置為默認值,其他領(lǐng)域會根據(jù)目的地址和短消息的內(nèi)容不同。其中,第1/2/3欄顯示了短信息中心的有關(guān)信息,而第6/7/8欄則顯示了該郵件目的地地址的有關(guān)信息。域1213包含有關(guān)SMS內(nèi)容的信息。由于GSM服務(wù)提供商的短信服務(wù)的參數(shù)基本相同,固定目前,如果短信代碼統(tǒng)一使用由用戶,默認值一般可用于大多數(shù)的13個領(lǐng)域,在領(lǐng)域的唯一真正的變化是3h8 / 12vfp13)地址碼:表2:對域的數(shù)目、長度的域名,SMSC地址信息的PDU發(fā)送:2 SMSC地址格式TN /新產(chǎn)品/ 3 SMSC地址4基本參數(shù)/ tp-mti / vfp5信息參考價值/ tp-mr6目標地址數(shù)。
的tp-pid10用戶信息編碼方法(tp-pid10)的tp-vppn12用戶數(shù)據(jù)長度和tp-udlm13用戶數(shù)據(jù)的有效期(tp-udl13用戶數(shù)據(jù)/ tp-ud13)表示的具體地址在第三和第八域的tp-pid-10用戶信息的編碼方法和tp-vppn12用戶數(shù)據(jù)長度和tp-udl13用戶數(shù)據(jù)(tp-udl13用戶數(shù)據(jù)/ tp-ud13)。編碼方法是相同的。下面以SMSC地址和目的地地址為例來說明其編碼過程,如圖2所示。首先,因為第二域固定為91,這意味著在國際格式的代碼需要在86s;然后,確定一個數(shù)的長度的奇偶,如果是奇,一個“F”必須添加在最后形成一個偶數(shù),否則“F“不應(yīng)該添加。可以獲得編碼的地址信息。
發(fā)送PDU地址域/用戶數(shù)據(jù)編碼的編碼過程:發(fā)送短消息時,如果你只是使用Unicode編碼方案(tp-dcs10),編碼比較簡單??梢苑秩酵瓿伞O旅娴睦诱f明了“HelloWorld”。圖3顯示了用戶的文本消息內(nèi)容的編碼過程,首先將字符串的所有字符轉(zhuǎn)換為雙字節(jié);然后,為每個字符獲取Unicode代碼;最后,得到Unicode的BCD碼字符串。?用戶信息的長度tp-udl的值是字符串的長度通過chinamca.com程序中國測控網(wǎng)絡(luò)上面提到的。
在PDU,對tp-udl值是14進制的形式。發(fā)送短消息時,第一步是把“CMGS”命令。后面應(yīng)該是一個表示用戶數(shù)據(jù)長度值的參數(shù)。