《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > RTCM數據采集及解碼器設計與實現
RTCM數據采集及解碼器設計與實現
胡 輝,葉鑫華
華東交通大學 信息工程學院,江西 南昌 330013
摘要: 基于華測X60 RTK接收機,針對Windows開發環境廣泛使用,采用VC++的MSCOMM控件開發了RTCM數據采集及解碼器。本軟件能夠動態顯示RTCM導航電文1、2、3、9等各相關參數,動態存儲RTCM二進制原始語句及其解碼結果文件,為下一步研制差分基準站、DGPS接收機提供了數據源和基礎。
Abstract:
Key words :

摘 要:基于華測X60 RTK接收機,針對Windows開發環境廣泛使用,采用VC++的MSCOMM控件開發了RTCM數據采集解碼器。本軟件能夠動態顯示RTCM導航電文1、2、3、9等各相關參數,動態存儲RTCM二進制原始語句及其解碼結果文件,為下一步研制差分基準站、DGPS接收機提供了數據源和基礎。
關鍵詞:GPS;RTCM;數據采集;解碼

  GPS是美國國防部的第2代衛星導航系統。該系統由GPS衛星星座、地面監控系統和GPS信號接收機3部分組成,能提供全球覆蓋、全天候、全天時連續定位、導航和授時服務。我國雖有多個科研院所從事GPS相關產品的開發,但其研究對象主要集中在動態較低的民用領域,而且精度一般不高,在17 m左右[1]。
 美國政府于2000年5月1日取消了SA干擾,此后電離層誤差成為GPS最主要的定位誤差源[2],對GPS數據進行差分處理是提高GPS處理精度的有效途徑,差分GPS接收機是消除電離層誤差的有效手段,這是本文的研究背景。
  本文基于X60 RTK接收機,采用VC開發環境,開發了RTCM解碼軟件,為下一步進行高精度差分定位解算算法研究和DGPS接收機研制工作提供基礎。
1 RTCM SC-104導航電文簡介
  RTCM SC-104是商用DGPS接收機的通用數據格式,該格式與ICD-GPS-200規定的GPS導航電文的字格式、奇偶校驗規則相同,不同在于GPS電文中各子幀長度是固定的,而RTCM SC-104電文長度是可變的。RTCM電文結構包括2個字頭,后接n個數據字,每字長為30 bit,具體格式參見文獻[3]。RTCM SC-104共包括21類63種電文。偽距差分電文主要有1、2、3,有時也用到電文9。
1.1電文1
  電文1是RTCM電文中最基本的電文,向用戶提供偽距改正數及其變化率,其內容格式如表1所示。

  其中,S為比例因子,是標識偽距改正數PRC和偽距改正數變化率RRC的比例尺度;U表示用戶測距誤差,有4種編碼,每種編碼代表不同的用戶測距誤差;衛星ID 號指衛星的編號;PRC指偽距改正數;RRC指偽距改正數變化率,都是用來修正誤差的,具體含義參見文獻[4-5]。
  IOD是改正數的數據齡期,與GPS中IOD意義相同。如RTCM電文IOD與GPS星歷中IOD不相匹配,則不能直接使用該組改正數,因此IOD是保證差分定位的關鍵,以確保用戶使用的導航電文與基準站使用的導航電文相同。
1.2 電文2
  電文2的格式和電文1完全相同, 包含了衛星導航參數的變化所導致的偽距變率及偽距變率的改變量。如果用戶站未能解譯出新的星歷,而此時基準站已采用了新的星歷,則兩站所用的星歷不一樣,此時基準站必須同時播發電文1和電文 2,防止定位結果產生較大誤差。
1.3 電文3
  電文3是GPS參考站參數,用于發送基準站在 WGS-84 坐標系中的坐標信息 ( ECEFX, ECEFY, ECEFZ),各占32 bit,給定的坐標精度至少到cm級。該項電文由 32×3/ 24 = 4 個字組成, 按順序發送基準站坐標的3個參數,每個字最后6位是奇偶校驗位。
  電文9用于GPS部分衛星組差分改正,其格式與電文1完全相同。
