CN101702639A - 循环冗余校验的校验值计算方法及装置 - Google Patents

循环冗余校验的校验值计算方法及装置 Download PDF

Info

Publication number
CN101702639A
CN101702639A CN200910221966.7A CN200910221966A CN101702639A CN 101702639 A CN101702639 A CN 101702639A CN 200910221966 A CN200910221966 A CN 200910221966A CN 101702639 A CN101702639 A CN 101702639A
Authority
CN
China
Prior art keywords
bit wide
check value
cyclic redundancy
crc
computing unit
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.)
Granted
Application number
CN200910221966.7A
Other languages
English (en)
Other versions
CN101702639B (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies 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 Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN200910221966.7A priority Critical patent/CN101702639B/zh
Publication of CN101702639A publication Critical patent/CN101702639A/zh
Application granted granted Critical
Publication of CN101702639B publication Critical patent/CN101702639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明实施例提供了一种循环冗余校验的校验值计算方法及装置。该方法包括:接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。本发明实施例可有效提高循环冗余校验值计算的效率,降低计算循环冗余校验值的时间,可有效满足高速通信系统中数据传输的需要。

Description

循环冗余校验的校验值计算方法及装置
技术领域
本发明涉及通信技术领域,特别是涉及一种循环冗余校验的校验值计算方法及装置。
背景技术
通信系统中,由于各种干扰的影响,会使得通信中接收端接收到的信息可能与发送端的信息不一致,接收端接收到的信息产生误码。因此,为了降低数据通信线路传输的误码率,提高信息传输的可靠性,通常采用差错检测控制方法进行信息的传输,其中,循环冗余校验(Cyclic Redundancy Check,CRC)就是其中之一,其是由分组线性码的分支而来,具有编码简单且误判率低的优点,在通信系统中得到广泛的应用。
目前,通过CRC对数据进行编码一般采用流水的方式进行处理,且针对不同数据位宽的编码需要设计不同的计算装置。现有技术中对256位(bit)位宽的输入数据包进行CRC32计算时,CRC32校验计算装置包括32个8bit输入的CRC32计算单元,每个CRC32计算单元称为一个流水单元,通过32个8位位宽的流水单元依次完成对256bit位宽的数据进行CRC32处理。
发明人在实现本发明的过程中发现现有技术至少存在如下缺陷:现有技术在对输入数据进行CRC32计算时,是以8bit输入的CRC32计算单元作为流水单元,因此,针对256bit输入位宽的数据,需要32个流水单元,导致计算CRC32时会消耗大量的硬件资源,且无法满足输入数据位宽较大的通信场合的通信需要。
发明内容
本发明实施例的目的是提供一种循环冗余校验的校验值计算方法及装置,可有效提高循环冗余校验值的计算效率,降低计算循环冗余校验值的时间。
为实现上述目的,本发明实施例提供了一种循环冗余校验的校验值计算方法,包括:
接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;
接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。
本发明实施例提供了一种循环冗余校验的校验值计算装置,包括:
第一校验值计算模块,用于接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;
第二校验值计算模块,用于接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。
本发明实施例通过对数据流中未满第一预设位宽的数据包进行拆分,并对拆分后的各数据段依次输入相应位宽的循环冗余校验计算单元,实现对循环冗余校验值的计算,因此,在整个数据流传输中,对于等于第一预设位宽的数据包可直接利用相应位宽的循环冗余校验计算单元计算循环冗余校验,而对于小于第一预设位宽的数据包进行拆分计算,使得整个数据流数据的循环冗余校验值的计算周期较短,提高了循环冗余校验值计算的效率,减低了循环冗余校验值计算占用的资源量,可有效满足通信系统中高速数据传输的需要。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为对数据流中的每个位进行CRC32校验值计算的电路原理示意图;
图2为本发明循环冗余校验的校验值计算方法实施例一的流程图;
图3为本发明循环冗余校验的校验值计算方法实施例二的流程图;
图4为本发明实施例中对数据包进行二进拆分的示意图;
图5为本发明实施例中CRC32校验值计算装置中各计算单元的一种排布示意图;
图6为本发明实施例中CRC32校验值计算装置中各计算单元的另一种排布示意图;
图7为本发明冗余循环校验的校验值计算装置实施例一的结构示意图;
图8为本发明冗余循环校验的校验值计算装置实施例二的结构示意图;
图9为本发明冗余循环校验的校验值计算装置实施例二中第二校验值计算模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可应用于通信系统中的信号传输中,对需要传输的数据进行CRC校验时,计算数据的CRC校验值,特别适用于高速信号传输中具有较大数据位宽传输的数据CRC校验值的计算。本发明实施例以每个时钟周期的输入数据位宽为256bit的数据进行CRC32校验时计算数据的CRC32校验值为例对本发明技术方案进行说明,其中,本发明实施例中所述的第一预设位宽即为256bit的位宽。
下面对CRC校验进行说明。CRC校验值的计算采用多项式编码方法,在CRC校验时数据发送端和接收端均利用相同的生成多项式,在发送端利用该生成多项式计算CRC校验值,而在接收端同样利用该生成多项式对接收到的数据进行校验。且CRC校验可包括CRC32、CRC16等校验标准,每种校验标准均有相应的生成多项式。其中,CRC32校验值计算中所使用的生成多项式为:
CRC32=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
其中,生成多项式的首位和末位系数均为1,生成多项式的系数为04C11DB7h,且CRC32计算时的初值为FFFFFFFFh,也即CRC32校验值的初值的二进制表示的32bi t数据的位数均为1。由于采用CRC32校验时的出错概率低,如采用CRC32校验的出错概率是采用CRC16校验的10-5倍,因此,在很多高速通信协议中,均会对数据流进行CRC32校验。
图1为对数据流中的每个位进行CRC32校验值计算的电路原理示意图。如图1所示,对数据中的每个位进行CRC32校验值计算采用线性反馈移位寄存器来实现,其中,对应于CRC32计算的生成多项式的系数04C11DB7h,每个多项式系数二进制表示中对应于1的位均进行异或(XOR)运算。
图2为本发明循环冗余校验的校验值计算方法实施例一的流程图。该方法包括:
步骤101、接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;
步骤102、接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。
本实施例中,对于传输的数据流中,等于第一预设位宽的数据包直接送入相应位宽的CRC校验值计算,而对小于第一预设位宽的数据包则进行拆分,并对拆分后的各数据段进行CRC32校验值的计算。具体地,在逻辑内核(Logiccore)时钟频率为250MHz的通信系统中,数据传输时的位宽为256bit,即每个数据包可包括256bit的数据,因此,在对该系统下的数据包进行CRC校验值计算时,可利用256bit位宽的CRC32计算单元对连续的位宽为256bit的数据包进行CRC32校验值计算,但是,对于数据流中位宽不足256bit位宽的数据,一般为一个数据流中的最后一个数据包,可进行拆分计算,本发明实施例可将第一预设位宽设定为256bit,对于数据流中不足256bit位宽的数据包,可通过将其拆分成多个位宽的数据段,并将各数据段的数据依次输入相应位宽的CRC32bit计算单元进行CRC32计算,并最终获得整个数据流的CRC32校验值。
具体地,假设最后一个数据包的有效数据的位数为168bit,则可将其从低位到高位依次拆分成8bit、32bit和128bit三个数据段,对各数据段位宽的数据依次进行CRC32计算,且每个位宽的数据段可输入到具有相应位宽的CRC计算单元进行CRC32校验值的计算,如8bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元和128bit位宽的CRC32计算单元,其中,上述各位宽的CRC32计算单元在进行计算时,以其输入数据的前一数据计算得到的CRC32校验值作为其计算的初值,例如,256bit位宽的CRC32计算单元计算出的校验值会送入8bit位宽的CRC32计算单元,作为8bit数据段计算CRC32校验值时的初值,而对8bit位宽的数据段计算后的CRC32校验值送入32bit位宽的CRC32计算单元,作为对32bit位宽数据的CRC32校验值计算的初值,依次类推,最终获得整个数据流的CRC32校验值。
可以看出,本发明实施例可对数据流中位数不足256bit的数据进行拆分后再计算CRC32校验值,而对于位数为256bit的数据包则直接利用256bit位宽的CRC32计算单元计算CRC32校验值,这样,对于一个采用256bit位宽传输的数据流,由于其传输中数据流中除最后一个数据包外均是位宽为256bit的数据包,因此,对于传输的数据流中位宽为256bit的数据包,不需要按照现有技术中利用32个8bit位宽的CRC32计算单元进行CRC32校验值的计算,而是直接输入256bit位宽的CRC32计算单元计算CRC32校验值,其计算过程只需要在一个时钟周期内即可完成,而对于不满256bit的数据则通过拆分后计算CRC32校验值,可有效降低整个数据流的数据的CRC32校验值计算的时间,降低计算CRC32校验值时占用的资源,CRC32校验值计算的效率高,可满足通信系统中高速数据传输的需要。
综上,本发明实施例通过对数据流中未满第一预设位宽的数据包进行拆分,并对拆分后的各数据段依次输入相应位宽的CRC32计算单元,实现对CRC32校验值的计算,因此,在整个数据流传输中,对于等于第一预设位宽的数据包可直接利用第一预设位宽的CRC32计算单元计算CRC32校验值,而对于小于第一预设位宽的数据包进行拆分计算,使得整个数据流数据的CRC32校验值的计算周期较短,提高了CRC32校验值计算的效率,减低了CRC32校验值计算占用的资源量,可有效满足通信系统中高速数据传输的需要。
图3为本发明循环冗余校验的校验值计算方法实施例二的流程图。该方法包括:
步骤201、将接收到的数据流中等于第一预设位宽的数据包送入相应位宽的CRC32计算单元,计算CRC32校验值。
其中,对需要计算CRC32校验值的数据可按以下规则输入:当将数据送入CRC32校验值计算装置时,需要传送的数据流的数据包超过1个时,以sop标记数据流的起始,并且数据包的有效数据位宽为256bit,每个时钟周期内向CRC32校验值计算装置发送一个数据包,并在最后一个数据包发送前,以eop标记结束;发送最后一个数据包时,同时向CRC32校验值计算装置发送最后一个数据包的字节长度。
具体地,本步骤中,当接收到的以sop标记开始的数据流时,表示此时输入的数据包为256bit位宽的数据,可将其直接输入256bit位宽的CRC32计算单元,计算CRC32校验值,eop标记之前的各数据包均按照上述的方法计算CRC32校验值,其中,本步骤中所述的第一预设位宽的数据包即为上述所述的256bit的数据包。
步骤202、接收数据流中最后一个数据包,以及所述数据包的字节长度。
其中,所述的最后一个数据包通常为小于第一预设位宽的数据包,即最后一个数据包的有效数据的位宽通常小于256bit,本实施例最后一个数据包的位宽为168bit。
步骤203、根据所述数据包的字节长度对所述数据包进行二进拆分,将所述数据包拆分成两个或两个以上不同位宽的数据段。
本步骤中,可根据数据包的字节长度的二进制表示对所述数据包进行二进拆分,将该数据包拆分成具有不同位宽的数据段,所述的二进拆分即是根据数据包字节长度的二进制表示,将数据包拆分成的数据段数量最少,二进拆分过程具体可包括以下步骤:获得数据包的字节长度的二进制表示的各位的位数值;获得所述字节长度的二进制表示中位数值为1的位对应的位宽,并根据获得的各位宽的大小,按照从大到小或从小到大的顺序将所述数据包进行二进拆分;其中,所述数据包的字节长度的二进制表示中各个位数对应的位宽中,最低位位数对应的位宽为8bit,且高位位数对应的位宽是相邻低位位数对应位宽的2倍。
图4为本发明实施例中对数据包进行二进拆分的示意图。具体地,对应于168bit数据的数据包的字节数为21,则该数据包的字节长度len二进制表示是b010101,则该数据包的字节长度len二进制表示中的每个位均对应于一定的位宽,且最高位对应于256bit的位宽,最低位对应于8bit的位宽。在对数据包进行二进拆分时,可将该数据包按照数据包字节长度len的二进制表示进行拆分,将数据包按照len二进制表示中从低位到高位,且len二进制表示中数值为1的位对应的位宽作为数据包拆分的数据段的位宽,由此,可将168bit的数据包从低位到高位,依次拆分成8bit,32bit和128bit三个位宽的数据段。
步骤204、将所述拆分的不同位宽的数据段依次输入相应位宽的CRC32计算单元,计算CRC32校验值。
当步骤203将168bit的数据包拆分成8bit、32bit和128bit的数据段后,可将各数据段依次送入8bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元和128bit位宽的CRC32计算单元计算CRC32校验值。
图5为本发明实施例中CRC32校验值计算装置中各计算单元的一种排布示意图。具体地,如图5所示,本实施例中CRC32校验值计算装置中的计算单元可包括256bit位宽的CRC32计算单元,以及按二进制递增排布的8bit位宽的CRC32计算单元、16bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元、64bit位宽的CRC32计算单元、128bit位宽的CRC32计算单元,其中,256bit位宽的CRC32计算单元可对输入位宽为256bit的数据进行CRC32校验值的计算,而对于不足256bit位宽的数据,可通过将其拆分成不同位宽的数据段,并依次输入相应地8bit位宽的CRC32计算单元、16bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元、64bit位宽的CRC32计算单元或128bit位宽的CRC32计算单元,进行CRC32校验值的计算。可以看出,当接收到以sop标记开始的数据包时,由于数据包的数据位宽为256bit,因此,可将其直接输入256bit位宽的CRC32计算单元,而当接收到的eop标记时,表示最后一个数据包将输入,因此,可通过Len_in接口接收到最后一个数据包的字节长度,若字节长度为256bit时,可将其直接送入256bit位宽的CRC32计算单元,计算CRC32校验值,若字节长度小于256bit时,可根据字节长度的二进制表示对其进行二进拆分,将拆分后的各位宽的数据段依次输入8bit位宽的CRC32计算单元、16bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元、64bit位宽的CRC32计算单元或128bit位宽的CRC32计算单元,计算CRC32校验值,最终获得整个数据流的32bit的CRC32校验值。
本发明实施例通过根据数据包的字节长度的二进制表示对不满第一预设位宽的数据包进行二进拆分,使得拆分后的数据段数量最少,因此,在对不满第一预设位宽的数据包二进拆分后进行各位宽数据段的CRC32校验值计算时,计算校验值时涉及到的不同位宽的CRC32计算单元最少,计算时间就会较短,进一步地提高了CRC32校验值计算的效率,减少了整个数据流的CRC32校验值计算的时间和资源占用率,可有效满足高速通信中数据传输的需要。
此外,本发明实施例中在对不满第一预设位宽的最后一个数据包进行二进拆分时,也可将数据包按低位宽到高位宽递减的顺序拆分成多个不同位宽的数据段。具体地,步骤203中的数据包的字节长度的二进制表示的最低位可对应于128bit的位宽,最高位对应于256bit的位宽,且最高位和最低位之间的低位位数对应的位宽是相邻的高位位数对应位宽的2倍,这样在对数据包进行二进拆分时,即可将168bit位宽的数据按照二进递减的顺序依次拆分成128bit、32bit和8bit位宽的数据段。图6为本发明实施例中CRC32校验值计算装置中各计算单元的另一种排布示意图。具体地,如图6所示,当将数据包按低位宽到高位宽递减的顺序二进拆分时,相应地CRC32校验值计算装置可包括256bit位宽的CRC32计算单元,以及按二进制递减排布的128bit位宽的CRC32计算单元、64bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元、16bit位宽的CRC32计算单元、8bit位宽的CRC32计算单元,其中,256bit位宽的CRC32计算单元可对输入位宽为256bit的数据进行CRC32校验值的计算,而对于不满256bit位宽的数据,可通过二进拆分成多个不同位宽的数据段,并依次输入相应地128bit位宽的CRC32计算单元、64bit位宽的CRC32计算单元、32bit位宽的CRC32计算单元、16bit位宽的CRC32计算单元或8bit位宽的CRC32计算单元,计算CRC32校验值,并最终获得整个数据流的32bit的CRC32校验值。
图7为本发明冗余循环校验的校验值计算装置实施例一的结构示意图。该装置包括第一校验值计算模块1和第二校验值计算模块2,其中,
第一校验值计算模块1,用于接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;
第二校验值计算模块2,用于接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。
本实施例可对数据流中不满第一预设位宽的数据包进行拆分,并对拆分后的各数据段进行循环冗余校验值的计算。因此,在对整个数据流中的数据进行循环冗余校验值的计算时,对于等于第一预设位宽的数据包可直接利用与第一预设位宽相同的位宽的CRC32计算单元计算CRC32校验值,而对于小于第一预设位宽的数据包则进行拆分计算,使得整个数据流数据的CRC32校验值的计算周期较短,提高了CRC32校验值计算的效率,减低了CRC32校验值计算占用的资源量,可有效满足通信系统中高速数据传输的需要。
图8为本发明冗余循环校验的校验值计算装置实施例二的结构示意图;图9为本发明冗余循环校验的校验值计算装置实施例二中第二校验值计算模块的结构示意图。在上述图7所示实施例技术方案的基础上,本实施例还可包括字节长度接收模块3,用于接收所述小于第一预设位宽的数据包的字节长度;所述第二校验值计算模块2可包括二进拆分单元21和校验值计算单元22,其中,
二进拆分单元21,用于根据所述小于第一预设位宽的数据包的字节长度对所述小于第一预设位宽的数据包进行二进拆分,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段;
校验值计算单元22,包括两个或两个以上不同位宽的循环冗余校验计算单元,用于接收所述二进拆分单元拆分后的不同位宽的数据段,计算校验值。
本发明实施例中,二进拆分单元21可根据字节长度接收模块3接收到的数据包的字节长度,对小于第一预设位宽的数据包进行拆分,并可将拆分后的各不同位宽的数据段分别送入相应位宽的循环冗余校验计算单元,计算校验值。其中,所述的二进拆分单元21对数据包进行二进拆分具体可以参考上述本发明方法实施例,在此不在赘述。
本实施例中,第二校验值计算模块2中的各位宽的循环冗余校验计算单元可按二进制递增或递减排布,且针对不同通信系统不同时钟周期输入的数据位宽的大小,可设置合适数量以及合适位宽的CRC计算单元。具体地,若时钟周期输入数据位宽为256bit的数据时,本实施例装置的具体实现电路可参考图5或图6所示,类似地,对于其它输入数据位宽的数据,可设置合适位宽及数量的CRC计算单元,且每个CRC计算单元均可根据接收到的数据包的长度的二进制表示对数据包进行拆分,并将拆分后得到的数据段进行CRC校验值计算。
本发明实施例通过对数据流中未满第一预设位宽的数据包进行二进拆分,并对拆分后的各数据段依次输入相应位宽的计算单元,实现对CRC校验值的计算,因此,在整个数据流传输中,对于等于第一预设位宽的数据包可直接利用第一预设位宽的CRC计算单元计算CRC校验值,而对于小于第一预设位宽的数据包进行拆分计算,使得整个数据流数据的CRC校验值的计算周期较短,提高了CRC校验值计算的效率,减低了CRC校验值计算占用的资源量,可有效满足通信系统中高速数据传输的需要。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。

Claims (7)

1.一种循环冗余校验的校验值计算方法,其特征在于,包括:
接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;
接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。
2.根据权利要求1所述的循环冗余校验的校验值计算方法,其特征在于,还包括:接收所述小于第一预设位宽的数据包的字节长度;
所述将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段包括:
根据所述小于第一预设位宽的数据包的字节长度对所述小于第一预设位宽的数据包进行二进拆分,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段。
3.根据权利要求2所述的循环冗余校验的校验值计算方法,其特征在于,所述根据所述小于第一预设位宽的数据包的字节长度对所述小于第一预设位宽的数据包进行二进拆分包括:
获得所述小于第一预设位宽的数据包的字节长度的二进制表示的各位的位数值;
获得所述字节长度的二进制表示中位数值为1的位对应的位宽,并根据获得的各位宽的大小,按照从大到小或从小到大的顺序将所述小于预设位宽的数据包进行拆分;
其中,所述小于第一预设位宽的数据包的字节长度的二进制表示中各个位数对应的位宽中,最低位位数对应的位宽为8bit,且高位位数对应的位宽是相邻低位位数对应位宽的2倍。
4.根据权利要求3所述的循环冗余校验的校验值计算方法,其特征在于,还包括预先设置的按二进递增或二进递减的顺序排布的循环冗余校验计算单元组;
所述将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值包括:
将拆分后的不同位宽的数据段输入所述循环冗余校验计算单元组中相应位宽的循环冗余校验计算单元计算校验值。
5.一种循环冗余校验的校验值计算装置,其特征在于,包括:
第一校验值计算模块,用于接收到数据流中等于第一预设位宽的数据包时,将所述等于第一预设位宽的数据包输入与所述第一预设位宽对应的循环冗余校验计算单元计算校验值;
第二校验值计算模块,用于接收到所述数据流中小于第一预设位宽的数据包时,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段,将拆分后的不同位宽的数据段输入与所拆分的数据段的位宽对应的循环冗余校验计算单元计算校验值。
6.根据权利要求5所述的循环冗余校验的校验值计算装置,其特征在于,还包括:
字节长度接收模块,用于接收所述小于第一预设位宽的数据包的字节长度;
所述第二校验值计算模块包括:
二进拆分单元,用于根据所述小于第一预设位宽的数据包的字节长度对所述小于第一预设位宽的数据包进行二进拆分,将所述小于第一预设位宽的数据包拆分成两个或两个以上不同位宽的数据段;
校验值计算单元,包括两个或两个以上不同位宽的循环冗余校验计算单元,用于接收所述二进拆分单元拆分后的不同位宽的数据段,计算校验值。
7.根据权利要求6所述的循环冗余校验的校验值计算装置,其特征在于,所述校验值计算单元中,所述两个或两个以上不同位宽的循环冗余校验计算单元按二进递增或递减的顺序排布。
CN200910221966.7A 2009-11-23 2009-11-23 循环冗余校验的校验值计算方法及装置 Active CN101702639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910221966.7A CN101702639B (zh) 2009-11-23 2009-11-23 循环冗余校验的校验值计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910221966.7A CN101702639B (zh) 2009-11-23 2009-11-23 循环冗余校验的校验值计算方法及装置

Publications (2)

Publication Number Publication Date
CN101702639A true CN101702639A (zh) 2010-05-05
CN101702639B CN101702639B (zh) 2012-12-19

Family

ID=42157534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910221966.7A Active CN101702639B (zh) 2009-11-23 2009-11-23 循环冗余校验的校验值计算方法及装置

Country Status (1)

Country Link
CN (1) CN101702639B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130744A (zh) * 2011-03-25 2011-07-20 中兴通讯股份有限公司 计算循环冗余校验码的方法和装置
CN102158316A (zh) * 2011-04-25 2011-08-17 中兴通讯股份有限公司 一种64bit位宽的并行CRC32校验方法及装置
CN102752081A (zh) * 2012-07-03 2012-10-24 Ut斯达康通讯有限公司 一种高速以太网中并行循环冗余校验方法及装置
CN103427939A (zh) * 2012-05-18 2013-12-04 中兴通讯股份有限公司 一种基于xgmii接口的通道死锁自动恢复方法及芯片
CN103518341A (zh) * 2011-05-11 2014-01-15 思科技术公司 区分蓝牙语音和数据链接
WO2015100624A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种crc计算方法及装置
CN110377454A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 数据校验方法、装置、计算机设备和存储介质
CN110663207A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 嵌入的循环冗余校验值
CN112306741A (zh) * 2020-11-19 2021-02-02 山东云海国创云计算装备产业创新中心有限公司 一种crc校验方法及相关装置
CN115412204A (zh) * 2022-08-31 2022-11-29 深圳云豹智能有限公司 一种循环冗余校验的实现方法、装置和存储介质
CN115549854A (zh) * 2021-06-30 2022-12-30 上海寒武纪信息科技有限公司 循环冗余校验方法、装置、存储介质以及电子设备
CN117914444A (zh) * 2023-12-13 2024-04-19 无锡众星微系统技术有限公司 一种ib网络数据包crc计算的硬件实现方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1193294C (zh) * 2003-01-27 2005-03-16 西安电子科技大学 一种多通道多位并行计算crc码的方法
GB0607976D0 (en) * 2006-04-22 2006-05-31 Univ Belfast Apparatus and method for computing an error detection code

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130744A (zh) * 2011-03-25 2011-07-20 中兴通讯股份有限公司 计算循环冗余校验码的方法和装置
CN102130744B (zh) * 2011-03-25 2014-12-31 中兴通讯股份有限公司 计算循环冗余校验码的方法和装置
CN102158316A (zh) * 2011-04-25 2011-08-17 中兴通讯股份有限公司 一种64bit位宽的并行CRC32校验方法及装置
CN102158316B (zh) * 2011-04-25 2015-06-17 中兴通讯股份有限公司 一种64bit位宽的并行CRC32校验方法及装置
CN103518341A (zh) * 2011-05-11 2014-01-15 思科技术公司 区分蓝牙语音和数据链接
CN103518341B (zh) * 2011-05-11 2017-05-24 思科技术公司 用于分析分组头部的方法、装置和设备
CN103427939A (zh) * 2012-05-18 2013-12-04 中兴通讯股份有限公司 一种基于xgmii接口的通道死锁自动恢复方法及芯片
CN102752081A (zh) * 2012-07-03 2012-10-24 Ut斯达康通讯有限公司 一种高速以太网中并行循环冗余校验方法及装置
CN102752081B (zh) * 2012-07-03 2014-11-26 Ut斯达康通讯有限公司 一种高速以太网中并行循环冗余校验方法及装置
EP3076555A4 (en) * 2013-12-31 2017-01-04 Huawei Technologies Co., Ltd. Crc calculation method and apparatus
CN105264778A (zh) * 2013-12-31 2016-01-20 华为技术有限公司 一种crc计算方法及装置
WO2015100624A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种crc计算方法及装置
US10211852B2 (en) 2013-12-31 2019-02-19 Huawei Technologies Co., Ltd. CRC calculation method, and apparatus
CN110663207A (zh) * 2017-05-24 2020-01-07 Wago管理有限责任公司 嵌入的循环冗余校验值
CN110663207B (zh) * 2017-05-24 2022-07-12 Wago管理有限责任公司 嵌入的循环冗余校验值
CN110377454A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 数据校验方法、装置、计算机设备和存储介质
CN112306741A (zh) * 2020-11-19 2021-02-02 山东云海国创云计算装备产业创新中心有限公司 一种crc校验方法及相关装置
CN115549854A (zh) * 2021-06-30 2022-12-30 上海寒武纪信息科技有限公司 循环冗余校验方法、装置、存储介质以及电子设备
CN115549854B (zh) * 2021-06-30 2024-07-12 上海寒武纪信息科技有限公司 循环冗余校验方法、装置、存储介质以及电子设备
CN115412204A (zh) * 2022-08-31 2022-11-29 深圳云豹智能有限公司 一种循环冗余校验的实现方法、装置和存储介质
CN115412204B (zh) * 2022-08-31 2023-09-08 深圳云豹智能有限公司 一种循环冗余校验的实现方法、装置和存储介质
CN117914444A (zh) * 2023-12-13 2024-04-19 无锡众星微系统技术有限公司 一种ib网络数据包crc计算的硬件实现方法和装置

Also Published As

Publication number Publication date
CN101702639B (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN101702639B (zh) 循环冗余校验的校验值计算方法及装置
CN100367695C (zh) 快速周边组件互连装置的数据接收系统
CN102546089B (zh) 循环冗余校验crc码的实现方法及装置
US9621303B2 (en) Method and apparatus for valid encoding
EP0675620B1 (en) Parallel data transmission unit using byte error correcting code
US20100262887A1 (en) High Integrity Data Network System and Method
CN104008078B (zh) 一种基于fpga的数据传输板之间进行高速传输的方法
US20100138573A1 (en) System including transmitter and receiver
CN108337069B (zh) 一种改进的降低误码率的末端并行分组crc校验系统
CN104639294A (zh) 一种改进的crc校验实现方法
CN103312458A (zh) 混合编码方法
EP1605621A2 (en) Data transmission with improved error correction capability
CN102480340A (zh) 发送设备、发送方法、接收设备、接收方法和传输系统
CN101630997B (zh) 一种环形总线数据报文crc校验字的动态修正方法
CN113810071B (zh) 一种自适应线序调整方法、装置、设备、系统及存储介质
CN102130744A (zh) 计算循环冗余校验码的方法和装置
CN101588222B (zh) 具有纠错处理功能的通讯适配器及其应用
CN109412748B (zh) 一种极化码编译码方法及装置
CN104184544B (zh) 一种解码方法及装置
CN105049057A (zh) 一种面向128位并行输入的crc-32校验电路
CN102341798A (zh) 控制串行传输数据传输总线上的数据传输的方法
CN102487282A (zh) 一种实现可变长crc运算的电路
CN102457431B (zh) 信元传输方法及装置
CN101477507B (zh) Usb纠错编解码装置及方法、usb传输系统及方法
CN105095038A (zh) 一种检测rs232串口波特率的方法

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
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220829

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.