資源描述:
《基于GSM模塊實(shí)現(xiàn)中文短信息發(fā)送2》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、摘 要 短信的發(fā)送需要GSM模塊和處理器協(xié)作完成,GSM模塊與ARM處理器通過(guò)串口連接,處理器向串口發(fā)送接收AT命令與GSM模塊形成通信回路。中文短信的發(fā)送采用PDU模式,根據(jù)PDU模式標(biāo)準(zhǔn)形成PDU發(fā)送包,實(shí)現(xiàn)短信發(fā)送。本文根據(jù)無(wú)線電話項(xiàng)目的短信發(fā)送模塊的實(shí)現(xiàn)開(kāi)發(fā)流程編寫。??關(guān)鍵詞 GSM;SMS;AT命令;PDU1?引言??2007年全國(guó)手機(jī)短信發(fā)送量達(dá)到5921億條,日均發(fā)送量超過(guò)16億條。短信的應(yīng)用也擴(kuò)展到各個(gè)領(lǐng)域,本文介紹了多媒體電話短消息發(fā)送模塊的實(shí)現(xiàn)原理和具體的實(shí)現(xiàn)方法。由短消息發(fā)送流程可以了解短信
2、息發(fā)送過(guò)程的每一個(gè)環(huán)節(jié),對(duì)短信息安全,屏蔽垃圾短信有一定的作用。2?GSM模塊及GSM模塊的短信功能??GSM(GlobalSystemforMobilecommunication)系統(tǒng)是目前基于時(shí)分多址技術(shù)的移動(dòng)通訊體制中比較成熟、完善、應(yīng)用最廣泛的一種系統(tǒng)。目前已建成的覆蓋全國(guó)的GSM數(shù)字蜂窩移動(dòng)通信網(wǎng),是我國(guó)公眾移動(dòng)通信網(wǎng)的主要方式,主要提供話音、短信息、數(shù)據(jù)等多種業(yè)務(wù)?;贕SM短消息功能可以做成傳輸各種檢測(cè)、監(jiān)控?cái)?shù)據(jù)信號(hào)和控制命令的數(shù)據(jù)通信系統(tǒng),能廣泛用于遠(yuǎn)程監(jiān)控、定位導(dǎo)航、個(gè)人通信終端等。由于公眾GSM
3、網(wǎng)絡(luò)在全球范圍內(nèi)實(shí)現(xiàn)了聯(lián)網(wǎng)和漫游,建立上述系統(tǒng)不需再組建專用通信網(wǎng)絡(luò),所以具有實(shí)時(shí)傳輸數(shù)據(jù)功能的短消息應(yīng)用將得到迅速普及。??SMS是由Etsi所制定的一個(gè)規(guī)范(GSM03.40和GSM03.38)。它可以發(fā)送最多160個(gè)字符,當(dāng)使用7-bits編碼的時(shí)候,8-bit編碼(最多140個(gè)字符)通常無(wú)法直接通過(guò)手機(jī)顯示,通常被用來(lái)作為數(shù)據(jù)消息。16-bit信息(最多70個(gè)字符)被用來(lái)顯示Unicode(UCS2)文本信息,可以被大多數(shù)的手機(jī)所顯示。一個(gè)以class0開(kāi)頭的16-bit的文本信息將在某些手機(jī)上作為Flas
4、hSMS顯示。3?實(shí)現(xiàn)中文短信發(fā)送??GSM模塊支持兩種方式來(lái)發(fā)送和接收SMS短信息,文本模式和PDU(ProtocolDescriptionUnit)模式,文本模式只能發(fā)送普通的Ascill字符,要發(fā)送圖片,鈴聲,其它編碼的字符(如中文)就必須采用PDU模式。??PDU模式中,可以采用三種編碼方式來(lái)編碼要發(fā)送的內(nèi)容,分別是7bit編碼,8bit編碼,16bit編碼,7bit編碼用于發(fā)送普通的Ascill字符,8bit編碼通常用于發(fā)送數(shù)據(jù)信息,如圖片和鈴聲,而16bit編碼用于發(fā)送Unicode字符。三種編碼可以發(fā)
5、送的最大字符分別是160,140,70。發(fā)送中文短信要采用PDU模式的Unicode編碼方式,具體步驟描述??(1)GB2321編碼到Unicode編碼的轉(zhuǎn)換。??●操作系統(tǒng)提供函數(shù)(有些系統(tǒng)不提供,如deltaos)。??●手動(dòng)查表。??(2)Unicode編碼到16bit編碼的轉(zhuǎn)換。??●得到的Unicode編碼后,還需要轉(zhuǎn)換成PDU的16bit編碼才可以正確的發(fā)送。??●這個(gè)轉(zhuǎn)換過(guò)程中Unicode編碼最開(kāi)始的0xffff標(biāo)志要去掉,在0xffff之后的內(nèi)容才是真正的Unicode字符。??●Unicode是
6、雙字節(jié),根據(jù)系統(tǒng)如果是小端字節(jié)序(little-endian),也就是說(shuō),存儲(chǔ)的時(shí)候,先存低位再存高位,例如:“中”的Unicode編碼是0x4E2D,儲(chǔ)存的時(shí)候是2D4E,在轉(zhuǎn)換到16bit編碼的時(shí)候要轉(zhuǎn)換順序,如果是大端字節(jié)序(big-endian)如本系統(tǒng),就不需要轉(zhuǎn)換了。??●正確計(jì)算16bit編碼的消息體長(zhǎng)度,PDU規(guī)范中,包括消息體本身。??●正確設(shè)置TYPE,TP-MR,TP-PID,TP-VP,在下文PDU格式中,依次設(shè)置為:11,00,00,08,01(以上都為16進(jìn)制數(shù))。??(3)形成標(biāo)準(zhǔn)的發(fā)
7、送包。3.1 短信發(fā)送過(guò)程分析??處理器通過(guò)向串口發(fā)送接收AT命令與GSM模塊形成通信回路,通過(guò)AT命令實(shí)現(xiàn)對(duì)GSM模塊的基本操作,用于發(fā)送短信的AT命令如表1所示。??發(fā)送短信可用文本模式和協(xié)議數(shù)據(jù)單元模式(PDU,protocoldataunit)。大多手機(jī)不支持文本模式,只支持PDU模式。PDU模式是把短信正文經(jīng)十六進(jìn)制編碼后被傳送,其編碼總體上分為三個(gè)部分:服務(wù)中心號(hào)、接收方手機(jī)號(hào)、短信內(nèi)容,如“你好”短信PDU編碼是這樣的(其中xyz是手機(jī)號(hào)具體數(shù)字):0011000B8131258698yxFz0008
8、01044F60597D,其意義如表2所示。表1 發(fā)送短信使用的AT命令A(yù)T命令功能例子AT+CMGF設(shè)置短信的格式,0=PDU模式(默認(rèn)),1=文本模式AT+CMGF=0AT+CSCA獲取服務(wù)中心的號(hào)碼AT+CSCA?AT+CMGS發(fā)送AT+CMGS=YYY;其中YYY為TPDU的十進(jìn)制長(zhǎng)度AT+CMGS=19接收到“”響應(yīng)后發(fā)送短信內(nèi)容表2 發(fā)送數(shù)據(jù)分析