《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于GSM短消息的遠(yuǎn)程控制定位技術(shù)研究
基于GSM短消息的遠(yuǎn)程控制定位技術(shù)研究
來(lái)源:微型機(jī)與應(yīng)用2011年第5期
楊立永1,楊日杰1,,董云龍2
(1.海軍航空工程學(xué)院 電子信息工程系,,山東 煙臺(tái) 264001; 2.海軍航空工程學(xué)院 科研部,,山
摘要: 研究了GSM MODEM,、GPS模塊和Atmega128單片機(jī)的通信,闡述了GSM MODEM收發(fā)信息的基本原理以及通過(guò)單片機(jī)控制GSM MODEM收發(fā)信息和接收GPS信息的基本過(guò)程,。介紹了以單片機(jī)為主的硬件電路以及軟件實(shí)現(xiàn)過(guò)程,,詳細(xì)分析了程序設(shè)計(jì)的流程。
Abstract:
Key words :

摘  要: 研究了GSM MODEM,、GPS模塊和Atmega128單片機(jī)的通信,,闡述了GSM MODEM收發(fā)信息的基本原理以及通過(guò)單片機(jī)控制GSM MODEM收發(fā)信息和接收GPS信息的基本過(guò)程。介紹了以單片機(jī)為主的硬件電路以及軟件實(shí)現(xiàn)過(guò)程,,詳細(xì)分析了程序設(shè)計(jì)的流程,。
關(guān)鍵詞: GSM MODEM;GPS,;Atmega128單片機(jī)

 在惡劣的自然條件下,,實(shí)施人工作業(yè)有很大的危險(xiǎn)性,雖然有時(shí)可以由機(jī)器人來(lái)代替人,,但機(jī)器人造價(jià)昂貴,,因而研究一款造價(jià)低廉而又實(shí)用的遠(yuǎn)程控制系統(tǒng)具有重大意義,。
 GSM網(wǎng)絡(luò)技術(shù)的發(fā)展和GSM網(wǎng)絡(luò)覆蓋面積的增加,使其在遙測(cè),、遙控,、數(shù)據(jù)采集和遠(yuǎn)程控制等領(lǐng)域得到了廣泛應(yīng)用。單片機(jī)與短信貓(GSM MODEM)的通信在GSM的應(yīng)用中占據(jù)重要位置,,GPS應(yīng)用的普及使得遠(yuǎn)程控制及定位得以實(shí)現(xiàn),。本文給出了GSM MODEM、GPS模塊和Atmegal系列單片機(jī)的硬軟件設(shè)計(jì),,并介紹了整個(gè)模塊的編程實(shí)現(xiàn)過(guò)程,。
1 系統(tǒng)的硬件構(gòu)成
1.1 Atmega128單片機(jī)簡(jiǎn)介

 Atmega128單片機(jī)是一款基于AVR內(nèi)核、采用RISC結(jié)構(gòu)的增強(qiáng)型低功耗CMOS 8 bit微控制器,;其大部分指令在一個(gè)時(shí)鐘周期內(nèi)完成,,因此具有1 MIPS/MHz的數(shù)據(jù)吞吐率;具有優(yōu)化的功率消耗結(jié)構(gòu),,在功耗相對(duì)較少的情況下可以進(jìn)行復(fù)雜的處理,。
1.2 單片機(jī)控制GSM MODEM的原理
1.2.1 AT指令簡(jiǎn)介

 AT指令就是帶有串行口的設(shè)備操作GSM MODEM或手機(jī)的指令集。每個(gè)AT指令都以AT+開頭,,以回車換行為結(jié)尾,。每個(gè)命令執(zhí)行成功與否都有相應(yīng)的信號(hào)返回。本文僅簡(jiǎn)單介紹將設(shè)備所用到的與發(fā)送和接收信息相關(guān)的AT指令[1],。
1.2.2 與GSM MODEM相關(guān)的AT指令
 GSM MODEM與單片機(jī)或終端之間通過(guò)串行口RS-232C連接,。多數(shù)GSM MODEM使用AT指令來(lái)設(shè)置參數(shù)。為避免在程序運(yùn)行過(guò)程中出現(xiàn)問(wèn)題,,致使GSM MODEM不能正常工作,,本文用計(jì)算機(jī)中的超級(jí)終端來(lái)對(duì)其進(jìn)行設(shè)置。下面是常用的與短信數(shù)據(jù)通信開發(fā)相關(guān)的幾條主要的AT指令[2-4],。
 AT+CMGF:選擇對(duì)短消息控制的模式(0—PDU,;1—文本);
 AT+CMGS:發(fā)送短消息,;
 AT+CMGR:讀短消息,;
 AT+CMGL:列出SIM卡中的短消息;
 AT+CMGD:刪除短信息(刪除一條或多條短信息),。
1.2.3 對(duì)短消息控制的三種模式
 對(duì)短消息控制共有三種模式:(1)基于AT命令的Text Mode,;(2)Block Mode;(3)基于AT命令的PDU Mode,。使用Block Mode需要手機(jī)生產(chǎn)廠家提供驅(qū)動(dòng)支持,,目前PDU Mode已取代Block Mode,,而Text Mode相對(duì)比較簡(jiǎn)單,,應(yīng)用較為方便,,可以滿足本設(shè)備的需求。故本設(shè)備將GSM MODEM設(shè)置為Text Mode,。
1.3 單片機(jī)與GSM MODEM的連接
 由于GSM MODEM提供的接口是標(biāo)準(zhǔn)的RS-232C接口,,采用EIA-RS-232C電平。而單片機(jī)使用TTL電平,,與EIA-RS-232C電平不兼容,,因此,需要在單片機(jī)和GSM MODEM之間連接電路實(shí)現(xiàn)電平轉(zhuǎn)換,。一般用芯片MAX232來(lái)實(shí)現(xiàn)EIA-RS-232C與TTL電平之間的轉(zhuǎn)換,。
 MAX232芯片是Maxim公司生產(chǎn)的,包含二路接收器和驅(qū)動(dòng)器,,適用于各種EIA-RS-232C和V.28/V.24的通信接口,。MAX232芯片內(nèi)部有一個(gè)電源電壓變換器,可以把輸入的+5 V電源電壓變換成RS-232C輸出電平所需的±10 V電壓,,其工作電壓為+5 V,。
 本文單片機(jī)屬于主控設(shè)備,用串口與GSM MODEM連接過(guò)程中需要注意接線的方法,。GSM MODEM的串口將RS-232C接口標(biāo)準(zhǔn)定義的所有信號(hào)線都用到了,,并且是按照DTE和DCE之間信息交換協(xié)議的要求進(jìn)行連接的,使用時(shí)只不過(guò)是把DTE發(fā)出的信號(hào)當(dāng)作對(duì)方DCE發(fā)來(lái)的信號(hào),。因此,,把這種連接稱為雙叉環(huán)回接口。單片機(jī)與GSM MODEM的串口連接如圖1所示,。

2 設(shè)備功能分析以及各模塊的編程實(shí)現(xiàn)
2.1 設(shè)備功能分析

 本設(shè)備主要是完成對(duì)SMS短消息的接收及分析,,并執(zhí)行相應(yīng)的動(dòng)作和發(fā)送反應(yīng)信息完成對(duì)目標(biāo)的遠(yuǎn)程控制。當(dāng)需要提供地理信息時(shí)將連接GPS的串口打開,,接收GPS信息,。具體功能如下:
 (1)模塊開機(jī)后能夠隨時(shí)接收來(lái)自主控系統(tǒng)按照協(xié)議發(fā)送的信息。
 (2)設(shè)定一定的時(shí)間對(duì)存儲(chǔ)卡內(nèi)的信息內(nèi)容進(jìn)行篩選解讀分析,,做出相應(yīng)的處理,。
 (3)如果需要設(shè)備的地理信息,將連接GPS的串口打開接收GPS數(shù)據(jù)信息,。
系統(tǒng)的工作流程圖如圖2所示,。

2.2 設(shè)備各模塊的編程實(shí)現(xiàn)
 按照設(shè)備的功能要求,將設(shè)備分為以下幾個(gè)部分,。
2.2.1 初始化模塊
 初始化主要包括:
 (1)單片機(jī)的初始化,。對(duì)單片機(jī)的串口進(jìn)行設(shè)置,打開兩個(gè)串口中斷允許位,,設(shè)置波特率,,用于與GSM MODEM和GPS進(jìn)行通信[5-6],。
 (2)GSM MODEM的初始化。對(duì)GSM MODEM的工作方式進(jìn)行設(shè)定(包括關(guān)回顯),,以方便程序運(yùn)行,。具體程序如下:
 const char ATE0[]="ATE0\r\n";//定義關(guān)回顯指令
 COM_rx_reset( ),;            //復(fù)位串口
 COM_putsf(ATE0),;        //關(guān)回顯
 其他的工作方式可由計(jì)算機(jī)的超級(jí)終端進(jìn)行設(shè)置,可以一直保存設(shè)置,。而GPS模塊則利用自身的默認(rèn)設(shè)置,。
2.2.2 短信息的發(fā)送和接收?qǐng)?zhí)行模塊
 短信息的發(fā)送需要運(yùn)用AT指令將要發(fā)送的內(nèi)容通過(guò)串口發(fā)送給GSM MODEM模塊。在短信發(fā)送中,,只向主控機(jī)發(fā)送所要求的信息內(nèi)容,,因此通信地址固定添加主控機(jī)的地址即可。發(fā)送信息的功能函數(shù)程序如下:
 COM_rx_reset( ) ,;         //復(fù)位串口
 COM_putsf(AT_CMGS) ,; //發(fā)送AT控制指令
 COM_putsf(Mp1_Hand); //添加通信地址
 COM_putsf(CRLF),;       //回車換行
 while(1)           
   {  
    if( ACK_ON(READY_))  //檢測(cè)模塊握手信號(hào)
          {break,;}
    }                               
 delay_1ms (200) ;         //延時(shí)200 ms
 COM_puts(msg) ,;        //輸入信息內(nèi)容
 COM_putsf(END_MESS) ,; //輸入信息內(nèi)容結(jié)束
 COM_putsf(CRLF);       //回車換行
 短信息的接收可以采用中斷方式和定時(shí)查詢方式,。中斷方式是:如果有新信息到達(dá),,單片機(jī)就會(huì)收到下列提示:+CMTI:”SM”,<index>,。
 可以通過(guò)檢測(cè)串口是否收到“+CMTI”來(lái)判斷新信息的到達(dá),,以采取相應(yīng)的動(dòng)作。采用定時(shí)查詢的方式接收新信息,,也就是將手機(jī)卡內(nèi)的全部信息用指令A(yù)T+CMGL=”ALL”列出來(lái)并放入rx_buffer[RX_BUFFER_SIZE]中,。考慮到多條信息的到來(lái)會(huì)丟失信息,,所以本系統(tǒng)采用的是定時(shí)查詢方式,。相應(yīng)的程序如下:
 COM_rx_reset( );
 COM_putsf(AT_CMGL),;
 COM_putsf(CRLF),;
 列出來(lái)的內(nèi)容需要進(jìn)行合法信息篩選,即把每條信息的index提取出來(lái),將提取的合法信息內(nèi)容和index存起來(lái),,然后一一進(jìn)行處理,,并將已讀信息刪除(務(wù)必要進(jìn)行刪除信息的工作,不然會(huì)對(duì)系統(tǒng)工作的穩(wěn)定性造成影響),。
