欢迎来到天天文库
浏览记录
ID:1258818
大小:532.00 KB
页数:27页
时间:2017-11-09
《基于fpga的crc校验设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数字电路课程设计实验报告2011-06-06《数字电路课程设计》实验报告题目:基于FPGA的CRC校验设计班级:学号:姓名:完成时间:实验地点:数字电路课程设计实验报告2011-06-06摘要在通信的过程中,由于外界干扰或者电路本身不稳定因素的影响,通信系统中不可避免的会产生噪声(如热噪声等),噪声有时候会严重影响信息的发送,造成信息发送失败。因此在接收方确定自己是否接收到了正确的信息尤为重要。本文就CRC校验这一校验方法利用FPGA进行模拟仿真,完成整个CRC校验的过程。数字电路课程设计实验报告2011-06-06目录第一章实验
2、任务与原理1.1实验任务1.2实验原理第二章设计思路、方法及方案2.1设计思路2.2设计方法及方案第三章FPGA模块设计第四章系统调试及硬件检查第五章结束语附录程序源代码数字电路课程设计实验报告2011-06-06第一章实验任务与原理1.1、实验任务本实验设计完成一个完整的CRC校验过程,其中包括发送端对原始数据生成、编码、按照RS-232的传输协议组帧、接收端对RS-232传输帧格式解析和解码过程。1.2、实验原理本次实验要完成整个CRC校验过程,从产生数据到最后的校验完毕,因此实验原理共分为5个部分:数据源产生、CRC编码、组
3、帧、帧解析、CRC校验。图1CRC校验系统结构1、CRC校验介绍CRC(循环冗余校验码)是一种非常适于检错的信道编码。由于其检错能力强,它对随机错误和突发错误都能以较低冗余度进行严格检验,且编码和译码检错电路的实现都相当简单,故在数据通信和移动通信中都得到了广泛的应用。在数据通信与网络通信中,通常信息码元的数目k相当大,由一千甚至数千数据位构成一帧,而后采用循环码的生成多项式产生r位的校验位。这时,信息码元和校验位构成的码字不一定是严格定义的循环码,而且主要是利用其误码检测特性进行错误检出,因此就可广泛采用CRC码。它是从循环码中
4、分出的一类检错码。循环码的已编码码字可被生成多项式g(x)整除。收端可以利用这一特点进行检错,若接收码字不能被g(x)整除,则有错。2、实验原理介绍任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’或‘1’的多项式一一对应,例如‘1010111’对应的多项式为。数字电路课程设计实验报告2011-06-06CRC码集选择的原则:若设码字长度为N,信息字段长度为K,校验字段长度为R,则N=K+R;对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x)使得:其中m(x)为K次信息多项式,r(x)为R-1次校验多项式,g(x
5、)称为生成多项式。V(x)为发送的信息加码字多项式。发送方通过指定的g(x)产生CRC码字,接收方则通过g(x)来验证CRC码字,若传输码字多项式V(x)能除尽g(x),则传输正确。第一章设计思路、方法及方案2.1设计思路本实验采用如Error!Referencesourcenotfound.所示的结构实现CRC的编解码。使用CRC-CCITT标准进行仿真,其生成多项式为:以此多项式为基础,通过MODELSIM对CRC校验进行仿真。2.2、设计方法及方案为了完整仿真整个通信系统,实验将构造6大模块:数据源产生、CRC编码、组帧、噪
6、声、帧解析、CRC校验。1)数据源的产生本次实验主要目的在于仿真CRC校验的整体过程,因此在数据源产生处就选择了最为简单的64位全为1的输入方式。2)CRC编码本次实验使用CRC-CCITT标准进行仿真,因此使用的生成多项式为数字电路课程设计实验报告2011-06-06因此在编码过程中计算余数时即用需要发送的信息除以生成多项式。如图2所示,用16个锁存器与3个异或门即能完成除法操作。可见,第1位,5位,12位,16位(与第一位重合)上有异或门。在完成所有输入之后,16位锁存器中锁存的即为余数,在之后将其输出即可。在编码发送上,可见
7、如图3所示,由使能din_dv控制64位输入,同时,在此操作的一个时钟之后(由于输入数据赋值于输出数据需要一个时钟),计数器开始计数80位的输出位并以此来控制dout_dv的使能端,因此可见得到一个由din与crc连接在一起的输出dout。同时,设置一个清除信号clr,在当80位编码后信号输出的同时,清除信号置‘1’,清除触发器中的值。图1CRC编码实现结构图3CRC编码时序图1)CRC组帧如图4中frame模块实现的是组帧功能,根据RS-232的组帧格式,在有效数据前加一比特起始位0,数据结束后加一比特停止位1,时序图如图5所示
8、。即在接收端需要判断编码后的80比特的输出信号何时到达接收端,因此在组帧的时候将数据前加一比特起始位0,在接收端即可判断此‘0’即可开始接收。数字电路课程设计实验报告2011-06-06图4frame模块端口时序1)帧解析帧解析就是在接收端首先完成
此文档下载收益归作者所有