• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      差分GPS數(shù)據(jù)通信格式RTCM 3.1及其解碼算法的實(shí)現(xiàn)

      2012-11-14 10:52:30史小雨程鵬飛蔡艷輝李為喬
      測(cè)繪通報(bào) 2012年6期
      關(guān)鍵詞:電文字節(jié)隊(duì)列

      史小雨,程鵬飛,蔡艷輝,李為喬

      (1.廣州中海達(dá)衛(wèi)星導(dǎo)航技術(shù)股份有限公司,廣東廣州511400;2.中國(guó)測(cè)繪科學(xué)研究院,北京100830;3.北京奧騰巖石科技有限公司,北京100176)

      差分GPS數(shù)據(jù)通信格式RTCM 3.1及其解碼算法的實(shí)現(xiàn)

      史小雨1,程鵬飛2,蔡艷輝2,李為喬3

      (1.廣州中海達(dá)衛(wèi)星導(dǎo)航技術(shù)股份有限公司,廣東廣州511400;2.中國(guó)測(cè)繪科學(xué)研究院,北京100830;3.北京奧騰巖石科技有限公司,北京100176)

      目前差分GPS作為提高定位精度與可靠性的一種重要手段而受到越來(lái)越多的關(guān)注,該技術(shù)在數(shù)據(jù)傳輸時(shí)通常使用國(guó)際通用的RTCM SC-104協(xié)議。簡(jiǎn)要介紹RTCM 3.1版本的數(shù)據(jù)格式,針對(duì)該版本設(shè)計(jì)解碼算法并編程實(shí)現(xiàn),最后通過(guò)對(duì)Trimble實(shí)測(cè)數(shù)據(jù)的解析與驗(yàn)證,證明解碼算法的正確性和程序的可靠性。

      差分GPS;RTCM 3.1;數(shù)據(jù)解碼;數(shù)據(jù)通信

      一、引 言

      隨著社會(huì)的發(fā)展,人們對(duì)定位的要求也在不斷的提高,為了提高定位的精度和可靠性,差分GPS (DGPS)越來(lái)越受到人們的歡迎。利用這種技術(shù),用戶可以使用一臺(tái)單頻接收機(jī)實(shí)時(shí)地獲得米級(jí)(測(cè)碼偽距差分)或者厘米級(jí)(測(cè)相偽距差分)的定位精度。在基準(zhǔn)站與流動(dòng)站數(shù)據(jù)傳輸時(shí)通常使用國(guó)際通用的RTCM SC-104協(xié)議,該協(xié)議由國(guó)際海運(yùn)事業(yè)無(wú)線電委員會(huì)提出。在發(fā)布了2.x版本后,該委員會(huì)意識(shí)到這個(gè)版本有如下缺點(diǎn):① 每24位數(shù)據(jù)之后都跟著6位奇偶檢校碼,這是對(duì)帶寬的一種浪費(fèi);②字與字之間的奇偶檢校碼彼此之間不獨(dú)立;③雖然用了多個(gè)位進(jìn)行奇偶檢校,信息的完整性還是不能得到很好的保證;④30位的字處理起來(lái)相當(dāng)麻煩。因此,在作了適當(dāng)修改之后,新版本的RTCM 3.0于2004年推出。查閱相關(guān)文獻(xiàn)后,筆者發(fā)現(xiàn)介紹和解碼新版本電文的材料比較少,所以本文主要介紹RTCM SC-104新發(fā)布的3.1電文及其解碼算法[1]。

      二、RTCM 3.1電文

      RTCM 3.1標(biāo)準(zhǔn)是對(duì)2.x版本的一次升級(jí),可以支持單基準(zhǔn)站或網(wǎng)絡(luò)基準(zhǔn)站的GPS與GLONASS信息操作,同時(shí)可以直接支持正在開(kāi)發(fā)的新系統(tǒng)(如Galileo),或是對(duì)現(xiàn)有系統(tǒng)的改進(jìn)(如新的L2C和L5波段)。此外,新的標(biāo)準(zhǔn)還可以支持增強(qiáng)系統(tǒng)。作為版本3的新標(biāo)準(zhǔn),3.1標(biāo)準(zhǔn)中包含GPS網(wǎng)絡(luò)差分改正數(shù),可以支持大區(qū)域內(nèi)的移動(dòng)接收機(jī)獲取精確的RTK信息。新的GPS和GLONASS信息提供了衛(wèi)星軌道參數(shù)以輔助快速捕獲,為了傳輸純文本數(shù)據(jù)也提供了一種Unicode文本信息,同時(shí)預(yù)留了一部分消息讓用戶自己定義,用戶可以方便地向電文中加入自己定義的信息。具體的內(nèi)容如表1所示。

      表1 RTCM 3.1電文類型[1]

      續(xù)表1

      RTCM 3.1以數(shù)據(jù)庫(kù)的形式來(lái)設(shè)計(jì),與NMEA 2000有些相像。不同的是NMEA 2000是為了不同電子單元的網(wǎng)絡(luò)化而設(shè)計(jì)的,而版本3的差分GNSS標(biāo)準(zhǔn)則是為集中發(fā)布數(shù)據(jù)而設(shè)計(jì)的。對(duì)于版本3的廣播信息而言,每個(gè)位都可能包含經(jīng)常重復(fù)的信息,因此當(dāng)限制了字節(jié)隊(duì)列的長(zhǎng)度時(shí),強(qiáng)制要求每個(gè)數(shù)據(jù)區(qū)都占用幾個(gè)整字節(jié)是不太現(xiàn)實(shí)的。此外,在NMEA 2000數(shù)據(jù)庫(kù)中數(shù)據(jù)字典和數(shù)據(jù)域有很大的差別,而在RTCM 3.1中二者的差別就變得很小。所以,與其同時(shí)用數(shù)據(jù)字典和數(shù)據(jù)域表,不如把二者統(tǒng)一為一個(gè)數(shù)據(jù)域定義更合適[1]。

      表1中,分別定義了GPS和GLONASS的RTK消息,這樣就避免了向消息中附加標(biāo)記信息,因?yàn)檫@樣做改變了消息中數(shù)據(jù)元素的長(zhǎng)度或意義。但是還有一些可變性的數(shù)據(jù)元素是無(wú)法避免的,這是因?yàn)樾l(wèi)星的數(shù)目不能確定。不過(guò)由于衛(wèi)星數(shù)是唯一的變化量,所以傳輸層定義的消息長(zhǎng)度使通過(guò)消息長(zhǎng)度確定衛(wèi)星數(shù)目成為可能。對(duì)于長(zhǎng)度不超過(guò)限定的消息來(lái)說(shuō),數(shù)據(jù)發(fā)布者需要將最后沒(méi)有用完的字節(jié)位補(bǔ)0。

      三、解碼算法的設(shè)計(jì)

      針對(duì)新版本數(shù)據(jù)格式的特點(diǎn),設(shè)計(jì)相應(yīng)的解碼算法,主要由以下幾個(gè)部分組成。

      1.數(shù)據(jù)管理

      從接收機(jī)獲取的是字節(jié)流,必須要對(duì)接收到的數(shù)據(jù)進(jìn)行有效的管理才能進(jìn)行解碼工作。數(shù)據(jù)管理主要包括:數(shù)據(jù)的接收、存儲(chǔ)、刪除等操作。由于消息的處理實(shí)行先進(jìn)先出的原則,所以用隊(duì)列管理接收到的數(shù)據(jù)比較有效。接收到數(shù)據(jù)后,把數(shù)據(jù)放到隊(duì)列里,當(dāng)判斷收到的數(shù)據(jù)足夠解碼一條消息時(shí),就將有效部分取出并交給解碼部分進(jìn)行解碼操作,解碼成功就將該部分?jǐn)?shù)據(jù)從隊(duì)列中刪除。

      隊(duì)列的設(shè)計(jì)可以有兩種選擇方案:循環(huán)隊(duì)列和一般順序隊(duì)。循環(huán)隊(duì)列的操作比較方便,可以有效地進(jìn)行數(shù)據(jù)存儲(chǔ)和刪除等操作,并且不浪費(fèi)內(nèi)存。但循環(huán)隊(duì)列的容量在定義的時(shí)候已經(jīng)確定,不能進(jìn)行擴(kuò)充,如果遇到網(wǎng)絡(luò)狀態(tài)不好時(shí),大量擁堵信息同時(shí)到達(dá)會(huì)使隊(duì)列直接崩潰,如果把隊(duì)列的容量直接開(kāi)得很大又會(huì)加大系統(tǒng)的開(kāi)銷,所以本次程序的設(shè)計(jì)使用的是一般的順序隊(duì)。一般順序隊(duì)在使用時(shí)存在數(shù)據(jù)“假溢出”的現(xiàn)象,為了解決這個(gè)問(wèn)題設(shè)計(jì)一種動(dòng)態(tài)隊(duì)列來(lái)存儲(chǔ)實(shí)時(shí)收到的數(shù)據(jù)。這種設(shè)計(jì)既可以最大限度地節(jié)省內(nèi)存,也可以應(yīng)對(duì)數(shù)據(jù)擁堵的問(wèn)題[2]。

      2.CRC檢校

      與2.x版不同的是,新的版本使用高通CRC (cyclical redundancy check)算法,該算法的24位奇偶位可以有效地探測(cè)信息缺失和一些隨機(jī)誤差。CRC又稱循環(huán)冗余碼校驗(yàn),是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,它是利用除法及余數(shù)的原理來(lái)作錯(cuò)誤偵測(cè)的。在RTCM3.1版中,這部分工作由如下多項(xiàng)式產(chǎn)生的碼完成

      這種碼被稱為CRC-24Q(Q表示高通公司)。這種碼的生成多項(xiàng)式形式如下(利用二進(jìn)制多項(xiàng)式算法)

      p(X)是簡(jiǎn)單的不可被約分的多項(xiàng)式

      用戶接到消息之后,既可以利用產(chǎn)生多項(xiàng)式生成校驗(yàn)碼與已有的進(jìn)行比對(duì),也可以將消息序列左移24位加上接收到的校驗(yàn)碼,然后與事先定義好的多項(xiàng)式進(jìn)行二進(jìn)制除法,如果余數(shù)為0,則表明信息是完整的[1]。

      3.解碼設(shè)計(jì)

      由于在新的版本中省去了字節(jié)掃描、字節(jié)滾動(dòng)和字節(jié)取補(bǔ)碼這些操作,所以解碼部分的難度相比原版本有所減少。根據(jù)文獻(xiàn)[1]的描述,一條完整消息包括一個(gè)固定的引導(dǎo)字、消息的長(zhǎng)度信息、消息體和24位的CRC檢校碼。在判斷消息的完整性后,就可以進(jìn)行解碼工作了。首先判斷消息的類型,然后將不同的類型交給不同的函數(shù)進(jìn)行解碼,再將解碼出來(lái)的數(shù)據(jù)存入事先定義好的數(shù)據(jù)塊中[4]。具體解碼過(guò)程如圖1所示。

      圖1 解碼算法流程圖

      四、程序設(shè)計(jì)

      根據(jù)上述算法,利用C++語(yǔ)言編程實(shí)現(xiàn)了該算法。在程序中設(shè)計(jì)了3個(gè)類:CBuffer、CMessage和CRTCM31。

      1)CBuffer類主要負(fù)責(zé)數(shù)據(jù)的管理,包括接收、存儲(chǔ)和刪除。當(dāng)接收到數(shù)據(jù)后,就將其存入CBuffer類中的成員變量中,該變量是一個(gè)動(dòng)態(tài)數(shù)組,可以存儲(chǔ)任意字節(jié)的數(shù)據(jù)。當(dāng)判斷接收數(shù)據(jù)有效且夠一條消息時(shí),就將有用信息提取出來(lái),并將其從數(shù)組中刪除,以節(jié)省內(nèi)存空間。

      2)CMessage類包括了3.1版本中所有消息的解碼工作,以及結(jié)果的輸出,并且可以隨著版本的修改而作出相應(yīng)的擴(kuò)充。當(dāng)接收到有效信息后,就根據(jù)不同的消息類型交給不同的解碼函數(shù)進(jìn)行相應(yīng)的解碼工作,并可以按用戶需求輸出不同的解碼結(jié)果。

      3)CRTCM31類則是對(duì)前兩個(gè)類的封裝,負(fù)責(zé)整個(gè)解碼工作的完成,它包含了對(duì)接收數(shù)據(jù)的有效性和完整性檢查,消息數(shù)據(jù)的提取等。當(dāng)判斷接收的數(shù)據(jù)有效就將數(shù)據(jù)提取出來(lái)交給CMessage類進(jìn)行解碼,否則繼續(xù)接收數(shù)據(jù),直到?jīng)]有消息再進(jìn)來(lái)為止。

      五、實(shí)例驗(yàn)證

      使用Trimble接收機(jī)產(chǎn)生的RTCM數(shù)據(jù)進(jìn)行了驗(yàn)證。由于電文信息是已知的,所以可對(duì)解碼的結(jié)果進(jìn)行驗(yàn)證。電文與信息如圖2、表2所示。

      圖2 原始電文

      表2 電文數(shù)據(jù)信息

      解碼結(jié)果如圖3所示,與表2基本一致。由于RTCM 3.1版中對(duì)載波相位數(shù)據(jù)進(jìn)行了數(shù)學(xué)上的處理,在不破壞其整數(shù)特性的同時(shí)減少數(shù)據(jù)傳輸?shù)淖止?jié)數(shù),所以載波相位值會(huì)與原始值有所不同,但不影響數(shù)據(jù)處理。

      六、結(jié)束語(yǔ)

      本文介紹了GPS差分?jǐn)?shù)據(jù)通信中常用的RTCM SC-104協(xié)議的3.1版本,該版本新增了部分電文信息,補(bǔ)充了2.x版的不足,確保了GPS差分?jǐn)?shù)據(jù)準(zhǔn)確實(shí)時(shí)的傳輸,提高了數(shù)據(jù)的安全可靠性。分析了GPS差分?jǐn)?shù)據(jù)格式,并設(shè)計(jì)其解碼算法流程,利用VC++編程實(shí)現(xiàn)其算法。通過(guò)對(duì)實(shí)測(cè)的Trimble數(shù)據(jù)進(jìn)行解碼,并檢驗(yàn)其解碼結(jié)果,符合標(biāo)準(zhǔn),驗(yàn)證了解析RTCM數(shù)據(jù)算法的正確性和程序的可靠性。

      [1] RTCM Special Committee No.104.RTCM Standard 10403.1 for Differential GNSS[S].Arlington:Radio Technical Commission for Maritime Services,2006.

      [2] 劉振鵬,張曉莉,郝杰.數(shù)據(jù)結(jié)構(gòu)[M].北京:中國(guó)鐵道出版社,2003.

      [3] 王華,程鵬飛,蔡艷輝.基于Internet的GPS RTK數(shù)據(jù)傳輸?shù)挠行苑治觯跩].測(cè)繪科學(xué),2006,31(1): 67-68.

      [4] 李思超,葉甜春,徐建華.DGPS RTCM數(shù)據(jù)格式簡(jiǎn)介及其解碼算法實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2008,31(12): 11-14.

      [5] 郭洪濤,任超.差分GPS數(shù)據(jù)通訊格式RTCM 3.0及應(yīng)用發(fā)展[J].全球定位系統(tǒng),2010,35(3):63-65.

      [6] 嚴(yán)新生,過(guò)靜珺,朱小冬,等.RTCM SC-104差分電文解碼[J].工程勘察,2007(6):61-65.

      DGPS Data Communication Format RTCM 3.1 and Its Decoding Arithmetic Realization

      SHI Xiaoyu,CHENG Pengfei,CAI Yanhui,LI Weiqiao

      0494-0911(2012)06-0004-03

      P228.4

      B

      2011-06-01

      國(guó)家自然科學(xué)基金(40974008)

      史小雨(1988—),男,河南南陽(yáng)人,碩士生,主要研究方向?yàn)樾l(wèi)星定位與導(dǎo)航。

      猜你喜歡
      電文字節(jié)隊(duì)列
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      一種與內(nèi)部缺陷儀設(shè)備通訊的接口模塊
      ADS-B延遲轉(zhuǎn)發(fā)電文檢測(cè)及干擾臺(tái)定位方法
      隊(duì)列里的小秘密
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      在隊(duì)列里
      簡(jiǎn)談MC7字節(jié)碼
      豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
      衛(wèi)星導(dǎo)航系統(tǒng)導(dǎo)航電文編排結(jié)構(gòu)研究
      阿拉善左旗| 奉新县| 古田县| 黄平县| 葵青区| 海安县| 长春市| 木兰县| 抚宁县| 措美县| 濮阳县| 新蔡县| 玉田县| 渭南市| 高雄市| 竹山县| 鄱阳县| 双鸭山市| 巴彦淖尔市| 黄龙县| 腾冲县| 盐山县| 连州市| 深泽县| 射阳县| 九台市| 延津县| 彝良县| 泌阳县| 澄城县| 临沭县| 桦川县| 揭阳市| 太康县| 枝江市| 江永县| 莱阳市| 平利县| 随州市| 英超| 陆河县|