2.2.3 GPS模塊的數(shù)據(jù)接收
 GPS模塊可以采用對(duì)連接GPS的串口進(jìn)行開關(guān)而控制。GPS信號(hào)有二進(jìn)制和ASCII兩種,,本文主要采用ASCII,,即NMEA0183格式[7-8]。GPS-OME板輸出帶有各種功能的數(shù)據(jù)語(yǔ)句,,如$GPGGA,、$GPGSV、$GPRMC等,,其中以$GPRMC定位數(shù)據(jù)最為常用,,其數(shù)據(jù)的一般格式為:
$GPRMC,<1>,,<2>,,<3>,<4>,,<5>,,<6>,<7>,,<8>,,<9>,<10>,,<11>,,*hh
    其中,<1>為當(dāng)?shù)匚恢玫腢TC時(shí)間(hh:mm:ss),;<2>為接收狀態(tài),,即顯示出“A”為位置有效,“V”為位置非有效接收警告(在當(dāng)前天線視野上方的衛(wèi)星個(gè)數(shù)少于3顆時(shí)),;<3>為實(shí)際緯度,;<4>表示半球緯度N或者S;<5>為實(shí)際經(jīng)度,;<6>表示半球經(jīng)度E或者W,;<7>為GPS屬性指示;<10>表示當(dāng)?shù)氐暮0胃叨?。格式中未解釋的?xiàng)本文不用,。
 在連接GPS的串口中斷服務(wù)程序中只要將帶有“$GPRMC”的那一條語(yǔ)句提取出來(lái)就可以了。
