CN113904754A - 一种crc纠错方法及相关装置 - Google Patents
一种crc纠错方法及相关装置 Download PDFInfo
- Publication number
- CN113904754A CN113904754A CN202111149469.8A CN202111149469A CN113904754A CN 113904754 A CN113904754 A CN 113904754A CN 202111149469 A CN202111149469 A CN 202111149469A CN 113904754 A CN113904754 A CN 113904754A
- Authority
- CN
- China
- Prior art keywords
- crc
- data packet
- error
- error correction
- checked
- 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
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
-
- 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
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请公开了一种CRC纠错方法,包括:FPGA对接收到的待校验CRC数据包进行CRC校验;当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;将所述已纠错CRC数据包进行输出。通过并行的手段对待校验CRC数据包进行纠错处理,提高了数据数据包的处理效率,当出现较大的数据包时可以直接进行处理,而不用将该数据包进行重传避免了对带宽的占用,提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。本申请还公开了一种CRC纠错装置、服务器以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种CRC纠错方法、CRC纠错装置、服务器以及计算机可读存储介质。
背景技术
为了提高数据传输的准确性,数据传输领域出现了CRC技术。其中,CRC(CyclicRedundancy Check,循环冗余校验)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。通常在接收方接收数据时进行CRC校验,当接收数据的CRC检验正确时接收方才真正收下数据。
相关技术中,直接使用ECC(Error Correcting Code,错误检查和纠正码)算法,在有效数据的基础上增加额外用来进行错误校验的数据来进行错误检测和纠正,如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC增加一位校验位,数据位为64位时ECC校验数据位为8位。但是,需增加额外数据进行数据校验及纠错,当传输的数据量很大时,增加的检验数据也会随之增多,增加数据传输的负担。
因此,如何提高基于CRC纠错过程的数据传输量是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种CRC纠错方法、CRC纠错装置、服务器以及计算机可读存储介质,以提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。
为解决上述技术问题,本申请提供一种CRC纠错方法,包括:
FPGA对接收到的待校验CRC数据包进行CRC校验;
当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;
将所述已纠错CRC数据包进行输出。
可选的,FPGA对接收到的待校验CRC数据包进行CRC校验,包括:
所述FPGA通过多个时钟周期接收所述待校验CRC数据包;
对所述待校验CRC数据包进行CRC校验。
可选的,对所述待校验CRC数据包进行CRC校验,包括:
对所述待校验CRC数据包进行CRC计算,得到CRC校验码;
判断所述CRC校验码是否等于预设值;
若是,则判定所述CRC校验通过;
若否,则判定所述CRC校验不通过。
可选的,当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包,包括:
对所述待校验CRC数据包进行数据宽度变换,并存储至所述FPGA的并行队列中;其中,所述并行队列的数据宽度大于所述待校验CRC数据包的数据宽度;
当所述CRC校验不通过时,对所述待校验CRC数据包进行错误定位,得到错误bit位;
基于所述错误bit位对所述并行队列中的待校验CRC数据包进行纠错处理,得到所述已纠错CRC数据包。
可选的,当所述CRC校验不通过时,对所述待校验CRC数据包进行错误定位,得到错误bit位,包括:
基于CRC纠错算法原理对每一位的错误bit数据进行计算,得到多个特征值;
将所述多个特征值与对应的bit位位置信息进行关联,得到特征值查找表;
当所述CRC校验不通过时,对所述CRC校验的CRC校验码进行计算,得到目标特征值;
基于所述目标特征值对所述特征值查找表进行查找,得到所述错误bit位。
可选的,还包括:
对所述已纠错CRC数据包进行CRC二次校验;
当所述CRC二次校验不通过时,发送纠错失败消息,并执行防错操作。
可选的,将所述已纠错CRC数据包进行输出,包括:
基于所述并行队列将所述已纠错CRC数据包进行输出。
本申请还提供一种CRC纠错装置,包括:
数据包校验模块,用于对接收到的待校验CRC数据包进行CRC校验;
数据包纠错模块,用于当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;
数据包输出模块,用于将所述已纠错CRC数据包进行输出。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的CRC纠错方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的CRC纠错方法的步骤。
本申请所提供的一种CRC纠错方法,包括:FPGA对接收到的待校验CRC数据包进行CRC校验;当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;将所述已纠错CRC数据包进行输出。
通过FPGA对待校验CRC数据包进行CRC校验,并在校验不通过时,基于FPGA本身的并行队列对该待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包,也就是通过并行的手段对待校验CRC数据包进行纠错处理,提高了数据数据包的处理效率,当出现较大的数据包时可以直接进行处理,而不用将该数据包进行重传避免了对带宽的占用,提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。
本申请还提供一种CRC纠错装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种CRC纠错方法的流程图;
图2为本申请实施例所提供的一种CRC纠错方法的结构流程图;
图3为本申请实施例所提供的一种CRC纠错方法的特征值查找表示意图;
图4为本申请实施例所提供的一种CRC纠错方法的数据缓存示意图;
图5为本申请实施例所提供的一种CRC纠错装置的结构示意图。
具体实施方式
本申请的核心是提供一种CRC纠错方法、CRC纠错装置、服务器以及计算机可读存储介质,以提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,直接使用ECC算法,在有效数据的基础上增加额外用来进行错误校验的数据来进行错误检测和纠正,如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC增加一位校验位,数据位为64位时ECC校验数据位为8位。但是,需增加额外数据进行数据校验及纠错,当传输的数据量很大时,增加的检验数据也会随之增多,增加数据传输的负担。
因此,本申请提供一种CRC纠错方法,通过FPGA对待校验CRC数据包进行CRC校验,并在校验不通过时,基于FPGA本身的并行队列对该待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包,也就是通过并行的手段对待校验CRC数据包进行纠错处理,提高了数据数据包的处理效率,当出现较大的数据包时可以直接进行处理,而不用将该数据包进行重传避免了对带宽的占用,提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。
以下通过一个实施例,对本申请提供的一种CRC纠错方法进行说明。
请参考图1,图1为本申请实施例所提供的一种CRC纠错方法的流程图。
本实施例中,该方法可以包括:
S101,FPGA对接收到的待校验CRC数据包进行CRC校验;
可见,本步骤旨在该FPGA对接收到的待校验CRC数据包进行CRC校验。其中,可以是FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)首先接收到待校验CRC数据包,然后对该待校验CRC数据包进行校验。
进一步的,本步骤可以包括:
步骤1,FPGA通过多个时钟周期接收待校验CRC数据包;
步骤2,对待校验CRC数据包进行CRC校验。
可见,本可选方案中主要是说明如何进行CRC校验。本可选方案中FPGA通过多个时钟周期接收待校验CRC数据包,对待校验CRC数据包进行CRC校验。其中,在每个时钟周期都可以接收到一个接口宽度的数据。例如,数据接口宽度为32bit时,每个时钟周期接收到32bit的数据。经过256个时钟信号为1帧完成数据包,则每次接收数据长度为256*32bit=8192bit=8Kbit。其中,最后32bit数据为接收到的CRC校验码。然后,基于该CRC校验码进行CRC校验。
其中,对待校验CRC数据包进行CRC校验的方式可以采用现有技术提供的任意一种校验方式,在此不做具体限定。
进一步的,上一可选方案中的步骤2,可以包括:
步骤1,对待校验CRC数据包进行CRC计算,得到CRC校验码;
步骤2,判断CRC校验码是否等于预设值;
步骤3,若是,则判定CRC校验通过;
步骤4,若否,则判定CRC校验不通过。
可见,本可选方案中主要是说明如何进行CRC校验。本可选方案中,对待校验CRC数据包进行CRC计算,得到CRC校验码;判断CRC校验码是否等于预设值;若是,则判定CRC校验通过;若否,则判定CRC校验不通过。可见,本可选方案中首先计算出对应的CRC校验码然后判断该校验码是否等于预设值。其中,预设值为接收到数据包中含有的CRC校验码。
S102,当CRC校验不通过时,基于FPGA的并行队列对待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;
在S101的基础上,本步骤旨在当CRC校验不通过时,基于FPGA的并行队列对待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包。
在现有技术中,由于考虑到处理能力和接收到的数据包大小,通常在CRC校验不通过时,发送重传消息,直接重新接收该CRC数据包,而不是对数据包中的内容进行纠错。可见,当数据包比较大时则会占用大量的传输带宽,增加数据传输的压力,降低传输效率。
因此,本实施例中直接基于FPGA对CRC数据包进行纠错,并且,由于可以进行并行的纠错处理,可以保持对纠错过程的效率,提高纠错的速度。
进一步的,本步骤可以包括:
步骤1,对待校验CRC数据包进行数据宽度变换,并存储至FPGA的并行队列中;其中,并行队列的数据宽度大于待校验CRC数据包的数据宽度;
步骤2,当CRC校验不通过时,对待校验CRC数据包进行错误定位,得到错误bit位;
步骤3,基于错误bit位对并行队列中的待校验CRC数据包进行纠错处理,得到已纠错CRC数据包。
可见,本可选方案主要是说明如何进行纠错。本可选方案中,对待校验CRC数据包进行数据宽度变换,并存储至FPGA的并行队列中;其中,并行队列的数据宽度大于待校验CRC数据包的数据宽度,当CRC校验不通过时,对待校验CRC数据包进行错误定位,得到错误bit位,基于错误bit位对并行队列中的待校验CRC数据包进行纠错处理,得到已纠错CRC数据包。
其中,进行数据宽度变换,是指将数据存储的宽度变换至更大的数据宽度。例如,从32bit的宽度变换至128bit的宽度。提高了每个时间周期处理的数据量。
进一步的,上一可选方案中的步骤2可以包括:
步骤1,基于CRC纠错算法原理对每一位的错误bit数据进行计算,得到多个特征值;
步骤2,将多个特征值与对应的bit位位置信息进行关联,得到特征值查找表;
步骤3,当CRC校验不通过时,对CRC校验的CRC校验码进行计算,得到目标特征值;
步骤4,基于目标特征值对特征值查找表进行查找,得到错误bit位。
可见,本可选方案主要是说明如何确定错误bit位。本可选方案中,基于CRC纠错算法原理对每一位的错误bit数据进行计算,得到多个特征值,将多个特征值与对应的bit位位置信息进行关联,得到特征值查找表,当CRC校验不通过时,对CRC校验的CRC校验码进行计算,得到目标特征值,基于目标特征值对特征值查找表进行查找,得到错误bit位。
也就是说,本可选方案中为了提高进行纠错的效率,提前预置好关于CRC错误的特征值查找表,基于该特征值查找表可以快速确定CRC错误的位置,进一步的提高纠错的效率。
S103,将已纠错CRC数据包进行输出。
在S102的基础上,本步骤旨在将已纠错CRC数据包进行输出。也就是最后将该纠错后的数据包进行输出。
进一步的,本步骤可以包括:
基于并行队列将已纠错CRC数据包进行输出。
可见,本可选方案主要是说明基于并行队列将已纠错CRC数据包进行输出。也就是,以更大的数据宽度将数据进行输出,以便提高数据输出,以及被其他设备读取的速度,进一步提高数据的吞吐量。
此外,本实施例还可以包括:
步骤1,对已纠错CRC数据包进行CRC二次校验;
步骤2,当CRC二次校验不通过时,发送纠错失败消息,并执行防错操作。
可见,本可选方案中主要是说明如何进行再次校验。本可选方案中,对已纠错CRC数据包进行CRC二次校验,当CRC二次校验不通过时,发送纠错失败消息,并执行防错操作。
综上,本实施例通过FPGA对待校验CRC数据包进行CRC校验,并在校验不通过时,基于FPGA本身的并行队列对该待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包,也就是通过并行的手段对待校验CRC数据包进行纠错处理,提高了数据数据包的处理效率,当出现较大的数据包时可以直接进行处理,而不用将该数据包进行重传避免了对带宽的占用,提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。
以下通过一个具体的实施例,对本申请提供的一种CRC纠错方法做进一步说明。
请参考图2,图2为本申请实施例所提供的一种CRC纠错方法的结构流程图。
本实施例中,该方法基于多个模块实现,可以包括:
数据接收模块1:从底层通信协议中获取有效传输数据,有效数据接口宽度为32bit,即每个时钟周期接收32bit数据,256个时钟信号为1帧完整数据包,则每次处理数据长度为256*32bit=8192bit=8Kbit。其中最后32bit数据为接收到的CRC校验码。
CRC计算模块2:对接收的数据进行CRC计算,输出CRC检验码。
错误判定模块3:根据计算得到的CRC校验码,判断接收数据是否出现错误。依据CRC算法原理,在接收完8Kbit数据后,不出现数据错误的话,最终算出的CRC校验码为0,若不为0,则表明数据在传输过程中出现错误。
错误bit位定位模块4:根据CRC纠错算法原理,针对于8Kbit数据,让其中某一位bit发生翻转,即发生bit位错误时,按照公式T=RX mod G计算出此时的CRC校验值,作为特征值,并与该bit位的位置信息组成关联数据。将每一位bit发生错误时的特征值都计算出来,并与其对应的bit位位置信息关联,作成特征值查找表,保存在非易失存储器中。当接收数据存在数据错误时,通过计算得到的CRC校验码即可计算出特征值,然后再去特征值查找表中找到与特征值对应的bit位位置信息,即得到了接收数据出错的位置。
为了提高查找的效率,本实施例中利用二分法查找算法,具体处理如下:
首先,特征值查找表中的数据按照图3的形式进行组织。
其中,图3为本申请实施例所提供的一种CRC纠错方法的特征值查找表示意图。
其中,位置信息范围为0-8191,查找表中的数据按照特征值从小到大的顺序排列。
然后,根据特征值,采用二分查找算法在特征值表中查找与之相同的表项,根据二分查找算法原理,最多只需要log2*8192=13次查找就可得到最终结果,以此来提高查找效率。
数据变换与缓存模块5:为了缩短数据纠错及再校验处理时间,需要将数据做变换,即将32bit宽度的接收数据存放的128bit宽度的FIFO(First Input First Output,先入先出存储器)中。
请参考图4,图4为本申请实施例所提供的一种CRC纠错方法的数据缓存示意图。
利用FPGA硬件并行处理能力,原本256个时钟信号的接收数据,在缓存FIFO之后,接下来的纠错及再校验处理可以缩短到64个时钟,提高了数据处理效率,不会对下一次的数据接收造成影响。
数据纠错模块6:根据错误bit位定位模块输出具体错误的bit位位置信息,将缓存FIFO中的数据读出,并将指定位置的bit位数据进行修正,将修正后的数据输入到下一级模块。
数据再校验模块7:对于纠错后的数据再进行CRC校验计算,验证是否纠错成功并输出到下一级模块。存在1bit以上错误的情况会导致纠错失败,纠错失败,则清空缓存数据,执行其他防错处理;纠错成功,则通知下一级数据有效继续其他相应处理。
数据输出缓存模块8:纠错后的数据存入缓存FIFO中,FIFO结构与接收数据缓存FIFO的结构相同,便于提高后续数据处理的效率。
可见,本实施例通过FPGA对待校验CRC数据包进行CRC校验,并在校验不通过时,基于FPGA本身的并行队列对该待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包,也就是通过并行的手段对待校验CRC数据包进行纠错处理,提高了数据数据包的处理效率,当出现较大的数据包时可以直接进行处理,而不用将该数据包进行重传避免了对带宽的占用,提高CRC纠错处理的数据量,提高大数据量的数据量的处理效率。
下面对本申请实施例提供的CRC纠错装置进行介绍,下文描述的CRC纠错装置与上文描述的CRC纠错方法可相互对应参照。
请参考图5,图5为本申请实施例所提供的一种CRC纠错装置的结构示意图。
本实施例中,该装置可以包括:
数据包校验模块100,用于对接收到的待校验CRC数据包进行CRC校验;
数据包纠错模块200,用于当CRC校验不通过时,基于FPGA的并行队列对待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;
数据包输出模块300,用于将已纠错CRC数据包进行输出。
可选的,该数据包校验模块100,具体用于通过多个时钟周期接收待校验CRC数据包;对待校验CRC数据包进行CRC校验。
可选的,该数据包纠错模块200,具体用于对待校验CRC数据包进行数据宽度变换,并存储至FPGA的并行队列中;其中,并行队列的数据宽度大于待校验CRC数据包的数据宽度;当CRC校验不通过时,对待校验CRC数据包进行错误定位,得到错误bit位;基于错误bit位对并行队列中的待校验CRC数据包进行纠错处理,得到已纠错CRC数据包。
可选的,该装置还可以包括:
二次校验模块,用于对已纠错CRC数据包进行CRC二次校验;当CRC二次校验不通过时,发送纠错失败消息,并执行防错操作。
可选的,该数据包输出模块300,具体用于基于并行队列将已纠错CRC数据包进行输出。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的CRC纠错方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的CRC纠错方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种CRC纠错方法、CRC纠错装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种CRC纠错方法,其特征在于,包括:
FPGA对接收到的待校验CRC数据包进行CRC校验;
当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;
将所述已纠错CRC数据包进行输出。
2.根据权利要求1所述的CRC纠错方法,其特征在于,FPGA对接收到的待校验CRC数据包进行CRC校验,包括:
所述FPGA通过多个时钟周期接收所述待校验CRC数据包;
对所述待校验CRC数据包进行CRC校验。
3.根据权利要求2所述的CRC纠错方法,其特征在于,对所述待校验CRC数据包进行CRC校验,包括:
对所述待校验CRC数据包进行CRC计算,得到CRC校验码;
判断所述CRC校验码是否等于预设值;
若是,则判定所述CRC校验通过;
若否,则判定所述CRC校验不通过。
4.根据权利要求1所述的CRC纠错方法,其特征在于,当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包,包括:
对所述待校验CRC数据包进行数据宽度变换,并存储至所述FPGA的并行队列中;其中,所述并行队列的数据宽度大于所述待校验CRC数据包的数据宽度;
当所述CRC校验不通过时,对所述待校验CRC数据包进行错误定位,得到错误bit位;
基于所述错误bit位对所述并行队列中的待校验CRC数据包进行纠错处理,得到所述已纠错CRC数据包。
5.根据权利要求4所述的CRC纠错方法,其特征在于,当所述CRC校验不通过时,对所述待校验CRC数据包进行错误定位,得到错误bit位,包括:
基于CRC纠错算法原理对每一位的错误bit数据进行计算,得到多个特征值;
将所述多个特征值与对应的bit位位置信息进行关联,得到特征值查找表;
当所述CRC校验不通过时,对所述CRC校验的CRC校验码进行计算,得到目标特征值;
基于所述目标特征值对所述特征值查找表进行查找,得到所述错误bit位。
6.根据权利要求1所述的CRC纠错方法,其特征在于,还包括:
对所述已纠错CRC数据包进行CRC二次校验;
当所述CRC二次校验不通过时,发送纠错失败消息,并执行防错操作。
7.根据权利要求1所述的CRC纠错方法,其特征在于,将所述已纠错CRC数据包进行输出,包括:
基于所述并行队列将所述已纠错CRC数据包进行输出。
8.一种CRC纠错装置,其特征在于,包括:
数据包校验模块,用于对接收到的待校验CRC数据包进行CRC校验;
数据包纠错模块,用于当所述CRC校验不通过时,基于所述FPGA的并行队列对所述待校验CRC数据包进行并行纠错处理,得到已纠错CRC数据包;
数据包输出模块,用于将所述已纠错CRC数据包进行输出。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的CRC纠错方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的CRC纠错方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111149469.8A CN113904754A (zh) | 2021-09-29 | 2021-09-29 | 一种crc纠错方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111149469.8A CN113904754A (zh) | 2021-09-29 | 2021-09-29 | 一种crc纠错方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113904754A true CN113904754A (zh) | 2022-01-07 |
Family
ID=79189033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111149469.8A Pending CN113904754A (zh) | 2021-09-29 | 2021-09-29 | 一种crc纠错方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113904754A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158316A (zh) * | 2011-04-25 | 2011-08-17 | 中兴通讯股份有限公司 | 一种64bit位宽的并行CRC32校验方法及装置 |
CN106788878A (zh) * | 2015-11-24 | 2017-05-31 | 中国航空工业第六八研究所 | 一种具有单比特纠错功能的并行crc纠错方法 |
CN108337069A (zh) * | 2018-01-19 | 2018-07-27 | 国网辽宁省电力有限公司 | 一种改进的降低误码率的末端并行分组crc校验系统 |
CN112702065A (zh) * | 2020-12-18 | 2021-04-23 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN113050519A (zh) * | 2021-03-31 | 2021-06-29 | 山东商业职业技术学院 | 一种基于crc16的单比特纠错fpga实现方法 |
-
2021
- 2021-09-29 CN CN202111149469.8A patent/CN113904754A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158316A (zh) * | 2011-04-25 | 2011-08-17 | 中兴通讯股份有限公司 | 一种64bit位宽的并行CRC32校验方法及装置 |
CN106788878A (zh) * | 2015-11-24 | 2017-05-31 | 中国航空工业第六八研究所 | 一种具有单比特纠错功能的并行crc纠错方法 |
CN108337069A (zh) * | 2018-01-19 | 2018-07-27 | 国网辽宁省电力有限公司 | 一种改进的降低误码率的末端并行分组crc校验系统 |
CN112702065A (zh) * | 2020-12-18 | 2021-04-23 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN113050519A (zh) * | 2021-03-31 | 2021-06-29 | 山东商业职业技术学院 | 一种基于crc16的单比特纠错fpga实现方法 |
Non-Patent Citations (3)
Title |
---|
王栋: "基于多比特纠错算法研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, pages 25 - 30 * |
韩骥宇,李锐: "具有单比特纠错功能的并行CRC 实现方法", 《大众科技》, pages 1 - 3 * |
韩骥宇,李锐: "具有单比特纠错功能的并行CRC实现方法", 《大众科技》, pages 1 - 3 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101621471B (zh) | 用于发送和接收分组的系统 | |
JPH07235880A (ja) | デジタルデータ符号化方式 | |
KR101118194B1 (ko) | 손실된 패킷 재건을 위한 방법 및 상기 방법을 수행하기 위한 디바이스 | |
CN108600124B (zh) | 基于安全协议的网络拆包和组包方法 | |
JP2012147197A (ja) | 通信装置、通信方法、及び通信プログラム | |
CN106656424B (zh) | 一种数据传输的校验方法 | |
CN112702065B (zh) | Fpga码流数据校验方法及装置 | |
US10014981B2 (en) | Transmission method and device based on management data input/output multi-source agreements | |
KR101110625B1 (ko) | 전송 데이터의 무결성 검사 방법 및 수단 | |
US7516393B2 (en) | System and method of error detection for unordered data delivery | |
CN112532359B (zh) | 接收端基于数据重传数据进行内容合并的方法及装置 | |
JP3217716B2 (ja) | 無線パケット通信装置 | |
CN113904754A (zh) | 一种crc纠错方法及相关装置 | |
JP6668588B2 (ja) | 誤り訂正装置及び誤り訂正方法 | |
CN112073153B (zh) | 虚检判断方法及装置、存储介质、终端 | |
CN112564858A (zh) | 卫星导航用crc纠错方法及系统 | |
JP2012124642A (ja) | 受信装置、データ転送装置、及びプログラム | |
TWI399042B (zh) | To detect the wrong position of the detection device | |
CN116722954B (zh) | 一种编解码验证系统、方法、设备以及存储介质 | |
JP2019083507A (ja) | 受信装置、送信装置、受信方法及び送信方法 | |
US20050193314A1 (en) | Method of correcting an erroneous frame by a receiver | |
WO2021152870A1 (ja) | 送信装置、受信装置及び通信方法 | |
Alom et al. | Enhanced Hamming Codes: Reducing Redundant Bit for Efficient Error Detection and Correction | |
Mandel et al. | Investigating CRC Polynomials that Correct Burst Errors. | |
JP2007228487A (ja) | エラー訂正方法、通信システム、送信装置及び受信装置 |
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 |