本發(fā)明涉及衛(wèi)星移動通信基帶信號處理領域,特別涉及基于地球同步軌道(GEO,Geostationary Earth Orbit)的移動無線接口(GMR,GEO-Mobile Radio Interface)衛(wèi)星移動通信系統(tǒng)循環(huán)冗余校驗碼(CRC,Cyclic Redundancy Check)計算方法及裝置。
背景技術:
基于地球同步軌道的移動無線接口衛(wèi)星移動通信協(xié)議來源于第三代合作伙伴項目(3GPP,the 3rd Generation Partnership Project)地面數(shù)字蜂窩標準,可以無縫接入全球移動通信系統(tǒng)/通用移動通信系統(tǒng)(GSM,Global System for Mobile Communication/UMTS,Universal Mobile Telecommunications System)核心網(wǎng)。GMR衛(wèi)星通信協(xié)議廣泛應用在ACeS、ICO、Inmarsat、SkyTerra、TerreStar和Thuraya衛(wèi)星移動通信系統(tǒng)中。
為便于接收方檢查收到的信息有無錯誤,一般會采用循環(huán)冗余校驗碼。若循環(huán)冗余校驗碼(CRC,Cyclic Redundancy Check)碼字長度為N,信息字段為K位,校驗字段為R位(N=K+R),如圖1所示,則對于CRC碼集中的任一碼字,存在且僅存在一個R次多項式g(D),使得:
T(D)=A(D)g(D)=DRm(D)+r(D)
其中:m(D)為K次信息多項式,r(D)為R次校驗多項式,g(D)稱為生成多項式:
g(D)=gRDR+g(R-1)D(R-1)+...+g2D2+g1D+g0
在GMR衛(wèi)星移動通信系統(tǒng)中,采用以下5種循環(huán)冗余校驗碼,其生成多項式分別為:
g3(D)=D3+D+1
g5(D)=D5+D3+D2+D+1
g8(D)=D8+D7+D4+D3+D+1
g12(D)=D12+D11+D3+D2+D+1
g16(D)=D16+D12+D5+1。
在傳統(tǒng)循環(huán)冗余校驗碼計算過程中,一般采用多項式除法運算,此時上述5種循環(huán)冗余校驗碼生成多項式分別需要采用4、6、9、13和17個比特來表示。
當前GMR衛(wèi)星移動通信主要采用16位數(shù)字信號處理(DSP,Digital Signal Processing)計算循環(huán)冗余校驗碼計算,以實現(xiàn)終端系統(tǒng)的小型化。對于生成多項式g16來說,如果仍采用多項式除法計算循環(huán)冗余校驗碼,則需要兩個長度為16比特的寄存器才能保存,此時寄存器有效利用率僅為53%(即17/32×100%=53%),造成了寄存器資源的極大浪費。如果將生成多項式g16存儲在兩個寄存器中,在采用16位DSP計算循環(huán)冗余校驗碼時,需要將長度為17比特的發(fā)送數(shù)據(jù)擴展為32比特信息并以此與兩個長度分別為16比特的校驗多項式進行異或操作,從而使異或操作增加了近一倍。
技術實現(xiàn)要素:
為解決現(xiàn)有技術寄存器資源利用率低或者異或操作計算量大的問題,本發(fā)明提供基于GMR衛(wèi)星通信協(xié)議的CRC計算方法及裝置。
本發(fā)明基于地球同步軌道的移動無線接口GMR衛(wèi)星移動通信系統(tǒng)循環(huán)冗余校驗碼CRC計算方法,包括:
S1、初始化長度為R的寄存器B;
S2、采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C;
S3、對寄存器B進行移1位操作,因移位而產(chǎn)生的空位用0填充;
S4、根據(jù)狀態(tài)標識值C更新寄存器B;
S5、讀出信息字段的第k+1位,重復S2-S5,直到信息字段所有比特信息處理完畢,寄存器B的值即為最終CRC輸出值。
步驟S1中寄存器B的初始化為值為全0;
優(yōu)選地,步驟S2所述采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括:采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)標識值C。
優(yōu)選地,所述根據(jù)狀態(tài)標識值C更新寄存器B包括:
如果狀態(tài)標識值C為1,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特。
優(yōu)選地,步驟S2所述采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括:采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)中間值C’,將狀態(tài)中間值C’與CRC生成多項式分為第一比特g0,再進行異或運算得到狀態(tài)標識值C。
優(yōu)選地,所述根據(jù)狀態(tài)標識值C更新寄存器B包括:
如果狀態(tài)標識值C為0,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特。
優(yōu)選地,步驟S3所述對寄存器B進行移1位操作包括對寄存器B進行左移1位操作。
本發(fā)明基于地球同步軌道的移動無線接口GMR衛(wèi)星移動通信系統(tǒng)循環(huán)冗余校驗碼CRC計算裝置,包括:
寄存器,長度為R,用于存儲校驗字段;
信息字段讀取單元,用于按比特位讀出信息字段的比特信息,讀出寄存器B第一位比特信息;
狀態(tài)標識值計算單元,用于采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C;
寄存器移位控制單元,用于對寄存器B進行左移1位操作,因移位而產(chǎn)生的空位用0填充;
寄存器更新控制單元,根據(jù)狀態(tài)標識值C更新寄存器B。
優(yōu)選地,所述狀態(tài)標識值計算單元,用于采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)標識值C;
所述寄存器更新控制單元,根據(jù)狀態(tài)標識值C更新寄存器B,包括如果狀態(tài)標識值C為1,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特;
可選地,所述狀態(tài)標識值計算單元,用于采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)中間值C’,將狀態(tài)中間值C’與CRC生成多項式的第一比特g0再進行異或運算得到狀態(tài)標識值C;
所述寄存器更新控制單元,根據(jù)狀態(tài)標識值C更新寄存器B,包括如果狀態(tài)標識值C為0,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特。
本發(fā)明充分利用16位定點DSP數(shù)字信號處理過程狀態(tài)變量信息,將GMR衛(wèi)星通信系統(tǒng)CRC生成多項式分為首比特信息和剩余比特信息,采用原位操作方式,首先采用寄存器B首比特值與從高位依次輸入的單個比特計算狀態(tài)標識值,然后對寄存器B進行左移1位操作,再根據(jù)所述狀態(tài)標識值采用寄存器B與CRC生成多項式剩余比特的異或值條件更新寄存器B,當所有輸入比特都經(jīng)過上述計算后,寄存器B中比特即為最終CRC輸出值。
與現(xiàn)有技術相比,本發(fā)明采用寄存器比特原位計算方式,最大限度降低了對寄存器個數(shù)需求,特別適合在16位DSP系統(tǒng)的應用,在此情況下,可使寄存器資源利用率從53%提高到100%。
附圖說明
圖1為現(xiàn)有CRC碼字結(jié)構(gòu)示意圖;
圖2為本發(fā)明CRC計算方法優(yōu)選實施例流程示意圖;
圖3本發(fā)明CRC計算過程寄存器比特信息變化示意圖;
圖4為本發(fā)明基于GMR衛(wèi)星通信協(xié)議的CRC計算裝置示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖對本發(fā)明實施例進一步詳細說明。
本發(fā)明基于GMR衛(wèi)星通信協(xié)議的CRC計算方法,僅采用與定義相對應的左右次序進行描述,具體包括以下步驟,如圖2所示:
本發(fā)明實施例將GMR衛(wèi)星通信系統(tǒng)CRC生成多項式g分為第一比特g0和長度為R的剩余比特g1。即是說,將CRC生成多項式g表示為兩個序列,即g=[g0g1],其中g0=1,g1為余下的長度為R的比特序列。
S1、初始化長度為R的寄存器B;
可選地,寄存器B的初始化值可以是隨機數(shù),但作為更優(yōu)的方式,長度為R(R=3,5,8,12,16)的寄存器B,初始化比特值為全0。
初始化輸入信息字段下標k=1,即延遲最多的輸入比特,讀出的信息字段第k個輸入比特表示為I(k),k=1,2,…,K,K為信息字段長度。
S2、采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C;
所述狀態(tài)標識值C的長度為1比特。在16位DSP系統(tǒng)中,狀態(tài)標識值C可以與溢出標識相對應。
作為一種優(yōu)選方式(標記為方式S2A),所述采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C包括,寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)標識值C,即:
C=xor(I(k),B(1))(公式1)
其中I(k)表示信息字段第k個輸入比特,B(1)表示寄存器B的首個比特值,xor表示異或操作。
作為一種可選方式(標記為方式S2B),所述采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括:采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)中間值C’,將狀態(tài)中間值C’與CRC生成多項式第一比特g0進行異或運算得到狀態(tài)標識值C;即:
C=xor(xor(I(k),B(1)),g0) (公式2)
其中,g0=1。
S3、對寄存器B進行移1位操作,因移位而產(chǎn)生的空位用0填充;
所述對寄存器B進行移1位操作包括對寄存器B進行左移1位操作;
寄存器左移1位,可以表示為:
B=[B(2:R) 0] (公式3)
其中2:R表示讀取寄存器B的第2,3,…,R個比特存放在寄存器B的第1,2,…,R-1比特位置,因移位而產(chǎn)生第R個比特位采用0進行填充。
S4、根據(jù)狀態(tài)標識值C更新寄存器B;
對上述方式S2A相對應,如果狀態(tài)標識值C為1,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特;
對上述方式S2B相對應,如果狀態(tài)標識值C為0,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特。
寄存器更新可以表示為:
B=xor(B,g1) (公式4)
其中,g1為不包含CRC生成多項式首比特的長度為R比特序列,也就是采用寄存器B和g1的異或值再賦給寄存器B。
S5、讀出信息字段的第k+1位,重復S2-S5,直到信息字段所有比特信息處理完畢,寄存器B的值為最終CRC輸出值。
CRC的最終目的是要通過長度為K的信息I和生成多項式g,計算剩余多項式r,本發(fā)明通過K次迭代,最終在B中保留的就是CRC輸出值,原始的信息I不需要輸出。
下面對本發(fā)明CRC計算過程寄存器比特信息變化進行詳細說明,如圖3所示。當生成多項式取g16(D)時,g1=[0001 0000 0010 0001](取其他生產(chǎn)多項式時,CRC計算過程完全相同),寄存器B的長度為16,初始化為B=[B(1),B(2),…,B(16)]=[0,0,…,0];讀取第k個信息比特I(k),與寄存器第1個比特B(1)以及CRC生成多項式第一比特g0,采用優(yōu)選方式公式1或采用可選方式公式2計算狀態(tài)標識值C;對寄存器B進行移1位操作,就是將寄存器B的第2,3,…,16和0共16比特構(gòu)成新的寄存器值B;利用公式4條件更新寄存器B,也可以表示g1的第4,11,16比特與寄存器B的對應延遲位置進行異或并移位。從上面的描述可以看出,整個CRC校驗比特的計算均是基于寄存器B的原位進行計算,從而節(jié)約了寄存器的資源。在16位DSP指令系統(tǒng)中,狀態(tài)標識值C一般作為寄存器的隱影比特位(Shadow bit),隨著操作指令自動更新狀態(tài)標識值C。在16位DSP系統(tǒng)中,很多指令直接依據(jù)狀態(tài)標識值C作為執(zhí)行條件,以便于條件執(zhí)行寄存器更新等相關功能。
下面對本發(fā)明基于GMR衛(wèi)星通信協(xié)議的CRC計算裝置進行描述,如圖4所示,包括:
寄存器B,長度為R,用于存儲校驗字段;
信息字段讀取單元,用于按比特位讀出信息字段的比特信息I(k);
狀態(tài)標識值計算單元,用于采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C;
寄存器移位控制單元,用于對寄存器B進行左移1位操作,因移位而產(chǎn)生的空位用0填充;
寄存器更新控制單元,根據(jù)狀態(tài)標識值C更新寄存器B。
作為一種可實現(xiàn)方式,所述狀態(tài)標識值計算單元,用于采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)標識值C;
所述寄存器更新控制單元,根據(jù)狀態(tài)標識值C更新寄存器B,包括如果狀態(tài)標識值C為1,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特。
作為另一種可實現(xiàn)方式,所述狀態(tài)標識值計算單元,用于采用寄存器B第一位比特信息和信息字段的第k位比特信息計算狀態(tài)標識值C,包括采用寄存器B第一位比特信息與信息字段的第k位比特信息進行異或運算得到狀態(tài)中間值C’,將狀態(tài)中間值C’與CRC生成多項式的第一比特g0再進行異或運算得到狀態(tài)標識值C;
所述寄存器更新控制單元,根據(jù)狀態(tài)標識值C更新寄存器B,包括如果狀態(tài)標識值C為0,則將寄存器B與剩余比特g1相同比特位進行異或運算后存回寄存器B的該比特位;所述剩余比特g1為將CRC生成多項式分為第一比特g0后長度為R的剩余比特。
本發(fā)明裝置中各部件的實現(xiàn)方式與方法實現(xiàn)方式可以相互引用,不再贅述。
本發(fā)明采用寄存器比特原位計算方式,最大限度降低了對寄存器個數(shù)需求。本發(fā)明在3,5,8,12,16位的DSP系統(tǒng)均可以適用,而特別適合在16位DSP系統(tǒng)的應用,在此情況下,可使寄存器資源利用率從53%(即17/32×100%=53%)提高到100%(即16/16*100%)。
以上所舉實施例,對本發(fā)明的目的、技術方案和優(yōu)點進行了進一步的詳細說明,所應理解的是,以上所舉實施例僅為本發(fā)明的優(yōu)選實施方式而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)對本發(fā)明所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。