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