2  RTCM電文解碼方案設計
2.1 VC++平臺簡介
  本軟件主要基于VC++平臺實現,電文的接收用到了VC++中的MSCOMM控件。MSCOMM控件提供了2種處理通信的方式:事件驅動方式和查詢方式。事件驅動方式相當于一般程序設計中的中斷方式。當串口發生事件或錯誤時,MSCOMM控件會產生OnComm事件,用戶程序可以捕獲該事件進行相應處理。本文的例子均采用該方式。
2.2 RTCM電文解碼方案[6]
  根據RTCM的編碼規則設計解碼方案,解碼過程可利用電文字頭中的先導字01100110進行同步,主要有如下5個步驟。
   (1)字節掃描。傳輸數據時,通常采用“6/8”格式的方式。每8 bit數據中僅低6 bit是有效位,第7位為標志位“1”,第8位為空格“0”。接收到的數據必須先取低6位,然后判斷這低6位是不是在64和127之間,如果不是則丟棄這個數據。
  (2)字節滾動。由于GPS設備多數采用美國國家標準化研究所制定的ANSI X3.16和X3.15型標準接口,故連接到計算機標準串口RS-232上的時候需要進行“字節滾動”。
  (3)取補碼。當前一個碼字最后一個比特D30*為1時,必須對當前這個字碼的前4個字節取補碼;如果D30*為0,則保持不變。奇偶校驗位則不必取補碼。
  (4)找引導字。尋找RTCM通用電文引導字(01100110或10011001),進行奇偶校驗,通過同步完成,否則繼續找引導字。
  (5)電文解碼。根據幀長度,按相應電文格式解碼,主要包括比例因子、用戶測距誤差、衛星號、PRC等參數。
  具體解碼流程圖如圖1所示。

3 RTCM數據采集及解碼器實現
3.1 RTCM數據采集及解碼器介紹
  本系統基于Windows操作系統,利用VC++編程實現RTCM導航電文解碼,它既能從差分基準站接收數據,又能從數據文件讀取數據,原始數據和解碼結果將被顯示及存儲,解碼結果包括各顆衛星所包含的參數。
3.2 RTCM數據采集及解碼器實現
  圖2為數據解調子界面,主要有接收回顯窗和解碼顯示窗2部分,其中接收回顯窗顯示各模塊原始數據,解碼顯示窗顯示解碼結果。

3.3 關鍵代碼介紹
  程序的關鍵在于對接收到的差分數據解碼,根據2.2節的解碼方案設計,以電文1為例,程序關鍵代碼如下:
   for( i=0;i<N-10;i++)                //找引導字
    { 
       int dxj=b[i]*4+(b[i+1]-bitshift2(b[i+1],4))/16;
       if(dxj==102||pow(2,8)-1-dxj==102) //找到引導字
         {  type=getbit(b[i+1],1,4)*4+getbit(b[i+2],5,6);                //電文類型
       if(bitshift2(b[i+4],1)==1)
                   //如D30*等于1,則對后面4個字節取補碼
       {…….}               
             else {i=i+5;}
                              //如果D30*不等于1,則不做任何處理
  zt=(b[i]*pow(2,7)+b[i+1]*2+(b[i+2]-bitshift2(b[i+2],5))/32)*0.6;            // z計數
      xuhao=getbit(b[i+2],3,5);          //序號
            changdu=getbit(b[i+2],1,2)*8+getbit(b[i+3],4,6);   //幀長
            health=getbit(b[i+3],1,3);                      //健康度
               int d1=i+5;
              if(type==1||type==62)            //如果是電文1
              {   int cc=0;
                  while(1)                    
                                                         //計算電文1除頭碼之外的長度cc
                           { … }                                     
              while(i+5<10+cc-1)                 //5個字碼(3顆衛星所有參數)循環一次
              {  
              ……      //判斷是否取補碼,解比例因子、用戶測距誤差、衛星號、PRC
               k=k+3;       //每解完3顆衛星的信息便循環一次
                            } 
               }                                           //if type=1
    }                         //if  找到引導字
   if (d2==1)  break;              // 如果到了電文結尾,則結束
   }                                                //for
