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

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

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

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

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

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

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

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

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