當前位置:首頁 > 單片機 > 單片機
[導讀] 今天突然有個同學問我單片機如何和手機通信,我們在用單片機做產(chǎn)品的時候,難免會用到單片機和手機通信,所以今天我們就來學習下如何用單片機控制手機通信。

 今天突然有個同學問我單片機如何和手機通信,我們在用單片機做產(chǎn)品的時候,難免會用到單片機和手機通信,所以今天我們就來學習下如何用單片機控制手機通信。

中國聯(lián)通數(shù)字移動電話(GSM)網(wǎng)是向社會公眾提供通信服務的公用通信網(wǎng),它是目前基于時多址技術的移動通信體制中,比較成熟完善,且應用最廣泛的一種系統(tǒng),是我國公眾移動通信網(wǎng)的主要方式,基于GSM的短信信息服務,是一種在移動網(wǎng)絡上傳送簡短信息的無線應用,是一種信息在移動網(wǎng)絡上存儲和轉(zhuǎn)寄的過程,由于公眾GSM網(wǎng)絡在全球范圍內(nèi)實現(xiàn)了聯(lián)網(wǎng)和漫游,上述系統(tǒng)不需在組建專用通信網(wǎng)絡,所以具有實時傳輸數(shù)據(jù)功能呢的短信應用將得到迅速普及。

這個系統(tǒng)由數(shù)據(jù)采集部分、數(shù)據(jù)接收和發(fā)送部分、終端處理部分三個模組組成。

系統(tǒng)中,三個模塊相互獨立,彼此又相互依賴,共同完成數(shù)據(jù)的傳輸。數(shù)據(jù)收發(fā)模塊在系統(tǒng)中起著承上啟下的作用,是系統(tǒng)的核心模塊。該模塊以雙單片機為核心,以RS232通信接口,在物理層上實現(xiàn)與GSM模塊的連接。

【工作原理】

一、串口控制SMS的工作原理

單片機與GSM模塊一般采用串行異步通信接口,通信速度可設定,通常為19200bps。采用這種RSM232電纜方式進行連接時,數(shù)據(jù)傳輸?shù)目煽啃暂^好。RS232接口方式連接,通過串行接口集成電路和電平轉(zhuǎn)換電路與GSM模塊連接,電路比較簡單,所涉及的芯片包括單片機89C51和電平轉(zhuǎn)換芯片MAX232,是非常常見的接口電路。需要說明的是,該接口通過IIC總線(之前的文章中提到,不明白的朋友可自行翻閱)擴展了一個EEPROM存儲器,主要作用是存儲數(shù)據(jù),而且斷電信息也不會丟失,這些特性正式存儲數(shù)據(jù)所必須的。

GSM的短信息業(yè)務SMS利用信令信道傳輸,這是GSM通信網(wǎng)所特定的。它不用撥號建立連接,把要發(fā)的信息加上目的數(shù)據(jù)發(fā)送到短信息服務中心,經(jīng)短信息服務中心完成存儲后在發(fā)送給最終的信訴。所以當目的GSM終端沒開機時信息不會丟失,每個短信的信息量限制為160字節(jié)。

現(xiàn)在市場上大多說手機均支持GSM7.05規(guī)定的AT指令集。該指令集是ETSI(歐洲通信技術委員會)發(fā)布的,其中包含了對SMS的控制。利用GSM手機的串行接口,單片機向手機收發(fā)一系列的AT命令,就能達到控制GSM模塊收發(fā)SMS的目的。必須注意的是,用單片機實現(xiàn)時,編程必須注意它發(fā)送指令與接收到的響應都是字符的ASCII碼,用單片機控制GSM模塊收發(fā)短信息所涉及的AT指令如圖。

二、軟件實現(xiàn)

【上位機模塊和下位機模塊半雙工通信協(xié)議的實現(xiàn)】

【應答和重發(fā)】

上位機模塊和下位機模塊的通信雙方遵照半雙工通信方式進行,即數(shù)據(jù)傳送是雙向的,但是,任何時刻只能由其中一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù),因為EEPROM的讀出和寫入不能同時進行。為了避免一方在發(fā)送信息幀時(這里的信息幀指的是下位機模塊發(fā)送的數(shù)據(jù)幀和下位機模塊發(fā)送的命令幀,下同),另一方也會發(fā)送數(shù)據(jù),必須把信道變成半雙工方式。雖然這樣效率可能不如全雙工方式,但是可以穩(wěn)定模塊工作性能。雙方采取的順序是:發(fā)——收到應答后——再發(fā)。

按照整個系統(tǒng)的設計思路,上位機模塊發(fā)送的幀包括命令幀、確認幀和非確認幀;下位機模塊發(fā)送的幀包括數(shù)據(jù)幀、確認幀和非確認幀。其中確認幀和非確認幀是發(fā)送數(shù)據(jù)后等待對方發(fā)送的應答幀,一次作為繼續(xù)發(fā)送下一幀和重新發(fā)送上一幀的依據(jù)。命令幀和數(shù)據(jù)幀時信息幀,當一方先發(fā)送完信息幀,如果收方接收到對方的信息幀,而又沒有信息幀需要發(fā)送,那么情況就比較簡單,收方將根據(jù)信息幀的正確與否決定發(fā)送確認幀還是非確認幀,以使對方?jīng)Q定是繼續(xù)發(fā)送還是重新發(fā)送;如果此刻收方也有信息幀的應答幀,那么收方將不立即發(fā)送應答幀,而是立即發(fā)送本方的信息幀給對方,在收到對方的應答幀后,收方將依據(jù)應答幀的內(nèi)容(即確認幀或非確認幀)決定是繼續(xù)發(fā)送下一信息幀,還是重新發(fā)送原來的信息幀。

