基于MSComm控件的GPS接收機(jī)數(shù)據(jù)終端接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引 言
全世界定位系統(tǒng)(GPS)是20世紀(jì)70年代由美國(guó)陸??杖娐?lián)合研制的空間衛(wèi)星導(dǎo)航定位系統(tǒng),其目的是為美國(guó)軍方提供實(shí)時(shí)精確的定位、導(dǎo)航和授時(shí)等服務(wù)通常GPS系統(tǒng)由3個(gè)部份組成:空間部分:包括24顆GPS衛(wèi)星;地面控制部分:對(duì)GPS衛(wèi)星實(shí)施監(jiān)控;用戶部分:接收來自GPS衛(wèi)星的定位等信息,通常包括天線和接收機(jī)等設(shè)備GPS系統(tǒng)在進(jìn)行定位時(shí),必須要確定用戶所在的位置(包括x,y,z三個(gè)坐標(biāo)),同時(shí)還要考慮到衛(wèi)星時(shí)鐘與接收機(jī)時(shí)鐘之間的誤差t,要解算4個(gè)未知量必須建立4個(gè)方程,通??梢酝ㄟ^測(cè)量衛(wèi)星與-用戶之間的偽距,來建立相應(yīng)的方程,因此需要同時(shí)觀測(cè)4顆衛(wèi)星,才能實(shí)現(xiàn)精確定位隨著時(shí)代發(fā)展,GPS系統(tǒng)不再局限于美國(guó)軍方,已被廣泛應(yīng)用于社會(huì)生活的各個(gè)方面,從大地測(cè)繪到車輛導(dǎo)航都能找到其身影鑒于衛(wèi)星導(dǎo)航技術(shù)在民用和軍事領(lǐng)域的重要意義,我國(guó)也建立了相應(yīng)的“北斗導(dǎo)航系統(tǒng)”,但目前我國(guó)應(yīng)用最為廣泛的還是GPS系統(tǒng)本文針對(duì)GPS系統(tǒng),介紹了定位信息在GPS接收機(jī)與PC機(jī)之間的傳輸和提取方法
2 定位信息的格式
要實(shí)現(xiàn)定位信息的提取和顯示,首先要實(shí)現(xiàn)定位信息的傳輸,即通過相應(yīng)的接口實(shí)現(xiàn)GPS接收機(jī)與PC機(jī)之間的通信本文介紹的接收機(jī)采用SiRF Technology公司的GPS接收芯片,通過天線接收GPS衛(wèi)星信號(hào),并進(jìn)行相應(yīng)處理產(chǎn)生定位信息,再通過串口(RS 232)輸出GPS通訊協(xié)議較多,本文采用應(yīng)用最為廣泛的NMEA—0183協(xié)議在此協(xié)議中包括了“$GPGGA”、“$GPGSA”、“$GPGSV”和“$GPRMC”等格式,本文以最簡(jiǎn)格式“$GPRMC”語(yǔ)句為例介紹協(xié)議中各數(shù)據(jù)段的含義例如:$GPRMC,161022.A,3212.875,N,11893.578,E,O.O,11O.4,140406,2.3,W,A*302
在此列中各數(shù)據(jù)段通過逗號(hào)分開,其中:
$GPRMC為幀頭,標(biāo)識(shí)后續(xù)幀內(nèi)數(shù)據(jù)組成結(jié)構(gòu);161022為UTC標(biāo)準(zhǔn)時(shí)間,格式為“hh/mm/ss”;A表示數(shù)據(jù)有效,如為V則表示可跟蹤衛(wèi)星小于3顆;3212.875為緯度值,格式為“ddmm.mmmm”;N表示北緯,如為S則表示南緯;11893.578為經(jīng)度值,格式為“dddmm.mmmm”;E表示東經(jīng),如為W則表示西經(jīng);0.0表示速度;110.4表示方位角,從000.0°~359.9°;140406為UTC標(biāo)準(zhǔn)日期,格式為“mm/dd/yy”;2.3表示地磁變化,從000.O°~180.0°;W表示地磁變化方向,包括w或E;
在這些數(shù)據(jù)中,本文主要關(guān)心的是地理坐標(biāo)和時(shí)間,即緯度、經(jīng)度和UTC日期、時(shí)間
3 定位信息的傳輸和提取
定位信息的傳輸,即GPS接收機(jī)與PC機(jī)之間的通信,通常采用串口來實(shí)現(xiàn)本文中采用VB提供的MSComm控件來編寫串口程序達(dá)到通信的目的MSComm控件被廣泛用來實(shí)現(xiàn)串口通信,對(duì)于他的介紹這里不再贅述在本文中實(shí)現(xiàn)具體的串口通信時(shí),必須對(duì)MSComm控件的相關(guān)屬性進(jìn)行設(shè)置在默認(rèn)設(shè)置基礎(chǔ)上需要進(jìn)行更改的設(shè)置包括下面3個(gè)部分:
(1)考慮到GPS串口通信采用固定的參數(shù),因此要將MSComm控件中的Settings屬性設(shè)置為“4800,N,8,1”,即波特率為4 800 b/s,無奇偶校驗(yàn)位,數(shù)據(jù)位為8,停止位為1
(2)根據(jù)所采用的接收機(jī)的不同,還需對(duì)MSComm控件中的inputMode屬性進(jìn)行設(shè)置,本文中采用“comInputMode Text”方式
(3)根據(jù)所選擇的串口將MSComm控件中的Commport屬性設(shè)置為相應(yīng)的串口號(hào),本文中為“1”
定位信息的提取,包括2個(gè)部分:
(1)從“$GPRMC”數(shù)據(jù)列中提取經(jīng)緯度等信息;
(2)將這些信息在文本框內(nèi)顯示這一工作可以在MSComm控件中的OnComm事件中通過編程具體實(shí)現(xiàn)流程圖如圖1所示
部分代碼如下:
首先,將緩存中的“$GPRMC”格式的定位信息賦給字符串變量“GPRMC”,根據(jù)前面介紹過的“$GPRMC”的格式,通過相應(yīng)的語(yǔ)句從變量“GPRMC”中提取出所需的緯度、經(jīng)度、速度和時(shí)間日期等信息,并賦給相應(yīng)的變量需要注意的是,在提取時(shí)間信息時(shí)需要將UTC時(shí)間轉(zhuǎn)換為北京時(shí)間,并對(duì)24進(jìn)行模運(yùn)算,以確保時(shí)間的準(zhǔn)確然后,將提取出來的定位信息在預(yù)先設(shè)計(jì)的文本框中顯示出來通過這些步驟即完成定位信息的提取工作,具體的效果如圖2所示
4 結(jié)語(yǔ)
本文介紹了一種使用VB實(shí)現(xiàn)GPS定位信息提取的方法,具有簡(jiǎn)單、實(shí)用的特點(diǎn)通過這一方法可以實(shí)現(xiàn)GPS接收機(jī)和PC機(jī)之間的數(shù)據(jù)通信,并能將所需的定位信息直觀地在相應(yīng)窗口顯示出來