我是靠谱客的博主 腼腆火车,最近开发中收集的这篇文章主要介绍循环冗余校验----CRC校验,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、CRC校验概念

即循环冗余校验码(Cyclic Redundancy Check),是数据通信领域中最常用的一种查错校验码,循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。其特征是信息字段和校验字段的长度可以任意选定。

二、循环冗余校验码(CRC)的基本原理

在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。

三、生成步骤

1、将生成多项式G(X)转换成对应的二进制数。
2、将信息码左移R(R为G(X)的阶)位,相当于给对应的信息多项式M(X)*X^R。
3、用生成多项式(二进制数)对信息码做除,即:(M(X)*X^R)/G(X)得到R位的余数。
4、将余数拼到信息码左移后空出的位置,得到完整的CRC码。

注意事项:
A、生成多项式的最高位和最低位必须为1。
B、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。
C、不同位发生错误时,应该使余数不同。
D、对余数继续做除,应使余数循环。
E、CRC校验码位数 = 生成多项式位数 - 1。

示例1:
这里写图片描述

示例2:
这里写图片描述

四、CRC和FCS的区别

1、CRC是一种差错检验方法;
2、FCS是帧校验序列,即冗余码;
3、两者不是同一个概念,FCS是冗余码,它可以通过CRC得到,也可以通过其他差错检测方法得到。

最后

以上就是腼腆火车为你收集整理的循环冗余校验----CRC校验的全部内容,希望文章能够帮你解决循环冗余校验----CRC校验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部