CN1198422C - 检测带逆序校验位的循环冗余校验码中的错误的装置和方法 - Google Patents
检测带逆序校验位的循环冗余校验码中的错误的装置和方法 Download PDFInfo
- Publication number
- CN1198422C CN1198422C CNB011258284A CN01125828A CN1198422C CN 1198422 C CN1198422 C CN 1198422C CN B011258284 A CNB011258284 A CN B011258284A CN 01125828 A CN01125828 A CN 01125828A CN 1198422 C CN1198422 C CN 1198422C
- Authority
- CN
- China
- Prior art keywords
- sign indicating
- indicating number
- remainder
- crc sign
- mistake
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
一种在发送方发送逆序校验位所产生的CRC码的情况下,用于在接收方检测所收到的CRC码中是否出现任何发送错误的装置,其中校验位使用发生多项式产生并按逆序附加在消息位后。该装置包括用于将消息位末尾附加n-k个零的结果除以校验位发生多项式从而形成余数的除法装置、用于按位比较余数位与逆序校验位的比较装置和根据比较装置的结果判断CRC码中是否出现发送错误的判定装置。根据本发明,CRC码包括与传统正序排列不同的逆序排列的校验位时,接收的CRC码中的发送错误能被有效地检测。
Description
技术领域
本发明涉及一种用于检测CRC(循环冗余校验)码中的错误的装置和方法,特别涉及一种用于在发送器发送CRC编码的情况下检测接收器中CRC码的任何发送错误的装置和方法。与传统方式不同,该CRC码由对逆序使用发生多项式(generator polynomial)产生的校验位进行排列并将其添加在消息位后产生。本申请以韩国专利申请NO.2000-66860为基础,该专利引用于此以资参考。
数字通信系统中,为了让接收器检测发送错误,通常使用在要发送的承载信息的消息位上添加校验位的方法。在接收器中对校验位单独进行检查或与消息位一并检查以确定是否出现了发送错误。使用这类校验位的错误检测方法中,CRC方法被认为是最有效的方法。
背景技术
图1说明了传统CRC(循环冗余校验)码的结构。参照图1,n位CRC码中包括k个消息位(mk-1~m0)和n-k个校验位(pn-k-1~p0)。
该CRC码可由某个多项式表示,校验位也可由包含消息位多项式除以发生多项式得到的余数多项式的多项式来表示。
k个消息位的多项式表示为
m(X)=m0+m1X1+m2X2+…+mk-1Xk-1
和,用于产生校验位的发生多项式的多项式表示为
g(X)=g0+g1X1+g2X2+…+gn-kXn-k
和,n-k个校验位的多项式表示为
p(X)=p0+p1X1+p2X2+…+pn-k-1Xn-k-1
这样,CRC码可由下式表示
c(X)=Xn-km(X)+p(X)
其中,p(X)=Xn-km(X)mod g(X)
这一用于检测是否有发送错误出现的CRC编码方法将接收到的CRC码除以发生多项式并检测除法的余数是否为零。该检测CRC码发送错误的方法可由以下方程式证明。
如上所述,由于p(X)是Xn-km(X)除以g(X)的余数,因此可定义如下方程。
Xn-km(X)=g(X)Q(X)+p(X)
将p(X)移项到左边得到
Xn-km(X)-p(X)=g(X)Q(X)
这里,与普通运算不同,因为“-p(X)”与“+p(X)”在二进制伽罗瓦域里的运算中等价,所以
Xn-km(X)+p(X)=g(X)Q(X)。
以上方程式中,因为左边等于c(X),所以c(X)除以g(X)的商和余数分别是Q(X)和“0”。图2示意了用所述原理检测CRC编码错误的传统装置。参见图2,相关装置包括用于将接收到的CRC码除以发生多项式的除法装置11,和根据除法装置11的输出判断是否有错误出现的判定装置13。除法装置11包括n-k个1位寄存器11a,n-k个乘法器11b,和n-k个异或(X-OR)门11c。判定装置13包括用于对除法装置11中寄存器11a的输出进行或非运算的或非(NOR)门13a。
当数字通信系统中的发送器发送具有图1所示结构的CRC编码位(mk-1,mk-2,…m0,pn-k-1,…,p0)时,CRC编码位顺序地通过适当的信道输入寄存器11a,寄存器中CRC码的每一位都随着每一次的输入从左向右移位一个位置。而且,乘法器11b将依次经由最右边的寄存器11a转移过来的CRC码位乘以发生多项式的系数信号g0,g1,g2,…,gn-k-1,11c的每一个X-OR门按位对从乘法器11b输出的每一个结果位和相继输入的CRC编码位进行异或运算。所有n位都输入到寄存器11a并经过上述运算处理后,CRC码除以发生多项式的最后余数保存在寄存器11a。如果没有产生发送错误,寄存器11a的所有结果内容将变成“0”。这样,只有当CRC码没有发送错误时,用于对从寄存器11a输入的n-k个输入位执行NOR运算的判定装置13a才提供一个“1”输出。另一方面,如果整个NOR运算的结果是“0”,判定装置13a将判定CRC编码中有发送错误。
最近,在有关下一代移动电信的全球移动电信系统(UMTS)中提出了一种被称为IMT-2000的数据发送方法,该方法使用校验位产生CRC码的方法与上述方法不同。即,与传统技术不同,UMTS采用了一种新的使用校验位的方法,该校验位由按逆序对消息位除以发生多项式的余数位进行排列产生。
下面将详细解释该新方法。
图3示意了逆序添加校验位的CRC码的结构。该CRC码按mk-1,mk-2,…m0,p0,…,pn-k-1的顺序发送。该CRC码可由多项式表示
c(X)=Xn-km(X)+p⊥(X)
其中,令p(X)=Xn-k m(X)mod g(X),定义p⊥(X)为
p⊥(X)=Xdeg p(X)p(X-1)。
然而,传统的错误检测装置只能检测按图1所示正常顺序添加校验位的传统的CRC编码的错误。因为新的CRC编码多项式c(X)除以发生多项式g(X)的余数在传统检测装置中不会变为“0”,所以传统的错误检测装置不能检测按图3所示的逆序添加校验位的新的CRC码的发送错误。相应地,也就需要检测具有逆序校验位的CRC码的发送错误。
发明内容
本发明的目的是要提供一种用于检测接收到的其校验位流按逆序添加的CRC码的发送错误的装置和方法。
根据本发明目的的一个方面,提供了一种用于检测CRC码中的错误的装置,该装置包括:用于相继接收具有k位消息位及逆序添加在消息位后的n-k位校验位的CRC码和用于切换消息位和校验位以便分别传送的开关装置;用于接收从上述转换装置传送过来的消息位以及用于将消息位末尾附加n-k个零的结果除以校验位发生多项式以获得余数的除法装置;用于接收从上述开关传送过来的校验位以及用于相继对校验位进行缓冲的缓冲装置;用于比较从上述除法装置过来的余数位和从上述缓冲装置过来的校验位的比较装置;和,用于根据上述比较装置的结果判断CRC码中是否出现了发送错误的判定装置。
比较装置最好包括若干用于比较余数位和校验位的X-OR门。
根据本发明目的的另一方面,提供了一种用于检测CRC码错误的方法,该方法包括以下步骤:接收具有k位消息位和逆序排列附加在消息位后面的n-k位校验位的CRC码;将消息位末尾附加n-k个零的结果除以校验位发生多项式以形成余数;相继对校验位进行缓冲;比较余数位和相继经过缓冲的校验位;和,根据上述比较步骤的结果判断接收到的CRC码中是否出现了发送错误。
根据本发明目的的另一个方面,提供了一种用于检测CRC编码中的错误的装置,该装置包括:用于相继接收具有k位消息位及逆序排列并附加在消息位后的n-k位校验位的CRC码和用于切换消息位与校验位以分别传送的开关装置;用于接收从上述开关装置传送过来的消息位、将消息位末尾附加n-k个零的结果除以校验位发生多项式以获得余数以及按逆序相继输出余数位的除法装置;用于比较相继从上述除法装置过来的余数位和相继从上述开关装置过来的校验位的比较装置;和,用于根据上述比较装置的结果判断在接收的CRC码中是否出现了发送错误的判定装置。
除法装置最好包括若干个相互串行连接的用于存储消息位末尾附加n-k个零的结果除以发生多项式所得到的余数位的一位的寄存器;若干个前向移位开关,该前向移位开关用来当所述多个前向移位开关被切换时使得上述若干寄存器向前移位,直到从上述开关装置输入的最后一个消息位通过上述若干个寄存器;若干个后向移位开关,该后向移位开关用来当所述多个后向移位开关被切换时使得上述若干个寄存器向后移位,从而将存储在上述若干寄存器中的余数位相继提供给上述比较装置。
根据本发明的另一方面,提供了一种用于检测CRC码错误的方法,该方法包括以下步骤:接收具有k位消息位和逆序排列附加在消息位后面的n-k位校验位的CRC码;将消息位末尾附加n-k个零的结果除以校验位发生多项式以形成余数,并相继按逆序输出余数位;比较相继接收到的逆序余数位和相继接收到的的校验位;和,根据上述比较步骤的结果判断接收到的CRC码中是否出现了发送错误。
根据本发明目的的另一个方面,提供了一种用于检测CRC码中的错误的装置,该装置包括:除法装置,该除法装置用于通过使用若干一位寄存器来相继接收和移位输入的CRC码、将整个CRC码除以校验位发生多项式以获得余数、并将余数位存储在上述若干个一位寄存器中,其中所述输入的CRC码包括k位消息位及逆序排列并附加在消息位后的n-k位校验位,其中一位寄存器的数目与余数的位数相同;比较装置,该比较装置用于从最外两位到最里两位对顺序存储在上述若干个寄存器中的余数的对称成对的两个对应位作比较;和,判定装置,该判定装置用于根据上述比较装置的结果判断在输入的CRC码中是否出现了发送错误。其中,当余数位为偶数时,如果每两个对应位都相同,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误;其中当余数位为奇数时,如果每两个对应位都相同并且余数的中间项的系数是0,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误。
比较装置最好包括若干个X-OR门,其数量应等于上述若干寄存器的数量除以2的商的整数部分。如果上述若干寄存器的数量为奇数,存储在上述若干寄存器的中心寄存器中的余数的中间位就直接输入给判定装置。
根据本发明的另一方面,提供了一种用于检测CRC码错误的方法,该方法包括以下步骤:相继接收输入的CRC码,并将整个CRC除以校验位发生多项式以形成余数,其中所述输入的CRC码包括k位消息位及逆序排列并附加在消息位后的n-k位校验位;从最外两位到最里两位,余数的若干个对称成对的对应位中的每对余数位互相比较;和,根据上述比较步骤的结果判断接收到的CRC码中是否出现了发送错误。其中,当余数位为偶数时,如果每两个对应位都相同,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误;其中当余数位为奇数时,如果每两个对应位都相同并且余数的中间项的系数是0,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误。
附图说明
图1是说明传统CRC码位流结构的原理图;
图2是说明用于检测图1所示CRC码中的错误的传统装置的结构的原理图;
图3是说明校验位按逆序附加在消息位后面的CRC码位流结构的原理图;
图4是说明根据本发明第一个实施例的用于检测图3所示的具有逆序校验位的CRC码中的错误的装置的结构的原理图;
图5是说明根据本发明第二个实施例的用于检测具有逆序校验位的CRC码中的错误的装置的结构的原理图;
图6是说明根据本发明第三个实施例的用于检测具有逆序校验位的CRC码中的错误的装置的结构的原理图;
图7是说明当除法的余数位的个数为偶数时的图6所示装置的典型模式的原理图;
图8是说明当除法的余数位的个数为奇数时的图6所示装置的另一个典型模式的原理图。
具体实施方式
现在将对照附图详细说明本发明的优选实施例。以下说明中类似的参考标号指代类似的元器件。
如前面所述,参看图3,CRC码包括消息位与附加在消息位后面的校验位,该校验位是由消息位除以确定的发生多项式的按逆序排列的余数位构成。
图4是说明根据本发明第一个实施例的用于检测CRC码中的错误的装置的结构的原理图。参看图4,用于检测所接收的CRC码中的错误的装置包括:除法装置402,用于将输入的消息位除以校验位发生多项式并存储该除法的余数位;缓冲装置403,用于缓冲输入的校验位;开关装置401,用于在除法装置402和缓冲装置403之间选择性地切换输入的CRC码;比较装置404,用于比较除法装置402的输出和存储在缓冲装置403中的校验位;判定装置405,用于根据比较装置404的结果判断CRC码中是否出现了发送错误。
开关装置401在消息位输入期间将CRC码切换至除法装置402。另一方面,开关装置401在校验位输入期间将CRC码切换至缓冲装置403。
除法装置402包括n-k个一位的寄存器402a、n-k个乘法器402b和n-k个异或门402c。根据开关装置401的切换操作,在CRC码的消息位输入期间,消息位相继输入给除法装置402。通过将寄存器402a的每个寄存器中的内容从左向右移位一个位置来将消息位相继输入给寄存器402a。
当消息位输入给除法装置402时,除法装置将消息位除以发生多项式。信息,也就是输入消息位在乘法器402b中被乘以发生多项式,然后其结果在异或门402c中被异或,从而完成除法运算。除法的余数位存储在寄存器402a中。余数位的MSB(最高有效位)存储在寄存器402a最右边的寄存器中,而余数位的LSB(最低有效位)存储在寄存器402a最左边的寄存器中。
所有消息位输入给除法装置402后,开关装置401将输入的CRC码切换至缓冲装置403以将输入的校验位相继存储在缓冲装置403中。缓冲装置403包括n-k个一位寄存器,即与校验位的位数一样多。缓冲装置403中的每一个寄存器存储一个校验位。
比较装置404包括若干个X-OR(异或门)门404a,其中的各个门分别完成一位从除法装置402输出的余数位与存储在缓冲装置403中的相应的那个校验位的按位异或运算。异或门404a的数量为n-k,等于校验位的位数。异或门404a的每个异或门的一个输入为除法装置402的寄存器402a中一个寄存器的输出,而另一个输入则为缓冲装置403的一个寄存器的输出。校验位流中的第一个输入校验位与从除法装置402中输出的余数的LSB比较,而校验位流中的最后一个输入校验位与从除法装置402中输出的余数的MSB比较。这样就完成了逆序排列的校验位与从除法装置402输出的余数位之间的比较。
因为校验位是原先在CRC码的发送方通过将消息位除以发生多项式的方式来产生的,所以在接收方将接收到的CRC码再次除以发生多项式以产生余数,并将余数与逆序排列的校验位流进行比较就可检测发送错误。也就是说,通过按位比较除法装置402的输出位流与缓冲装置403逆序排列的位流是可以检测CRC码的发送错误的。若CRC码中没有出现发送错误,比较装置404的所有X-OR门都将输出‘0’。
判定装置405包括一个具有若干个从比较装置404输出的输入的NOR门405a。相应地,只有当所有的X-OR门404a都输出‘0’时,判定装置405才会输出‘1’来指出无差错CRC码。
根据前面提到的实施例,在消息位输入期间执行消息位除以发生多项式的除法运算以产生余数位,而在校验位输入期间存储输入的校验位并将其逆序地与余数位比较。并且,如果参加比较的两个位流完全相同,则可判定所接收到的CRC码中没有发送错误。因此,所接收到的包括逆序校验位的CRC码中是否出现了发送错误是可检测的。
图5是说明根据本发明第二个实施例的用于检测CRC码中的错误的装置的结构的原理图。在第二个实施例中,错误检测装置包括:除法装置502,用于将输入消息位除以校验位发生多项式并输出该除法的余数位;比较装置504,用于一位一位地按位比较从除法装置502相继输出的余数位与相继输入的校验位;开关装置501,用于选择性得将输入的CRC码切换至除法装置502和比较装置504;和判定装置505,用于根据比较装置505的结果判断CRC码中是否出现了发送错误。
除法装置502包括n-k个一位寄存器502a,n-k乘法器502b,n-k个前向移位开关503a,n-k个后向移位开关503b,和n-k个X-OR(异或门)门502c。寄存器502a之间相互串联,且寄存器502a的每个存储一个从除法装置输出的一个余数位。在消息位输入期间,消息位相应于开关装置501的切换操作相继输入除法装置502。输入的消息位相继输入到寄存器502a并从左向右移位一个位置。
消息位输入给除法装置502时,除法装置502将消息位除以发生多项式。该除法运算与前面提到的参见图4的除法运算类似。相应地,该除法的最终余数位存储在寄存器502a。特别地,该余数位的MSB(最高有效位)存储在最右边的寄存器中,而该余数位的LSB(最低有效位)则存储在最左边的寄存器中。
最终余数位存储进寄存器502a时,分别地,寄存器502a中内容的每一个随着每个时钟信号相继左移一个位置,且移出的位相继输入给比较装置504。
在消息位输入期间,开关装置501被切换以将CRC码输入给除法装置502。另一方面,在校验位输入期间,开关装置501被切换以将CRC码输入给比较装置504。
开关装置501与前向移位开关503a和后向移位开关503b协同操作。特别地,当开关装置501将消息位切换至除法装置502时,所有前向移位开关503a被设为开(ON)状态,所有后向移位开关503b被设为关(OFF)状态。另一方面,当开关装置501将校验位切换至比较装置504时,所有前向移位开关503a被设为关状态,所有后向移位开关503b被设为开状态。当消息位输入给除法装置502时,除法装置502将消息位除以发生多项式。所有消息位输入完毕后,除法的余数位存储在除法装置502的寄存器502a中。并且,每一个校验位相继输入给比较装置504时,每一个存储在除法装置502的寄存器502a中的余数位就相继按逆序输入给比较装置504。相应地,该逆序校验位相继按位与校验位比较。
比较装置504包括X-OR门(异或门)504a,该异或门具有两个输入端,其中一个输入端接从最后一个后向移位开关移出的余数位,而另一个接从开关装置501过来的校验位。这样,比较装置504比较逆序余数位与相继输入的校验位,并且只有在该两个位流完全相同时才输出“1”。
判定装置505包括OR(或)门505a和延时寄存器505b。比较装置504的输出输入给OR门505a,OR门505a的输出存储在延时寄存器505a中并在一个时钟周期后往回输入给OR门505a。这样,只有比较装置504中的X-OR门504a连续地输出“0”时,判定装置505的输出才会变为“0”来指出无差错CRC码。
根据前面提到的实施例,在消息位输入期间,消息位被除以发生多项式以形成余数,而在校验位的输入期间,输入的校验位相继与逆序排列的余数位比较。因此,所接收的包含逆序校验位的CRC码中是否出现了发生错误是可检测的。
图6示意了根据本发明第三个实施例的用于检测CRC码中的错误的装置的结构的原理图。第三个实施例中,错误检测装置包括:除法装置601,用于将消息位除以发生多项式并将该除法的余数位分别存储在寄存器601a;比较装置602,用于将存储在寄存器601a中的最终余数位从最外头两位到最里头两位进行相互之间的比较;和判定装置603,用于根据比较装置602的结果判断CRC码中是否出现了发送错误。
参看图6,除法装置601包括n-k个寄存器601a,n-k个乘法器601b,n-k个X-OR(异或门)门601c。
各器件的操作与前面提到的实施例中各器件的操作类似。然而在第三个实施例中,包括消息位与校验位的整个CRC码都输入给除法装置601。相应地,除法装置601将整个CRC码除以发生多项式并将该除法的余数位存储在寄存器601a里。
比较装置602包括若干个X-OR门602a,其数量等于将寄存器601a的数量除以2的商的整数部分。例如,若除法装置601有4个图7所示的寄存器601a,则除法装置602就提供2个X-OR门602a。若除法装置601有3个图8所示的寄存器601a,则除法装置602就提供1个X-OR门602a。
各X-OR门602a的输入按如下方式决定。也就是说,最终余数位的对称的两个对应位,即从最终余数位的最外两位到该余数位最里两位,是成对的。各成对的两位分别相互之间比较。换言之,余数位的MSB即最右边的位与余数位的LSB即最左边的位比较。类似地,余数位最右边的第二位与余数位最左边的第二位比较。相应地,各对称成对的两位成对地输入给各X-OR门602a。并且,比较装置602中所有X-OR门602a的输出都输入给判定装置603。
同时,若寄存器601a的数量为奇数,则存储在中间寄存器601a中的余数的中间位就如图8所示进一步直接输入给判定装置603。
判定装置603包括NOR门603a。若寄存器601a的数量如图7所示为偶数,则该NOR门603a具有从比较装置602的所有X-OR门602a输出的若干个输入。若寄存器601a的数量如图8所示为奇数,则除了从比较装置602的所有X-OR门602a输出的若干个输入外,该NOR门603a还具有一个从中间寄存器601a输出的输入。
若判定装置603的所有输入为“0”,则所接收的CRC码无差错并且从判定装置603的NOR门603a输出一个“1”。
根据本发明该实施例的CRC编码算法的更为详细的说明提供如下。
正如先前所述,具有逆序校验位的CRC码的多项式表达为:
c(X)=Xn-km(X)+p⊥(X)
式中,令p(X)=Xn-k m(X)mod g(X),定义p⊥(X)为
p(X)=Xdeg p(X)p(X-1)。
其中,Xn-km(X)mod g(X)=p(X),且p⊥(X)mod g(X)=p⊥(X),(∴deg p⊥(X)<deg g(X))。
这样,
c(X)mod g(X)=p(X)+p⊥(X)
=(p0+pn-k-1)+(p1+pn-k-2)X+……+
+…+(pn-k-2+p1)Xn-k-2+(pn-k-1+p0)Xn-k-1
从最后那个等式可以看出,CRC码多项式c(X)除以发生多项式g(X)的余数多项式的系数是对称形成的。这样,如果将余数位分成两半,将其中一半的位流的位按逆序排列后按位比较其中一半位流与另一半位流,那么,只要所接收的CRC码中没有出现发送错误,每两个连在每个X-OR门602a的输入都必定相同。因此,所有X-OR门602a都输出“0”,相应地判定装置603输出“1”以指示无差错CRC码。
同时如图8所示,从最后那个等式可以看出若c(X)除以g(X)的余数的位数为奇数,余数的中间项的系数就变成两相等数的和。
也就是说余数多项式的中间项变成(p(n-k-1)/2+p(n-k-1)/2)X(n-k-1)/2(其中n-k是一个奇数)。
正如前面提到的,由于在二进制伽罗瓦域中两相等数相加得“0”,正常情况下余数的中间项的系数会变成“0”。因此,既然只要所接收的CRC码中没有出现发送错误,余数的中间项就会变成“0”,那么NOR门603a的所有输入就会变成“0”,并且判定装置603也会相应地输出“1”来指示无差错CRC码。
根据本发明的第三个实施例,没有必要提供开关装置401或501来分别地切换消息位流和校验位流,而且这样一来,CRC码的错误检测装置比第一和第二实施例简单、简洁。
而且,与图4所示的第一个实施例相比,比较装置602包括的X-OR门602a更少,错误检测装置的结构变得更为简单。
还有,与图5所示的第二个实施例相比,没有必要让开关装置501与前向移位开关503a和后向移位开关503b协同操作。而且,有可能简单地使用传统除法装置而不需使用双向移位寄存器就能实施本发明。这样结构更加简单。更有甚者,与图5所示的第二个实施例所采用的相继全部按位比较原理相比,第三实施例提供了更快速的比较原理来节省错误检测时间。
这里说明的根据本发明的检测CRC码错误的装置和方法的优点在于:在接收端解码所接收的CRC码的过程中能有效地检测发送错误,其中CRC码包含了不按传统的正序排列而按逆序排列消息位除以发生多项式所得余数位从而产生的校验位。
尽管本发明以一些典型实施例为目标进行详细说明,本领域的技术人员会注意到可在不背离本发明的范围和实质的前提下对这些实施例的各种修改和改型。要理解的是本发明包括了落在所附权利要求范围内的各种修改和改型。
Claims (13)
1.一种用于检测CRC码错误的装置,包括:
开关装置,用于相继接收具有k位消息位和逆序排列并附加在消息位后面的n-k位校验位的CRC码以及用于切换消息位与逆序排列的校验位以分别传送;
除法装置,用于接收经过所述开关装置传送过来的消息位以及用于将消息位末尾附加n-k个零的结果除以校验位发生多项式以获得余数;
缓冲装置,用于接收经过所述开关装置传送过来的逆序校验位以及用于相继缓冲逆序校验位;
比较装置,用于比较从所述除法装置输出的余数的余数位和从所述缓冲装置输出的逆序校验位;和
判定装置,用于根据所述比较装置的结果判断CRC码中是否出现了发送错误。
2.根据权利要求1的检测CRC码错误的装置,其中所述比较装置包括若干个用于比较余数位和逆序校验位的X-OR门。
3.一种用于检测CRC码中的错误的方法,包括以下步骤:
接收具有k位消息位和逆序排列并附加在消息位后的n-k位校验位的CRC码;
将消息位末尾附加n-k个零的结果除以校验位发生多项式以形成余数;
相继缓冲逆序校验位;
比较余数的余数位和经过相继缓冲的逆序校验位;和
根据所述比较步骤的结果判断接收的CRC码中是否出现了发送错误。
4.一种用于检测CRC码中的错误的装置,包括:
开关装置,用于相继接收具有k位消息位和逆序排列并附加在消息位后的n-k位校验位的CRC码以及用于切换消息位与逆序排列的校验位以分别传送;
除法装置,用于接收经过所述开关装置传送过来的消息位、用于将消息位末尾附加n-k个零的结果除以校验位发生多项式以获得余数以及用于相继按逆序输出余数的余数位;
比较装置,用于比较从所述除法装置相继收到的逆序的余数位和经过所述开关装置相继传送过来的逆序校验位;和
判定装置,用于根据所述比较装置的结果判断收到的CRC码中是否出现了发送错误。
5.根据权利要求4的检测CRC码中的错误的装置,其中所述除法装置包括:
若干个相互串行连接的一位的寄存器,用于存储消息位末尾附加n-k个零的结果除以发生多项式所得到的余数位;
若干个前向移位开关,用于当所述多个前向移位开关被切换时,使得上述若干寄存器向前移位,直到从上述开关装置输入的最后一个消息位通过所述的若干个寄存器;和
若干个后向移位开关,用于当所述多个后向移位开关被切换时,使得上述若干个寄存器向后移位,从而将存储在上述若干寄存器中的余数位相继提供给上述比较装置。
6.根据权利要求4的检测CRC码中的错误的装置,其中所述比较装置包括X-OR门。
7.根据权利要求4的检测CRC码中的错误的装置,其中所述判定装置包括:
OR门,该OR门有一个输入用于接收从所述比较装置的输出;和
延时寄存器,用于接收上述OR门的输出和用于将所述OR门的输出在一个时钟周期后反馈给该OR门。
8.一种用于检测CRC码中的错误的方法,包括以下步骤:
接收具有k位消息位和逆序排列并附加在消息位后的n-k位校验位的CRC码;
将消息位末尾附加n-k个零的结果除以校验位发生多项式以形成余数并相继按逆序输出余数的余数位;
比较相继接收到的逆序余数位和相继接收到的逆序校验位;和
根据所述比较步骤的结果判断所接收的CRC码中是否出现了发送错误。
9.根据权利要求8的用于检测CRC码中的错误的方法,其中所述除法步骤包括:
前向移位输入的消息位直到获得余数位;和
后向移位余数位以使得移出的余数位相继在上述比较步骤中参加比较。
10.用于检测CRC码中的错误的装置,包括:
除法装置,该除法装置用于通过使用若干一位寄存器来相继接收和移位输入的CRC码、将整个CRC码除以校验位发生多项式以形成余数、并将余数的余数位存储在上述若干个一位寄存器中,其中所述CRC码包括k位消息位及逆序排列并附加在消息位后的n-k位校验位,其中一位寄存器的数目与余数的位数相同;
比较装置,用于从最外两位到最里两位对顺序存储在上述若干个寄存器中的余数的对称成对的若干两个对应位作比较;和
判定装置,用于根据上述比较装置的结果判断输入的CRC码中是否出现了发送错误,
其中,当余数位为偶数时,如果每两个对应位都相同,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误;
其中当余数位为奇数时,如果每两个对应位都相同并且余数的中间项的系数是0,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误。
11.根据权利要求10的用于检测CRC码中的错误的装置,其中所述比较装置包括若干个X-OR门,其数量等于上述若干寄存器的的数量除以2的商的整数部分。
12.根据权利要求11的用于检测CRC码中的错误的装置,其中:若上述若干寄存器的数量为奇数,存储在上述若干寄存器的中间寄存器中的余数的中间位就直接输入给判定装置。
13.一种用于检测CRC码中的错误的方法,包括以下步骤:
相继接收输入的CRC码并将整个CRC码除以校验位发生多项式以形成余数,其中所述CRC码包括k位消息位及逆序排列并附加在消息位后的n-k位校验位;
从最外两位到最里两位,余数的若干个对称成对的对应位中的每对余数位互相比较;和
根据上述比较步骤的结果判断接收到的CRC码中是否出现了发送错误,
其中,当余数位为偶数时,如果每两个对应位都相同,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误;
其中当余数位为奇数时,如果每两个对应位都相同并且余数的中间项的系数是0,则判断输入的CRC码中没有发送错误;如果存在两个对应位不相同,则判断输入的CRC码中发生了错误。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR66860/00 | 2000-11-10 | ||
KR1020000066860A KR100659265B1 (ko) | 2000-11-10 | 2000-11-10 | 패리티비트가 역순으로 부가된 씨.알.씨. 코드의에러검출장치 및 방법 |
KR66860/2000 | 2000-11-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1353521A CN1353521A (zh) | 2002-06-12 |
CN1198422C true CN1198422C (zh) | 2005-04-20 |
Family
ID=19698414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011258284A Expired - Fee Related CN1198422C (zh) | 2000-11-10 | 2001-08-29 | 检测带逆序校验位的循环冗余校验码中的错误的装置和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6820232B2 (zh) |
EP (1) | EP1211813B1 (zh) |
JP (1) | JP4125500B2 (zh) |
KR (1) | KR100659265B1 (zh) |
CN (1) | CN1198422C (zh) |
DE (1) | DE60124851T2 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174498B2 (en) * | 2002-02-15 | 2007-02-06 | Intel Corporation | Obtaining cyclic redundancy code |
DE10238841B4 (de) * | 2002-08-23 | 2010-01-28 | Infineon Technologies Ag | Parallelverarbeitung der Decodierung und der zyklischen Redundanzüberprüfung beim Empfang von Mobilfunksignalen |
KR100777874B1 (ko) * | 2002-08-30 | 2007-11-21 | 엘지노텔 주식회사 | 광전송시스템에서 에이피에스 수신 오류 배제 방법 |
KR20040028324A (ko) * | 2002-09-30 | 2004-04-03 | 현대자동차주식회사 | 전원선을 이용한 데이터 전송방법 |
US7124351B2 (en) * | 2002-12-04 | 2006-10-17 | Stmicroelectronics Asia Pacific Pte. Ltd. | Software instructions utilizing a hardwired circuit |
US7613991B1 (en) | 2003-08-19 | 2009-11-03 | Altera Corporation | Method and apparatus for concurrent calculation of cyclic redundancy checks |
US7320101B1 (en) * | 2003-08-19 | 2008-01-15 | Altera Corporation | Fast parallel calculation of cyclic redundancy checks |
US7430240B2 (en) * | 2003-10-29 | 2008-09-30 | Broadcom Corporation | Apparatus and method for automatic polarity swap in a communications system |
US7103832B2 (en) * | 2003-12-04 | 2006-09-05 | International Business Machines Corporation | Scalable cyclic redundancy check circuit |
CN100413240C (zh) * | 2004-06-18 | 2008-08-20 | 财团法人工业技术研究院 | 用于信息长度侦测及错误侦测的改良式循环冗余检验方法 |
JP2006012001A (ja) * | 2004-06-29 | 2006-01-12 | Ifu Agency Kk | 情報処理システム及び情報処理方法 |
US7607070B2 (en) * | 2004-09-13 | 2009-10-20 | National Instruments Corporation | System and method for in-line consistency checking of packetized data |
JP2007519382A (ja) | 2004-09-25 | 2007-07-12 | アウェア, インコーポレイテッド | Crcカウンターの正常化 |
CN101207455B (zh) * | 2006-12-20 | 2010-12-15 | 华为技术有限公司 | 同步帧检错、纠错方法和装置 |
CN101615972B (zh) * | 2008-06-25 | 2013-10-09 | 华为技术有限公司 | 秩校验、加掩方法、装置及通信系统 |
US8762818B1 (en) * | 2009-03-05 | 2014-06-24 | Marvell International Ltd. | System and methods for performing decoding error detection in a storage device |
US8352829B1 (en) * | 2009-06-02 | 2013-01-08 | Juniper Networks, Inc. | Regeneration of a packet CRC |
JP2015019276A (ja) | 2013-07-11 | 2015-01-29 | 株式会社東芝 | 記憶装置、crc生成装置およびcrc生成方法 |
US9558062B2 (en) * | 2014-07-28 | 2017-01-31 | Qualcomm Incorporated | Cyclic redundancy check (CRC) false detection reduction in communication systems |
DE102015103809B3 (de) * | 2015-03-16 | 2016-07-07 | Intel IP Corporation | Verfahren und Vorrichtung zum Schützen eines Datentransportblocks gegen Speicherfehler und Übertragungsfehler |
CN108809323B (zh) * | 2017-05-03 | 2021-10-19 | 成都鼎桥通信技术有限公司 | 循环冗余校验码的生成方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0261826B2 (zh) | 1980-09-11 | 1990-12-21 | Ei Teii Ando Teii Tekunorojiizu Inc | |
US5157669A (en) * | 1988-10-14 | 1992-10-20 | Advanced Micro Devices, Inc. | Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors |
JPH04150631A (ja) | 1990-10-15 | 1992-05-25 | Fujitsu Ltd | 誤り検出回路 |
US5771244A (en) * | 1994-03-09 | 1998-06-23 | University Of Southern California | Universal Reed-Solomon coder/encoder |
JP4071879B2 (ja) * | 1998-12-09 | 2008-04-02 | 富士通株式会社 | 誤り検出器、この誤り検出器を備えた通信システム、および誤り検出方法 |
US6327691B1 (en) * | 1999-02-12 | 2001-12-04 | Sony Corporation | System and method for computing and encoding error detection sequences |
US6609225B1 (en) * | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
-
2000
- 2000-11-10 KR KR1020000066860A patent/KR100659265B1/ko not_active IP Right Cessation
-
2001
- 2001-07-17 US US09/905,995 patent/US6820232B2/en not_active Expired - Fee Related
- 2001-08-06 EP EP01306705A patent/EP1211813B1/en not_active Expired - Lifetime
- 2001-08-06 DE DE60124851T patent/DE60124851T2/de not_active Expired - Lifetime
- 2001-08-29 CN CNB011258284A patent/CN1198422C/zh not_active Expired - Fee Related
- 2001-09-03 JP JP2001266415A patent/JP4125500B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1211813A3 (en) | 2003-04-23 |
EP1211813A2 (en) | 2002-06-05 |
KR20020036605A (ko) | 2002-05-16 |
JP2002171171A (ja) | 2002-06-14 |
DE60124851T2 (de) | 2007-05-10 |
KR100659265B1 (ko) | 2006-12-20 |
EP1211813B1 (en) | 2006-11-29 |
JP4125500B2 (ja) | 2008-07-30 |
US6820232B2 (en) | 2004-11-16 |
CN1353521A (zh) | 2002-06-12 |
US20020083392A1 (en) | 2002-06-27 |
DE60124851D1 (de) | 2007-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1198422C (zh) | 检测带逆序校验位的循环冗余校验码中的错误的装置和方法 | |
JP4992900B2 (ja) | 受信装置及びその復号方法 | |
US11201695B2 (en) | Forward error correction with compression coding | |
CN1130027C (zh) | 应用分散误差检测位的数据通信系统和方法 | |
CN1150681C (zh) | 选择串接码内循环冗余校验生成器的方法 | |
CN1623280A (zh) | 纠错译码器中的双chien搜索块 | |
CN1757165A (zh) | 译码器内的部件块消息传送 | |
JP2009527949A (ja) | 通信システムのための多体ベース符号の生成器および復号化器 | |
WO2010087776A1 (en) | Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes | |
CN1146116C (zh) | 截短法尔码的差错捕获译码方法和装置 | |
JP4976397B2 (ja) | 並列剰余演算器及び並列剰余演算方法 | |
JPWO2009019763A1 (ja) | 誤り検出装置及び誤り訂正/誤り検出復号装置並びに方法 | |
KR20150050429A (ko) | 데이터 부호화 방법, 인코더, 디코더 및 통신 시스템 | |
CN1636324A (zh) | 纠错解码器的钱搜索单元 | |
JP2009515420A (ja) | データを復号化及び符号化するための装置及び方法 | |
CN1756090A (zh) | 信道编码装置和方法 | |
CN114731166A (zh) | 空间耦合fec编码方法和使用gel码的分量码的设备 | |
CN101908894B (zh) | 一种多编码模式的编码实现系统及方法 | |
KR20010067413A (ko) | 브랜치 메트릭 계산 처리에서 감소된 비트수를 갖는비터비 디코더 | |
CN110504975B (zh) | 一种crc并行编解码方法及基于其的编解码器 | |
JP2759043B2 (ja) | 情報ビット系列伝送システム | |
CN1777043A (zh) | BCH编码中Galois扩域运算的快速实现方法 | |
Wang et al. | FPGA based design of a novel enhanced error detection and correction technique | |
US7260154B1 (en) | Method and apparatus for implementing a multiple constraint length Viterbi decoder | |
RU2541844C1 (ru) | Способ декодирования кода-произведения с использованием упорядоченного по весу смежного класса векторов ошибок и устройство его реализующее |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050420 Termination date: 20160829 |