CN101478369B - 一种crc校验的方法和系统 - Google Patents

一种crc校验的方法和系统 Download PDF

Info

Publication number
CN101478369B
CN101478369B CN2009100003263A CN200910000326A CN101478369B CN 101478369 B CN101478369 B CN 101478369B CN 2009100003263 A CN2009100003263 A CN 2009100003263A CN 200910000326 A CN200910000326 A CN 200910000326A CN 101478369 B CN101478369 B CN 101478369B
Authority
CN
China
Prior art keywords
crc
initial value
section
result
check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009100003263A
Other languages
English (en)
Other versions
CN101478369A (zh
Inventor
张亚凡
范文奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Huawei Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Device Co Ltd filed Critical Huawei Device Co Ltd
Priority to CN2009100003263A priority Critical patent/CN101478369B/zh
Publication of CN101478369A publication Critical patent/CN101478369A/zh
Application granted granted Critical
Publication of CN101478369B publication Critical patent/CN101478369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明的实施例公开了一种CRC校验的方法和系统。本发明实施例提供的方法包括:首先将整块待CRC校验数据分成多段;对每一段数据同时进行CRC校验得到各段CRC结果,其中对第一段数据使用标准的CRC校验方法,其初值根据需要进行设定,其余各段数据进行CRC校验时暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验;然后通过CRC初值影响距阵,将各段CRC校验值合并,得到整个数据块的CRC结果。本发明实施例提供的技术方案可广泛地应用到数字通信各个领域的接收端,甚至是发送端,只要是需要进行CRC校验的数据处理都可以使用。

Description

一种CRC校验的方法和系统
技术领域
本发明涉及数字通信技术领域,具体而言是涉及一种循环冗余校验CRC(Cyclic Redundancy Check)校验的方法和系统。 
背景技术
随着数字通信速率的要求越来越高,如宽带码分多址(Wideband Code Division Multiple Access,WCDMA)的下行业务由高速下行链路分组接入(High Speed Downlink Packet Access,HSDPA)向高速分组接入演进(High-Speed Packet Access Evolution,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结果,其中除第一段CRC结果外,所述前一段CRC结果对后一段CRC结果的影响,在对各段CRC结果进行合并时通过CRC初值影响矩阵得到,所述CRC初值影响矩阵是一个x×x的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对输入数据din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。 
提供一种循环冗余校验CRC校验的系统,包括: 
分段单元,用于将整块待CRC校验数据分成N段; 
N个校验并行运算单元,用于对每一段数据同时进行CRC校验得到各段CRC结果,其中对第一段数据使用标准的CRC校验方法,其初值根据需要进行设定,其余各段数据进行CRC校验时暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验; 
校验结果合并单元,用于对所述各段CRC结果进行合并得到整块数据的CRC结果,其中除第一段CRC结果外,所述前一段CRC结果对后一段CRC 结果的影响,在对各段CRC结果进行合并时通过CRC初值影响矩阵得到,所述CRC初值影响矩阵是一个x×x的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对输入数据din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。 
通过本发明实施例的技术方案,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短CRC校验时间。 
附图说明
图1为现有技术的CRC校验流程框图; 
图2为本发明实施例提供的一种CRC校验的方法流程图; 
图3为本发明实施例提供的一种CRC校验流程框图; 
图4为本发明实施例提供的一种CRC8校验电路示意图; 
图5为本发明实施例提供的对各段CRC结果进行合并得到整块数据的CRC结果的流程示意图; 
图6为本发明实施例三提供的分为三个码块、采用CRC8进行校验的运算流程图; 
图7为本发明实施例提供了一种CRC校验的系统组成示意图。 
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,下面结合附图并举实施例,对本发明提供的技术方案进一步详细描述。 
参见图2,图2为本发明实施例提供的一种CRC校验的方法流程图,包括: 
步骤21,将整块待CRC校验数据分成多段; 
步骤22,对每一段数据同时进行CRC校验得到各段CRC结果; 
步骤23,对所述各段CRC结果进行合并得到整块数据的CRC结果。 
例如将整块数据L分成N段,第一段数据长度为L1,第二段数据长度为L2,...第N段数据长度为Ln,总段数为待CRC校验的段数,L1+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初值影响矩阵是一个x×x的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。 
例如,对于一个CRC8标准校验公式,该CRC8校验电路参见图4所示,其校验公式如下: 
D7=D6^D7^din, 
D6=D5, 
D5=D4, 
D4=D3^D7^din, 
D3=D2^D7^din, 
D2=D1, 
D1=D0^D7^din, 
D0=D7^din, 
则CRC8(L)的“初值影响距阵的运算公式”为: 
M(7,k,L+1)=M(6,k,L)^M(7,k,L), 
M(6,k,L+1)=M(5,k,L), 
M(5,k,L+1)=M(4,k,L), 
M(4,k,L+1)=M(3,k,L)^M(7,k,L), 
M(3,k,L+1)=M(2,k,L)^M(7,k,L), 
M(2,k,L+1)=M(1,k,L), 
M(1,k,L+1)=M(0,k,L)^M(7,k,L), 
M(0,k,L+1)=M(7,k,L); 
其中,k=0,1,2...x-1;L>0,当L=0时,有M(k,k,0)=1,M(k,not k,0)=0。 
对每一种x取值与L取值的组合,通过“初值影响距阵的运算公式”迭代运算L次后,可以得到唯一一个“CRCx(L)初值影响距阵”与其对应,列表形式如下: 
  k=   M(x-1,k)   M(x-2,k) …… M(1,k)   M(0,k)
  x-1   1或0   1或0 …… 1或0   1或0
  x-2   1或0   1或0 …… 1或0   1或0
  ……   ……   …… …… ……   ……
  1   1或0   1或0 …… 1或0   1或0
  0   1或0   1或0 …… 1或0   1或0
步骤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 i = [ Σ k = 0 x - 1 ( A k × M ( i , k ) ) ] mod 2 运算得到除第一段之外的各段CRC结果的影响值,其中Ak为各段CRC结果的初值,M(i,k)为各段的CRC初值影响矩阵,i=0,1,..x-1,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个码块,每个码块长度3590,采用CRC8校验,其运算过程参见图6所示,包括步骤: 
(1)取零初值对第一个码块进行CRC8校验,得到第一个码块的CRC8校验值。 
(2)取零初值对第二个码块进行CRC8校验,得到第二个码块的CRC8校验值。 
(3)取零初值对第三个码块进行CRC8校验,得到第三个码块的CRC8校验值。 
(4)CRC8(L)“初值影响距阵的运算公式”为: 
M(7,k,L+1)=M(6,k,L)^M(7,k,L) 
M(6,k,L+1)=M(5,k,L) 
M(5,k,L+1)=M(4,k,L) 
M(4,k,L+1)=M(3,k,L)^M(7,k,1) 
M(3,k,L+1)=M(2,k,L)^M(7,k,1) 
M(2,k,L+1)=M(1,k,L) 
M(1,k,L+1)=M(0,k,L)^M(7,k,1) 
M(0,k,L+1)=M(7,k,L) 
其中,k=0,1,2...x-1;上述公式对L>0有效,当L=0时,有M(k,k,0)=1,M(k,notk,0)=0, 
用8*8=64bit寄存器,通过上述公式迭代运算3590次得到“CRC8(3590)初值影响距阵”。 
CRCx(L)初值影响距阵,x=8,L=3590 
 k=  M(x-1,k)  M(6,k)  M(5,k)  M(4,k)  M(3,k)  M(2,k)  M(1,k)  M(0,k)
  7   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  6   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  5   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  4   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  3   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  2   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  1   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
  0   1或0   1或0   1或0   1或0   1或0   1或0   1或0   1或0
(5)将第一个码块的CRC8校验值作为初值Ak带入公式  B i = [ Σ k = 0 7 ( A k × M ( i , k ) ) ] mod 2 (其中i=0,1,2,...7)计算得到第二码块的CRC影响值。 
(6)将第二码块的CRC影响值与第二个码块的CRC8校验值对应比特异或得到前两个码块的CRC8校验值。 
(7)将前两个码块的CRC8校验值作为初值带Ak入公式  B i = [ Σ k = 0 7 ( A k × M ( i , k ) ) ] mod 2 (其中i=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结果的延迟时间为3590×2=7180个时钟周期,因此本实施例能够节省CRC处理时间和延迟时间,而且数据量越大,节省的时间越多。并且,本实施例节省了码块2和码块3译码结果共3590×2=7180bit的缓存单元,实现代价仅是多了两组CRC8并行运算单元和64bit的初值影响距阵,而且数据量越大,节省的存储单元越多。 
参见图7,本发明实施例提供了一种CRC校验的系统,包括: 
分段单元71,用于将整块待CRC校验数据分成N段; 
N个校验并行运算单元72,用于对每一段数据同时进行CRC校验得到各段CRC结果; 
校验结果合并单元73,用于对所述各段CRC结果进行合并得到整块数据的CRC结果。 
所述N个校验并行运算单元72中第一个校验并行运算单元使用标准的CRC校验方法,其初值根据需要进行设定;其余校验并行运算单元暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验。 
所述校验结果合并单元73包括: 
CRC初值影响矩阵731,为一个x×x的矩阵,由初值影响矩阵的运算公式迭代运算L次得到,其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为校验长度,L为待校验的数据长度,x>0,L>0; 
影响值计算模块732,用于将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值,其中第一段CRC结果不计算影响值,并直接作为第二段CRC结果的初值; 
初值计算模块733,用于将各段CRC结果的影响值与各段CRC结果对应比特异或得到下一段CRC结果的初值,其中最后一段CRC结果的影响值与最后一段CRC结果对应比特异或后得到整块数据的CRC结果。 
如何得到CRC初值影响矩阵731的方法示例如上所示,在此不再赘述。 
所述影响值计算模块732包括影响值计算子模块,用于通过公式  B i = [ Σ k = 0 x - 1 ( A k × M ( i , k ) ) ] mod 2 运算得到除第一段之外的各段CRC结果的影响值,其中Ak为初值,M(i,k)为CRC初值影响矩阵731,Bi为影响值,i=0,1,..x-1,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初值影响矩阵,为一个x×x的矩阵,由初 值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。 
对每一种x取值与L取值的组合,通过初值影响矩阵的运算公式迭代运算L次后,得到唯一一个CRCx(L)初值影响矩阵,列表形式如下: 
  k=   M(x-1,k)   M(x-2,k) …… M(1,k)   M(0,k)
  x-1   1或0   1或0 …… 1或0   1或0
  x-2   1或0   1或0 …… 1或0   1或0
  ……   ……   …… …… ……   ……
  1   1或0   1或0 …… 1或0   1或0
  0   1或0   1或0 …… 1或0   1或0
其中,k=0,1,2...x-1;L>0,当L=0时,有M(k,k,0)=1,M(k,not k,0)=0。 
本发明实施例通过提供CRC初值影响矩阵,将“第一段CRC结果”作为“第二段CRC结果的初值”,输入“CRC初值影响矩阵”变换得到“第二段CRC结果的影响值”;将“第二段CRC结果的影响值”与“第二段CRC结果”对应比特异或得到“第三段CRC结果的初值”;循环上述操作,直到得到所有N段“整块数据的CRC结果”;通过“CRC初值影响距阵”考虑前一段CRCx校验结果对后一段CRCx校验结果的影响,保证了能够采用CRCx校验单元同时进行CRC校验。与现有的CRC逐步校验方法相比,不但能够节省CRC处理前的数据存储单元,而且无需等待前段CRC结果,节省延迟时间,缩短CRC校验时间。 
需要说明的是,本发明实施例中的方法可以软件功能模块的形式实现,并且该软件功能模块作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。 
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个 单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。 
以上对本发明实施例所提供的CRC校验的方法和系统及CRC初值影响矩阵进行了详细介绍,本发明实施例可以广泛地应用到数字通信各个领域的接收端(甚至是发射端),只要是需要进行CRC校验的数据处理都可以使用。实施例的说明只是用于帮助理解本发明的方法及其思想;任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。 

Claims (8)

1.一种循环冗余校验CRC校验的方法,其特征在于,包括:
将整块待CRC校验数据分成多段;
对每一段数据同时进行CRC校验得到各段CRC结果,其中对第一段数据使用标准的CRC校验方法,其初值根据需要进行设定,其余各段数据进行CRC校验时暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验;
对所述各段CRC结果进行合并得到整块数据的CRC结果,其中除第一段CRC结果外,所述前一段CRC结果对后一段CRC结果的影响,在对各段CRC结果进行合并时通过CRC初值影响矩阵得到,所述CRC初值影响矩阵是一个x×x的矩阵,由初值影响矩阵的运算公式迭代运算L次得到;其中,初值影响矩阵的运算公式由CRC标准校验公式对输入数据din取零演变得到,x为CRC校验长度,L为待校验的数据长度,x>0,L>0。
2.根据权利要求1所述的方法,其特征在于,所述CRC初值影响矩阵对每一种x取值与L取值的组合,通过初值影响矩阵的运算公式迭代运算L次后,得到唯一一个CRCx(L)初值影响矩阵,列表形式如下:
  k=   M(x-1,k)   M(x-2,k) ……  M(1,k)   M(0,k)   x-1   1或0   1或0 ……  1或0   1或0   x-2   1或0   1或0 ……  1或0   1或0   ……   ……   …… ……  ……   ……   1   1或0   1或0 ……  1或0   1或0   0   1或0   1或0 ……  1或0   1或0
其中,M(i,k)为各段的CRC初值影响矩阵,i=0,1,..x-1,x为CRC校验长度,k=0,1,2...x-1;L>0,当L=0时,有M(k,k,0)=1,M(k,not k,0)=0。
3.根据权利要求1所述的方法,其特征在于,所述对各段CRC结果进行合并得到整块数据的CRC结果的方法包括:
将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值,其中第一段CRC结果不计算影响值,并直接作为第二段CRC结果的初值;
将各段CRC结果的影响值与各段CRC结果对应比特异或得到下一段CRC结果的初值,其中最后一段CRC结果的影响值与最后一段CRC结果对应比特异或后得到整块数据的CRC结果。
4.根据权利要求3所述的方法,其特征在于,所述将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值的方法包括:
通过公式
Figure FDA0000119494390000021
运算得到除第一段之外的各段CRC结果的影响值,其中Ak为初值,M(i,k)为所述CRC初值影响矩阵,Bi为影响值,i=0,1...x-1,x为CRC校验长度。
5.一种循环冗余校验CRC校验的系统,其特征在于,包括:
分段单元,用于将整块待CRC校验数据分成N段;
N个校验并行运算单元,用于对每一段数据同时进行CRC校验得到各段CRC结果,其中对第一段数据使用标准的CRC校验方法,其初值根据需要进行设定,其余各段数据进行CRC校验时暂不考虑前一段CRC结果对后一段CRC结果的影响,采用全零初值进行校验;
校验结果合并单元,用于对所述各段CRC结果进行合并得到整块数据的CRC结果,其中除第一段CRC结果外,所述前一段CRC结果对后一段CRC结果的影响,在对各段CRC结果进行合并时通过CRC初值影响矩阵得到,所述CRC初值影响矩阵,为一个x×x的矩阵,由初值影响矩阵的运算公式迭代运算L次得到,其中,初值影响矩阵的运算公式由CRC标准校验公式对输入数据din取零演变得到,x为校验长度,L为待校验的数据长度,x>0,L>0。
6.根据权利要求5所述的系统,其特征在于,所述校验结果合并单元包括:
影响值计算模块,用于将各段CRC结果的初值输入所述CRC初值影响矩阵,计算得到各段CRC结果的影响值,其中第一段CRC结果不计算影响值,并直接作为第二段CRC结果的初值;
初值计算模块,用于将各段CRC结果的影响值与各段CRC结果对应比特异或得到下一段CRC结果的初值,其中最后一段CRC结果的影响值与最后一段CRC结果对应比特异或后得到整块数据的CRC结果。
7.根据权利要求6所述的系统,其特征在于,所述影响值计算模块包括影响值计算子模块,用于通过公式运算得到除第一段之外的各段CRC结果的影响值,其中Ak为初值,M(i,k)为所述CRC初值影响矩阵,Bi为影响值,i=0,1,..x-1,x为CRC校验长度。
8.根据权利要求5所述的系统,其特征在于,
所述CRC初值影响矩阵对每一种x取值与L取值的组合,通过初值影响矩阵的运算公式迭代运算L次后,得到唯一一个CRCx(L)初值影响矩阵,列表形式如下:
  k=   M(x-1,k)   M(x-2,k) ……  M(1,k)   M(0,k)   x-1   1或0   1或0 ……  1或0   1或0   x-2   1或0   1或0 ……  1或0   1或0   ……   ……   …… ……  ……   ……   1   1或0   1或0 ……  1或0   1或0   0   1或0   1或0 ……  1或0   1或0
其中,M(i,k)为各段的CRC初值影响矩阵,i=0,1,..x-1,x为CRC校验长度,k=0,1,2...x-1;L>0,当L=0时,有M(k,k,0)=1,M(k,not k,0)=0。
CN2009100003263A 2009-01-05 2009-01-05 一种crc校验的方法和系统 Active CN101478369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100003263A CN101478369B (zh) 2009-01-05 2009-01-05 一种crc校验的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100003263A CN101478369B (zh) 2009-01-05 2009-01-05 一种crc校验的方法和系统

Publications (2)

Publication Number Publication Date
CN101478369A CN101478369A (zh) 2009-07-08
CN101478369B true CN101478369B (zh) 2012-05-23

Family

ID=40839005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100003263A Active CN101478369B (zh) 2009-01-05 2009-01-05 一种crc校验的方法和系统

Country Status (1)

Country Link
CN (1) CN101478369B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136887A (zh) * 2011-04-18 2011-07-27 中兴通讯股份有限公司 传输块循环冗余校验方法及装置
CN102158316B (zh) * 2011-04-25 2015-06-17 中兴通讯股份有限公司 一种64bit位宽的并行CRC32校验方法及装置
WO2011144179A2 (zh) * 2011-06-08 2011-11-24 华为技术有限公司 对数据包进行循环冗余校验的方法及装置
CN102567276B (zh) * 2011-12-19 2014-03-12 华为技术有限公司 基于多通道的数据传输方法、接收节点及跨节点互联系统
CN103378941B (zh) * 2012-04-24 2019-01-01 马维尔国际有限公司 用于无线通信系统的循环冗余校验方法和装置
CN103731239B (zh) * 2013-12-31 2017-01-18 中国科学院自动化研究所 一种适用于向量处理器的通用crc并行计算部件及方法
CN104796162B (zh) * 2015-04-09 2017-10-24 深圳市三朋电子有限公司 Turbo码译码停止迭代准则判断系统、方法及装置
CN105119694B (zh) * 2015-09-11 2018-06-12 烽火通信科技股份有限公司 一种计算高速网络中crc值的方法及系统
CN107015882B (zh) * 2016-12-26 2019-11-22 阿里巴巴集团控股有限公司 一种区块数据校验方法和装置
CN108270508B (zh) * 2016-12-30 2021-07-16 华为技术有限公司 一种循环冗余校验crc实现方法、装置及网络设备
CN109787713B (zh) * 2017-11-15 2020-10-09 华为技术有限公司 一种循环冗余校验crc计算方法和装置
CN110535554B (zh) * 2018-05-25 2020-11-06 大唐移动通信设备有限公司 一种数据块的编译码方法及装置
CN116107800B (zh) * 2023-04-12 2023-08-15 浙江恒业电子股份有限公司 一种校验码生成方法、数据恢复方法、介质、电子设备
CN117220833B (zh) * 2023-11-09 2024-01-26 新华三网络信息安全软件有限公司 Crc计算电路、芯片、报文处理方法及网络安全设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1431594A (zh) * 2003-01-27 2003-07-23 西安电子科技大学 一种多通道多位并行计算crc码的方法
CN201153259Y (zh) * 2007-12-19 2008-11-19 深圳市同洲电子股份有限公司 并行数据循环冗余校验装置及双向数据传输系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1431594A (zh) * 2003-01-27 2003-07-23 西安电子科技大学 一种多通道多位并行计算crc码的方法
CN201153259Y (zh) * 2007-12-19 2008-11-19 深圳市同洲电子股份有限公司 并行数据循环冗余校验装置及双向数据传输系统

Also Published As

Publication number Publication date
CN101478369A (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
CN101478369B (zh) 一种crc校验的方法和系统
US20140152475A1 (en) Data compression devices, operating methods thereof, and data processing apparatuses including the same
CN102543209B (zh) 多通道闪存控制器的纠错装置、方法及多通道闪存控制器
CN107204782B (zh) 一种bch译码器及生成该译码器的编译器的实现方法
US20120102382A1 (en) Method and Device for Fast Cyclic Redundancy Check Coding
US7840880B1 (en) Methods and apparatus for error checking code computation
CN103199873A (zh) 两级分块crc运算的快速配置方法
US7886210B2 (en) Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
CN102170649B (zh) Pdcch盲检测方法及装置
CN101296053A (zh) 计算循环冗余校验码之方法及系统
CN102354535A (zh) 逻辑单元复用系统
CN103368687A (zh) 用于 turbo 解码器的存储结构
Lee et al. Design space exploration of the turbo decoding algorithm on GPUs
CN102915769B (zh) 一种处理器纠错检错edac电路实现优化方法
CN102045073A (zh) 一种bch码译码方法和装置
US20130046806A1 (en) Fast fourier transform circuit
CN1192486C (zh) 一种缩短循环码纠错译码算法的集成电路实现方法及电路
CN102594369A (zh) 基于fpga的准循环低密度校验码译码器及译码方法
CN103684655B (zh) 译码校验装置和方法、译码装置和方法以及接收端
CN102571107A (zh) LTE系统中高速并行Turbo码的解码系统及方法
Balasubramanian et al. Mathematical modeling of timing attributes of self-timed carry select adders
US8775914B2 (en) Radix-4 viterbi forward error correction decoding
CN101777922B (zh) 用于BCH译码器的高速低延时Berlekamp-Massey迭代译码电路
CN114550809A (zh) 多存储卡的测试方法、装置、计算机设备及存储介质
CN1561005B (zh) 快速纠双错bch码译码器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518129 Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong.

Patentee after: Huawei terminal (Shenzhen) Co.,Ltd.

Address before: 518129 Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong.

Patentee before: HUAWEI DEVICE Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181217

Address after: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: HUAWEI DEVICE Co.,Ltd.

Address before: 518129 Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong.

Patentee before: Huawei terminal (Shenzhen) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210429

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: Metro Songshan Lake high tech Industrial Development Zone, Guangdong Province, Dongguan City Road 523808 No. 2 South Factory (1) project B2 -5 production workshop

Patentee before: HUAWEI DEVICE Co.,Ltd.