赞
踩
欢迎FPGA工程师加入官方微信技术群
点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群
实验目的
学习用FPGA设计一个数据通信中常用的数据检错模块——循环冗余检验CRC模块,熟悉理解CRC的检错原理。
实验原理
循环冗余检验(CRC)算法原理
(一)基本原理
循环冗余检验(Cyclic Redundancy Check),是一种纠错能力很强,使用非常广泛的数据传输差错检错方法,是在串行通信中广泛采用的检验编码。CRC校验码的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+ r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。接收端有两种处理方法:1、计算k位序列的CRC码,与接收到的CRC比较,一致则接收正确。2.计算整个k+r位的CRC码,若为0,则ILY: 宋体"> 模2运算是一种二进制算法,CRC校验技术中的核心部分。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算,模2减法是不带借位的二进制减法运算。这样,两个二进制位相运算时,这两个位的值就能确定运算结果,不受前一次运算的影响,也不对下一次造成影响。
①模2加法运算定义为:
0+0=0 0+1=1 1+0=1 1+1=0
例如0101+0011=0110,列竖式计算: 0 1 0 1
+ 0 0 1 1
────── 0 1 1 0
②模2减法运算定义为:
0-0=0 0-1=1 1-0=1 1-1=0
例如0110-0011=0101,列竖式计算: 0 1 1 0- 0 0 1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。