劉哲延
(貴州省第一測繪院 貴州貴陽 550001)
20世紀90年代中期推出了GNSS OEM技術(shù)(當時主要是針對GPS系統(tǒng)),該技術(shù)將GPS接收機的主要部件做成大規(guī)模集成電路芯片,并與其他配套功能部件集成在一塊電路板上。BD970為一款多系統(tǒng)多頻點GNSS OEM板卡,支持GPS、GLONASS、Galileo、北斗二代全頻點信號接收,具有最高可達50Hz測量頻率及RTK等功能[1]。BD970 OEM板以其性能優(yōu)良、價格低廉、輕巧靈便、易于開發(fā)等優(yōu)點,被廣泛用于運動載體的導航、授時和高精度定位等領(lǐng)域。
RAWDATA[3]是Trimble BD970 OEM板卡輸出的一種天寶公司自定義的二進制數(shù)據(jù)格式,該二進制數(shù)據(jù)格式分為三個部分:數(shù)據(jù)頭、數(shù)據(jù)內(nèi)容和數(shù)據(jù)校驗三部分。其中數(shù)據(jù)頭部分包括:數(shù)據(jù)頭標志和信息數(shù)據(jù)長度等信息,而數(shù)據(jù)內(nèi)容部分是可變的,它的長度由待傳送的信息來具體確定,其基本結(jié)構(gòu)如表1。
表1 RAWDATA二進制數(shù)據(jù)結(jié)構(gòu)
這種原始衛(wèi)星測量數(shù)據(jù)輸出速率通常超出了RS-232串口的字節(jié)限定。為了克服數(shù)據(jù)包尺寸限制的缺點,這些數(shù)據(jù)被分成了若干分包。這些分包的第4字節(jié)定義了該分包在整個數(shù)據(jù)包內(nèi)的索引和該數(shù)據(jù)包所包含的測量歷元的最大分包索引數(shù)。每個分包最大由248個字節(jié)組成,其中有4個字節(jié)是分包索引,另外244個字節(jié)存儲衛(wèi)星原始觀測數(shù)據(jù)。
通常GPS原始數(shù)據(jù)解碼總的來說要經(jīng)過以下步驟:
(1)將原始二進制讀入之后開始查找數(shù)據(jù)標識頭;
(2)逐字段對數(shù)據(jù)進行解析;
(3)根據(jù)變量的單位進行轉(zhuǎn)換。由于各個生產(chǎn)商的板卡有著自己特有的二進制數(shù)據(jù)格式,在步驟(3)上要注意閱讀產(chǎn)品說明書。
圖1為RAWDATA格式文件具體內(nèi)容:
圖1 RAWDATA數(shù)據(jù)實例
在解析的時候,我們先查找字頭02h,然后在讀取第1字節(jié)關(guān)于接收機狀的數(shù)據(jù),并對第2字節(jié)是否是57h進行驗證,以確定字頭02h是分包開始的標志。第3位數(shù)據(jù)塊決定了需要讀取的字節(jié)最大數(shù)量。第5字節(jié)的信息是將各分散的數(shù)據(jù)進行重組的唯一標志。而第7字節(jié),則決定了該數(shù)據(jù)塊的數(shù)據(jù)類型。在對RAWDATA數(shù)據(jù)進行解碼的時候,需要對每段數(shù)據(jù)用取模的方式進行校檢[3],如果出現(xiàn)錯誤,則丟棄這段數(shù)據(jù)。校檢無誤之后,則可作為有效數(shù)據(jù)部分,之后再用于重組完整數(shù)據(jù)。
RAWDATA解碼程序流程圖如圖2。
圖2 解碼程序流程圖
另外,在BD970OEM數(shù)據(jù)解碼單位換算時,有幾點需要注意:①載波相位尺度因子為1/1024,單位是半周,讀取相位數(shù)據(jù)時需將其先換算為整周,然后根據(jù)C/A碼的說明進行提??;②多普勒值可在RAWDATA數(shù)據(jù)中直接讀取,但需乘以常數(shù)1000[5]。此次在編碼過程中,使用了.NETFramework中的一個串口通信控件,名為SerialPort[2],其功能類似于MSComm[3]。在該控件整合了串口操作中數(shù)據(jù)整理、奇偶校驗以及從緩沖區(qū)讀取數(shù)據(jù)等功能[4],極大提高了開發(fā)效率。
本人選取了2013年1月22日下午14點一段觀測原始數(shù)據(jù)進行解碼,結(jié)果如下:
轉(zhuǎn)碼后的結(jié)果:
圖3 正確解碼的RINEX格式
經(jīng)過與正確數(shù)據(jù)比對,該解碼算法可靠。通過本文介紹的OEM板卡二進制文件數(shù)據(jù)解析的基本方法和思路,可以實現(xiàn)絕大部分二進制GNSS觀測數(shù)據(jù)的解析。而對于GPS接收機的其他一些二進制數(shù)據(jù),比如RTCM、CMR等,向文本文件的轉(zhuǎn)化方法與此相似。隨著GNSS接收模塊小型化,基于GNSS OEM板的二次開發(fā)將成為GNSS產(chǎn)品民用化的一個重要方向。
[1]Trimble Company.Trimble BD970 OEM UserGuide[S].2010.
[2]徐蕾璐,俞子榮.NET環(huán)境下基于SerialPort實現(xiàn)SR23與PC機的通信[J].計算機與現(xiàn)代化,2011,5:029.
[3]李立早.基于MSComm控件的GPS接收機數(shù)據(jù)終端接口設(shè)計[J].現(xiàn)代電子技術(shù),2006,29(20):97~98.
[4]康筱鋒,吳瓊,張建生.基于PDA和GPSOEM板的GPS信息解碼[J].安徽工業(yè)大學學報,2007,24(1).
[5]孟祥廣,郭際明.GPS接收機(OEM)二進制文件向RINEX文件的轉(zhuǎn)換[J].測繪工程,2009,18(5):18~21.