数据通信中应用最广的一种检验差错方法。方法是在发送端用数学方法产生一个循环码,叫做循环冗余检验码。在信息码位之后随信息一起发出。在接收端也用同样方法产生一个循环冗余校验码。将这两个校验码进行比较,如果一致就证明所传信息无误;如果不一致就表明传输中有差错,并要求发送端再传输。
==============================================
在串行传送(磁盘、通讯)中,广泛采用循环冗余校验码(CRC)。CRC也是给信息码加上几位校验码,以增加整个编码系统的码距和查错纠错能力。
CRC的理论很复杂,一般书上只介绍已有生成多项式后计算校验码的方法。检错能力与生成多项式有关,只能根据书上的结论死记。
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。
校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2R除以生成多项式G(x)得到的余数就是校验码。
分享到:
相关推荐
### 循环冗余校验CRC的算法分析和程序实现 #### 概述 在现代通信技术中,确保数据传输的准确性和效率是一项至关重要的任务。为了提高数据传输的可靠性,差错控制技术应运而生。其中,循环冗余校验(CRC)作为一种...
CRC 校验原理解释以及范例 CRC 校验是一种常用的差错校验码,在数据通信领域中广泛应用。它的特征是信息字段和校验字段的长度可以任意选定。下面将详细介绍 CRC 校验的原理、生成方法、软件生成方法和源代码分析。 ...
`CRC.txt`和`www.pudn.com.txt`这两个文件可能包含了CRC16计算的示例代码或者详细解释。`CRC.txt`很可能是CRC16算法的Delphi或C语言实现代码,而`www.pudn.com.txt`可能是从网络资源站pudn.com下载的关于CRC的文档或...
根据提供的文件信息,本文将详细解释51单片机上CRC8与CRC16校验算法的实现原理及其对应的汇编代码。此算法主要用于数据完整性校验,在通信领域有着广泛的应用。 ### 一、CRC(循环冗余校验)基本概念 CRC是一种...
文件"www.pudn.com.txt"可能包含关于这些主题的详细资料,如CRC算法的原理、单片机中实现CRC的汇编代码或C代码示例、计算过程的解释等。而"CRC算法与实现"可能是更深入的CRC算法教程或实现指南,包括不同应用场景的...
### CRC校验原理详解 #### 一、CRC校验码简介 循环冗余校验(Cyclic Redundancy Check,简称CRC)是一种广泛应用于数据通信领域的差错检测方法。CRC码的主要特点是信息字段和校验字段的长度可以任意选定,这使得它...
例如,提供的"Micro 'n Power.chm"文件可能包含一个关于CRC32的详细解释、代码实现和应用实例。CHM文件是Microsoft编写的帮助文档格式,其中可能涵盖了CRC32的理论基础、计算过程、C/C++或Python等编程语言的实现...
文件“www.pudn.com.txt”可能是关于CRC8算法的详细解释或者源代码的注释,通常这类文本文件会提供一些背景知识、使用说明或者参考资料。而“检验CRC8”可能是一个可执行文件或源代码,实现了CRC8的计算功能,用户...
压缩包中的"FX1S CRC"可能包含了一个完整的CRC计算程序示例,或者是详细解释如何在FX1S系列PLC上实现CRC验证的文档。用户可以参考这些资料,学习如何根据自己的需求构建CRC验证程序,从而提升FX1S PLC系统的数据传输...
以下是关于CRC-6、CRC-8、CRC-12、CRC-16和CRC-32的详细解释。 1. CRC-6:CRC-6通常用于简单的通信系统,如无线传感器网络。它产生6位的校验码,用于检测数据中的单个错误。CRC-6的多项式可以是不同的,但常见的有G...
为了更深入地理解CRC16_CCITT的工作原理,我们可以通过一个简单的示例来进一步解释: 假设我们有一个包含三个字节的缓冲区`{0x01, 0x02, 0x03}`,我们需要计算这个缓冲区的CRC16_CCITT校验值。 1. **初始化**: -...
3. **接口文档**:详细说明了库的使用方式,包括函数原型、参数说明和返回值解释。这对于开发者来说是至关重要的,他们可以通过阅读文档了解如何正确地调用CRC32计算功能。 在C语言中,CRC32的计算过程通常包括以下...
因而,在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都...
下面将详细解释CRC16的基本原理以及如何在Java中编写相关代码。 **CRC16基本原理** CRC16是一种基于多项式除法的校验方法。它的核心思想是,将待校验的数据视为一个二进制数,选择一个预定义的固定长度的CRC生成...
在"CRC.zip_crc校验是讲解_crc的全面解释_taste8ju"这个压缩包中,包含的CRC.pdf文件很可能详细介绍了CRC校验的概念、原理、计算方法以及在实际应用中的例子。这份资料可以帮助读者深入理解CRC,包括如何选择合适的...
根据提供的文件信息,本文将详细解释CRC16的原理及其在ModBus和DLMS协议中的应用。 ### 一、CRC16基本原理 CRC (Cyclic Redundancy Check) 是一种用于检测数字通信中错误的方法。CRC16是一种特定的CRC实现方式,它...
下面将详细解释CRC12校验的过程。 首先,CRC12校验的核心在于生成多项式。生成多项式是一个具有12位的二进制数,例如G(x) = x^12 + x^5 + 1。这个多项式定义了整个校验过程的规则。 1. **前缀处理**:在待校验的...
CRC16算法
"说明.txt"可能包含关于如何使用CRC计算器及解释MODBUS协议中CRC校验码的详细步骤和注意事项。"bs_out.txt"和"bs_in.txt"可能分别代表的是经过CRC校验的数据输出文件和原始输入文件,它们可以用于测试CRC计算的正确...
以下是对"CRC校验流程图1"的详细解释: 1. **开始**: - CRC校验过程从初始化开始,这是整个流程的第一步。 2. **CRC寄存器初始化为:0xffff**: - 在开始时,CRC寄存器被设置为一个特定的初始值,通常是全1的二...