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