【延時重發(fā)】

在雙方通信過程中,有兩個時間T1和T2,分別表示重新發(fā)送信息幀的最大延時。T2表示一方發(fā)送信息幀收到對方應答幀的時間,如果等待應答幀的時間超過了T1,則發(fā)方會重新發(fā)送原來的信息幀,當收方接收到對方發(fā)送的信息幀,如果對方此時有需要發(fā)送的信息幀,則收方此時不發(fā)送應答幀,而是發(fā)送信息幀給對方。也就是說,利用對方等待收方應答幀的時間在T1內(nèi),收方插入發(fā)送本文的信息幀,同樣本方的發(fā)送也存在一個延時重發(fā)的問題。在規(guī)定的時間內(nèi),如果沒有收到對方應答幀,收方也同樣需要重發(fā)原來的信息幀,這個規(guī)定的時間就是T2。顯然由于收方是利用間隙時間發(fā)送本方信息幀,所以T1>T2。

【幀格式】

GSM模塊通過異步通信接口實現(xiàn)SMS的控制共有三種接入?yún)f(xié)議:BLOCK MODE、基于AT指令的TEXT MODE、基于AT指令PDU MODE。本系統(tǒng)發(fā)送和接收數(shù)據(jù)都是基于數(shù)字的溫度數(shù)據(jù)和命令字,為了保證系統(tǒng)的適用性,SMS的手法采用TEXT模式。TEXT模式是基于字符的,更具體的說是基于ASCII碼的一種結(jié)構(gòu)模式。在該結(jié)構(gòu)模式下,模塊發(fā)送和接受的信息幀格式如下:

信息幀包括數(shù)據(jù)幀和命令幀。

幀頭表示數(shù)據(jù)幀的標記由固定的字符“WQ”構(gòu)成。

幀序號表示數(shù)據(jù)幀的序號,由兩個字節(jié)組成,幀序號表示下位機模塊發(fā)送的遞增數(shù)據(jù)幀序號和上位機模塊發(fā)送的命令幀序號。為了簡化幀結(jié)構(gòu),命令幀的序號統(tǒng)一為OOH。

數(shù)據(jù)字段的長度為154字節(jié),最多發(fā)送77個字符(采用TEXT模式,不能發(fā)送漢字)。

檢驗子為數(shù)據(jù)字段所有字節(jié)累加和的初碼(原碼取反加1),由一個字節(jié)組成。、

除了信息幀外,雙向傳遞的還有應答幀,它包括確認幀和非確認幀。確認幀是雙方反饋給發(fā)方的應答幀,表示雙方已經(jīng)正確接收到了發(fā)方發(fā)送的信息幀。確認幀格式僅包括兩個字段,且兩個字段的內(nèi)容都是固定的,即幀頭“WQ”和數(shù)據(jù)字段“ACK”,確認幀格式如下。

非確認幀時收方給發(fā)方的應答幀,表示收方收到的是無效的信息幀,其格式與確認幀格式類似,幀格式如下:

【EEPROM空間的分配】

采用8KB的EEPROM,按照每77個字節(jié)為一個塊進行劃分,工106塊,如圖所示。

第00、01塊留作系統(tǒng)使用,第02~第105塊是數(shù)據(jù)塊,用作存放數(shù)據(jù)。

【程序設計】

【主函數(shù)的設計思路】

開機上電后,程序在主函數(shù)中運行,單片機和GSM模塊分別進行初始化。單片機的初始化包括設置串口工作方式、波特率,并初始化變量和標志位,GSM模塊初始化包括重新啟動、關閉回顯、設置在TXET模式下的返回值中不顯示詳細的頭信息、選擇短息格式為TEXT模式、開發(fā)串口中斷準備接受數(shù)據(jù)。

【GSM返回函數(shù)的處理——SHELL函數(shù)】

SHELL是進入時鐘中斷程序時被調(diào)用時,該函數(shù)是對GSM模塊返回參數(shù)進行處理的函數(shù),根據(jù)系統(tǒng)設計的要求,需要對GSM模塊進行下列操作:呼叫對方模塊號碼、發(fā)送數(shù)據(jù)、閱讀短信、刪除短信?;谝陨喜僮髦噶?,如果操作成功GSM模塊會分別返回不同的參數(shù):>、+CMGS、+CMGR、OK。根據(jù)收到的不用參數(shù),下位機模塊將轉(zhuǎn)向不同的操作步驟,判斷并改變標志位的值。

【短信數(shù)據(jù)的處理——EXECDATA函數(shù)】

進入時鐘中斷調(diào)用SHELL函數(shù)時,如果接收到了返回的參數(shù)+CMTI,表明上位機模塊向下位機模塊發(fā)送了短信數(shù)據(jù),可能是命令幀,也可能是確認幀或者非確認幀。在這種情況下,SHELL函數(shù)需要對短信內(nèi)容進行分析,并根據(jù)短信的內(nèi)容進行不同的處理,負責完成以上功能的就是EXECDATA函數(shù),它是被SHELL函數(shù)調(diào)用的,用來分析并處理短信數(shù)據(jù)。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