當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]GPS的定位測(cè)向系統(tǒng)的軟件實(shí)現(xiàn)

全球定位系統(tǒng)(GPS)是由美國(guó)國(guó)防部主要為滿(mǎn)足軍事部門(mén)對(duì)海、陸、空設(shè)施進(jìn)行高精度導(dǎo)航和定位而研制的全球性被動(dòng)式無(wú)線(xiàn)電的應(yīng)用,探討用VB實(shí)現(xiàn)GPS信息處理的方法仍是大家普遍關(guān)注的問(wèn)題。在Windows環(huán)境下通過(guò)VB編程語(yǔ)言及其提供的專(zhuān)門(mén)用于串口通信的MSComm控件,實(shí)現(xiàn)GPS接收機(jī)與計(jì)算機(jī)的串口通信。將GPS接收機(jī)的小型化OEM板與計(jì)算機(jī)相結(jié)合,利用其輸出的數(shù)據(jù)信息,配置相應(yīng)的外圍設(shè)備,即可方便、自主地實(shí)現(xiàn)基于GPS的衛(wèi)星測(cè)量及無(wú)線(xiàn)電導(dǎo)航、定位和定時(shí)于一體的多功能系統(tǒng)。

1 NMEA-0183協(xié)議

1.1 協(xié)議簡(jiǎn)介

NEMA協(xié)議是為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一的RTCM(海事無(wú)線(xiàn)電技術(shù)委員會(huì))標(biāo)準(zhǔn),由美國(guó)國(guó)家海洋電子協(xié)會(huì)(The National Marine ElectronicsAssociation,NMEA)制定的。目前大部分的GPS接收設(shè)備都遵循這一標(biāo)準(zhǔn)。該接口協(xié)議定義了在波特率為19 200的串口數(shù)據(jù)總線(xiàn)上傳輸電信號(hào)的需求、數(shù)據(jù)傳輸協(xié)議和時(shí)間以及詳細(xì)的語(yǔ)句格式。

1.2 NMEA-0183語(yǔ)句格式

NMEA-0183語(yǔ)句格式一般為:“$”為語(yǔ)句起始標(biāo)志;“,”為域分隔符;“*”為校驗(yàn)和識(shí)別符,其后面的兩位數(shù)為校驗(yàn)和;“<CR>/<LF>”為終止符,表示回車(chē)、換行。本文以GPGGA信息語(yǔ)句為例,進(jìn)行詳細(xì)分析。

GPGGA:Global Positioning System Fix Data(GGA)(GPS定位信息)

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>

<1>UTC時(shí)間(世界協(xié)調(diào)時(shí)),hhmmss(時(shí)分秒);

<2>緯度:格式為度度分分、分分分分(ddmm.mmmm,前面的0也將被傳輸);

<3>緯度半球N(北半球)或者S(南半球);

<4>經(jīng)度:格式為度度分分、分分分分(ddmm.mmmm,前面的0也將被傳輸);

<5>經(jīng)度半球E(東經(jīng))或W(西經(jīng));

<6>GPS狀態(tài):0=未定位,1=非差分定位,2=差分定位,6=正在估算;

<7>正在使用解算位置的衛(wèi)星數(shù)量(00~12)(前面的0也將被傳輸);

<8>HDOP水平精度因子(0.5~99.9);

<9>海拔高度(-9 999.9 m~99 999.9 m);

<10>地球橢球面相對(duì)大地水準(zhǔn)面的高度;

<11>差分時(shí)間(從最近一次接收到差分信號(hào)開(kāi)始的秒數(shù),如果不是差分定位將為空);

<12>差分站ID號(hào):0000~1023(前面的0也將被傳輸,如果不是差分定位將為空)。

2 MSComm控件的應(yīng)用及數(shù)據(jù)采集

2.1 端口設(shè)置

由于GPS串行通訊參數(shù)是固定的“波特率=19200;無(wú)奇偶校驗(yàn);數(shù)據(jù)位=8;停止位=1”,在編程時(shí)直接設(shè)置串口通訊參數(shù)便可以了。

主要程序段為:NMEA協(xié)議設(shè)置 MSComml.Settings=“19200,n,8,1”。

2.2 數(shù)據(jù)采集

MSComm控件提供兩種處理通信的方式:事件驅(qū)動(dòng)方式和查詢(xún)方式

