羅海英,李 強,劉旭東
(1.北京跟蹤與通信技術研究所,北京 100094;2.北京理工大學,北京 100081)
基于 VC++的 GPS狀態監控與數據采集軟件的設計與實現
羅海英1,2,李 強1,劉旭東1
(1.北京跟蹤與通信技術研究所,北京 100094;2.北京理工大學,北京 100081)
利用VC++和NovAtel公司的系列精密測量型接收機,開發了一套 GPS狀態監控與數據采集軟件。該軟件能夠針對測量型GPS接收機實現自動握手、命令發送、數據解調、狀態監控窗口顯示、星座窗口顯示和通道跟蹤狀態窗口顯示等功能;能夠進行原始測量數據的采集并且具有事后回放功能,兼容了NovAtel公司目前所有型號的系列產品,界面友好,使用方便,多次參加工程實踐,具有很好的應用推廣價值。
VC++;GPS;狀態監控;數據采集
GPS是現代高新技術實現軍民兩用的一個成功典范,已逐步演變為一種世界性的高新技術產業,受到人們的普遍關注。雖然歐洲的伽利略、中國的北斗二代等系統已經逐步開始建設,但是不可否認,GPS仍然是目前世界上應用最為廣泛的衛星導航系統,它具有全球連續覆蓋、精度高、定位實時性好、觀測時間短、全天候作業等優點[1]。而 GPS接收機通過接收衛星信號解算出目標位置、速度和其他信息,以實現定位導航功能,顯然如何獲取接收機的數據顯得極其重要[2]。
GPS接收機輸出的數據格式分為兩類:①十進制的ASCⅡ碼,GPS的統一標準格式NMEA-0183輸出就采用這種格式,目前大量的應用研究均為基于NMEA-0183格式進行的[3];②二進制碼,它具有運算方便的特點,考慮到精密測量、GPS事后數據處理等數據量較大的特點,本軟件采集并解調 GPS接收機輸出的二進制數據。
通常情況下,用戶都是用計算機和 GPS接收機進行通信,將 GPS定位信息導入計算機后再處理。Visual C++作為可視化開發工具,以其卓越的功能為串口通信編程提供了強大的技術支持[4]。本文介紹的 GPS狀態監控與數據采集軟件采用異步串行傳輸方式,通過RS-232串口采集二進制的 GPS數據。
GPS接收機與計算機之間采用 RS-232異步串行傳輸方式進行數據交換。在進行串口通信時,必須先打開串口并進行初始化后才能開始數據的發送和接收,通信完成后應及時關閉串口[5]。從串口讀取數據的方法有很多種,在此直接使用W in32 API函數對其進行編程處理。GPS接收機的串口參數配置為:數據傳輸率 115 200 bit/s,數據位 8 bit/s,啟動位 1 bit,停止位 1 bit,無奇偶校驗。考慮到精度測量的需求,采樣率大于 10 Hz。在對 GPS進行提取信息之前必須明確 GPS的數據結構,NovAtel系列接收機大致可以分為兩類:①老一代的OE MⅡ和OE MⅢ系列;②新一代的OE MⅣ和OE MⅤ系列。兩個系列產品在數據格式上存在較大的差異,因此在程序實現上需要對其定義不同的數據結構。OE MⅡ和OE MⅢ系列接收機的數據結構參如圖1所示。OE MⅣ和OE MⅤ系列接收機的數據結構參如圖2所示。

圖1 OEMⅡ和OEMⅢ系列接收機的數據結構示意圖

圖2 OEMⅣ和OEMⅤ系列接收機的數據結構示意圖面
該軟件系統結構主要由主控程序、通道跟蹤狀態顯示模塊、星座圖顯示模塊、狀態監控顯示模塊等組成。各部分以獨立線程方式實現,彼此之間的數據通信和共享通過主控程序開辟的數據共享區實現。系統結構示意圖如圖 3所示。

