基于WinCE的GPS數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:由于數(shù)據(jù)采集設(shè)備利用Windows桌面系統(tǒng)在戶外易受環(huán)境影響以及攜帶不方便等不足,設(shè)計(jì)采用ARM11處理器和WinCE 6.0操作系統(tǒng)作為硬件開發(fā)平臺(tái),設(shè)計(jì)出一種基于ARM-WinCE 6.0的便攜式GPS數(shù)據(jù)采集系統(tǒng),控制GPS模塊接收數(shù)據(jù)信息,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行采集、提取、顯示、存儲(chǔ)。這對(duì)深入理解嵌入式系統(tǒng)應(yīng)用和GPS在導(dǎo)航組合中應(yīng)用具有一定的實(shí)用價(jià)值,有利于提高工作效率并為定位性能的評(píng)定提供依據(jù)。
關(guān)鍵詞:ARM11處理器;WinCE 6.0操作系統(tǒng);GPS數(shù)據(jù)采集系統(tǒng);導(dǎo)航組位
0 引言
GPS(Global Positioning System,全球衛(wèi)星定位系統(tǒng))以其高精度、全天候、全天時(shí)的特點(diǎn),在定位、導(dǎo)航、測(cè)距、授時(shí)遙感等領(lǐng)域廣泛應(yīng)用,并得到了快速的發(fā)展。對(duì)于在低功耗、高便攜性和高性能設(shè)備上實(shí)現(xiàn)GPS數(shù)據(jù)采集和分析技術(shù)也顯得越發(fā)重要。傳統(tǒng)的Windows桌面系統(tǒng)體積大,占用系統(tǒng)資源較多,也不利于野外作業(yè),而基于嵌入式系統(tǒng)的ARM硬件平臺(tái)則具有體積小、功耗低、性能高等特點(diǎn)。WinCE系統(tǒng)作為嵌入式系統(tǒng)的一種類型,相對(duì)于Linux和Andriod系統(tǒng),其開發(fā)難度要比后兩種系統(tǒng)要低,軟件調(diào)試也比較容易、靈活,并且WinCE系統(tǒng)類似桌面系統(tǒng)在軟件開發(fā)方面也較為便利。因此,在未來(lái)高性能的便攜式設(shè)備領(lǐng)域,WinCE系統(tǒng)的應(yīng)用空間將十分巨大。
本文根據(jù)GPS信號(hào)接收原理及嵌入式技術(shù),并遵循NMEA-0183協(xié)議,接收并解析GPS模塊的原始數(shù)據(jù)報(bào)文,設(shè)計(jì)出友好的人機(jī)界面環(huán)境,將系統(tǒng)所處的經(jīng)度、緯度、高度、速度、日期時(shí)間等信息顯示出來(lái),解決了人工記錄數(shù)據(jù)的不足,提高了工作效率,并為車輛運(yùn)動(dòng)參數(shù)估計(jì)提供了依據(jù)。
1 系統(tǒng)總體設(shè)計(jì)
GPS數(shù)據(jù)采集界面的設(shè)計(jì)采用面向?qū)ο蟮目删幊碳夹g(shù),在Visual Studio 2005(VS 2005)編程環(huán)境下,運(yùn)用C#語(yǔ)言實(shí)現(xiàn)。本設(shè)計(jì)采用飛凌公司研發(fā)的OK6410開發(fā)板,該開發(fā)板以ARM11內(nèi)核架構(gòu)為核心,并內(nèi)嵌WinCE 6.0操作系統(tǒng),硬件性能上能夠滿足對(duì)數(shù)據(jù)采集的需求。通過(guò)USB同步,完成PC機(jī)與ARM開發(fā)板之間的硬件平臺(tái)搭建,這樣就可以在PC機(jī)上進(jìn)行應(yīng)用程序的設(shè)計(jì)。
在VS 2005環(huán)境下,對(duì)設(shè)計(jì)完成的GPS數(shù)據(jù)采集應(yīng)用程序進(jìn)行編譯,并將編譯后生成的應(yīng)用程序通過(guò)USB同步植入到ARM開發(fā)板的NAND FLA SH里。再通過(guò)串口擴(kuò)展電路將ARM開發(fā)板與GPS模塊進(jìn)行連接完成通信,然后運(yùn)行NAND FLASH里GPS數(shù)據(jù)采集的應(yīng)用程序,對(duì)GPS模塊接收來(lái)的數(shù)據(jù)進(jìn)行采集、解析后送至外接的液晶,顯示其需要的信息,從而完成WinCE 6.0環(huán)境下GPS數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。GPS數(shù)據(jù)采集系統(tǒng)總體框圖如圖1所示,GPS數(shù)據(jù)采集開發(fā)系統(tǒng)如圖2所示。
2 GPS協(xié)議分析及GPS數(shù)據(jù)數(shù)據(jù)格式
GPS數(shù)據(jù)遵循NMEA-0183協(xié)議,該數(shù)據(jù)標(biāo)準(zhǔn)是美國(guó)國(guó)家海洋電子協(xié)會(huì)(National Marine Electronics Association)所指定的標(biāo)準(zhǔn)規(guī)格。GPS接收機(jī)根據(jù)NMEA-0183協(xié)議的標(biāo)準(zhǔn)規(guī)范,將位置、速度等信息通過(guò)串口傳送到PC機(jī)、PDA等設(shè)備。NMEA-0183協(xié)議采用統(tǒng)一標(biāo)準(zhǔn)格式,輸出采用ASCII碼,數(shù)據(jù)傳輸以“語(yǔ)句”方式進(jìn)行,每個(gè)語(yǔ)句均以“$”開頭,然后是兩個(gè)字母的“識(shí)別符”和三個(gè)字母的“語(yǔ)句名”,接著是以逗號(hào)分隔的數(shù)據(jù)體,語(yǔ)句末尾為校驗(yàn)和,整條語(yǔ)句以回車換行符結(jié)束。
NMEA-0183的數(shù)據(jù)信息種類較多,而一組正常的GPS數(shù)據(jù)則包括$GPGGA,$GPRMC,$GPVTG,$GPGLL。$GPGGA輸出的是GPS的定位信息,$GPR MC則輸出GPS推薦的最短數(shù)據(jù)信息,$GPVTG輸出的是地面速度信息,$GPGLL輸出的是大地坐標(biāo)信息?,F(xiàn)以最常見(jiàn)的$GPRMC為例分析其數(shù)據(jù)格式格式如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1>為UTC時(shí)間,格式:hhmmss(時(shí)分秒);<2>為定位狀態(tài),A=數(shù)據(jù)可用,V=數(shù)據(jù)不可用;<3>為緯度,格式:ddmm.mmmm(度分);<4>為緯度區(qū)分,北半球(N)或南半球(S);<5>為經(jīng)度,格式:ddmm.mmmm(度分);<6>為經(jīng)度區(qū)分,東半球(E)或西半球(W);<7>為地面速率(000.0~999.9節(jié));<8>為地面航向(000.0°~359.9°,以正北為參考基準(zhǔn));<9>為UTC日期,格式:ddmmyy(年月日);<10>為磁偏角(000.0°~180.0°);<11>為磁偏角方向,E(東)或W(西);<12>為模式指示。
3 GPS數(shù)據(jù)采集系統(tǒng)硬件設(shè)計(jì)
3.1 串口擴(kuò)展電路
設(shè)計(jì)中所使用的ARM開發(fā)板,由于內(nèi)嵌WinCE 6.0系統(tǒng)使得開發(fā)板的COM0端口被占用,作為系統(tǒng)調(diào)試所用,因此,要使得ARM開發(fā)板與GPS模塊之間進(jìn)行數(shù)據(jù)通信,需對(duì)開發(fā)板進(jìn)行串口擴(kuò)展。擴(kuò)展電路如圖3所示。圖3中P1的9針串口可接GPS模塊串口,MAX202E模塊的TXD1、RTS N1、RXD1可分別接J13模塊的RXD1,CTSN1,TXD2端口。J13模塊的TXD1,RTSN1,RXD2接到ARM開發(fā)板的COM端。從而完成了系統(tǒng)的整體通信和數(shù)據(jù)傳輸。
3.2 GPS模塊接口介紹
GPS模塊采用Trimble公司生產(chǎn)的Condor C2626模塊,該模塊外圍接口電路如圖4所示。
模塊的RF端接天線,TX,RX為數(shù)據(jù)發(fā)送和接收端口,可與擴(kuò)展電路P1模塊的RXD,TXD連接,進(jìn)行數(shù)據(jù)傳送。
4 GPS數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)
4.1 GPS數(shù)據(jù)采集應(yīng)用程序開發(fā)環(huán)境
設(shè)計(jì)采用Visual Studio 2005軟件作為開發(fā)環(huán)境,并用C#語(yǔ)言完成應(yīng)用程序設(shè)計(jì)。首先在PC機(jī)上安裝VS 2005軟件,為了使最后開發(fā)出來(lái)的GPS數(shù)據(jù)采集應(yīng)用程序界面能與WinCE 6.0系統(tǒng)兼容,需在安裝VS2005后,接著安裝TE6410_2G_256_BSP.msi BSP包和TE6410_CE6_SD K.msi SDK文件,之后便可新建一個(gè)Visual C#-Smart Device基于WinCE的Device Application應(yīng)用程序工程。系統(tǒng)程序流程圖如圖5所示。
4.2 GPS數(shù)據(jù)采集軟件的串口通信
設(shè)計(jì)中,GPS數(shù)據(jù)采集界面采用面對(duì)面的人機(jī)交互界面,界面簡(jiǎn)單直觀,操作方便。對(duì)于每一個(gè)控件都有其相對(duì)應(yīng)的類,每個(gè)控件在執(zhí)行不同的任務(wù)時(shí),是通過(guò)對(duì)應(yīng)類的不同事件完成的,可在事件當(dāng)中添加對(duì)應(yīng)的任務(wù)代碼。本設(shè)計(jì)對(duì)串口進(jìn)行啟動(dòng)的類名為PBStart,啟動(dòng)時(shí)需要響應(yīng)它的Click事件。部分代碼如下:
4.3 GPS數(shù)據(jù)信息提取
設(shè)計(jì)中,對(duì)GPS數(shù)據(jù)信息提取、解析是通過(guò)在上位機(jī)中VS2005編程環(huán)境下編譯生成的GPS數(shù)據(jù)采集應(yīng)用程序完成的。通過(guò)對(duì)面向?qū)ο蟮娜藱C(jī)交互界面添加相應(yīng)的類和代碼,實(shí)現(xiàn)對(duì)數(shù)據(jù)的采集與解析,從而顯示出所需要的經(jīng)度、緯度、速度、日期等信息。其方法是首先判斷一幀數(shù)據(jù)的開始,通過(guò)搜尋每條語(yǔ)句中ASCII碼“$”為標(biāo)準(zhǔn),因?yàn)槊總€(gè)語(yǔ)句均以“$”開頭的,然后通過(guò)接收到的兩個(gè)字母的“識(shí)別符”和三個(gè)字母的“語(yǔ)句名”來(lái)判斷接收到的信息類型,對(duì)幀的信息類型識(shí)別正確后,最后通過(guò)搜尋逗號(hào)的個(gè)數(shù)來(lái)確定GPS模塊當(dāng)前所接收到的是哪個(gè)定位參數(shù),從中提取出需要的數(shù)據(jù)信息,并在計(jì)算機(jī)內(nèi)部完成將經(jīng)、緯度坐標(biāo)與本地的高斯平面坐標(biāo)轉(zhuǎn)換。
5 實(shí)驗(yàn)數(shù)據(jù)比較與誤差分析
在上位機(jī),將GPS數(shù)據(jù)采集界面應(yīng)用程序通過(guò)USB同步植入到ARM開發(fā)板里運(yùn)行,通過(guò)串口擴(kuò)展板,連接ARM板與GPS模塊,通上電源,運(yùn)行結(jié)果如圖6所示。
實(shí)驗(yàn)所選定的地點(diǎn)在某實(shí)驗(yàn)樓里,每隔1 s采集一次,所測(cè)得的部分?jǐn)?shù)據(jù)如表1所示。
從表中可以看出,經(jīng)度、緯度、速度在不同的時(shí)刻略顯不同,其影響觀測(cè)精度的誤差因素有多種,如電離層折射的影響,當(dāng)GPS衛(wèi)星信號(hào)通過(guò)電離層時(shí),將受到這一介質(zhì)彌散特性的影響,便其信號(hào)的傳播路徑發(fā)生變化。為了減弱電離層的影響,在GPS定位中通常利用雙頻觀測(cè)和電離層模型以及利用同步觀測(cè)值求差等方法加以修正。再者是多路徑效應(yīng)影響,多路徑效應(yīng)亦稱多路徑誤差,是指接收機(jī)天線除直接收到衛(wèi)星發(fā)射的信號(hào)外,還可能收到經(jīng)天線周圍地物一次或多次反射的衛(wèi)星信號(hào),信號(hào)疊加將會(huì)引起測(cè)量參考點(diǎn)(相位中心點(diǎn))位置的變化,從而便觀測(cè)量產(chǎn)生誤差,而且這種誤差隨天線周圍反射面的性質(zhì)而異,難以控制。一般反射環(huán)境下,多路徑效應(yīng)對(duì)測(cè)碼偽距的影響可達(dá)到米級(jí),對(duì)測(cè)相偽距的影響可達(dá)到厘米級(jí)。而在高反射環(huán)境下常常導(dǎo)致接收的衛(wèi)星信號(hào)失鎖和使載波相位觀測(cè)量產(chǎn)生周跳。目前減弱多路徑效應(yīng)影響的措施有:安置接收機(jī)天線時(shí),應(yīng)避開較強(qiáng)的反射面,并選用屏蔽性良好的天線;適當(dāng)延長(zhǎng)觀測(cè)時(shí)間,削弱多路徑效應(yīng)的周期性影響;改善GPS接收機(jī)的電路設(shè)計(jì),減弱多路徑效應(yīng)的影響。其他詳細(xì)誤差因素分析及解決措施可參見(jiàn)文獻(xiàn)。
6 結(jié)語(yǔ)
本文所設(shè)計(jì)的GPS數(shù)據(jù)采集界面簡(jiǎn)潔、直觀、實(shí)用,實(shí)現(xiàn)了串口接收、多線程編程、計(jì)算等多種功能,將數(shù)據(jù)信息直觀地顯示到用戶界面上;實(shí)現(xiàn)了接收數(shù)據(jù)保存方法,實(shí)現(xiàn)了線程枚舉和多線程任務(wù)的完成,使得線程之間互不沖突,提高了系統(tǒng)的實(shí)時(shí)性。