(1)事件驅(qū)動(dòng)方式

On Comm事件被用于捕獲Communications事件及錯(cuò)誤。因此可在MSComm控件的On Comm事件中加入處理函數(shù),以便在文本框區(qū)實(shí)時(shí)顯示、數(shù)據(jù)采集。

(2)查詢(xún)方式

查詢(xún)方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查CommEvent屬性的值來(lái)查詢(xún)事件和錯(cuò)誤。

本程序采用查詢(xún)式串口通訊,利用Timer控件,程序如下:

3 核心功能及其VB實(shí)現(xiàn)

軟件的核心部分主要是對(duì)獲取數(shù)據(jù)進(jìn)行預(yù)處理以提取完整的語(yǔ)句信息,同時(shí)解析出測(cè)向所需的位置、時(shí)間以及航向信息。

3.1 數(shù)據(jù)預(yù)處理

(1)預(yù)處理必要性。實(shí)際工作中,由于各種外界條件的影響接收機(jī)獲取的衛(wèi)星數(shù)據(jù)可能存在質(zhì)量問(wèn)題,同時(shí)采用查詢(xún)方式從串口提取數(shù)據(jù)也存在自身的限制性,比如:常常出現(xiàn)一條完整的語(yǔ)句(GPGGA/GPRMC語(yǔ)句等)在一次查詢(xún)中只接收了其中一部分的情況,我們需要對(duì)獲取的信息采用一些必要的預(yù)處理措施,以便于得到完整的語(yǔ)句信息進(jìn)行解析。[!--empirenews.page--]

(2)預(yù)處理思路。鑒于NMEA 0183協(xié)議規(guī)范,一條完整的衛(wèi)星語(yǔ)句是始于“$”,終于“CrLf(回車(chē)換行)”,我們可以利用VB內(nèi)部的字符串函數(shù)Split()函數(shù)對(duì)從串口緩沖區(qū)獲取的語(yǔ)句塊進(jìn)行分割,以CrLf為分割標(biāo)志,將分割結(jié)果存放于一個(gè)字符串?dāng)?shù)組中,然后檢查數(shù)組中的每一個(gè)字符串是否是一條完整的語(yǔ)句,剔除不完整信息。

(3)核心代碼

3.2 信息提取

程序以Select…Case…分支選擇結(jié)構(gòu)按照不同語(yǔ)句的句頭標(biāo)識(shí)(如$GPGGA,$HEHDT等)進(jìn)行相應(yīng)語(yǔ)句的解析模塊選擇。

(1)時(shí)間、位置信息解析模塊

(2)航向信息解析模塊

航向信息語(yǔ)句格式:$HEHDT,23.254,T*cc

(3)衛(wèi)星信息解析模塊

衛(wèi)星信息語(yǔ)句格式:

4 信息顯示

經(jīng)過(guò)以上數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理以及信息解析過(guò)程,我們已經(jīng)獲得了測(cè)向工程中所需要的位置信息、海拔高程信息以及航向角度信息。實(shí)現(xiàn)航向信息的圖形化顯示的實(shí)現(xiàn)思路:可以采用表盤(pán)式顯示方式,以粗短針表示航向角度的整數(shù)度數(shù),以細(xì)長(zhǎng)針表示小數(shù)位置的航向度數(shù)。代碼實(shí)現(xiàn)方式如下:[!--empirenews.page--]

軟件界面整體效果圖如圖1所示。

5 結(jié) 語(yǔ)

本文利用VB6.0 MSComm控件實(shí)現(xiàn)了GPS接收機(jī)定位測(cè)向功能的軟件開(kāi)發(fā),通過(guò)對(duì)GPS通訊NMEA協(xié)議的分析,以GPGGA語(yǔ)句的“$GPGGA”串為例,給出了開(kāi)發(fā)GPS各項(xiàng)數(shù)據(jù)處理的方法。該方法具有簡(jiǎn)單、高效、實(shí)用的特點(diǎn),并具有良好的實(shí)時(shí)性。該算法一般應(yīng)用于車(chē)載、戶(hù)外高山測(cè)量、以及實(shí)時(shí)動(dòng)態(tài)物體的定位和測(cè)向。也可用于實(shí)現(xiàn)導(dǎo)彈飛行過(guò)程中或快速移動(dòng)物體的方向測(cè)量和控制。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