4 結果分析
  整個軟件測試工作是在華東交通大學信息工程學院的2樓信息技術研究所進行,時間為2008年4月14號10:22:32。實驗平臺基于X60差分GPS接收機進行,接收天線安裝在信息學院樓頂。解碼結果如表2~表4所示。

  將以上誤差數據對自行研制接收機輸出結果進行修正,結果如圖3所示。

  由圖3中結果可看出,其海拔高度的定位誤差在1 m內,經度、緯度定位誤差分別在10-6度和10-7度,比單頻偽距GPS接收機的定位精度好。通過利用基準站進行差分數據傳送進行的定位結果可以達到1 m左右定位精度,結果進一步證明了解碼方法及結果的正確性。
  本文基于X60試驗平臺,開發了RTCM SC-104導航電文數據采集及解碼器。本軟件再加上其他相關軟件可進行差分基站設計,可充分利用PC編程資源進行開發工作。該算法在自行研制的GPS接收機上運行,已獲得了較好的定位精度,為下一步進行實時DGPS接收機研制提供了基礎。
參考文獻
[1] 胡輝.高動態數字化GPS接收機的研制[R]. 哈爾濱:哈爾濱工業大學,2002.
[2] 高山,陳武,胡叢偉,等.高精度GPS定位的精密電離層模型[J].Transactions of Nanjing University of Aeronautics & Astronautics,2005,22(2):107-113.
[3] KAPLAN E D, HEGARTY C J. GPS原理與應用(第2版)[M].  寇艷紅,譯.北京:電子工業出版社,2007.
[4] 何怡,李揚繼.淺析差分GPS的算法及數據格式[J].電訊技術, 2004,(3):111-115.
[5] 李良,張小超,趙化平.GPS差分RTCM數據實時編碼解碼算法及實現[J].計算機工程與應用,2006,(11):209-211.
[6] 史峰.基于虛擬參考站技術和PDA平臺的GPS移動定位系統[D].上海:同濟大學, 2007.
 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一本一道久久综合狠狠老精东影业 | 日韩一级黄色av| 性感少妇一区| 亚洲一区国产精品| 亚洲特级毛片| 亚洲天堂成人在线观看| 99精品欧美| 99国产欧美久久久精品| 亚洲精品小视频在线观看| 亚洲激情国产精品| 亚洲人成网在线播放| 亚洲国产成人不卡| 亚洲国产精品99久久久久久久久| 樱花yy私人影院亚洲| 永久久久久久| 亚洲黑丝在线| 日韩一区二区精品视频| 一本一本a久久| 亚洲午夜性刺激影院| 亚洲色图在线视频| 亚洲欧美成人| 欧美一区二区国产| 久久精品日韩欧美| 亚洲欧洲日本一区二区三区| 最新热久久免费视频| 亚洲乱码久久| 亚洲在线1234| 欧美一区网站| 久久网站热最新地址| 欧美不卡在线视频| 欧美日韩在线免费观看| 国产精品激情| 国产亚洲高清视频| 亚洲第一精品夜夜躁人人爽| 亚洲精品亚洲人成人网| 亚洲视频在线观看| 午夜欧美不卡精品aaaaa| 久久成人免费网| 亚洲日韩第九十九页| 亚洲调教视频在线观看| 午夜精品久久久久久久久久久| 久久精品99国产精品| 毛片精品免费在线观看| 欧美日韩高清在线观看| 国产精品日韩久久久| 狠狠88综合久久久久综合网| 亚洲黄色尤物视频| 亚洲性人人天天夜夜摸| 亚洲成人在线视频播放| 一本大道久久a久久精品综合| 亚洲欧美日韩精品一区二区| 久久免费视频这里只有精品| 欧美日本在线一区| 国产精品入口66mio| 激情伊人五月天久久综合| 亚洲精品一区二区三区樱花| 亚洲欧美日韩一区在线| 亚洲人成在线播放| 亚洲免费人成在线视频观看| 久久久久久亚洲精品杨幂换脸| 欧美黄色一区| 国产日韩欧美一区在线| 最新成人av网站| 午夜精品视频在线观看| 日韩视频第一页| 欧美在线视频网站| 欧美极品一区| 国产小视频国产精品| 亚洲日本无吗高清不卡| 午夜欧美精品久久久久久久| 99在线|亚洲一区二区| 久久久噜噜噜久久久| 欧美视频手机在线| 在线精品国产欧美| 午夜欧美大片免费观看| 中文亚洲免费| 麻豆精品91| 国产精品综合不卡av| 日韩视频一区二区在线观看| 亚洲福利久久| 欧美在线亚洲一区| 欧美日韩一区二区视频在线| 极品裸体白嫩激情啪啪国产精品| 亚洲一区二区三区久久 | 午夜精品www| 欧美精品一区三区在线观看| 国产手机视频精品| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美日韩午夜精品| 伊人久久亚洲美女图片| 亚洲欧美精品| 亚洲视频你懂的| 欧美精品国产一区| 激情伊人五月天久久综合| 亚洲欧美影院| 亚洲专区一区| 欧美日韩国产a| 亚洲韩日在线| 亚洲经典在线看| 久久久爽爽爽美女图片| 国产精品揄拍一区二区| 夜夜嗨av色综合久久久综合网| 亚洲精品国精品久久99热一| 麻豆久久精品| 精品成人免费| 久久se精品一区二区| 久久成人综合网| 国产欧美精品日韩精品| 在线中文字幕不卡| 中文国产一区| 欧美区日韩区| 亚洲日本在线观看| 亚洲卡通欧美制服中文| 欧美成人小视频| 136国产福利精品导航| 久久精品人人爽| 狼人社综合社区| 伊人精品视频| 亚洲国产mv| 免费一级欧美片在线观看| 在线观看视频一区| 亚洲国产一区二区三区在线播| 久久免费视频观看| 狠狠色综合日日| 亚洲国产导航| 嫩草成人www欧美| 亚洲电影免费在线| 亚洲精品护士| 欧美日韩国产精品一卡| 亚洲精品一区在线| 宅男噜噜噜66国产日韩在线观看| 欧美日韩久久精品| 亚洲桃色在线一区| 欧美一区二区精品久久911| 国产精品专区第二| 欧美专区在线观看| 玖玖精品视频| 亚洲精品1区2区| 亚洲一区二区三区三| 欧美色一级片| 亚洲一区二区免费看| 久久成人精品视频| 黄页网站一区| 亚洲精品在线观看免费| 欧美日韩免费在线观看| 亚洲天堂成人在线观看| 久久精品色图| 激情成人综合| 一个人看的www久久| 国产精品毛片大码女人| 香蕉久久精品日日躁夜夜躁| 久久婷婷成人综合色| 亚洲国语精品自产拍在线观看| 这里只有精品电影| 国产精品自拍一区| 亚洲国产另类精品专区| 欧美日韩国产综合视频在线| 亚洲一级在线| 久久久久综合| 亚洲精品自在久久| 性做久久久久久久免费看| 在线播放国产一区中文字幕剧情欧美| 亚洲美女视频| 国产精品嫩草99av在线| 欧美资源在线| 欧美日韩一区在线播放| 欧美一区二区网站| 欧美欧美天天天天操| 亚洲女ⅴideoshd黑人| 噜噜噜在线观看免费视频日韩| 亚洲人成网站精品片在线观看| 欧美一区二区三区另类 | 欧美一区二区三区在线| 在线观看日韩av电影| 亚洲一区二区三区国产| 国产一区二区精品久久| 99re这里只有精品6| 国产日韩成人精品| 一本一本久久| 狠狠色狠狠色综合日日91app| 亚洲图片在区色| 国语自产精品视频在线看抢先版结局 | 久久国产一区二区三区| 亚洲精品欧美极品| 久久精品欧美| 99精品欧美一区二区蜜桃免费| 久久久久久久久久久久久久一区 | 99视频一区二区三区| 久久欧美肥婆一二区| 99精品国产一区二区青青牛奶| 久久亚洲精选| 亚洲在线一区二区| 欧美女激情福利| 久久精品一区二区三区中文字幕| 欧美午夜国产| 亚洲三级免费观看| 国产午夜一区二区三区| 亚洲一级在线观看| 亚洲黄色在线视频| 久久婷婷丁香|