CRC校验码的原理介绍及其实现

CRC校验码用于确保数据传输的正确性,通过模2除法计算生成多项式和余数。发送端在信息码后添加校验码,接收端通过相同除法检查错误。模2除法是不考虑进位的异或运算。实现步骤包括选择生成多项式,计算余数作为校验码,附加到数据帧后。接收端再次进行模2除法校验数据完整性。
摘要由CSDN通过智能技术生成

目录

CRC校验原理

在二进制编码传输协议中,为了数据传输的正确性经常会采用循环冗余校验码CRC(cyclic redundancy check)来测试一个数据包是否有错误发生,循环冗余校验码的理论虽然比较复杂,但是实现原理却较为简单。在k位信息码(多项式表示为m(x))后再拼接r位的校验码,整个编码长度为n位,因此这种编码又叫(n,k)码。对于一个给定的(n,k)码,可以证明存在一个最高次幂为n -k= r的多项式g(x)。根据g(x)可以生成k位信息的校验码,而g(x)叫做这个CRC码的生成多项式。

校验码的具体生成过程为:假设发送信息用数据多项式m(x)表示,将m(x)左移n -k位,则可表示成m(x)× 2n-k。这样m(x)的右边就会空出n -k位,即校验码的位置。m(x)× 2n-k通过模2除法(异或运算,后面详解)除以生成多项式g(x)得到的商Q(x)和余数r(x),其中余数r(x)就是校验码。即
这里写图片描述

在发送端发送数据时余数加到信息码之后一同发出,将一组信息码和余数组成的数据块称为一个码元,设为T(x),则有T(x)= m(x)× 2 n-k+ r(x)。接收端在接收到二进制码流的多想表达式都能够被生成多项式g(x)整除,如果传输中未发生错误,则接收码元与发送码元相同,故接收的

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值