【软考】循环冗余校验码(CRC校验)


前言

循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。
软考《计算机体系结构》差错传输控制部分的内容,软考中容易出计算题。


一、用途

常用于串行传送(二进制位串沿一条信号线逐位传送)的辅助存储器与主机的数据通信和计算机网络中。

二、原理

CRC检验原理实际上就是在一个n位二进制数据序列的信息码之后附加一个k位二进制数据序列的检验码,从而构成一个总长为n+k位的二进制数据序列的循环冗长校验码,又称这个校验码(n+k,n)码。附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。

三、实现步骤

(1).双方事先约定了一个多项式g(x),即CRC码。 最高幂次是x的n-1次幂。注意,a.多项式需自定义;b.多项式二进制表示位数 <
原信息码二进制位数;c.多项式二进制序列必须以1收尾。
例:g(x) = x的4方 + x + 1,其二进制表示为10011,为5位。
(2).要发送数据序列的二进制信息码结尾后面补最高幂次位数的0。
(3).对补位后的序列除以CRC码,按模2算法取余数。余数序列为CRC校验码。CRC校验码位数 = 最高幂次位数(即补0的位数)
(4).要发送的信息码结尾后面补上CRC校验码序列,即为真正要发送的数据比特流
(5).接收端在接收到带CRC校验码的数据后,如果数据在传输过程中没有出错,将一定能够被相同的生成多项式G(x)除尽,如果数据在传输中出现错误,生成多项式G(x)去除后得到的结果肯定不为

0。

四、例子

题目:原信息编码为1010001101,多项式g(x) = x的5次方 + x的4次方 + x的2次方 + 1。(1)求CRC校验码。(2)最后传输的信息。

解答:
步骤1:根据多项式每一项是否存在,比如从右往左第0项、第2项、第4项、第5项存在则为1,第1项、第3项不存在则为0, 所以首先根据多项式,获得二进制CRC码设为:110101。用于和补0后的原编码做除法。
步骤2:多项式最高幂次为5,则校验码有5位,需补5位0。补0后的原编码:101000110100000
步骤3:补0后的原编码除以步骤1得到的CRC码,取相除的余数作为CRC校验码,则CRC校验码为:01110
步骤4:真正传送的编码序列为原编码+求出的CRC校验码,原编码为1010001101,求出的CRC校验码为01110,合起来即传输信息为101000110101110
下图为求CRC校验码的除法,过程中进行异或处理。(异或逻辑:00为0,01为1,10为1,11为0)
在这里插入图片描述


总结

转载来源:https://www.cnblogs.com/zj3390257/p/16275105.html

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值