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