0 引 言
全球定位系統(tǒng)(Global Positioning System,GPS)是美國國防部于1973年提出,歷時20年,耗資200多億美元建立起來的,具有在海、陸、空進行全方位實時三維導航與定位能力的新一代衛(wèi)星導航與定位系統(tǒng)。GPS能為用戶提供連續(xù)實時、高精度的三維位置、三維速度和時間基準,是一種全球性、全天候、連續(xù)的衛(wèi)星無線電導航系統(tǒng)。在目前世界上所有的衛(wèi)星定位系統(tǒng)中,GPS是技術最成熟,應用最為廣泛的。
在遠程目標定位中,需要將利用GPS技術獲得的遠程目標的定位信息發(fā)送到監(jiān)控中心。這可利用無線電臺進行發(fā)送,但是該方法容易受到干擾而且還受到電臺通信距離的限制。隨著移動通信的發(fā)展和GSM網(wǎng)絡的廣泛覆蓋,GSM短消息業(yè)務也得到廣泛應用,利用短消息服務來傳輸GPS定位數(shù)據(jù)是具有優(yōu)勢的。GSM網(wǎng)絡容量大,通信盲區(qū)少,利用該方法不僅可以克服傳輸距離的限制,而且相當方便、可靠,費用也十分低廉。結合GSM網(wǎng)絡作為數(shù)據(jù)傳輸方式的各種優(yōu)點和GPS這一成熟的定位技術,本文研究并實現(xiàn)了一種利用較少的資源就可實現(xiàn)的基于虛擬串口的GPS/GSM遠程定位技術。
1 系統(tǒng)架構
系統(tǒng)構成框圖如圖1所示。在遠程目標端,單片機通過GPS模塊獲取有用的信息,如經(jīng)緯度、時間、速度等信息,定時的以短消息的形式操控GSM短消息模塊發(fā)送定位數(shù)據(jù)給監(jiān)控中心。在監(jiān)控中心部分,采用一個GSM模塊與PC機通信,編寫一個PC上的軟件實現(xiàn)收發(fā)短消息、撥打電話、保存短消息等功能,并顯示出遠程目標定位信息。同時,通過撥打遠程目標處TC35i模塊的電話可實現(xiàn)系統(tǒng)的一些擴展功能。
1.1 GPS模塊
GPS模塊采用的是Navman公司的Jupiter 21OEM板,它具有12通道,體積小、重量輕、功耗低;定位迅速準確,抗干擾性能突出;操作簡便、易于開發(fā),可通過串口與PC機進行通訊??梢愿鶕?jù)通信的波特率選擇輸出NMEA-0183語句格式或者SIRF二進制格式的定位信息,默認情況下輸出為NMEA-0183語句格式。該模塊還具有1 PPS秒脈沖輸出,且精度優(yōu)于1μs,在本系統(tǒng)設計中用對1 PPS秒脈沖計數(shù)的方法很好地實現(xiàn)了收發(fā)短信的定時。
1.2 GSM短消息模塊
GSM短消息模塊采用的是SIEMENS公司的TC35i模塊,這是一個支持中文短消息的工業(yè)級GSM模塊,工作在EGSM 900和GSM 1800雙頻段,電源范圍為3.3~5.5 V,可傳輸語音和數(shù)據(jù)信息,可以利用AT命令通過接口電路對其進行控制。TC35i模塊支持以TEXT模式和PDU模式發(fā)送短消息,使用TEXT模式發(fā)送短消息代碼簡單,容易實現(xiàn),但不能收發(fā)中文短信,而PDU格式實現(xiàn)較復雜,但可以收發(fā)中文短信。系統(tǒng)設計中處于簡單且能滿足系統(tǒng)需要考慮,采用的TEXT模式收發(fā)短消息。
1.3 主控單元
主控單元采用AT89S52單片機作為控制器,單片機通過串口與GPS模塊以及GSM模塊進行通信。在此需要兩個串口,而AT89S52單片機本身只有一個串口,常規(guī)的解決方法是采用具有雙串口的單片機或者ARM等控制器,或者通過硬件來擴展串口。前者會使系統(tǒng)的硬件成本大大提高,而后者不僅會增加系統(tǒng)的成本,還會增大系統(tǒng)硬件的體積。本文采取的解決辦法是,AT89S52單片機本身的串口用于跟GPS模塊進行通信,而利用I/O口P1.4和P3.2編程實現(xiàn)一個虛擬串口與TC35i模塊進行通信。由于單片機內(nèi)部定時/計數(shù)器只能實現(xiàn)較小時間的定時,所以巧妙利用了單片機的T2定時/計數(shù)器(P1.0)對Jupiter 21OEM板的1PPS秒脈沖輸出進行計數(shù)方便地實現(xiàn)5 min定時,用于收發(fā)短信所需的定時。該部分還擴展了報警電路和控制開關通斷等功能電路,這是由監(jiān)控中心通過撥打遠程目標端的電話來控制的。同時,還保留了單片機的剩余I/O口用于系統(tǒng)的進一步擴充。
2 系統(tǒng)軟件設計
2.1 單片機部分軟件設計
單片機部分的程序流程圖如圖2所示。該部分程序采用C語言編程實現(xiàn),主要包括定位信息的提取、虛擬串口通信以及短消息的發(fā)送三個部分。
2.1.1 定位信息的提取
單片機采用4 800 b/s波特率與GPS模塊進行異步串行通訊,從GPS模塊輸出的是NMEA-0183語句格式的數(shù)據(jù)。該語句格式的數(shù)據(jù)以“$”開頭,包括$GPRMC,$GPGGA,$GPGSV,$GPVTG,$G-PGSA,$GPGLL等語句。系統(tǒng)設計中只從中提取出$GPRMC語句,再進一步提取出里面包含的經(jīng)緯度、速度、時間等信息,已經(jīng)可以滿足系統(tǒng)的需求。該部分的軟件流程圖如圖3所示。
2.1.2 虛擬串口
單片機與GSM模塊之間通過虛擬串口進行通信,以解決AT89S52單片機固有串口不足的問題,通信波特率取為9 600 b/s。虛擬串口就是利用單片機I/O編程實現(xiàn)一個串口的功能,這樣就以較少的資源實現(xiàn)了系統(tǒng)的功能,克服了傳統(tǒng)的采用具有雙串口的控制器或者利用硬件進行串口擴展的方法其成本高、體積大的缺點。程序中采用定時器工作于方式2進行一個數(shù)據(jù)位傳輸時間的定時,用于嚴格控制一個數(shù)據(jù)位的傳輸時間。單片機采用11.059 2 MHz晶振,這樣定時器的初值為256-(1 000 000/9 600)/(12/11.059 2)=160,即十六進制的0xA0。實驗結果證明,采用該方法進行串口通訊,數(shù)據(jù)傳輸穩(wěn)定、可靠。采用虛擬串口發(fā)送、接收一個字符的程序流程圖分別如圖4,圖5所示。
2.1.3 發(fā)送短消息
主要是由單片機根據(jù)發(fā)送短消息的特定步驟,采用AT命令控制GSM模塊發(fā)送短消息,是系統(tǒng)設計中最重要的內(nèi)容之一。該部分程序設計中,由于會涉及到單片機與GSM模塊的多次交互過程,而GSM模塊響應較單片機來的慢,特別是涉及到FLASH或SIM卡的操作及網(wǎng)絡的交互時,必須要考慮到GSM模塊的響應時間問題。系統(tǒng)中采用TEXT模式發(fā)送短消息,步驟如下:
1.設置短信中心號碼:AT+CSCA=+8613500591500<CR>//代表福州移動,<CR>代表回車,下同
2.設置短信發(fā)送模式:AT+CMGF=1<CR>//設置短信發(fā)送模式為TEXT模式
3.設置TEXT模式參數(shù):AT+CSMP=17,167,0,0<CR>//最后一個參數(shù)是數(shù)據(jù)編碼類型,0表示默認字符集(GSM);(167代表有效期24 h)
4.設置使用的字符集:AT+CSCS=GSM<CR>//設置為GSM字符集
5.輸入目標號碼:AT+CMGS=13599071***<CR>//1359907l***為目標號碼
6.輸入短信內(nèi)容再輸人<Ctrl+Z>,即ASCII碼0x1A。
2.2 監(jiān)控中心軟件設計
至此,英文短信發(fā)送成功,此過程中若模塊回復出現(xiàn)ERROR則短信發(fā)送不成功。以上步驟1,3,4經(jīng)設置后無需再設置,步驟2在模塊斷電時需重設,步驟5,6在每次發(fā)送短消息時都要重復進行。在監(jiān)控中心的PC機上采用VB結合ACCESS數(shù)據(jù)庫設計一個監(jiān)控軟件,該軟件通過串口與GSM模塊進行通信,獲取遠程目標的定位信息,經(jīng)過進一步處理后顯示出來。由于電子地圖制作復雜、價格較貴,所以本系統(tǒng)示意性的利用由Google Earth軟件上截圖出來的圖片作為電子地圖,用于直觀地顯示出遠程目標的具體位置。ACCESS數(shù)據(jù)庫用于保存收發(fā)短消息的內(nèi)容,該軟件還具有撥打電話等功能。
3 實驗結果及分析
利用該軟件進行實驗得到的結果如圖6所示。圖中左半部分是軟件的實現(xiàn)界面,右半部分是以GoogleEarth軟件截圖出來的圖片作為虛擬的電子地圖來示意性的說明問題。實驗中,GPS天線置于福州大學旗山校區(qū)電氣學院樓頂,監(jiān)控中心位于電氣學院南303實驗室。由圖中左半部分可以看到目標最近一次的定位信息:定位時間:10:28:28;緯度:26°04'3.03"N;經(jīng)度:119°11'42.57"E;速度:0.048 m/s。右半部分圖中的紅、綠、藍小圈圈代表近三次實驗獲得的定位位置結果(在地圖上幾乎重合,為說明位置在圖中進行引出標注),紅色小圓點代表天線的真實位置(在圖中也進行引出標注說明),Google Earth軟件中的地標,用GoogleEarth軟件的測距工具測得實驗結果與天線真實位置的誤差約為12 m,這主要由GPS模塊的定位精度所決定。
由實驗結果可以看出,定位位置結果基本一致,但經(jīng)緯度、速度存在很小的零漂移,這是正常的,零漂移的大小取決于GPS模塊的性能。經(jīng)過長期實驗證實,系統(tǒng)穩(wěn)定、可靠,定位誤差較小,基本上可滿足一般的應用要求。若要應用于對定位精度要求較高的場合,可以考慮采用定位精度更高的GPS模塊等措施。
4 結 語
實驗結果表明,系統(tǒng)運行穩(wěn)定、可靠,可以實現(xiàn)無距離限制的遠程定位。由于采用了虛擬串口技術,所以以較少的資源實現(xiàn)了GPS/GSM遠程定位技術,該定位技術可以應用于進行遠程定位的多種領域。但是,由于作為定位數(shù)據(jù)傳輸網(wǎng)絡的GSM網(wǎng)絡的固有問題,對系統(tǒng)的實時性有一定的影響。比如,有時會出現(xiàn)收發(fā)短消息延時的問題,特別是在網(wǎng)絡擁擠的時候,有時還存在較小區(qū)域的通信盲區(qū),可以考慮與運營商建立一條專用短消息傳輸通道來保證遠程定位信息的可靠傳輸。相信隨著定位技術、通信技術以及GIS技術的不斷發(fā)展,本文所討論的遠程定位技術將會得到廣泛的應用。