圖3 系統結構示意圖
主控程序主要完成六項功能:①用預定的波特率自動完成對 GPS接收機的搜索。②數據存放和處理。主要用于存入設置或者解調得到的各種元數據和某個具體測量歷元的瞬時測量數據,進行合理性檢驗,并進行必要的計算及存放解算結果。具體包括存放解調得到的 GPS接收機通道跟蹤狀態數據,與 GPS衛星相關的具體某顆衛星的偽距、多普勒、載波相位等數據并進行合理性檢驗,衛星的方位、高度、星歷并進行衛星視位置和星歷計算,設置、計算和存放測站相關數據、觀測數據的記錄等。③數據解調功能。解調模塊主要完成端口讀取數據的解調工作,數據解調模塊以“注冊”方式存放多種格式數據的解調模式,由用戶根據連接的 GPS機載進行選取。其具體功能包括解調模塊注冊、解調端口讀取的數據、對解調的數據進行 CRC校驗。④端口控制功能。主要包括端口打開、關閉,與GPS接收機的自動握手,讀取端口接收的 GPS數據,通過端口向 GPS寫控制命令,以虛擬 GPS數據流方式實現數據回放,其中包括數據文件打開、關閉、讀取。⑤參數設置功能。參數設置包括初始化參數設置和命令設置,采用讀取配置文件方式實現。其中初始化參數設置,包括接收機參數設置、程序運行參數、計算機串口設置、文件存儲路徑聲明等參數;命令設置參數包括了要對接收機進行設置的常見命令。⑥時間及坐標轉換功能。主要完成由 GPS時間與北京時間,地心坐標與大地經緯度等轉換。
星座圖顯示功能主要是以天空星座圖的方式繪制當前可見可用的 GPS衛星星座圖,圖形界面如圖 4所示;通道跟蹤狀態功能為繪制接收機各通道當前跟蹤狀態,包括信噪比、跟蹤狀態、鎖定時間等信息,圖形界面如圖 5所示;狀態監控信息顯示功能主要是顯示當前的相關參數和狀態,包括接收機的聯機參數、當前采樣時間,以北京時間進行顯示當前的定位狀態、當前解算狀態、當前的定位結果和定位解算殘差、當前解調得到的幀歸類統計信息,圖形界面如圖 6所示。

圖4 可視衛星星座圖

圖5 通道跟蹤狀態圖

圖6 定位信息顯示圖
1.串口通信模塊的功能實現
串口通信直接使用W in32 API函數對其進行處理。在W indows下所有的端口均被視為“文件”,不允許直接對硬件端口進行控制操作,因此在串口通信之前需要通過打開文件來打開串口[6],在此定義一個函數來實現串口的初始化,串口初始化完成后采用輪詢的方式搜索接收機,并向接收機發送信息請求接收機輸出信息,成功連接之后開始接收信息。
2.數據解調
由串口讀取的數據,首先需要進行拼幀解調,對解調的數據進行合理性檢驗,之后進行存儲、提供給狀態監控顯示、星座圖、通道狀態圖等模塊使用。NovAtel不同型號的 GPS接收機數據格式彼此不相同,每種格式都需要進行解調,這便增加了程序編制的難度。
3.數據記錄
為保證數據記錄的正確性與可靠性,軟件采用了“數據緩存雙文件記盤”技術,其輸出文件的副本采用了固定文件名“GPSTempFile.dat”,發生異常情況重啟計算機后在約定的文件夾中可以看到 GPSTempFile.dat和另一個實時記盤文件。
本軟件已經成功應用于多次試驗中。與其他商用的數據記錄與采集軟件相比,它具有以下幾大優點:
1.操作簡單,界面友好
在重要測試任務中,操作手可能不具備熟練操作軟件的專業素質,而目前大量的商用軟件均存在操作煩瑣、使用不便的問題,本軟件界面友好,操作簡單,只需要簡單的幾步操作,就可實現軟件的正常運行。
2.簡單易學,避免錯誤
軟件采用配置文件的方式進行初始化和接收機命令設置,這樣避免了在關鍵任務中輸入錯誤的命令,并且一旦在事后數據處理中出現問題,首先查找接收機的命令設置是否正確,方便快速查找問題,提高了工作的效率。
3.功能齊全,簡單實用
軟件在需求階段分析的比較透徹,既克服了商用軟件的缺陷,又具備了比較齊全的功能,很好地實現了數據的監控與采集。
介紹了一種使用 VC++實現 GPS數據監控與采集的自研軟件,通過介紹的軟件可以將 GPS原始測量信息、定位測速信息完整接收,通過對定位參數的提取可將其應用于其他 GPS應用領域。本文程序在W indows XP下由MicrosoftVisual.NET 2003編譯通過,具有簡單、實用的特點。它可以實現 GPS接收機和計算機之間的數據通信,并將定位信息、星座圖、通道跟蹤狀態等信息直觀地在相應窗口顯示出來,具有很好的應用推廣價值。
[1] 周忠謨,易杰軍,等.GPS衛星測量原理與應用[M].北京:測繪出版社,1997:2-4.
[2] 高振松,過靜王君,李冰皓,等.W indows CE下實現掌上機和 GPSOE M板的通信 [J].測繪通報,2001(5):35-36.
[3] 顧必良,王黎明,韓焱.基于 VC++的 GPS數據采集與處理[J].微計算機信息,2008,24(5-1):203-204.
[4] 王曉東.基于VC++的 GPS數據采集系統的設計與實現[J].湖北汽車工業學院學報,2006,20(2):46-49.
[5] 郞銳,羅發根.Visual C++網絡通信程序開發指南[M].北京:機械工業出版社,2004.
[6] 馬云.Visual C++.NET寶典[M].北京:電子工業出版社,2003.
Design and Implementation of GPS StateM on itoring and Data Acquisition Software Based on VC++
LUO Haiying,L IQiang,L IU Xudong
0494-0911(2010)12-0027-03
P228.4
B
2009-12-25
羅海英(1979—),女,遼寧蓋州人,工程師,研究方向為 GPS應用。