高仁強等
摘 要:不管是在GPS動態(tài)定位還是在GPS靜態(tài)定位解算中,都需要以衛(wèi)星導航數(shù)據(jù)和接收機觀測數(shù)據(jù)作為基礎數(shù)據(jù),由于各個GPS主板生廠商所生產(chǎn)的接收機的原始數(shù)據(jù)格式不盡統(tǒng)一,而且大多數(shù)的廠商都只是提供了針對自己廠商的接收機的配套數(shù)據(jù)處理軟件,為了將不同型號接收機進行聯(lián)合作業(yè)和數(shù)據(jù)的統(tǒng)一處理,対各個接收機的數(shù)據(jù)格式進行統(tǒng)一也就顯得很有必要(本文原刊于煤礦開采雜志2014年5月)。
關鍵字:GPS原始數(shù)據(jù);NovAtel OEM6;Renix;串口通信
1 引言
全球定位系統(tǒng)主要由 GPS 衛(wèi)星星座(空間部分)、地面控制部分(監(jiān)測網(wǎng)絡)和用戶(接收機)三部分組成。在這三部分中 GPS 衛(wèi)星是其中最主要的組成部分,它只發(fā)射信號,而用戶機部分則只接收信號。GPS信號接收機的任務是能夠捕獲到按一定衛(wèi)星高度截止角所選擇的待測衛(wèi)星的信號,并跟蹤這些衛(wèi)星的運行,對所接收到的GPS信號進行變換、放大和處理,以便測量出GPS信號從衛(wèi)星到接收機天線的傳播時間,解譯出GPS衛(wèi)星所發(fā)出的導航電文,實時的計算出測站的三維坐標,三維速度和時間[1]。而Renix格式文件是GPS測量領域中一種廣為使用的數(shù)據(jù)格式,絕大部分的數(shù)據(jù)處理軟件均支持這種格式。在GPS應用廣泛的今天,無論何種GPS接收機,將其特有的數(shù)據(jù)格式轉換為RINEX格式對于GPS數(shù)據(jù)的通用性、可分析性都有著重要而實際的意義。在這樣的背景下,本文以NovAtel OEM6主板為例,介紹了NovAtel OEM6板卡與計算機通訊接口的設計及NovAtel OEM6主板原始數(shù)據(jù)向標準的RINEX數(shù)據(jù)格式的轉換方法及程序實現(xiàn)過程。
2 GPS原始數(shù)據(jù)的介紹
GPS原始數(shù)據(jù)格式隨接收機主板的不同而異。NovAtel公司是目前精密全球導航衛(wèi)星系統(tǒng)(GNSS)及其子系統(tǒng)領域中,在GPS接收機、GNSS天線生產(chǎn)領域一直是GPS行業(yè)的技術領先者和革新者,公司最新的接收機-OEM6系列,提供了高質(zhì)量的GNSS性能和許多關鍵特性,包括GLONASS量測和定位、GPS現(xiàn)代化、API功能、集成L-波段。NovAtel公司還提供單頻板和雙頻GPS+Galileo雙系統(tǒng)接收機。這項技術對用戶來說非常重要,因為同時跟蹤更多的衛(wèi)星可增加定位和導航解算的可靠性和可用性,這樣即使是在部分衛(wèi)星信號被遮擋的情況下,接收機也可以獲取更多的衛(wèi)星信息,從而使得定位解算結果更為精確有效。本文的接收機原始數(shù)據(jù)就是通過該公司的OEM6系列主板所獲取的。
1. Renix格式介紹
Renix格式是純ASCII碼文本文件,共包含4種文件:
觀測數(shù)據(jù)文件:ssssdddf.yyo
導航文件:ssssdddf.yyn
氣象數(shù)據(jù)文件:ssssdddf.yym
GLONASS數(shù)據(jù)文件:ssssdddf.yyg
其中ssss---4個字母的測站名;ddd---第一組數(shù)據(jù)的年積日;f---當天的觀測序號;yy---年份。
觀測數(shù)據(jù)文件主要記錄有偽距觀測值、相位觀測值和積分多普勒值、觀測值對應的歷元時間等。偽距是由衛(wèi)星發(fā)射的測距碼信號到達 GPS 接收機的接收傳播時間乘以光速所得出的量測距離。相位是在L1和L2頻率上(實際上是在差拍頻率上)的整周內(nèi)的小數(shù)值。根據(jù)不同的需要,多普勒值可分別記錄為D1 和D2,以Hz為單位[2]。GPS導航電文是用戶用來定位和導航的數(shù)據(jù)基礎,主要包括衛(wèi)星的軌道參數(shù)、衛(wèi)星鐘參數(shù)等,具體的參數(shù)內(nèi)容如表2-1所示。GLONASS導航文件主要含有衛(wèi)星的編號、某一時刻下的坐標、速度、加速度等信息,用以確定衛(wèi)星軌道的坐標[3]。
2. GPS原始數(shù)據(jù)的獲取
一般的,GPS接收機需要預先通過向接收機發(fā)送交互式指令請求數(shù)據(jù),只有在設置指令成功的前提下,GPS接收機才會正常工作并接收指定的GPS信號。一般在GPS定位解算中,用戶必不可少的數(shù)據(jù)類型主要是觀測數(shù)據(jù)文件(o文件)和導航數(shù)據(jù)文件(n、g文件),因此在本文中,我們主要是以獲取原始觀測數(shù)據(jù)和導航數(shù)據(jù)(包括GPS和GLONASS衛(wèi)星)兩種數(shù)據(jù)為例進行詳細論述,所以對應的指令包括“RANGEA”和“RAWEPHEMA”,“GLOEPHEMERISA”三種類型,其中“RANGEA”指令類型對應的是原始觀測數(shù)據(jù),“RAWEPHEMA”對應的是原始GPS衛(wèi)星導航數(shù)據(jù),“GLOEPHEMERISA”對應的是原始GLONASS衛(wèi)星導航數(shù)據(jù)。具體的交互式指令可以通過NovAtel OEM6用戶參考手冊文檔獲取,命令的發(fā)送可以通過專業(yè)串口調(diào)試工具或者自己設計的通訊程序完成。在數(shù)據(jù)接收的過程中,需要注意的是接收機與計算機串口設置的一致性,其中包括通信端口、波特率、數(shù)據(jù)位、停止位、奇偶校驗位等信息。
NovAtel-OEM芯片輸出的數(shù)據(jù)格式有三種,分別為ASCII格式、Abbreviated ASCII格式和Binary格式。由于該產(chǎn)品系列的數(shù)據(jù)信息類型非常多,在我們給接收機發(fā)送指令前就需要確定我們用于定位所需要的信息類型,一般我們只需要衛(wèi)星的原始觀測量信息和導航文件信息。本次試驗中我們采用的是ASCII格式的原始數(shù)據(jù)(“#RANGE”和“#RAWEPHEM”指令信息)文件,其基本結構如下表2-2、圖2-3所示:
3 NovAtel OEM6與計算機串口通訊程序設計
本實驗采用9針RS-232串口封裝。通常RS-232接口以9針接腳(DB-9)或是25針接腳(DB-25)的形態(tài)出現(xiàn),一般個人臺式計算機上會有兩個RS-232串口,分別成為COM1和COM2。本次試驗我們用的是筆記本電腦,由于筆記本電腦沒有RS-232串口,于是采用串口轉USB線進行測試。
通過使用.NET平臺的Serial Port控件可以實現(xiàn)本地計算機的串口通訊設計。其基本效果以及串口通訊參數(shù)設置如下圖3-1 所示:
4 數(shù)據(jù)解碼方法
GPS原始數(shù)據(jù)解碼為Renix格式的步驟主要為:首先判斷讀取的指令類型,如果是“RANGE”類型,則可以參考NovAtel OEM6用戶參考手冊文檔了解該指令所對應的的各個參數(shù)的含義,并對照Renix觀測數(shù)據(jù)文件格式進行逐一轉換;如果是“RAWEPHEMA”類型,就需要先在ICD-GPS-200[4]中查找變量的定義,進而求出變量值,求出變量值后還要根據(jù)尺度因子進行換算,最后根據(jù)Renix導航文件數(shù)據(jù)格式的單位要求進行單位轉換。
不過在數(shù)據(jù)解碼的過程中,需要注意以下幾個問題:
1.數(shù)據(jù)的存儲順序
在GPS導航電文中,第1,2,3子幀數(shù)據(jù)是以字節(jié)形式存儲的,對于某些特殊的參數(shù)(如第1子幀的IODC參數(shù)),其數(shù)據(jù)位為10bit,但其分開存儲在第1子幀的第3和第8個字上,如圖3-2所示:
其在還原時需要按照高位在前、低位在后的順序將所有數(shù)據(jù)位的數(shù)字進行合并。
2.校驗位的計算方法
通過這種校驗方式,可以確保用戶接收到的(或傳輸)的數(shù)據(jù)是有效的,需要注意的是在該板卡的導航電文中的每個字后都有校驗位,因此其每一幀導航電文一共有300bit,有些廠商設計的接收機的導航電文是240bit。
3.數(shù)據(jù)的符號位
在導航電文中,需要注意的是每個參數(shù)的字節(jié)數(shù)據(jù)轉為二進制后,如果該參數(shù)在ICD-GPS-200[5]中的子幀參數(shù)表里面用*標注,這就是說該變量是用以2為模的補碼形式來表示的數(shù)(最高的bit位是符號位),即:如果它大于0,那么因為正數(shù)的補碼就是其本身,可以直接求出;但如果它小于0(最高位為1),情況就完全不同,比如1111 1001≠一0111 1001,而等于一(00000110+1)=一0000 0111。要快速求出一個補碼表示的負數(shù)的真值,方法為:對于n位二進制數(shù),X真=X補一2n。[6]
5 程序設計
本程序設計與實驗需要開發(fā)兩個模塊,分別為原始數(shù)據(jù)解碼和原始數(shù)據(jù)轉換為Renix模塊,對應的流程圖分別如下圖5-1,5-2所示。
接收機接收信息后會做出相應的反饋,如返回OK字符串并開始對GPS信號進行接收和處理,通過選擇保存按鈕可以將原始GPS數(shù)據(jù)文件保存在本地計算機上,然后啟動設計好的Renix格式轉換程序,進行了觀測文件輔助信息和導航文件輔助信息設置,設置原始GPS數(shù)據(jù)文件為剛剛生成的數(shù)據(jù)文件其他輸出文件后,便可以得到如下圖所示的Renix2.10數(shù)據(jù)文件,如圖6-1,6-2,6-3所示:
通過參考標準Renix2.10格式說明可以知道此次轉換數(shù)據(jù)符合要求,為了確定轉換結果的可靠性,我們再次借用NovAtel OEM6接收機數(shù)據(jù)處理軟件對原始數(shù)據(jù)進行轉換和對比,發(fā)現(xiàn)結果非常吻合,從而說明,文中所述的原始數(shù)據(jù)解碼方法行之有效。
值得注意的是,在這次解碼過程中,觀測數(shù)據(jù)的頭文件中的部分參數(shù)未給出結果(如測站近似坐標),這是因為要獲取測站的近似坐標需要再發(fā)送特殊的指令如“l(fā)og com1 GPGGA ONTIME 1”得到,這部分內(nèi)容不再本文討論范圍內(nèi)。
7 結論
綜上所述,利用Visual C#可以實現(xiàn)NovAtel OEM6板與計算機通訊程序和原始數(shù)據(jù)向標準通用的RINEX數(shù)據(jù)格式的轉換,通過實驗也驗證了程序的可靠性。該方法對不同類型的GPS-OEM接收機的通訊設計和原始數(shù)據(jù)處理具有實際應用與指導意義(本文原刊于煤礦開采雜志2014年5月)。
參考文獻
[1]劉慶元,余文坤,揚哲,謝文清,劉民選. GPS-OEM板原始數(shù)據(jù)向RINEX格式轉換程序設計[J]. 礦山測量,2009,05:31-33+36.
[2]陳桂珍,戴建軍. GPS-OEM原始數(shù)據(jù)向Rinex格式轉換的方法[J]. 測繪技術裝備,2006,04:26-27.
[3]http://wenku.baidu.com/view/f0f9cf7302768e9951e738f1.html
[4]ARINC Research Corporation.Interface Control Document(ICD)-GPS-2OO[S],1993
[5]NovAtel Incorporation.OEMV Family Firmware Reference Manual[S]
[6]繼燦,李華貴.新編16—32位微型計算機原理及應用[M].北京:清華大學出版社,1997.