本文以單片機(jī)串口通信技術(shù)和GSM MODEM短消息傳輸技術(shù)為基礎(chǔ),,針對(duì)遠(yuǎn)程控制定位的需求,,開發(fā)了一種對(duì)數(shù)據(jù)采集終端進(jìn)行遠(yuǎn)程控制和定位的解決方案以及具體實(shí)現(xiàn)過(guò)程,,為遠(yuǎn)程終端控制應(yīng)用提供了技術(shù)參考,具有一定的理論和實(shí)際意義,。
參考文獻(xiàn)
[1] 李棟梁,,馬洪連,李文成.基于SMS的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),,2006,,27(21):130-131.
[2] AT commands originating from GSM 07.05 for SMS. [DB/OL].SIEMANS Mobile, 2002.
[3] 錢亞利,,趙光宙.短信通訊在遠(yuǎn)程環(huán)保實(shí)時(shí)監(jiān)控系統(tǒng)中的應(yīng)用[J].機(jī)電工程,,2007,24(1):25-27.
[4] 段錦,,葉霖,,黃顯澍.基于GSM短消息的遠(yuǎn)程數(shù)據(jù)采集傳輸系統(tǒng)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2005,,28(4):51-53.
[5] 萬(wàn)求.GSM短信傳送文件的方法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,,2006,42(36):122-125.
[6] 仵浩,,黃維金.無(wú)線數(shù)據(jù)傳輸技術(shù)在油井檢測(cè)中的應(yīng)用[J].儀器儀表學(xué)報(bào),,2004,25(4):520.
[7] 孟謙,,王志良,,張東.基于GPS/北斗衛(wèi)星技術(shù)的無(wú)盲區(qū)車輛調(diào)度系統(tǒng)[J].微計(jì)算機(jī)信息,2005(1):160-162.
[8] 王  ,,劉錦高.基于GPS無(wú)線定位/GSM短信收發(fā)的空間信息查詢系統(tǒng)[J].微計(jì)算機(jī)信息,,2006(6):184-186.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。