一种crc校验的方法和系统及crc初值影响矩阵的制作方法

文档序号:7943695阅读:208来源:国知局

专利名称::一种crc校验的方法和系统及crc初值影响矩阵的制作方法
技术领域
:本发明涉及数字通信
技术领域
,具体而言是涉及一种循环冗余校验CRC(CyclicRedundancyCheck)校验的方法和系统及CRC初值影响矩阵。
背景技术
:随着数字通信速率的要求越来越高,如宽带码分多址(WidebandCodeDivisionMultipleAccess,WCDMA)的下行业务由高速下行链路分组接入(HighSpeedDownlinkPacketAccess,HSDPA)向高速分组4妄入演进(High-SpeedPacketAccessEvolution,HSPA+)扩展时,下行接收后待处理的数据块将越来越大。为了提高接收端的处理能力,最简单的方法就是将整块数据分段,增加处理单元以同时处理多段数据,同时输出多段结果,减少整块数据的处理时间和处理延迟。接收端为检查接收到的整块数据是否正确,一般会釆用在译码器后接CRC的方式。图1所示为现有技术的CRC校验流程框图,如图1所示,现有的CRC校验要求按顺序逐步(单比特或多比特)校验,只有前一段的数据按顺序校验完毕后才能开始后一段数据的校验,这样不仅需要增加额外的存储单元以緩存后几段数据,而且CRC校验的处理时间会比较长。例如HSPA+的43.2M数据,需要处理的数据量为86400比特,时钟频率是16倍码片(chip)速率,如果采用逐比特CRC校验方式,得到CRC结果需要86400/16clk/2560chip=2.12slot(时隙),该处理时间和延迟在高速业务中是无法接受的;如果采用多比特CRC并行校验的方式,则需要译码单元也能够同时输出多比特译码值,这不仅增加了资源,而且实现难度较大。因此现有的CRC逐步校验方法将成为数据流处理线上的瓶颈。
发明内容有鉴于此,本发明实施例提供了一种CRC校验的方法和系统及CRC初值影响矩阵,能够缩短CRC校验时间。为实现上述目的,本发明实施例是通过如下技术方案实现的提供一种循环冗余校验CRC校验的方法,包括将整块待CRC校验数据分成多段;对每一段数据同时进行CRC校验得到各段CRC结果;对所述各段CRC结果进行合并得到整块数据的CRC结果。提供一种循环冗余校验CRC校验的系统,包括分段单元,用于将整块待CRC校验数据分成N段;N个校验并行运算单元,用于对每一段数据同时进行CRC校验得到各段CRC结果;校验结果合并单元,用于对所述各段CRC结果进行合并得到整块数据的CRC结果。还提供一种CRC初值影响矩阵,为一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。由以上本发明实施例提供的技术方案可知,通过对整块待CRC校验数据采用CRC分段校验方法,同时进行CRC校验得到各段CRC结果,然后对各段CRC结果进行合并得到整块数据的CRC结果,与现有的CRC逐步校验方法相比,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短CRC才交-验时间。图1为现有技术的CRC校验流程框图2为本发明实施例提供的一种CRC校验的方法流程图3为本发明实施例提供的一种CRC校验流程框图4为本发明实施例提供的一种CRC8校验电路示意图5为本发明实施例提供的对各段CRC结果进行合并得到整块数据的CRC结果的流程示意图6为本发明实施例三提供的分为三个码块、釆用CRC8进行校验的运算流程图7为本发明实施例提供了一种CRC校验的系统组成示意图。具体实施例方式为使本发明的目的、技术方案、及优点更加清楚明白,下面结合附图并举实施例,对本发明提供的技术方案进一步详细描述。参见图2,图2为本发明实施例提供的一种CRC4交验的方法流程图,包括步骤21,将整块待CRC校验数据分成多段;步骤22,对每一段数据同时进行CRC校验得到各段CRC结果;步骤23,对所述各段CRC结果进行合并得到整块数据的CRC结果。例如将整块数据L分成N段,第一段数据长度为Ll,第二段数据长度为L2,...第N段数据长度为Ln,总段数为待CRC校验的段数,Ll+L2+...+Ln=L。各段数据单独使用一个独立的CRCx校验单元,例如CRC8时,x=8;CRC16时,x=16,分段同时进行CRC校验,最后将各段CRC结果合并以得到整块数据的CRC结果。本发明实施例提供的CRC校验的方法,通过对整块待CRC校验数据采用CRC分段校验方法,同时进行CRC校验得到各段CRC结果,然后对各段CRC结果进行合并得到整块数据的CRC结果,与现有的CRC逐步校验方法相比,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短CRC才交,睑时间。参见图3,图3为本发明实施例提供的一种CRC校验流程框图,包括步骤31,将整块数据分成N段;步骤32,对每一段数据由各个译码单元进行译码后,同时输出各段数据的译码值。步骤33,对所述各段数据的译码值由各个CRCx校验单元同时进行CRC校验,得到各段CRC结果。其中,CRCx校验单元1采用标准的CRC校验方法,其初值根据需要进行设定;其余CRCx校验单元暂不考虑前一段CRCx校验结果对后一段CRCx校验结果的影响,采用全零初值进行校验。这些初值的影响将在步骤34"对各段CRC结果进行合并"时通过"CRC初值影响距阵"经相关运算、对应比特依次异或得到。所述CRC初值影响矩阵是一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L〉0。例如,对于一个CRC8标准校验公式,该CRC8校验电路参见图4所示,其校验公式如下D7=D6AD7Adin,D6=D5,D5=D4,D4=D3AD7Adin,D3=D2AD7Adin,D2=D1,Dl=D0AD7Adin,DO=D7Adin,则CRC8(L)的"初值影响距阵的运算公式"为M(7,k,L+l)=M(6,k,L)AM(7,k,L),M(6,k,L+l)=M(5,k,L),M(5,k,L+l)=M(4,k,L),M(4,k,L+1)=M(3,k,L)AM(7,k,L),M(3,k,L+1)=M(2,k,L)AM(7,k,L),M(2,k,L+l)=M(l,k,L),M(1,k,L+1)=M(0,k,L)AM(7,k,L),M(0,k,L+l)=M(7,k,L);其中,k=0,l,2x-l;L>0,当Li时,有M(k,k,O"l,M(k,notk,0)=0。对每一种x取值与L取值的组合,通过"初值影响距阵的运算公式"迭代运算L次后,可以得到唯——个"CRCx(L)初值影响距阵,,与其对应,列表形式如下:<table>tableseeoriginaldocumentpage9</column></row><table>步骤34,对所述各段CRC结果进行合并得到整块数据的CRC结果。参见图5,该步骤具体包括将"第一段CRC结果C"作为"第二段CRC结果的初值A",输入"CRC初值影响矩阵CRCx(L2)"计算得到"第二段CRC结果的影响值B";将所述"第二段CRC结果的影响值B"与"第二段CRC结果C",对应比特异或得到"第三段CRC结果的初值A,";循环上述操作,直到得到所有N段"整块数据的CRC结果"。需要说明的是,"第n段CRC结果的影响值"与"第n段CRC结果"对应比特异或后得到"整块数据的CRC结果"。一种实施例,通过/^式B^S!(AkXM(i,k))k-0mod2运算得到除第一段之外的各段CRC结果的影响值,其中Ak为各段CRC结果的初值,M(i,k)为各段的CRC初值影响矩阵,i=0,l,..x-l,x为CRC校-睑长度。一种实施例,与一次CRC校验多比特数据配合使用,进一步提高CRC校验效率。本发明实施例提供的CRC校验的方法,将整块数据分成N段,对每一段数据由译码单元进行译码后同时输出的各段数据的译码值,采用CRCx校验单元同时进行CRC校验,其中,CRCx校验单元1采用标准的CRC校验方法,其初值根据需要进行设定;其余CRCx校验单元暂不考虑前一段CRCx校验结果对后一段CRCx校验结果的影响,采用全零初值进行校验,然后在对各段CRC结果进行合并时,再通过"CRC初值影响距阵"考虑前一段CRCx校验结果对后一段CRCx校验结果的影响,直到得到整块数据的CRC结果。与现有的CRC逐步校验方法相比,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短CRC校验时间。一个具体实施例,WCDMA的HSPA+中常会遇到为节省处理延迟将单传输块分为多码块同时进行TURBO译码,同时输出译码结果进行CRC校验情况。设传输块长度10770,分为3个码块,每个码块长度35卯,釆用CRC8校验,其运算过程参见图6所示,包括步骤(1)取零初值对第一个码块进行CRC8校验,得到第一个码块的CRC8校验值。(2)取零初值对第二个码块进行CRC8校验,得到第二个码块的CRC8校验值。(3)取零初值对第三个码块进行CRC8校验,得到第三个码块的CRC8校验值。(4)CRC8(L)"初值影响距阵的运算公式"为M(7,k,L+l)=M(6,k,L)AM(7,k,L)M(6,k,L+l)=M(5,k,L)M(5,k,L+l)=M(4,k,L)M(4,k,L+1)=M(3,k,L)AM(7,k,l)M(3,k,L+1)=M(2,k,L)AM(7,k,l)M(2,k,L+l)=M(l,k,L)M(1,k,L+1)=M(0,k,L)AM(7,k,l)M(0,k,L+l)=M(7,k,L)其中,k=0,l,2...x-l;上述公式对L>0有效,当L=0时,有M(k,k,0)=l,M(k,notk,0)=0,用8*8=641^寄存器,通过上述公式迭代运算3590次得到"CRC8(35卯)初值影响距阵"。CRCx(L)初值影响距阵,x=8,L=3590<table>tableseeoriginaldocumentpage12</column></row><table>(5)将第一个码块的CRC8校验值作为初值Ak带入公式Z(AkxM(i,k》k=0mod2(其中i-0,l,2,…7)计算得到第二码块的CRC影响值'(6)将第二码块的CRC影响值与第二个码块的CRC8校验值对应比特异或得到前两个码块的CRC8校验值。(7)将前两个码块的CRC8校验值作为初值带Ak入公式:E(AkxM(i,k》k=0mod2(其中1=0,1,2,...7)计算得到第三码块的CRC影响值'(8)将第三码块的CRC影响值与第三个码块的CRC8校验值对应比特异或得到前三个码块的CRC8校验值,即得到整个传输块的CRC8校验值。本实施例需要说明的有三点1、增加的CRC8并行运算单元所占用的资源远远小于原本需要存储数据的緩存单元。2、步骤(1)~(4)的运算可以同时进行,以此节省后面码块2和码块3码块排队需要的存储器和等待的时间。3、步骤(5)~(8)占用的时间很少,实际电路中最多每一步用一个时钟周期,可以忽略不计。在本实施例中,CRC校验的处理时间为3590个时钟周期;如果采用现有的CRC逐步校验方法,处理时间为10770个时钟周期,本发明实施例是现有技术的三分之一。而且本实施例中CRC校验几乎没有处理延迟,并行译码单元的译码结果输出完毕,4个时钟周期后就能得到CRC结果;如果采用现有的CRC方法,从译码单元输出译码结果到得到CRC结果的延迟时间为3590x2=7180个时钟周期,因此本实施例能够节省CRC处理时间和延迟时间,而且数据量越大,节省的时间越多。并且,本实施例节省了码块2和码块3译码结果共3590x2=7180bit的緩存单元,实现代价仅是多了两组CRC8并行运算单元和64bit的初值影响距阵,而且数据量越大,节省的存储单元越多。参见图7,本发明实施例提供了一种CRC校验的系统,包括分段单元71,用于将整块待CRC校验数据分成N段;N个校验并行运算单元72,用于对每一段数据同时进行CRC校验得到各段CRC结果;校验结果合并单元73,用于对所述各段CRC结果进行合并得到整块数据的CRC结果。所述N个校验并行运算单元72中第一个4文验并行运算单元使用标准的CRC校验方法,其初值根据需要进行设定;其余校验并行运算单元暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验。所述校验结果合并单元73包括CRC初值影响矩阵731,为一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到,其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为校验长度,L为待校验的数据长度,x>0,L>0;影响值计算模块732,用于将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值,其中第一段CRC结果不计算影响值,并直接作为第二段CRC结果的初值;Z(AkxM(i,k》k=0初值计算模块733,用于将各段CRC结果的影响值与各段CRC结果对应比特异或得到下一,殳CRC结果的初值,其中最后一段CRC结果的影响值与最后一段CRC结果对应比特异或后得到整块数据的CRC结果。如何得到CRC初值影响矩阵731的方法示例如上所示,在此不再赘述。所述影响值计算模块732包括影响值计算子模块,用于通过公式mod2运算得到除第一段之外的各段CRC结果的影响值,其中Ak为初值,M(i,k)为CRC初值影响矩阵731,Bi为影响值,i=0,l,..x-l,x为CRC校验长度。以将整块待CRC校验数据分成3个数据段为例,说明校验结果合并单元73的运算流程如下第1段CRC结果直接作为第2段CRC结果的初值输入CRC初值影响矩阵731,经影响值计算模块732得到第2段CRC结果的影响值,将第2段CRC结果的影响值与第2段CRC结果对应比特异或经初值计算模块733得到第3段CRC结果的初值,即前2段的CRC结果,并作为第3段CRC结果的初值输入CRC初值影响矩阵731,经影响值计算模块732计算得到第3段CRC结果的影响值,将第3段CRC结果的影响值与第3段CRC结果对应比特异或经初值计算模块733得到前3段CRC结果,即整块数据的CRC结果。本发明实施例提供的CRC校验的系统,通过N个校验并行运算单元72同时进行CRC分段校验得到各段CRC结果,然后由校验结果合并单元73对各段CRC结果进行合并得到整块数据的CRC结果,与现有的CRC逐步校验方法相比,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短了CRC校验时间。本发明实施例还提供了一种CRC初值影响矩阵,为一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,I>0。对每一种x取值与L取值的组合,通过初值影响矩阵的运算公式迭代运算L次后,得到唯一一个CRCx(L)初值影响矩阵,列表形式如下<table>tableseeoriginaldocumentpage15</column></row><table>其中,k=0,l,2x-l;L>0,当L=0时,有M(k,k,0"l,M(k,notk,0)=0。本发明实施例通过提供CRC初值影响矩阵,将"第一段CRC结果"作为"第二段CRC结果的初值",输入"CRC初值影响矩阵"变换得到"第二段CRC结果的影响值";将"第二段CRC结果的影响值"与"第二段CRC结果"对应比特异或得到"第三段CRC结果的初值";循环上述操作,直到得到所有N段"整块数据的CRC结果";通过"CRC初值影响距P车"考虑前一段CRCx校验结果对后一段CRCx校验结果的影响,保证了能够采用CRCx校验单元同时进行CRC校验。与现有的CRC逐步校验方法相比,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短CRC4交验时间。需要说明的是,本发明实施例中的方法可以软件功能模块的形式实现,并且该软件功能模块作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,i兹盘或光盘等。本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个15单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明实施例所提供的CRC校验的方法和系统及CRC初值影响矩阵进行了详细介绍,本发明实施例可以广泛地应用到数字通信各个领域的接收端(甚至是发射端),只要是需要进行CRC校验的数据处理都可以使用。实施例的说明只是用于帮助理解本发明的方法及其思想;任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。权利要求1、一种循环冗余校验CRC校验的方法,其特征在于,包括将整块待CRC校验数据分成多段;对每一段数据同时进行CRC校验得到各段CRC结果;对所述各段CRC结果进行合并得到整块数据的CRC结果。2、根据权利要求1所述的方法,其特征在于,所述对每一段数据同时进行CRC校验得到各段CRC结果的方法包括对第一段数据使用标准的CRC校验方法,其初值根据需要进行设定;其余各段数据进行CRC校验时暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验。3、根据权利要求2所述的方法,其特征在于,所述对每一段数据同时进行CRC校验得到各段CRC结果的方法还包括除第一段CRC结果外,所述前一段CRC结果对后一段CRC结果的影响,在对各段CRC结果进行合并时通过CRC初值影响矩阵得到。4、根据权利要求3所示的方法,其特征在于,所述CRC初值影响矩阵是一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。5、根据权利要求3所述的方法,其特征在于,所述对各段CRC结果进行合并得到整块数据的CRC结果的方法包括将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值,其中第一段CRC结果不计算影响值,并直接作为第二段CRC结果的初值;将各段CRC结果的影响值与各段CRC结果对应比特异或得到下一段CRC结果的初值,其中最后一段CRC结果的影响值与最后一段CRC结果对应比特异或后得到整块数据的CRC结果。6、根据权利要求5所述的方法,其特征在于,所述将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值的方法包括:通过公式B,.=l!(AkXM(i,k))k=0mod2运算得到除第一段之外的各段CRC结果的影响值,其中Ak为初值,M(i,k)为所述CRC初值影响矩阵,Bi为影响值,i=0,l,..x-l,x为CRC校验长度。7、一种循环冗余校验CRC校验的系统,其特征在于,包括分段单元,用于将整块待CRC校验数据分成N段;N个校验并行运算单元,用于对每一段数据同时进行CRC校验得到各段CRC结果;校验结果合并单元,用于对所述各段CRC结果进行合并得到整块数据的CRC结果。8、根据权利要求7所述的系统,其特征在于,所述N个校验并行运算单元中第一个校验并行运算单元使用标准的CRC校验方法,其初值根据需要进行设定;其余校验并行运算单元暂不考虑前一段CRC结果对后一段CRC结杲的影响,采用全零初值进行校验。9、根据权利要求8所述的系统,其特征在于,所述校验结果合并单元包括CRC初值影响矩阵,为一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到,其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为校验长度,L为待校验的数据长度,x>0,L>0;影响值计算模块,用于将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值,其中第一段CRC结果不计算影响值,并直接作为第二段CRC结果的初值;初值计算模块,用于将各段CRC结果的影响值与各段CRC结果对应比特异或得到下一段CRC结果的初值,其中最后一段CRC结果的影响值与最后一段CRC结果对应比特异或后得到整块数据的CRC结果。10、根据权利要求9所述的系统,其特征在于,所述影响值计算模块包括影响值计算子模块,用于通过公式B,S!(AkXM(i,k))k=0mod2运算得到除第一段之外的各段CRC结果的影响值,其中Ak为初值,M(i,k)为所述CRC初值影响矩阵,Bj为影响值,i=0,l,..x-l,x为CRC校验长度。11、一种CRC初值影响矩阵,其特征在于,为一个xxx的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,I>0。12、根据权利要求11所述的CRC初值影响矩阵,其特征在于,对每一种x取值与L取值的组合,通过初值影响矩阵的运算公式迭代运算L次后,得到唯——个CRCx(L)初值影响矩阵,列表形式如下M(x-l,k)M(x-2,k)M(l,k)M(O,k)x-1l或Ol或Ol或Ol或Ox-2l或Ol或Ol或Ol或O1l或Ol或Ol或Ol或O0l或Ol或Ol或Ol或O其中,k=0,l,2...x-l;L>0,当Li时,有M(k,k,O)-l,M(k,notk,0)=Oc全文摘要本发明的实施例公开了一种CRC校验的方法和系统及CRC初值影响矩阵,能够缩短CRC校验时间。本发明实施例提供的方法包括首先将整块待CRC校验数据分成多段;对每一段数据同时进行CRC校验得到各段CRC结果;然后通过CRC初值影响距阵,将各段CRC校验值合并,得到整个数据块的CRC结果。本发明实施例提供的技术方案可广泛地应用到数字通信各个领域的接收端,甚至是发送端,只要是需要进行CRC校验的数据处理都可以使用。文档编号H04L1/00GK101478369SQ20091000032公开日2009年7月8日申请日期2009年1月5日优先权日2009年1月5日发明者张亚凡,范文奇申请人:深圳华为通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1