- 相關(guān)推薦
單片機控制GSM模塊實(shí)現短信收發(fā)的軟件設計
摘要:借助系統模型,闡明GSM模塊收發(fā)短信的基本概念以及串口控制SMS的基本原理。詳細介紹單片機控制GSM模塊工作的軟件實(shí)現過(guò)程,對怎樣用單片機控制GSM模塊收發(fā)短信進(jìn)行探討,也對程序設計的主體思想作了較為細致的分析。GSM(Global System for Mobile communication)系統是目前基于時(shí)分多址技術(shù)的移動(dòng)通信體制中,比較成熟完善,且應用最廣泛的一種系統。目前已建成的覆蓋全國的GSM數字蜂窩移動(dòng)通信網(wǎng),是我國公眾移動(dòng)通信網(wǎng)的主要方式;贕SM的短信信息服務(wù),是一種在移動(dòng)網(wǎng)絡(luò )上傳送簡(jiǎn)短信息的無(wú)線(xiàn)應用,是一種信息在移動(dòng)網(wǎng)絡(luò )上存儲和轉寄的過(guò)程。由于公眾GSM網(wǎng)絡(luò )在全球范圍內實(shí)現了聯(lián)網(wǎng)和漫游,建議上述系統不需再組建專(zhuān)用通信網(wǎng)絡(luò ),所以具有實(shí)時(shí)傳輸數據功能的短信應用將得到迅速普及。筆者開(kāi)發(fā)設計的基于GSM網(wǎng)絡(luò )的溫度數據采集與無(wú)線(xiàn)傳輸系統正是借助該網(wǎng)絡(luò )平臺,利用短信息業(yè)務(wù)實(shí)現數據的自動(dòng)雙向傳遞。系統模型圖如圖1所示。
本系統由數據采集部分、數據接收和發(fā)送部分、終端處理部分三個(gè)模塊組成。數據采集模塊將采集到的溫度數據存入存儲器中。數據收發(fā)模塊采用雙單片機共用E2RPOM的方式,單片機2控制數據從存儲器轉存入E2PROM中;單片機1負責將數據從E2PROM中讀出,并經(jīng)GSM模塊2借助GSM網(wǎng)絡(luò )將數據發(fā)送出去。單片機1不僅控制數據的發(fā)送,也控制數據的接收。在這里,E2PROM是溫度數據臨時(shí)存儲和上傳的中轉站。終端處理模塊負責將接收到的數據交給計算機處理,并將處理后的結果存放到數據庫中,以供查詢(xún)。當終端處理模塊需要向GSM模塊2發(fā)送控制命令時(shí),GSM模塊2接收過(guò)程正好與上述過(guò)程相反,從而實(shí)現數據的自動(dòng)雙向傳遞。
系統中,三個(gè)模塊相互獨立,彼此又相互依賴(lài),共同完成數據的傳輸。數據收發(fā)模塊在系統中起著(zhù)承上啟下的作用,是系統的核心模塊。該模塊以雙單片機為核心,以RS232通信接口,在物理層上實(shí)現與GSM模塊的連接。由于篇幅的限制,本文主要介紹單片機控制這一模塊工作的軟件實(shí)現過(guò)程,旨在對怎樣用單片機控制GSM模塊收發(fā)短信息進(jìn)行探討。
1 GSM模塊MZ28
MZ28是中興通訊推出的GSM無(wú)線(xiàn)雙頻調制解調器,主要為語(yǔ)音傳輸、短信發(fā)送和數據業(yè)務(wù)提供無(wú)線(xiàn)接口。MZ28集成了完整的射頻電路和GSM的基帶處理器,特別適合于迅速開(kāi)發(fā)基于GSM無(wú)線(xiàn)網(wǎng)絡(luò )的無(wú)線(xiàn)應用產(chǎn)品。帶有人機接口(MMI)界面的應用產(chǎn)品內部與MZ28的通信可通過(guò)標準的串行接口(RS232)進(jìn)行。MZ28使用簡(jiǎn)單的20-PIN ZIP插座與用戶(hù)自己的應用系統相連,此ZIP連接方式提供開(kāi)發(fā)所需的數據通信、音頻和電源等接口信號。MZ28可以作為無(wú)線(xiàn)引擎,嵌入到用戶(hù)自己的產(chǎn)品當中,用戶(hù)可以用單片機或其它CPU的UART口,使用相應的AT命令,對模塊進(jìn)行控制,達到使其產(chǎn)品可以輕松進(jìn)入GSM網(wǎng)絡(luò )的目的。
2 串口控制SMS的工作原理
單片機與GSM模塊一般采用串行異步通信接口,通信速度可設定,通常為19200bps。采用這種RSM232電纜方式進(jìn)行連接時(shí),數據傳輸的可靠性較好。RS232接口方式連接,通過(guò)串行接口集成電路和電平轉換電路與GSM模塊連接,電路比較簡(jiǎn)單,所涉及的芯片包括單片機89C52和電平轉換芯片MAX232,是非常常見(jiàn)的接口電路。需要說(shuō)明的是,該接口通過(guò)I2C總線(xiàn)擴展了一個(gè)E2PROM存儲器芯片AT24C64,它的主要作用是存儲數據,而且斷電信息也不會(huì )丟失,這些特性正是存儲數據所必須的。
GSM的短信息業(yè)務(wù)SMS利用信令信道傳輸,這是GSM通信網(wǎng)所特有的。它不用撥號建立連接,把要發(fā)的信息加上目的數據發(fā)送到短信息服務(wù)中心,經(jīng)短信服務(wù)中心完成存儲后再發(fā)送給最終的信宿。所以當目的GSM終端沒(méi)開(kāi)機時(shí)信息不會(huì )丟失。每個(gè)短信的信息量限制為160字節。
現在市場(chǎng)上大多數手機均支持GSM07.05規定的AT指令集。該指令集是ETSI(歐洲通信技術(shù)委員會(huì ))發(fā)布的,其中包含了對SMS的控制。利用GSM手機的串行接口,單片機向手機收發(fā)一系列的AT命令,就能達到控制GSM模塊收發(fā)SMS的目的。必須注意的是,用單片機實(shí)現時(shí),編程必須注意它發(fā)送指令與接收到的響應都是字符的ASCII碼。用單片機控制GSM模塊收發(fā)短信息所涉及以的AT指令如表1所列。
表1 AT指令
功 能 描 述
AT OFF關(guān)機并重新啟動(dòng)AT CSDH=0在TEXT模式下在返回值中不顯示詳細的頭信息ATE0關(guān)閉回顯AT CMGF=1選擇短信格式為T(mén)EXT模式AT CMGS發(fā)送短信息AT CMGR讀取短信息AT CMGD=0刪除全部短信息3 軟件實(shí)現
3.1 上位機模塊和下位機模塊半雙工通信協(xié)議的實(shí)現
3.1.1 應答和重發(fā)
上位機模塊和下位模塊的通信雙方遵照半雙工通信方式進(jìn)行,即數據傳送是雙向的。但是,任何時(shí)刻只能由其中的一方發(fā)送數據,另一方接收數據,因為E2PROM的讀出和寫(xiě)入不能同時(shí)進(jìn)行。為了避免一方在發(fā)送信息幀時(shí)(這里的信息幀指的是下位機模塊發(fā)送的數據幀和上位機模塊發(fā)送的命令幀,下同),另一方也會(huì )發(fā)送數據,必須把信道變成半雙工方式。盡管這樣效率可能不如全雙工方式,但通過(guò)此舉犧牲效率可以換取模塊工作性能的穩定。雙方采取的順序是:發(fā)→收到應答后→再發(fā)。
按照整個(gè)系統的設計思路,上位機模塊(即圖1中的GSM模塊1,下同)發(fā)送的幀包括命令幀、確認幀和非確認幀;下位機模塊(即圖1中的GSM模塊2,下同)發(fā)送的幀包括數據幀、確認幀和非確認幀。其中確認幀和非確認幀是發(fā)送數據后等待對方發(fā)送的應答幀,以此作為繼續發(fā)送下一幀和重新發(fā)送上一幀的依據。命令幀和數據幀是信息幀,當一方先發(fā)送完信息幀,如果收方接收到對方的信息幀,而又沒(méi)有信息幀需要發(fā)送,那么情況就比較簡(jiǎn)單,收方將根據信息幀的正確與否決定發(fā)送確認幀還是非確認幀,以使對方?jīng)Q定是繼續發(fā)送還是重新發(fā)送;如果此刻收方也有信息幀需要發(fā)送,那么收方將不立即發(fā)送應答幀,而是立即
【單片機控制GSM模塊實(shí)現短信收發(fā)的軟件設計】相關(guān)文章:
用單片機控制手機收發(fā)短信息03-18
一種簡(jiǎn)單串行鼠標控制的單片機實(shí)現03-18
GSM系統中端到端的安全實(shí)現03-07