CN114124291A - 一种循环冗余校验方法和装置 - Google Patents
一种循环冗余校验方法和装置 Download PDFInfo
- Publication number
- CN114124291A CN114124291A CN202010868867.4A CN202010868867A CN114124291A CN 114124291 A CN114124291 A CN 114124291A CN 202010868867 A CN202010868867 A CN 202010868867A CN 114124291 A CN114124291 A CN 114124291A
- Authority
- CN
- China
- Prior art keywords
- crc result
- data message
- cyclic redundancy
- redundancy check
- crc32
- 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.)
- Pending
Links
- 125000004122 cyclic group Chemical group 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000009795 derivation Methods 0.000 claims description 7
- 238000013215 result calculation Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种循环冗余校验方法和装置,该方法包括:获取待处理的数据报文;获取所述待处理的数据报文的有效字节和无效字节,将所述无效字节填充为0;设置CRC32_D512算法模块;输入所述有效字节到所述CRC32_D512算法模块;基于所述CRC32_D512算法模块计算得到第一CRC结果;设置反推导crc32_rollback模块;输入所述第一CRC结果至所述反推导crc32_rollback模块;基于所述反推导crc32_rollback模块反推得到第二CRC结果;基于所述有效字节的字节数和所述第二CRC结果,选择获取第三CRC结果。本发明在不需要额外添加算法模块的前提下,实现大位宽数据CRC(循环冗余校验)计算,且不额外占用系统资源,不会影响整体系统性能,易于实现。
Description
技术领域
本说明书涉及数据校验领域,特别是一种循环冗余校验方法和装置。
背景技术
在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,包括循环冗余校验CRC(Cyclic Redundancy Check)。
循环冗余校验CRC(Cyclic Redundancy Check)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
在网络通信中,为了提高通信的可靠性,需要对数据流做CRC(循环冗余校验)处理,针对高位宽数据流做CRC(循环冗余校验)实现时,数据流非全字节有效的情况下,需要根据数据流的有效字节个数来确定使用的CRC计算功能函数。现有技术方法比较繁杂,需要额外消耗一部分资源,且在数字可编程芯片FPGA芯片实现方式下,还会降低整体系统性能。
发明内容
本说明书实施例的目的在于,提供了一种循环冗余校验方法和装置,在不需要额外添加算法模块的前提下,实现大位宽数据crc(循环冗余校验)计算,且不额外占用系统资源,不会影响整体系统性能,易于实现。
为达到上述目的,一方面,本说明书实施例提供了一种循环冗余校验方法,包括:
获取待处理的数据报文;
获取所述待处理的数据报文的有效字节和无效字节,将所述无效字节填充为0;
设置CRC32_D512算法模块;
输入所述有效字节到所述CRC32_D512算法模块;
基于所述CRC32_D512算法模块计算得到第一CRC结果;
设置反推导crc32_rollback模块;
输入所述第一CRC结果至所述反推导crc32_rollback模块;
基于所述反推导crc32_rollback模块反推得到第二CRC结果;
基于所述有效字节的字节数和所述第二CRC结果,选择获取第三CRC结果。
另一方面,本说明书实施例还提供了一种循环冗余校验装置,包括:
报文处理模块,用于基于获取的规则全文,处理待处理报文;
报文获取模块,用于获取待处理的数据报文和所述待处理的数据报文的有效字节和无效字节,并将所述无效字节填充为0;
CRC32_D512算法模块,用于基于输入的所述有效字节计算得到第一CRC结果;
反推导crc32_rollback模块,用于基于输入的所述第一CRC结果反推得到第二CRC结果;
第三CRC结果获取模块,用于基于所述有效字节的字节数和所述第二CRC结果,选择获取第三CRC结果。
由以上本说明书实施例提供的技术方案可见,本发明针对高位宽数流据做CRC(循环冗余校验)计算,且在有效字节可变的情况,根据CRC多项式反运算推导原理,达到保证设计性能,并且不会消耗过多资源的目的。
附图说明
图1为本说明书一些实施例的循环冗余校验方法的流程图。
图2为相关技术中的循环冗余校验方法的示意图。
图3为本说明书一些实施例的循环冗余校验方法的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如图1所示,本说明书一些实施例中提供了一种循环冗余校验方法,该方法包括以下步骤:
S102、获取待处理的数据报文,获取待处理的数据报文的有效字节和无效字节,将无效字节填充为0;
S104、设置CRC32_D512算法模块,输入有效字节到CRC32_D512算法模块;基于CRC32_D512算法模块计算得到第一CRC结果;
S106、设置反推导crc32_rollback模块,输入第一CRC结果至反推导crc32_rollback模块;基于反推导crc32_rollback模块反推得到第二CRC结果;
S108、基于有效字节的字节数和第二CRC结果,选择获取第三CRC结果。
在本说明书一些实施例中,将第三CRC结果附在数据报文上;发送附有第三CRC结果的数据报文,接收附有第三CRC结果的数据报文;基于数据报文计算获取第四CRC结果;对比第三CRC结果和第四CRC结果,若第三CRC结果与第四CRC结果相同,则数据报文校验成功,若第三CRC结果与第四CRC结果不相同,则数据报文校验失败。
在本说明书一些实施例中,待处理的数据报文的位宽为512bit,第一CRC结果的位宽为32bit。基于FPGA或CPLD芯片和Verilog语言,进行CRC结果计算和循环冗余校验。
结合图2描述与本发明的相关技术如下:在实际应用中,经常需要处理大流量,高速率的数据流,这样就会需要处理大位宽的数据,例如512bit(64byte)。在很多情况下,并不是大位宽数据里的所有字节都是需要参与计算的,又因为不同的位宽下,计算CRC(循环冗余校验)的功能函数也不一样。常规情况下,需要考虑所有情况,例如当一个以太网报文需要做CRC(循环冗余校验)计算,数据位宽为512bit,当该数据并不是所有的512bit都是该数据包有效内容,在做CRC(循环冗余校验)计算时,就要根据有效字节数,选择输入数据是63byte还是62字节、61字节等,总共需要考虑64种情况,这样最终算出的才为该数据报文的CRC(循环冗余校验)结果。因此,大位宽下,需要添加多种情况下的CRC算法公式,占用过多资源;此外,因为考虑情况复杂度较高,逻辑运算量大,会降低整体设计的运行效率,降低性能。
针对上文描述中存在的问题,结合图3解释本说明书的一些实施例如下:本方案背景为以FPGA可编程芯片来实现网络数据通信特定功能,开发语言为Verilog2001。此方案实现过程中,需要对以太网报文出口方向上,对数据报文做CRC(循环冗余校验)计算,处理数据位宽为512bit。实现流程如下:首先把有效的数据输入到CRC32_D512算法模块中,无效的字节则用0填充,计算得到32bit的CRC结果再输入到反推导crc32_rollback模块,crc32_rollback模块会根据输入的CRC结果反推得到CRC(循环冗余校验),再根据有效字节数选择得到最终的CRC结果(循环冗余校验)。
综上,本发明通过实现在FPGA/CPLD芯片Verilog语言开发环境下,实现大位宽数据实现CRC(循环冗余校验)计算,算法简单,在FPGA内部可支持DSP资源不占用额外内部逻辑资源条件下,在不降低系统性能情况下,通过快速CRC(循环冗余校验)算法实现大位宽数据流量的CRC(循环冗余校验)计算功能。
本说明书一些实施例中还提供了一种循环冗余校验装置,该装置包括:报文获取模块,用于获取待处理的数据报文和待处理的数据报文的有效字节和无效字节,并将无效字节填充为0;CRC32_D512算法模块,用于基于输入的有效字节计算得到第一CRC结果;反推导crc32_rollback模块,用于基于输入的第一CRC结果反推得到第二CRC结果;第三CRC结果获取模块,用于基于有效字节的字节数和第二CRC结果,选择获取第三CRC结果。
在本说明书一些实施例中,还包括,报文发送模块,用于发送附有第三CRC结果的数据报文;报文接收模块,用于接收附有第三CRC结果的数据报文;第四CRC结果获取模块,用于基于数据报文计算获取第四CRC结果;结果对比模块,用于对比第三CRC结果和第四CRC结果,若第三CRC结果与第四CRC结果相同,则数据报文校验成功,若第三CRC结果与第四CRC结果不相同,则数据报文校验失败;FPGA或CPLD芯片,FPGA或CPLD芯片用于CRC结果计算和循环冗余校验,待处理的数据报文的位宽为512bit,第一CRC结果的位宽为32bit。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。本发明是参照根据本发明实施例的方法的流程图和/或方框图来描述的。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置实施例,所以描述的比较简单,相关之处参见装置实施例的部分说明即可。以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (9)
1.一种循环冗余校验方法,其特征在于,所述方法包括:
获取待处理的数据报文;
获取所述待处理的数据报文的有效字节和无效字节,将所述无效字节填充为0;
设置CRC32_D512算法模块;
输入所述有效字节到所述CRC32_D512算法模块;
基于所述CRC32_D512算法模块计算得到第一CRC结果;
设置反推导crc32_rollback模块;
输入所述第一CRC结果至所述反推导crc32_rollback模块;
基于所述反推导crc32_rollback模块反推得到第二CRC结果;
基于所述有效字节的字节数和所述第二CRC结果,选择获取第三CRC结果。
2.根据权利要求1所述的循环冗余校验方法,其特征在于,
将所述第三CRC结果附在所述数据报文上;
发送附有所述第三CRC结果的数据报文。
3.根据权利要求2所述的循环冗余校验方法,其特征在于,
接收附有所述第三CRC结果的数据报文;
基于所述数据报文计算获取第四CRC结果;
对比所述第三CRC结果和所述第四CRC结果,若所述第三CRC结果与所述第四CRC结果相同,则所述数据报文校验成功,若所述第三CRC结果与所述第四CRC结果不相同,则所述数据报文校验失败。
4.根据权利要求3所述的循环冗余校验方法,其特征在于,
所述待处理的数据报文的位宽为512bit,所述第一CRC结果的位宽为32bit。
5.根据权利要求4所述的循环冗余校验方法,其特征在于,
基于FPGA或CPLD芯片和Verilog语言,进行CRC结果计算和循环冗余校验。
6.一种循环冗余校验装置,其特征在于,包括
报文获取模块,用于获取待处理的数据报文和所述待处理的数据报文的有效字节和无效字节,并将所述无效字节填充为0;
CRC32_D512算法模块,用于基于输入的所述有效字节计算得到第一CRC结果;
反推导crc32_rollback模块,用于基于输入的所述第一CRC结果反推得到第二CRC结果;
第三CRC结果获取模块,用于基于所述有效字节的字节数和所述第二CRC结果,选择获取第三CRC结果。
7.根据权利要求6所述的循环冗余校验装置,其特征在于,还包括,
报文发送模块,用于发送附有所述第三CRC结果的数据报文。
8.根据权利要求7所述的循环冗余校验装置,其特征在于,
报文接收模块,用于接收附有所述第三CRC结果的数据报文;
第四CRC结果获取模块,用于基于所述数据报文计算获取第四CRC结果;
结果对比模块,用于对比所述第三CRC结果和所述第四CRC结果,若所述第三CRC结果与所述第四CRC结果相同,则所述数据报文校验成功,若所述第三CRC结果与所述第四CRC结果不相同,则所述数据报文校验失败。
9.根据权利要求8所述的循环冗余校验装置,其特征在于,
还包括FPGA或CPLD芯片,所述FPGA或CPLD芯片用于CRC结果计算和循环冗余校验,所述待处理的数据报文的位宽为512bit,所述第一CRC结果的位宽为32bit。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010868867.4A CN114124291A (zh) | 2020-08-25 | 2020-08-25 | 一种循环冗余校验方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010868867.4A CN114124291A (zh) | 2020-08-25 | 2020-08-25 | 一种循环冗余校验方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114124291A true CN114124291A (zh) | 2022-03-01 |
Family
ID=80374128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010868867.4A Pending CN114124291A (zh) | 2020-08-25 | 2020-08-25 | 一种循环冗余校验方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124291A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20050193316A1 (en) * | 2004-02-20 | 2005-09-01 | Iready Corporation | System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity |
CN102752081A (zh) * | 2012-07-03 | 2012-10-24 | Ut斯达康通讯有限公司 | 一种高速以太网中并行循环冗余校验方法及装置 |
US8340134B1 (en) * | 2009-11-04 | 2012-12-25 | Pmc-Sierra, Inc. | Method and system for controlling count information in generic mapping procedure |
US8539326B1 (en) * | 2011-12-07 | 2013-09-17 | Xilinx, Inc. | Method and implementation of cyclic redundancy check for wide databus |
CN103701566A (zh) * | 2013-12-18 | 2014-04-02 | 华为技术有限公司 | 一种校验方法和装置 |
CN105356966A (zh) * | 2014-08-22 | 2016-02-24 | 华为技术有限公司 | 循环冗余校验实现方法、装置和网络设备 |
CN108270508A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种循环冗余校验crc实现方法、装置及网络设备 |
-
2020
- 2020-08-25 CN CN202010868867.4A patent/CN114124291A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20050193316A1 (en) * | 2004-02-20 | 2005-09-01 | Iready Corporation | System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity |
US8340134B1 (en) * | 2009-11-04 | 2012-12-25 | Pmc-Sierra, Inc. | Method and system for controlling count information in generic mapping procedure |
US8539326B1 (en) * | 2011-12-07 | 2013-09-17 | Xilinx, Inc. | Method and implementation of cyclic redundancy check for wide databus |
CN102752081A (zh) * | 2012-07-03 | 2012-10-24 | Ut斯达康通讯有限公司 | 一种高速以太网中并行循环冗余校验方法及装置 |
CN103701566A (zh) * | 2013-12-18 | 2014-04-02 | 华为技术有限公司 | 一种校验方法和装置 |
CN105356966A (zh) * | 2014-08-22 | 2016-02-24 | 华为技术有限公司 | 循环冗余校验实现方法、装置和网络设备 |
CN108270508A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种循环冗余校验crc实现方法、装置及网络设备 |
Non-Patent Citations (1)
Title |
---|
李传辉;刘纯武;黄芝平;: "100G以太网中高位宽并行CRC的简化方法", 微型机与应用, no. 07 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5862160A (en) | Secondary channel for communication networks | |
EP2183867B1 (en) | Method of transmitting data | |
US8413006B1 (en) | Error detection and correction in data and control words | |
JP2001211085A (ja) | 配線縮退故障を検出するためのeccコードメカニズム | |
WO2020244327A1 (zh) | 数据处理方法及装置 | |
JP5316411B2 (ja) | 送信装置と受信装置 | |
US8640009B2 (en) | Methods and apparatus for providing linear erasure codes | |
US20230023776A1 (en) | Codeword Synchronization Method, Receiver, Network Device, and Network System | |
CN106372026B (zh) | 一种链路检测方法和接收设备 | |
CN108270508B (zh) | 一种循环冗余校验crc实现方法、装置及网络设备 | |
US20240056218A1 (en) | Codeword synchronization method, receiver, network device, and network system | |
CN114124291A (zh) | 一种循环冗余校验方法和装置 | |
CN109889418B (zh) | 基于can总线的数据传输方法和装置 | |
US20190317851A1 (en) | Memory architecture including response manager for error correction circuit | |
CN114513285B (zh) | 传输数据检测与校正的方法、装置、设备及可读存储介质 | |
US8429484B2 (en) | Digitized radar information redundancy method and system | |
EP2288069A1 (en) | Information processor, data transmission device, and data transfer method of the data transmission device | |
Saini et al. | An Efficient Single and Double Error Correcting Block Codes with Low Redundancy for Digital Communications | |
Juan et al. | FPGA implementation of hamming code for increasing the frame rate of CAN communication | |
US6781987B1 (en) | Method for packet transmission with error detection codes | |
US11871166B2 (en) | Sensor system | |
CN111200482B (zh) | Gfp帧定位处理方法、装置、电子设备及存储介质 | |
Bartholomew et al. | Error detection in a multi-user request system using enhanced CRC algorithm | |
CN117785782A (zh) | 基于NVMe 2.0协议的数据检测方法、装置、设备及介质 | |
Kim | FPGA implementation of overhead reduction algorithm for interspersed redundancy bits using EEDC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |