• 
    

    
    

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

      多線程技術(shù)在GNSS數(shù)據(jù)并行解碼中的應(yīng)用

      2015-04-21 07:18:26張世能
      交通科技與經(jīng)濟(jì) 2015年5期
      關(guān)鍵詞:電文數(shù)據(jù)格式二進(jìn)制

      張世能

      (重慶市勘測院,重慶400020)

      GNSS采集的原始數(shù)據(jù)一般以二進(jìn)制文件形式存儲(chǔ),為了能夠?qū)τ^測數(shù)據(jù)進(jìn)行處理和分析,需要進(jìn)行解碼。目前RINEX是一種普遍使用的GNSS數(shù)據(jù)交換格式,被大家認(rèn)同為GNSS的標(biāo)準(zhǔn)數(shù)據(jù)格式。RINEX采用的存儲(chǔ)形式為文本格式,記錄方式不隨接收機(jī)型號(hào)、廠商的不同而變化。RINEX格式在GNSS數(shù)據(jù)處理中的應(yīng)用十分廣泛,絕大多數(shù)測量型GNSS接收機(jī)品牌均可以將其特有的數(shù)據(jù)格式轉(zhuǎn)換為RINEX格式,而幾乎所有GNSS數(shù)據(jù)處理軟件都可以直接讀取并處理RINEX格式的數(shù)據(jù),因此將原始觀測數(shù)據(jù)通過解碼轉(zhuǎn)換為RINEX格式將有效提高數(shù)據(jù)的通用性。

      目前大多數(shù)GNSS接收機(jī)都有自帶的數(shù)據(jù)格式轉(zhuǎn)換軟件,但是這種軟件首先需要將觀測數(shù)據(jù)存儲(chǔ)在接收機(jī)中,在觀測完成之后再下載數(shù)據(jù)并進(jìn)行處理,因而無法實(shí)現(xiàn)GNSS數(shù)據(jù)的實(shí)時(shí)處理,為解決工程應(yīng)用中對(duì)數(shù)據(jù)處理實(shí)時(shí)性的要求,本文采用串口通信方式實(shí)現(xiàn)觀測數(shù)據(jù)的實(shí)時(shí)傳輸,同時(shí)為了實(shí)現(xiàn)多臺(tái)接收機(jī)觀測數(shù)據(jù)的并行處理,提出了一種基于多線程技術(shù)的實(shí)時(shí)解碼算法。

      1 中海達(dá)Q5接收機(jī)原始觀測數(shù)據(jù)結(jié)構(gòu)

      中海達(dá)Q5接收機(jī)采用的原廠生產(chǎn)核心模塊為HC12A(新月),采用單頻接收機(jī),共有12個(gè)通道,其芯片為ASIC芯片,數(shù)據(jù)更新頻率設(shè)置為20Hz,可進(jìn)行信標(biāo)接收,并具有對(duì)基準(zhǔn)站/移動(dòng)站進(jìn)行差分的功能。

      1.1二進(jìn)制消息結(jié)構(gòu)

      新月-HC12A模塊的二進(jìn)制消息采用16進(jìn)制格式進(jìn)行存儲(chǔ),以便在計(jì)算機(jī)中直接讀取。二進(jìn)制信息一般以一個(gè)8字節(jié)頭開始,結(jié)束標(biāo)志通常設(shè)置為回車換行符。ASCII的碼序列“$BIN”占據(jù)消息頭的前4個(gè)字符。OEM板的導(dǎo)航電文消息塊數(shù)據(jù)和觀測值消息塊數(shù)據(jù)分別對(duì)應(yīng)BIN95和BIN96。通用二進(jìn)制信息結(jié)構(gòu),如表1所示。

      表1 通用二進(jìn)制信息結(jié)構(gòu)表

      1.2 導(dǎo)航電文的消息塊數(shù)據(jù)格式

      導(dǎo)航電文與BIN95(消息塊)相對(duì)應(yīng),在不計(jì)算Header和epilogue的情況下,消息的總長為128個(gè)字節(jié)。消息塊包含了所有12個(gè)通道的星歷信息數(shù)據(jù),消息塊的數(shù)據(jù)格式構(gòu)成與GNSS定位衛(wèi)星所發(fā)送的信號(hào)中導(dǎo)航電文結(jié)構(gòu)比較相似,在進(jìn)行解碼時(shí)可以參考ICD-GNSS-200格式進(jìn)行數(shù)據(jù)轉(zhuǎn)換、提取和整理。消息內(nèi)容可用表2所列的格式進(jìn)行表達(dá)。

      表2 導(dǎo)航電文消息塊數(shù)據(jù)(對(duì)應(yīng)BIN95消息)

      1.3 GNSS觀測值的消息塊數(shù)據(jù)格式

      GNSS觀測數(shù)據(jù)與BIN96消息塊對(duì)應(yīng),在不計(jì)算Header和epilogue的情況下,消息的總長為300個(gè)字節(jié),BIN96消息所包含的內(nèi)容為相位和碼信息,這是觀測值數(shù)據(jù)的主要來源(見表3)。

      表3 觀測值的消息塊數(shù)據(jù)格式

      2 數(shù)據(jù)解碼算法及多線程技術(shù)

      參照二進(jìn)制文件的說明,可以從原始數(shù)據(jù)中提取需要的信息,并按照其數(shù)據(jù)類型及長度轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),需要注意的是,當(dāng)需要的數(shù)據(jù)不是以字節(jié)為單位而是以位為單位存儲(chǔ)時(shí),需要通過位運(yùn)算提取出數(shù)據(jù)并從高位到低位連續(xù)排列,并用0補(bǔ)齊高位的不足部分,然后再轉(zhuǎn)換為十進(jìn)制數(shù)據(jù)。

      在編程實(shí)現(xiàn)時(shí),本文所述案例采用C#語言,在微軟開發(fā)的 Microsoft Visual Studio 2008平臺(tái)下進(jìn)行編譯,分別設(shè)計(jì)了AnalyseBIN95()和AnalyseBIN96()兩個(gè)函數(shù)實(shí)現(xiàn)導(dǎo)航電文以及觀測值數(shù)據(jù)的解碼。

      2.1 觀測值數(shù)據(jù)及導(dǎo)航電文解碼算法

      以觀測值數(shù)據(jù)的解碼過程為例,介紹將原始數(shù)據(jù)解碼為RINEX標(biāo)準(zhǔn)格式的具體算法。

      首先讀取二進(jìn)制原始觀測數(shù)據(jù),然后逐字節(jié)搜索,直到找到“$BIN96”字符串,繼續(xù)搜索直到找出第一個(gè)回車換行符“\r\n”并記下從“$BIN96”到“\r\n”的總字節(jié)數(shù),將其與此數(shù)據(jù)域中的校驗(yàn)和進(jìn)行比較。如果相等則說明數(shù)據(jù)完整,此時(shí)可以用函數(shù)對(duì)GNSS原始觀測數(shù)據(jù)解碼,并將結(jié)果存放到自定義的BIN96DATA結(jié)構(gòu)體中,繼續(xù)搜索下一個(gè)歷元;如果不相等,則說明觀測數(shù)據(jù)并不全,應(yīng)將此段觀測數(shù)據(jù)放棄,繼續(xù)向下搜索,如此循環(huán),完成全部解碼工作。算法流程及解碼函數(shù)的核心代碼如圖1、圖2所示。

      圖1 觀測值文件解碼算法流程

      導(dǎo)航電文的解碼過程與之類似,在解出原始數(shù)據(jù)后,就可以按照RINEX的標(biāo)準(zhǔn)格式寫入到文本文件中,用于數(shù)據(jù)處理及分析。

      2.2 多線程技術(shù)

      GNSS測站接收機(jī)采集的觀測數(shù)據(jù)一般通過GPRS等通信技術(shù)傳到服務(wù)器并存儲(chǔ)到文本文件中,本文采用數(shù)據(jù)流的方式對(duì)原始數(shù)據(jù)實(shí)時(shí)讀取、轉(zhuǎn)換和處理:第一步,制定一個(gè)打開GNSS原始觀測值文件的數(shù)據(jù)流;第二步,制定處理DataStream讀取二進(jìn)制數(shù)據(jù)的數(shù)據(jù)流;最后采用前文提到的算法進(jìn)行解碼。通常在第一步中定義一個(gè)FilesStream對(duì)象(DataStream),第二步中定義一個(gè)BinaryReader對(duì)象(DataReader)。

      而在工程實(shí)際中,往往是多個(gè)測站同時(shí)觀測,為了實(shí)現(xiàn)多測站實(shí)時(shí)數(shù)據(jù)處理,必須對(duì)各個(gè)測站接收的數(shù)據(jù)進(jìn)行并行實(shí)時(shí)解碼,這就是本文所介紹的多線程技術(shù)。多線程技術(shù)可解決多測站數(shù)據(jù)并行解碼。

      圖2 觀測值文件解碼函數(shù)

      多線程解碼通過三個(gè)步驟來實(shí)現(xiàn):第一步,設(shè)定一個(gè)主線程,用它來讀取各個(gè)GNSS測站獲取的原始觀測值數(shù)據(jù);第二步,統(tǒng)計(jì)GNSS測站的數(shù)量,每一個(gè)測站創(chuàng)建一個(gè)子線程,在解碼過程中,子線程和GNSS測站數(shù)據(jù)是一對(duì)一的關(guān)系;第三步,設(shè)置主線程的“時(shí)間片”,使主線程在不同的時(shí)間片段中,切換于多個(gè)子線程之間,如此進(jìn)行,直到完成全部解碼工作,結(jié)束主線程。在現(xiàn)有的硬件條件下,程序運(yùn)行速度極快,全部子線程同步工作,在這樣的模式下,多個(gè)GNSS測站的觀測數(shù)據(jù)實(shí)現(xiàn)了實(shí)時(shí)并行解碼。采用多線程技術(shù)進(jìn)行實(shí)時(shí)并行解碼的算法流程如圖3所示。

      圖3 多線程技術(shù)實(shí)現(xiàn)多測站數(shù)據(jù)實(shí)時(shí)解碼流程

      3 實(shí)例及驗(yàn)證

      本研究通過GPRS通信技術(shù)將接收機(jī)接收到的原始數(shù)據(jù)實(shí)時(shí)發(fā)送到數(shù)據(jù)處理中心,解碼程序以數(shù)據(jù)流的方式讀取原始數(shù)據(jù)并進(jìn)行處理,實(shí)現(xiàn)了對(duì)原始數(shù)據(jù)的實(shí)時(shí)解碼,同時(shí)將多線程技術(shù)引入到GNSS原始數(shù)據(jù)解碼過程中,實(shí)現(xiàn)了多測站數(shù)據(jù)的實(shí)時(shí)并行解碼,為后續(xù)的實(shí)時(shí)數(shù)據(jù)處理及定位提供了必要的前提條件和保障。

      在實(shí)際測試過程中,共設(shè)置3個(gè)觀測站,包括一個(gè)基準(zhǔn)站和兩個(gè)流動(dòng)站,將基準(zhǔn)站固定在某一位置,兩個(gè)流動(dòng)站以一定的速率進(jìn)行移動(dòng)。GNSS接收機(jī)將采集到的原始觀測數(shù)據(jù)通過無線傳輸,儲(chǔ)存到服務(wù)器,隨即調(diào)用本文所述程序進(jìn)行GNSS數(shù)據(jù)的實(shí)時(shí)并行解碼,解碼得到某一測站的RINEX格式觀測值文件,以及導(dǎo)航電文文件,如圖4和圖5所示。

      圖4 解碼得到的RINEX格式觀測值文件

      圖5 解碼得到的RINEX格式導(dǎo)航電文文件

      多次測試表明,由自編程序得到的解碼結(jié)果與接收機(jī)自帶軟件的解算結(jié)果一致,能夠?yàn)楹罄m(xù)的數(shù)據(jù)處理提供合格的標(biāo)準(zhǔn)格式數(shù)據(jù),且解碼效率優(yōu)于自帶軟件,達(dá)到了實(shí)時(shí)并行解碼的要求。

      4 結(jié)束語

      本文以具體數(shù)據(jù)為案例,引入多線程技術(shù)實(shí)現(xiàn)了多個(gè)測站觀測數(shù)據(jù)的實(shí)時(shí)并行解碼。經(jīng)過測試表明,該程序能夠?qū)Χ鄠€(gè)測站的觀測數(shù)據(jù)進(jìn)行實(shí)時(shí)以及并行解碼,效率較高,且滿足工程應(yīng)用中對(duì)觀測數(shù)據(jù)實(shí)時(shí)處理的格式要求。

      [1] 李征航,黃勁松.GPS測量與數(shù)據(jù)處理[M].2版.武漢:武漢大學(xué)出版社,2010:240-242.

      [2] Hemisphere GPS crescent integrator's manual[Z].Canada:CSI Wireless Inc,2005.

      [3] 侯金亮,吳風(fēng)華,王濤.GPS數(shù)據(jù)格式轉(zhuǎn)換的研究[J].河北聯(lián)合大學(xué)學(xué)報(bào):自然科學(xué)版,2014(1):57-61.

      [4] 孟祥廣,郭際明.GPS接收機(jī)(OEM)二進(jìn)制文件向RINEX文件的轉(zhuǎn)換[J].測繪工程,2009,18(5):18-21.

      [5] 鄭祎,王解光.GPS衛(wèi)星預(yù)報(bào)星歷的解碼及衛(wèi)星預(yù)報(bào)[J].工程勘察,2000(3):52-55.

      [6] 周禮,C#和.NET3.0第一步[M].北京:清華大學(xué)出版社,2008:327-334.

      [7] 陳磊,李康.基于ARM的GPS接收機(jī)解碼系統(tǒng)設(shè)計(jì)[J].科技信息,2013(19):96-97.

      [8] 張顯云,張勤.GPS數(shù)據(jù)實(shí)時(shí)通訊中數(shù)據(jù)解碼問題的算法研究[J].測繪科學(xué),2009,34(3):74-75.

      [9] 李克昭,袁建平.GPS文件的解碼及其實(shí)時(shí)通信實(shí)現(xiàn)研究[J].全球定位系統(tǒng),2005(3):43-45.

      [10]賈蓉,王解先.NovAtel OEM4主板的GPS原始數(shù)據(jù)解碼[J].現(xiàn)代科學(xué)儀器,2010(1):57-60.

      [11]陽德勝.全站儀自由設(shè)站輔助計(jì)算程序設(shè)計(jì)[J].交通科技與經(jīng)濟(jì),2014,16(6):110-113.

      [12]甘雨,隋立芬,張鶴,等.利用接收機(jī)鐘差實(shí)時(shí)濾波提高GNSS精度[J].測繪工程,2014,23(5):6-8.

      [13]陳豪,余記遠(yuǎn),楊金玲,等.GPS精確定位技術(shù)在小灣水電站工程變形測量中的應(yīng)用[J].測繪工程,2015,24(4):46-52.

      猜你喜歡
      電文數(shù)據(jù)格式二進(jìn)制
      用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
      一種與內(nèi)部缺陷儀設(shè)備通訊的接口模塊
      ADS-B延遲轉(zhuǎn)發(fā)電文檢測及干擾臺(tái)定位方法
      有趣的進(jìn)度
      二進(jìn)制在競賽題中的應(yīng)用
      在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
      電子測試(2018年1期)2018-04-18 11:52:49
      衛(wèi)星導(dǎo)航系統(tǒng)導(dǎo)航電文編排結(jié)構(gòu)研究
      論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
      DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測繪數(shù)據(jù)為例
      基于ArcGIS的規(guī)劃數(shù)據(jù)格式轉(zhuǎn)換研究
      万盛区| 梁山县| 巴马| 响水县| 酉阳| 龙胜| 夏河县| 元江| 太和县| 册亨县| 独山县| 宁都县| 大港区| 沅陵县| 新泰市| 龙门县| 太和县| 浑源县| 达尔| 双辽市| 朝阳县| 岱山县| 苍溪县| 安阳县| 榆树市| 合作市| 崇礼县| 遵义市| 合阳县| 罗平县| 高雄县| 阳谷县| 安宁市| 台中县| 和静县| 大埔区| 日土县| 靖安县| 安化县| 兖州市| 兰溪市|