申麗麗,郭際明,王 磊,向 巍
(武漢大學(xué)測繪學(xué)院,湖北武漢 430079)
GNSS差分協(xié)議校驗方法的比較
申麗麗,郭際明,王 磊,向 巍
(武漢大學(xué)測繪學(xué)院,湖北武漢 430079)
詳細的比較了4種常見的差分協(xié)議所用到的校驗方法的異同,其中RTCM 2.3采用的是奇偶校驗的方法,RTCM 3.0采用的是循環(huán)冗余檢驗方法,而CMR和CMR+采用的則是數(shù)據(jù)塊之和模256這樣的方法。通過算例以及理論分析,從校驗方法的編碼效率、容錯率等方面對其進行比較分析。
RTCM;CMR;奇偶校驗;循環(huán)冗余校驗
近年來,隨著城市的快速發(fā)展,我國近20個省市相繼建立了連續(xù)運行參考站系統(tǒng)(CORS系統(tǒng))。CORS系統(tǒng)的數(shù)據(jù)處理中心在接收到基準(zhǔn)站和流動站發(fā)送過來的數(shù)據(jù)之后,生成RTCM/CMR的數(shù)據(jù)流,并播發(fā)給用戶。流動站與基準(zhǔn)站以及控制中心之間的通訊數(shù)據(jù)鏈在系統(tǒng)中起著關(guān)鍵性作用,因為數(shù)據(jù)鏈?zhǔn)欠裼行Э煽繘Q定了系統(tǒng)是否有效可靠,而差分協(xié)議是數(shù)據(jù)鏈中很重要的一部分。決定數(shù)據(jù)傳輸效率、檢錯率的一個決定性因素就是數(shù)據(jù)傳輸協(xié)議中的校驗方法,一個好的校驗方法能夠在傳輸?shù)倪^程中充分利用帶寬傳輸數(shù)據(jù),并在數(shù)據(jù)出錯的情況下檢測出來,并加以改正。本文正是針對目前常用的 GNSS差分改正信息的數(shù)據(jù)傳輸協(xié)議的校驗方法進行比較分析。
隨著差分GPS的不斷發(fā)展,國際不同的組織制定了多種標(biāo)準(zhǔn)差分協(xié)議,常用的差分協(xié)議主要包括RTCM差分協(xié)議和CMR差分協(xié)議。RTCM差分協(xié)議是由國際海運事業(yè)無線電技術(shù)委員會成立的SC-104委員會制定的,目前經(jīng)常應(yīng)用的有RTCM 2.3、RTCM 3.0兩個版本。RTCM 2.3使用的校驗方法是奇偶校驗方法,而RTCM 3.0使用的是循環(huán)冗余校驗方法。CMR差分協(xié)議是由Trimble公司制定的專門用于RTK的差分協(xié)議,它適用于低帶寬的通訊鏈的情況,目前經(jīng)常應(yīng)用的有CMR和CMR+兩個版本,而它們的校驗方法相同。
1.1 RTCM 2.3差分電文格式校驗方法
RTCM 2.3采用奇偶檢驗的方法,但是它不是單純的奇偶校驗,這與很多文章中提到的關(guān)于RTCM 2.3的奇偶校驗是普通的奇偶校驗是不一樣的,它遵從(32,26)漢明碼檢錯準(zhǔn)則,漢明校驗矩陣為 H,校驗公式為:S6×1=H6×24⊕M24×1,式中 M 24×1為電文中每個字碼的前24位信息位,如下所示[1]。
其中,d1,d2,d3,…,d24是原始的數(shù)據(jù)信息;D*29,D*30是前一個字的最后兩位;D25,…,D30是計算的奇偶校驗位;D1,D2,…,D29,D30是最終發(fā)送的信息。表示模2和,或者異或運算。
為了滿足信息位(24 bit)的要求,將(32,26)漢明碼縮短,去掉兩位信息位構(gòu)成(30,24)縮短碼。這種縮短碼的糾錯能力和最小距離與原碼相同。這種校驗方法的原理是在一組代碼中采用幾位校驗位,使每一位信息都參加幾組不同成員的奇偶校驗。若某一位信息出錯,則會引起有關(guān)的幾組奇偶校驗結(jié)果都出錯。于是,根據(jù)哪些組出錯,就可以確定出錯信息的位置,從而進行自動糾正。RTCM 2.3電文中,每30bits最后6bits都是奇偶校驗位,后面的6位是根據(jù)前面的24位以及上一個字的最后兩位得到的。首先獲得上一電文中的最后兩位D*29,D*30,然后如果D*30為1則1-24位取補碼,為0則不變,根據(jù)得到的24位數(shù)據(jù)以及 D*29,D*30代入到表1中進行計算,如果計算的結(jié)果與數(shù)據(jù)中的校驗碼相同,則通過校驗,否則,校驗沒有通過,數(shù)據(jù)出錯。校驗流程如圖1所示。
圖1 奇偶校驗流程圖
1.2 RTCM 3.0差分電文格式校驗方法
迫于Trimble公司已經(jīng)制定了CMR這一壓縮格式的壓力,RTCM SC-104委員會制定了RTCM 3.0版本的數(shù)據(jù)協(xié)議。RTCM 3.0采用的是24位循環(huán)冗余校驗(CRC)規(guī)則,是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗碼,它與之前的奇偶校驗有很大不同。它是利用線性編碼理論,在發(fā)送端根據(jù)要傳送的 k位信息碼,以一定的規(guī)則產(chǎn)生一個24位的校驗碼,并附在信息碼后面作為校驗碼一個發(fā)送出去。而在接收端則根據(jù)信息碼和校驗碼之間的規(guī)則進行校驗,以確定得到的是否是所需要的信息碼。在代數(shù)編碼理論中,將一個碼序列表示成一個多項式的形式,碼序列中各碼元當(dāng)作多項式的系數(shù)。例如110010表示為
CRC校驗的信息字段是從導(dǎo)言開始到可變長度信息字段結(jié)束,標(biāo)準(zhǔn)給定的生成多項式為
p(x)是簡單不可約分的多項式
設(shè)m(x)為k位信息字段所組成的二進多項式,m (x)的最高冪次為 k-1。發(fā)送方以 g(x)去除 m(x)x24(即對應(yīng)的信息碼序列左移24位),得到余式r(x),把此余式的系數(shù)作為CRC校驗碼附加到信息碼后面,就得到了一個能被g(x)整除的碼多項式C(x)。即式中,q(x)為商式。解碼時,將C(x)除以g(x),余數(shù)為0則證明這段信息有效,否則為無效。
1.3 CMR、CMR+電文格式校驗方法
CMR、CMR+差分協(xié)議是Trimble公司制定的專門為網(wǎng)絡(luò)RTK服務(wù)的協(xié)議標(biāo)準(zhǔn)。主要是針對RTCM格式的碼發(fā)送率必須高于4800b/s這一不足之處而制定的,CMR、CMR+的碼發(fā)送率只有RTCM的一半,即2400 b/s。
CMR+是對CMR的改進,CMR、CMR+的校驗方法相同。CMR和CMR+的校驗非常簡單,它只負責(zé)一部分校驗,在數(shù)據(jù)鏈層會提供足夠的差錯檢驗來保證信息的正確性。這部分的校驗只是把 Status、Type、Length以及DataBlock部分每個字節(jié)的和模256,如果結(jié)果為0則通過檢驗,否則不通過。
筆者編程實現(xiàn)了對RTCM 2.3、RTCM 3.0以及CMR+的編碼以及解碼,用來比較各種校驗方法的區(qū)別。筆者通過實驗分別獲取了采用 3種差分數(shù)據(jù)格式傳輸?shù)臄?shù)據(jù),如下所示:
以上 3段電文傳遞的信息是相同的,即同一個虛擬參考站在地心地固坐標(biāo)系下的坐標(biāo)X,Y,Z。
RTCM 2.3采用Type3和Type22這兩幀數(shù)據(jù)傳遞這一個坐標(biāo),在RTCM 2.3中Type3表示的是虛擬參考站的地心地固坐標(biāo),精確到小數(shù)點后厘米,而Type22則是表示坐標(biāo)的厘米以后的尾數(shù),精確到 1/256 cm。RTCM 3.0僅用了一個字段,即1005字段來傳遞,它用38bits來表示一個坐標(biāo),精確到0.1mm。CMR+采用三個子頁,即1,2,3子頁來表示,用34bits來表示一個坐標(biāo),精確到1mm。
在上述的數(shù)據(jù)例子中,RTCM 2.3完整的表示VRS的坐標(biāo)共需要55字節(jié),前30個字節(jié)為 Type3,后25字節(jié)為 Type22,每四個字節(jié)校驗一次,即第5,10,15,20,25,30,35,40,45,50,55字節(jié)用于校驗,校驗位占11字節(jié);RTCM 3.0表示 VRS坐標(biāo)共需要25字節(jié),固定的校驗碼長度為 24 bits,跟隨在信息位之后,本例中第23,24,25字節(jié)用于校驗,校驗位僅占了3字節(jié);而 CMR+表示同樣的信息需要48字節(jié),每16字節(jié)為一個子頁,每頁的倒數(shù)第二個字節(jié)為校驗位,即第15,31,47字節(jié)用于校驗,校驗位總長度為3字節(jié)。
根據(jù)編碼原則,k+r=n,k為信息碼,r為校驗碼,n為發(fā)送的碼組,信道的傳輸效率即編碼效率 R=k/n,則RTCM 2.3的編碼效率R1為80%,RTCM 3.0的1005字段的編碼效率R2為88%,而CMR+的編碼效率為R3為93.75%。所以從編碼效率上看,R3>R2>R1,即CMR+的編碼效率最高,RTCM 3.0次之,RTCM 2.3最低。
RTCM 2.3采用的校驗方法符合漢明碼檢錯準(zhǔn)則,它的各個校驗位并不是獨立存在的,但是當(dāng)特定信息位同時改變時,此時校驗可能會通過,而數(shù)據(jù)卻是錯誤的,比如用自編程序驗證當(dāng)信息位第5、10、15、24位同時改變時,奇偶校驗通過。但是出現(xiàn)這樣錯誤的概率為百萬分之一,所以奇偶檢驗還是可以滿足應(yīng)用的要求。
RTCM 3.0采用的CRC校驗固定了校驗碼的長度為24位,它既能檢測出每個字的1位誤碼,也能檢測出2位誤碼,還可以100%的檢測出所有奇數(shù)個隨機錯誤和長度小于等于24位的突發(fā)錯誤,當(dāng)突發(fā)錯誤的長度b大于24時,未能檢測率為224(b>25bits)或者為223(b=25 bits)。RTCM 3.0比RTCM 2.3節(jié)省帶寬,編碼效率至少高了 8%,而且校驗方法的容錯率明顯高于RTCM 2.3,所以RTCM 3.0比RTCM 2.3更能滿足應(yīng)用要求。
CMR、CMR+采用的校驗方法相對簡單,只要Data Block位改變之后每個字節(jié)之和是256的整數(shù)倍,那么校驗就可以通過。它可以檢測出 1位誤碼,檢錯率不高,所以需要數(shù)據(jù)鏈提供額外的、足夠的數(shù)據(jù)差錯檢驗機制,以確保接收到的信息內(nèi)容是有效的。
用戶在實際應(yīng)用時,可以根據(jù)不同的要求采用不同的數(shù)據(jù)傳輸協(xié)議,總體來說,RTCM 3.0與RTCM 2.3相比,無論從數(shù)據(jù)傳輸效率、編碼效率以及容錯率方面都要好,而CMR、CMR+在數(shù)據(jù)傳輸效率上比RTCM高,但是它們的容錯率沒有RTCM好,所以可以根據(jù)帶寬以及數(shù)據(jù)質(zhì)量的好壞決定使用哪種數(shù)據(jù)傳輸協(xié)議。
[1] GPS Navstar.Global Positioning System Standard Positioning Service Signal Specification,2nd Edition[S].
[2] Rtcm Special Committee No104.Rtcm Recommended Standards for Differential Gnss Service,Version 2.3[S].
[3] Rtcm Special Committee No104.Rtcm Recommended Standards for Differential Gnss Service,Version 3.0[S].
[4] Trimble Navigation.Compact Data Transmission Standard for High-Precision GPS,Revision 2.0[S].
[5] Trimble Navigation.Improvements in the Compact Measurement Record Format,Revision 2.0[S].
[6] 周翔,周俐麟.用C#實CRC校驗[J].湖南理工學(xué)院學(xué)報:自然科學(xué)版,2004(4):41-43
[7] 倪維楨,高鴻翔.數(shù)據(jù)通信原理[M].北京:北京郵電大學(xué)出版社,1995
[8] 張九宴.GPS差分協(xié)議及基準(zhǔn)站算法研究[D].武漢:武漢大學(xué),2003
Comparison of Parity A lgorithms for Differential GNSSData Transm ission Standards
by Shen Lili
This paper com pared the differences in the 4 common standard's parity algorithm.RTCM 2.3 took the Parity Check as parity algorithm,and RTCM 3.0 took the QualComm CRC algorithm as parity algorithm,while CMR and CMRPlus used the sum of data b locks to mode 256 as parity algorithm. The author analyzed parity algorithm s from coding efficiency and fault-tolerance efficiency by exam p les and theory analysis.
RTCM,CMR,parity check,qualcomm CRC a lgorithm(Page:82)
P228.42
B
1672-4623(2011)01-0082-03
2010-07-14
項目來源:國家863計劃資助項目 (2008AA127308)。
申麗麗,碩士,研究方向為大地測量學(xué)與測量工程。