(1.長江師范學院 物理學與電子工程學院,重慶 408100;2.西南交通大學 電氣工程學院,成都 610031)
目前,越來越多的家庭擁有了私家車,汽車失竊案的數(shù)量日漸增多。與此同時,人們對個人的人身安全也提出了更高的要求,尤其是未成年人、老人和野外工作人員。因此,對地面移動目標跟蹤報警這一課題的研究正逐漸成為熱點。目前,汽車上的GPS定位系統(tǒng)大多只具有定位信息接收功能,基于此,本文將GPS衛(wèi)星定位技術與GSM移動通信技術相結合,完成了地面移動目標跟蹤報警系統(tǒng)的設計。該系統(tǒng)具有異地獲取地面移動目標(如汽車、行人)定位信息的功能,可實現(xiàn)對地面移動目標的遠程跟蹤,解決汽車防盜和尋找迷路行人的問題。此外,系統(tǒng)還具有一鍵報警功能,即在遭遇危險的緊急情況下(如汽車或個人在野外遭遇突發(fā)事故),可通過系統(tǒng)的一鍵報警功能,將本地定位信息連同求救信息一并發(fā)送給異地用戶,異地用戶在收到報警短信后可及時采取適當?shù)拇胧┦┚取?/p>
GPS跟蹤報警系統(tǒng)結構設計采用中心控制方案,由GPS模塊、LM3S1138主控模塊、GSM模塊、電源模塊、鍵盤和LCD顯示模塊組成,系統(tǒng)硬件結構如圖1所示。GPS模塊采用Leadtek公司生產(chǎn)的GPS9808 OEM模塊,具有結構小巧、性能優(yōu)良等特點,熱啟動時間小于8 s,重捕時間小于0.1 s,定位精度在差分模式(DGPS)下小于5 m,數(shù)據(jù)格式支持標準NMEA-0183,SiRF二進制協(xié)議,功耗僅215 mW,非常適合在汽車電子等對功耗、體積要求較高的系統(tǒng)中應用[1]。LM3S1138是Luminary Micro公司新推出的32位Cortex-M3 ARM處理器,是針對工業(yè)應用方案而設計的一款低功耗微控制器,其優(yōu)勢在于能夠方便地運用多種ARM的開發(fā)工具和片上系統(tǒng)(SoC)的底層IP應用方案,擁有龐大的用戶群體。此外,LM3S1138使用了兼容ARM Thumb指令集的Thumb2指令集來減少存儲容量的需求,降低了成本[2]。GSM通信模塊由C8051F020單片機結合TC35i設計而成,TC35i是西門子公司專為GSM通信設計的專用模塊,具有語音、數(shù)據(jù)、傳真和點對點短信功能,工作于EGSM900和GSM1800頻段[3]。鍵盤采用ZLG7289鍵盤掃描管理芯片完成按鍵的掃描和管理,可同時掃描管理64個按鍵。顯示模塊采用基于ST7920控制器的中文圖形128×64 LCD來實現(xiàn)。電源模塊主要為系統(tǒng)各模塊提供安全可靠的電源保障。
圖1 系統(tǒng)結構框圖Fig.1 System structure diagram
GPS模塊上電完成初始自檢后,自動接收來自天線的GPS射頻信號,經(jīng)變頻、放大、相關、混頻等一系列處理后,完成并行通道對其視界內(nèi)幾何位置最佳的數(shù)顆衛(wèi)星的連續(xù)跟蹤,并測出信號從衛(wèi)星到接收天線的傳播時間,解譯出GPS衛(wèi)星所發(fā)送的導航電文,最后經(jīng)由I/O口串行輸出緯度、經(jīng)度、速度、時間等定位信息[4]。一般情況下,LM3S1138主控模塊從導航電文中進一步解析出緯度、經(jīng)度、速度、時間等定位信息并存儲、顯示。遠程用戶在需要獲取移動目標的定位信息時,可通過手機向系統(tǒng)發(fā)送獲取移動目標定位信息的短信,GSM模塊在收到這樣的短信后,先將需要發(fā)送的定位信息進行格式封裝,然后將定位信息發(fā)送給遠程用戶,從而實現(xiàn)對移動目標的跟蹤報警,這種情況適用于汽車被盜、對未成年人監(jiān)護、防止老人走失等。在緊急情況下(如被劫持或遭遇危險處境),本地用戶可通過系統(tǒng)按鍵實現(xiàn)移動目標定位信息和求救信息的一鍵發(fā)送,遠程用戶在接收到帶有定位信息的報警短信后可采取相應的措施進行施救。
系統(tǒng)的軟件開發(fā)采用“C語言+驅(qū)動庫”的新概念開發(fā)模式,開發(fā)軟件采用IAR Embedded Workbench for ARM 5.11(下面簡稱IAR EWARM)。IAR EWARM是一個針對ARM處理器的集成開發(fā)環(huán)境,它包含項目管理器、編輯器、C/C++編譯器和ARM匯編器、連接器XLINK和支持RTOS的調(diào)試工具C-SPY。在IAR EWARM環(huán)境下可以使用C/C++和匯編語言方便地開發(fā)嵌入式應用程序。比較其它的ARM開發(fā)環(huán)境,IAR EWARM具有使用方便、代碼緊湊等特點。由于Luminary Micro免費提供基于C語言(符合ANSI C標準)的驅(qū)動庫軟件包,并且源代碼公開,因此用戶完全可以摒棄晦澀難懂的匯編語言,也不需要掌握底層寄存器的操作細節(jié),只要懂C語言就能進行軟件的設計開發(fā)。
主控程序主要功能是完成GPS-OEM板數(shù)據(jù)幀的讀取、數(shù)據(jù)幀處理、GSM模塊的控制、GSM信息的處理等。軟處理器在接收到GPS信息后先判別是不是需要的GPS數(shù)據(jù)信息,若是則進行信息處理,提取需要的定位信息并保存,然后對按鍵信息進行掃描,有一鍵報警情況時,將定位信息和報警文字按要求編碼后通過GSM模塊發(fā)出;沒有一鍵報警時,則對GSM模塊的輸出信號進行判別;有遠程調(diào)用短信時,則將定位信息按要求編碼后發(fā)出,其流程如圖2所示。
系統(tǒng)上電后開始執(zhí)行主程序,首先進行系統(tǒng)初始化。系統(tǒng)初始化主要包括對GPS模塊、GSM模塊的初始化,GPS模塊初始化主要是對串行口UART0進行初始化,即設置UART0的傳輸幀格式和波特率。根據(jù)GPS模塊硬件特性,設置UART0波特率為4 800 bit/s,8個數(shù)據(jù)位,無奇偶校驗位,1個停止位。GSM模塊初始化主要是對串行口UART1的初始化,設置UART1的傳輸幀格式和波特率。根據(jù)GSM模塊硬件特性,設置UART1波特率為9 600 bit/s,8個數(shù)據(jù)位,無奇偶校驗位,1個停止位。初始化完成后則進入主控程序的數(shù)據(jù)處理部分。
圖2 主控程序流程圖Fig.2 Master program flow chart
GPS模塊接收GPS衛(wèi)星定位信號,判斷其為GPRMC格式,經(jīng)解析留下經(jīng)緯度、UTC時間等主要信息以待下一步處理,否則繼續(xù)接收GPS衛(wèi)星定位信號,其流程圖如圖3所示。
圖3 GPS數(shù)據(jù)解析流程圖Fig.3 GPS data analysis flow chart
GPS模塊程序設計的關鍵是實現(xiàn)定位信息解析。GPS的OEM板輸出的定位信息符合NMEA-0183通信標準格式,其輸出數(shù)據(jù)采用的是ASCII碼,包含了緯度、經(jīng)度、速度、日期、時間、航向以及衛(wèi)星狀況等信息[5]。語句有GGA、GLL、GSA、GSV、RMC和VGT 6種,系統(tǒng)采用的是RMC記錄語句,它包含了系統(tǒng)需要的所有信息。由于只關注與移動目標位置相關的定位信息,因此,只讀取“$GPRMC”語句即可[5]。一條“$GPRMC”語句幀包括15個記錄,“$GPRMC”語句是GPS推薦的最短數(shù)據(jù)幀,共占用73個字節(jié)(包括用于分隔記錄所使用的12個逗號)。GPS模塊的程序設計首先判斷是否為RMC記錄,如果是則對GPRMC字段進行解析并保存數(shù)據(jù)。下面給出的是提取經(jīng)度和緯度的部分核心源代碼。
void Parse-gprmc(void)
……
if(′,′ != temp) // 提取緯度
{ Latitude[0] = temp;
for(i=0; i<3; i++)
{ Latitude[i+1] = Read-byte();
}
Read-byte();
for(i=0; i<5; i++)
{ Latitude[4+i] = Read-byte();
}
Read-byte();
}
temp = Read-byte();
……
if(′,′ != temp) // 提取經(jīng)度
{ Longitude[0] = temp;
for(i=0; i<4; i++)
{ Longitude[i+1] = Read-byte();
}
Read-byte();
for(i=0; i<5; i++)
{ Longitude[5+i] = Read-byte();
}
Read-byte();
}
temp = Read-byte();
……
GSM模塊在系統(tǒng)中主要負責接收遠程控制信息和傳送定位信息。接收和發(fā)送手機短消息(SMS)常用的模式主要有兩種: 文本(Text)模式和協(xié)議數(shù)據(jù)單元 (Protocol Data Unit,PDU)模式[6]。Text模式是純文本方式,可使用不同的字符集。該模式下信息傳送和接收的編碼比較簡單,但國內(nèi)手機Text模式下不支持收發(fā)中文漢字字符的短消息。PDU模式被所有手機支持,可發(fā)送中英文短信。PDU模式下可采用7位、8位和UCS2 3種編碼方式,分別用于發(fā)送普通的ASCII字符、數(shù)據(jù)消息和Unicode字符(按照GSM07.05協(xié)議規(guī)定,手機短信息中的漢字編碼均采用Unicode碼)。因此發(fā)送和接收中文或中英文混合的短信息只能采用PDU模式,并在將定位信息以短消息形式傳送給遠程用戶之前,完成漢字編碼到Unicode碼的轉(zhuǎn)換。GSM模塊的程序設計流程圖如圖4所示。
圖4 GSM模塊程序流程圖Fig.4 GSM module program flow chart
將系統(tǒng)各部分正確連接后上電,系統(tǒng)液晶屏上將顯示本地的GPS定位信息。本地顯示正常后,通過手機發(fā)送控制短信給系統(tǒng)GSM模塊,GSM模塊收到短信后發(fā)出提示音,并將定位信息發(fā)送到手機上,實驗室測試的手機截屏如圖5所示。
圖5 系統(tǒng)測試結果Fig.5 System test result
將GPS與GSM無線通信技術相結合開發(fā)完成的移動目標跟蹤報警系統(tǒng),采用LM3S1138 ARM處理器在實現(xiàn)小型化、集成化和高可靠性的同時增強了控制能力,降低了成本,提高了系統(tǒng)的智能化程度。GSM無線通信技術的引入實現(xiàn)了定位及報警信息的異地遠程獲取。GPS跟蹤報警系統(tǒng)可完成對車輛、行人等地面移動目標的精確定位,在車輛被盜和個人遭遇危險(如車輛在野外遭遇事故或人員走失)的情況下,能夠?qū)崿F(xiàn)對移動目標的跟蹤和報警,其應用前景十分廣闊。
參考文獻:
[1] Leadtek GPS Module Technical Specification GPS9808 Version 1.03[Z].[S.l.]:Leadtek Limited, 2004.
[2] Luminary Micro.LM3S1138微控制器數(shù)據(jù)手冊[M]. 廣州:廣州周立功單片機發(fā)展有限公司,2008.
Luminary Micro. LM3S1138 Microcontroller Data Sheet[M]. Guangzhou :Guangzhou ZLG MCU Development Co., Ltd.,2008.(in Chinese)
[3] Siemens. TC35i Hardware Interface Description Version 03.01a[Z].[S.l.]:Siemens AG,2007.
[4] 林綠洲,陸起涌,田小芳,等.基于嵌入式平臺的公交車輛監(jiān)控系統(tǒng)[J].電訊技術,2006,46(3):78-80.
LIN LV-zhou, LU Qi-yong, TIAN Xiao-fang,et al. Bus Supervisory System Design Based on Embedded Platform[J]. Telecommunication Engineering,2006,46(3):78-80. (in Chinese)
[5] 楊梅.GPS-GPRS定位系統(tǒng)車載終端的應用設計與實現(xiàn)[J].電訊技術,2004, 44(3):103-106.
YANG Mei. Application Design and Implementation of GPS-GPRS Location System Vehicle Terminals[J]. Telecommunication Engineering,2004, 44(3):103-106. (in Chinese)
[6] 張曉培,李祥.從Unicode到GBK的內(nèi)碼轉(zhuǎn)換[J].微計算機應用,2006,27(6):757-759.
ZHANG Xiao-pei, LI Xiang. From Unicode to GBK's Code Converter[J]. Micro-Computer Applications,2006,27(6):757-759.(in Chinese)