CRC基本原理及实现方法

1.什么是CRC

        今天来聊一聊CRC的话题,首先第一个问题就是什么是CRC?CRC被称为循环冗余校验码,它是一种通信中常用的校验码,能让通信设备对接收到的数据进行正确与否的校验,即它能通过添加的冗余码字来判别接收的信息是否出错,但也仅仅是检验是否出错,并不能发现出错的位置以及纠正错误,因此一般会与重传机制联合使用来提高通信的可靠性。

2.CRC如何实现校验功能

        首先CRC的产生与待发送的数据是息息相关的,这种关联性也是接收端判决的依据。例如我们要传输一个长度为K比特的数据,会先通过这K比特的数据与特定多项式(也称生成多项式)来得到一组长度为R比特的校验码字,然后将这K+R比特的数据前后组合在一起发送出去。接收端接收数据后就可以利用这K+R比特的数据来判断这组数据是否出错了。接收设备将接收的K+R比特组合数据中的前K比特拿出来,并进行与发送端一模一样操作,它就会得到另一组长度R比特校验数据,这时候如果自己计算的校验数据与接收到的校验数据完全一致,则说明接收的数据是正确的,如果两者不一致,就说明传输的过程中出现了错误,至于这错误是原始的K比特出错了还是添加的R比特校验位出错了,不重要。重要的是需要重传。

3.CRC产生校验码的过程

        在说明CRC码字如何产生前,先说明下二进制系数多项式与二进制数列的对应关系,例如多项式x4+x2+x+1 对应的二进制序列为10111,这个二进制序列就是多项式的系数数列,其中0代表没有这个次幂的数据。这里的多项式都是属于GF(2),也就是其系数都是二进制的数,而且其多项式的各项运算,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值