`
lijuntian526
  • 浏览: 46641 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

什么是CRC和CRC检验?

    博客分类:
  • JAVA
阅读更多

名词解释

CRC(循环冗余检查)--一种数据传输检错功能,对数据进行多项式计算,并将得到的和数附在帧的后面。接收设备也执行类似的算法。

什么是CRC校验?

CRC校验采用多项式编码方法。
被处理的数据块可以看作是一个二进制多项式,例如,10110101可以看作是2^7+2^5+2^4+2^2+2^0,多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不进,错位,和逻辑异或运算一致。
采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。
CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。
CCITT 建议:2048 kbit/s的PCM基群设备采用CRC-4方案,使用的CRC校验采用16位CRC校验。在IBM的同步数据链路控制规程SDLC的帧校验序列FCS 中,使用CRC-16。g(x)的位数越高,检错能力就越强。由于CRC-32的可靠性,把CRC-32用于重要数据传输十分合适,所以在通信、计算机等领域运用十分广泛。在一些UART通信控制芯片(如MC6582、Intel8273和Z80-SIO)内,都采用了CRC校验码进行差错控制;以太网卡芯片、MPEG解码芯片中,也采用CRC-32进行差错控制。
分享到:
评论

相关推荐

    CRC校验工具(CRC8,CRC16,CRC32)

    本工具支持常用的所有CRC校验 比如: CRC-4/TU CRC-5/EPC CRC-5/ITU CRC-6/TU CRC-7/MMC CRC-8 CRC-8/ITU CRC-8/ROHC CRC-8/MAXIM CRC-16/BM CRC-16/MAXIM CRC-16/USB CRC-16/MODBUS CRC-16/CCITT CRC-16/CCITT-...

    Modbus RTU CRC检验方法

    //生成modbus CRC数据var CRC16Lo, CRC16Hi, CL, CH, UseHi, UseLo: Dword; i, index: integer;begin CRC16Lo := ; //CRC16Lo为CRC寄存器低8位 CRC16Hi := ; //CRC16Hi为CRC寄存器高8位 CL := $1; CH := ; // A001 ...

    CRC8-PEC检验工具

    CRC8检验工具,IIC PEC检验工具, I2C PEC检验工具, PEC检验工具,

    循环冗余检验(CRC)原理与实现

    循环冗余检验(CRC)原理与实现,CRC的分类、原理、算法等!

    CRC8/CRC16/CRC32最全总结(源码和生成器)

    所有CRC8,、CRC16,CRC32算法。详见《CRC8/CRC16/CRC32最全总结》https://blog.csdn.net/lianyunyouyou/article/details/107217125

    CRC_code_crc校验_CRCMATLAB_crc检测_crc_CRC校验无法检出的错误_

    实现CRC校验的MATLAB代码,CRC_gen.m用于生成所需传送的信息,输入参数是原始数据D和CRC生成器G,输出参数是传输的数据D+R。CRC_test.m用于测试收到的信息是否能检出1/2/3bit的差错,输入参数为接收到的数据D+R和CRC...

    CRC8 MAXIM检验函数

    CRC8 MAXIM检验函数,开发语言:PHP。先计算第一个字节的crc结果,然后把第一个字节的crc结果与第二个字节进行异或, 异或后的值再进行一次crc计算就可以了,多个字节也是反复这过程就好

    crc检测 crc检测 c++语言写的

    crc检测 c++实现的crc校验的小程序,欢迎大家下载,十分好用

    crc.v CRC校验verilog代码 CRC32 CRC16 CRC8 串并兼容 参数化设计

    自己写的verilog代码 已经添加适当注释 可以说囊括了所有CRC算法。。。 自定义生成多项式 初始化异或值 输出异或值 校验位和每拍输入数据的位宽都是参数化设计 附带testbench测试文件 已经使用后仿真验证

    CRC循环检测算法_CRC32_算法_可算得余数和商_matlab源码

    资源名:CRC循环检测算法_CRC32_算法_可算得余数和商_matlab源码 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合...

    CAN总线通信的CRC校验方法

    数据校验是为保证数据的... 在CAN总线通信过程中CAN控制器具备完整的错误检测能力,其中包含:位错误检测、格式错误检测、填充错误检测、应答错误检测和CRC错误检测。作为一种重要的错误检测手段,CRC错误检测是接收

    crc检验算法工具

    crc检验算法工具,可以快速计算crc校验值。可以计算的crc类别有:CRC校验;MODBUS串口LRC校验;MODBUS串口CRC校验; checksum; crc16.

    QT 下的 CRC16(Modbus)校验类代码【全】

    crc_Checking(...):将有crc校验码的报文传入该函数,会检测你的报文中crc校验码是否正确。crcCalculation(...):将字符串传入该函数,自动计算出crc校验码并且添加到报文之后,返回携带crc校验码的新报文。

    crc8查表法校验程序和校验检查软件

    crc8校验的原理,程序和检验软件 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。 CRC校验可以简单地描述为:例如...

    CRC32 查表法源代码详细说明

    CRC32 查表法代码检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,在数据...

    VB.NET 2010 CRC检验算法

    CRC16=0x6D4D / 27981 CRC16(Modbus)=0xDD4C / 56652 CRC16(Sick) =0x3712 / 14098 CRC-CCITT (0x0000) =0x4743 / 18243 CRC-CCITT (0xffff) =0x5A4C / 23116 CRC-CCITT (0x1d0f) =0xC383 / 50051 CRC-CCITT (Kermit...

    crc校验字节型算法

    (4)检测移出位是 1 还是 0。若是 1,则生成多项式0x A001 和该寄存器进行“异或”运算。若是 0,则返回步骤(3);(5)重复步骤(3)和(4),直到右移 8 次,这样待测数据的 8 位数据全部进行了处理 ;(6)将...

    testCRC8.rar_CRC 性能_CRC检错 Matlab_CRC检错码_crc8matlab_matlab做crc8仿真

    使用MATLAB仿真CRC-8校验码在二进制对称信道中的检错性能

    CRC16检验源程序

    此源程序用于CRC16校验,此源程序用于CRC16校验,此源程序用于CRC16校验此源程序用于CRC16校验此源程序用于CRC16校验此源程序用于CRC16校验

    易语言汇编crc16校验

    易语言汇编crc16校验源码,汇编crc16校验,Asm_CRC16

Global site tag (gtag.js) - Google Analytics