CN106330400A - 一种快速的crc校验方法及装置 - Google Patents
一种快速的crc校验方法及装置 Download PDFInfo
- Publication number
- CN106330400A CN106330400A CN201610780811.7A CN201610780811A CN106330400A CN 106330400 A CN106330400 A CN 106330400A CN 201610780811 A CN201610780811 A CN 201610780811A CN 106330400 A CN106330400 A CN 106330400A
- Authority
- CN
- China
- Prior art keywords
- bit
- crc check
- data
- check code
- crc
- 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
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
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Abstract
本发明提供了一种快速的CRC校验方法及装置,校验方法首先接收需要发送的数据,利用CRC原始校验码以及与原始数据一起作用来产生所需要传输数据的CRC原始校验码,将CRC原始校验码进行一系列的运算,最终产生在传输过程中使用的CRC校验码,接收时比较接收到的数据与其校验码是否一致,以判断此次传输是否成功。本发明通过特定的算法,每次使用8比特的数据和原始的初始CRC校验码按照特定的规则进行异或运算,可以在一个时钟周期内产生8比特数据的32位CRC校验码;这样一来,大大的提高了CRC校验码的产生效率,进而提升了整个通信系统的性能。
Description
技术领域
本发明属于计算机技术及通信技术领域,尤其是涉及一种快速的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校验码进行计算,并且和内置好的数据进行比较,如果一致,则证明接收到的数据正确,则系统可以接受本次传输的数据,否则,则传输错误,系统放弃本次接收的数据比较装置。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种快速的CRC校验方法,其特征在于:包括如下步骤
(1)每个时钟周期产生8比特数据的初始CRC校验码;
(2)将接收到的数据按字节的形式进行整理,形成8比特位宽的数据;
(3)将接收的8比特数据中的某些比特和初始CRC校验码的某些比特进行异或操作,然后按比特进行翻转,最后取反得到最终的CRC校验码,最终将数据和最终的CRC校验码一起发送;
(4)在接收端对接收到的数据和最终的校验码一起做校验,将结果与固定在系统内部的常值作比较,如果一致,则说明传输正确,否则,传输错误。
2.根据权利要求1所述的一种快速的CRC校验方法,其特征在于:所述步骤(4)中的校验过程为将接收到数据和最终的CRC校验码中的某些特定比特和初始CRC校验码中的某些特定比特做异或运算。
3.根据权利要求1所述的一种快速的CRC校验方法,其特征在于:所述步骤(4)中所述常值为将初始CRC校验码通过传统的除法取余得到的数据,经过按比特翻转,再取反获得。
4.一种快速的CRC校验装置,其特征在于:包括
用于产生原始的CRC校验码的CRC校验码产生装置;
用于将接收到的数据按字节的形式进行整理,形成8比特位宽的数据的数据接收装置;
用于将接收的8比特数据中的某些比特和原始CRC校验码的某些比特进行异或操作,并按比特翻转然后取反得到最终的CRC校验码的CRC最终处理装置;
在接收端对接收到的数据和最终的校验码一起做校验,将结果与固定在系统内部的常值作比较的CRC比较装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610780811.7A CN106330400A (zh) | 2016-08-31 | 2016-08-31 | 一种快速的crc校验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610780811.7A CN106330400A (zh) | 2016-08-31 | 2016-08-31 | 一种快速的crc校验方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106330400A true CN106330400A (zh) | 2017-01-11 |
Family
ID=57789704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610780811.7A Pending CN106330400A (zh) | 2016-08-31 | 2016-08-31 | 一种快速的crc校验方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106330400A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107046541A (zh) * | 2017-04-18 | 2017-08-15 | 深圳市法马新智能设备有限公司 | 一种无线收发加密通信方法及其装置 |
CN107979446A (zh) * | 2017-11-30 | 2018-05-01 | 广州科腾信息技术有限公司 | 一种IEC61850报告数据传输报文的bcc异或校验方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290196B1 (en) * | 2003-03-21 | 2007-10-30 | Cypress Semiconductor Corporation | Cyclical redundancy check using nullifiers |
CN101404557A (zh) * | 2008-11-28 | 2009-04-08 | 炬力集成电路设计有限公司 | 一种循环冗余校验码生成装置及方法 |
CN102655441A (zh) * | 2011-03-04 | 2012-09-05 | 上海日省电子有限公司 | 一种通信自动纠错编码方法和系统 |
CN104144465A (zh) * | 2013-05-08 | 2014-11-12 | 华为终端有限公司 | 一种服务发现方法及装置 |
-
2016
- 2016-08-31 CN CN201610780811.7A patent/CN106330400A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290196B1 (en) * | 2003-03-21 | 2007-10-30 | Cypress Semiconductor Corporation | Cyclical redundancy check using nullifiers |
CN101404557A (zh) * | 2008-11-28 | 2009-04-08 | 炬力集成电路设计有限公司 | 一种循环冗余校验码生成装置及方法 |
CN102655441A (zh) * | 2011-03-04 | 2012-09-05 | 上海日省电子有限公司 | 一种通信自动纠错编码方法和系统 |
CN104144465A (zh) * | 2013-05-08 | 2014-11-12 | 华为终端有限公司 | 一种服务发现方法及装置 |
Non-Patent Citations (1)
Title |
---|
常天海,胡鉴: "基于FPGA的CRC并行算法研究与实现", 《微处理机》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107046541A (zh) * | 2017-04-18 | 2017-08-15 | 深圳市法马新智能设备有限公司 | 一种无线收发加密通信方法及其装置 |
CN107046541B (zh) * | 2017-04-18 | 2023-02-03 | 深圳市法马新智能设备有限公司 | 一种无线收发加密通信方法及其装置 |
CN107979446A (zh) * | 2017-11-30 | 2018-05-01 | 广州科腾信息技术有限公司 | 一种IEC61850报告数据传输报文的bcc异或校验方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473088B (zh) | 一种单片机在线升级方法和系统 | |
CN105653951B (zh) | 基于数字证书的信任等级来反病毒检查文件的系统和方法 | |
CN106055933B (zh) | 一种客户端软件代码校验的方法及系统 | |
CN101002423A (zh) | 用于生物统计数据编码及身份控制的方法和装置 | |
CN108268368A (zh) | 一种生成测试用例脚本的方法和装置 | |
JP2018505506A (ja) | 機械ベースの命令編集 | |
CN105512030A (zh) | 一种基于卫星指令码字智能构造提升卫星测试效率的方法 | |
CN103092258B (zh) | 时钟产生电路自校正系统及其校正方法 | |
CN106485140A (zh) | 一种电能表的升级方法和升级系统 | |
CN112380046B (zh) | 计算结果校验方法、系统、装置、设备及存储介质 | |
CN112131609A (zh) | 基于Merkle树的电能质量数据交换格式文件完整性校验方法及系统 | |
CN106330400A (zh) | 一种快速的crc校验方法及装置 | |
US20110225559A1 (en) | Logic verifying apparatus, logic verifying method, and medium | |
CN105469783A (zh) | 音频识别方法及装置 | |
CN107861833A (zh) | 识别码的生成方法和装置、计算机设备、可读存储介质 | |
CN109165209A (zh) | 数据库中对象类型的数据校验方法、装置、设备及介质 | |
CN104618112A (zh) | 一种对动态令牌的动态口令校验的方法 | |
CN111079415A (zh) | 一种基于搭配冲突的中文自动查错方法 | |
CN106897637A (zh) | 业务校验方法和装置 | |
CN112733478B (zh) | 用于对设计进行形式验证的装置 | |
CN106446125B (zh) | 提升数据质量的方法及装置 | |
CN114564336A (zh) | 数据一致性校验方法、装置、设备以及存储介质 | |
CN105653390A (zh) | 一种SoC系统的校验方法 | |
CN115062312A (zh) | 智能合约漏洞检测方法、装置、设备和存储介质 | |
CN116048868A (zh) | 代码生成方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170111 |