CRC校验

一、概念

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

二、算法

(1)先选择一个用于在接收端进行进行校验时,对接收的帧进行除法运算的除数。

(2)看所选定的除数的二进制位数,假设为k位,然后在要发送的的数据帧(m位)后加上k-1位“0”,然后用该帧以“模2除法”方式除以除数,所得的余数就是该帧的CRC校验码。注意:余数的位数一定是比除数少一位,不够的在前面补“0”。

(3)把校验码附在原数据帧的末尾,构建成一个新帧发送到接收端,最后在接收端再把这个新帧以“模2除法”的方式除以之前选择的除数。若没有余数,则表明在传输过程中没有出错;否则,则在传输过程中出现了差错。

三、实例

假设选择的CRC生成多项式为G(X) = X4 + X3 + 1,求二进制序列10110011的CRC校验码。

(1)将多项式G(X)变为二进制序列 11001

(2)生成的二进制的位数为5位,则在原数据帧后加4个0,得到新帧 101100110000 ,然后把这个数以“模2除法”方式除以多项式,得到的余数为 0100。

 

(3)把得到的CRC校验码附在原始帧末尾,得到新帧 101100110100,再把此帧发送到接收端。

(4)接收端接收到的帧以“模2除法”的方式除以之前选择的除数11001,若没有余数则没有差错,否则出现差错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值