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ù)以“rdquo;開(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所示。