一种快速的CRC校验方法及装置与流程

文档序号:12621916阅读:522来源:国知局

本发明属于计算机技术及通信技术领域,尤其是涉及一种快速的CRC校验方法及装置。



背景技术:

在数据通信的过程中,由于各种因素的干扰,无论传输系统设计的多么完美,错误总会发生。这种错误可能只是一比特的错误(由于某种干扰使得某比特数据由1变为了0,或者由0变为了1)。但是,就仅仅这一比特的错误就会导致整个传输数据的一帧或者多帧数据的错误。所以,为了尽量提高接收端收到数据的正确率,一般会在接收端使用接收到的数据之前对数据进行差错检验,当且仅当检验的结果为正确时接收端才真正接收此次传输数据。检验的方式有很多种,其中最常见的就是CRC循环冗余校验。

一般的CRC产生方法每次运算只能产生一比特数据的CRC校验码,这在需要大量数据传输的通信系统中,这个效率是远远不能满足系统校验需求的。



技术实现要素:

有鉴于此,本发明旨在提出一种快速的CRC校验方法,以实现在高速的通信系统中来检验传输的数据是否正确,从而舍弃校验失败的数据,提高系统传输的正确性。

为达到上述目的,本发明的技术方案是这样实现的:

一种快速的CRC校验方法,包括如下步骤:

一种快速的CRC校验方法,包括如下步骤:

(1)每个时钟周期产生8比特数据的初始CRC校验码;

(2)将接收到的数据按字节的形式进行整理,形成8比特位宽的数据;

(3)将接收的8比特数据中的某些比特和初始CRC校验码的某些比特进行异或操作,然后按比特进行翻转,最后取反得到最终的CRC校验码,最终将数据和最终的CRC校验码一起发送;

(4)在接收端对接收到的数据和最终的校验码一起做校验,将结果与固定在系统内部的常值作比较,如果一致,则说明传输正确,否则,传输错误。

进一步的,所述步骤(4)中的校验过程为将接收到数据和最终的CRC校验码中的某些特定比特和初始CRC校验码中的某些特定比特做异或运算。

进一步的,所述步骤(4)中所述常值为将初始CRC校验码通过传统的除法取余得到的数据,经过按比特翻转,再取反获得。

相对于现有技术,本发明所述的一种快速的CRC校验方法具有以下优势:本发明提出一种快速的CRC校验方法,相对于传统的通过除法取余,每次产生1比特数据的32位校验码;本发明通过特定的算法,每次使用8比特的数据和原始的初始CRC校验码按照特定的规则进行异或运算,可以在一个时钟周期内产生8比特数据的32位CRC校验码;这样一来,大大的提高了CRC校验码的产生效率,进而提升了整个通信系统的性能。

本发明的另一目的在于提出一种快速的CRC校验装置,在不怎么增加硬件面积的条件下,提高CRC校验码的产生效率,进而提升整个通信系统的性能。

为实现上述目的,本发明的技术方案是这样实现的:

一种快速的CRC校验装置,其特征在于:包括

用于产生初始CRC校验码的CRC校验码产生装置;

用于将接收到的数据按字节的形式进行整理,形成8比特位宽的数据的数据接收装置;

用于将接收的8比特数据中的某些比特和原始CRC校验码的某些比特进行异或操作,并按比特翻转然后取反得到最终的CRC校验码的CRC最终处理装置;

在接收端对接收到的数据和最终的校验码一起做校验,将结果与固定在系统内部的常值作比较的CRC比较装置。

所述一种快速的CRC校验装置与上述一种快速的CRC校验方法相对于现有技术所具有的优势相同,在此不再赘述。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例所述一种快速的CRC校验方法的结构示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面将参考附图并结合实施例来详细说明本发明。

如附图1所示,一种快速的CRC校验方法,具体包括如下步骤:

(1)每个时钟周期产生8比特数据的初始CRC校验码;

(2)将接收到的数据按字节的形式进行整理,形成8比特位宽的数据;

(3)将接收的8比特数据中的某些比特和初始CRC校验码的某些比特进行异或操作,然后按比特进行翻转,最后取反得到最终的CRC校验码,最终将数据和最终的CRC校验码一起发送;

(4)在接收端对接收到的数据和最终的校验码一起做校验,将结果与固定在系统内部的常值作比较,如果一致,则说明传输正确,否则,传输错误。

校验过程为将接收到数据和最终的CRC校验码中的某些特定比特和原始的CRC校验码中的某些特定比特做异或运算。

常值为将初始CRC校验码通过传统的除法取余得到的数据,经过按比特翻转,再取反获得。

由此可见,通过使用本发明的一种快速的CRC校验方法,每次运算可以产生8比特数据的CRC校验码(综合速度和面积的因素),相对于原来的一比特数据校验码的产生,这就大大的提高了CRC校验码的产生效率,进而提升了整个通信系统的性能。

本发明所述的快速CRC校验装置包括

CRC校验码产生单元,用于产生初始校验码以及存储每8比特数据经过运算后得到的初始CRC校验码;

数据接收装置,本装置用来接收需要发送的数据,所需要发送的数据以word(32比特位宽)的形式发送到本单元,本单元接收到所需要传输的数据,并将其以字节(8比特位宽)的形式发送出去,发送的顺序为由高字节到低字节;

CRC最终处理装置,用于将接收的8比特数据中的某些比特和初始CRC校验码的某些比特进行异或操作,然后按比特进行翻转,最后取反得到最终的CRC校验码;

CRC比较装置,用于将接收到的数据和最终CRC校验码进行计算,并且和内置好的数据进行比较,如果一致,则证明接收到的数据正确,则系统可以接受本次传输的数据,否则,则传输错误,系统放弃本次接收的数据比较装置。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1