您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 循环冗余校验模块的FPGA设计
目录1引言....................................................................................................................................................32CRC的研究状况.............................................................................................................................33CRC的特征和基本工作原理............................................................................................................43.1CRC的特征和码集选择的原则.............................................................................................43.2CRC生成原理.........................................................................................................................53.3CRC模块结构图.....................................................................................................................64CRC生成器和校验器的设计............................................................................................................64.1VHDL硬件描述语言设计CRC.............................................................................................61)CRC编码解码程序...........................................................................................................62)显示验证模块...................................................................................................................95CRC生成器和校验器的硬件实现..................................................................................................145.1利用QuartusⅡ进行调试.................................................................................................145.2检验CRC生成器和校验器..................................................................................................156CRC的发展方向..............................................................................................................................15结束语..................................................................................................................................................16参考文献..............................................................................................................................................16循环冗余校验模块的FPGA设计摘要:本文首先介绍了循环冗余校验码(CRC,cyclicredundancycheck)的基本原理,包括生成和校验两个部分。其中模2除法是基本原理中最为核心的,本文做了着重说明。其次,还重点分析了其硬件电路的实现方法,并在此基础上基于FPGA用VHDL语言设计了编程程序。本设计将实现模块分成两部分进行介绍:一部分是CRC生成校验模块,另一部分是显示校验模块。CRC生成校验模块是CRC生成模块和校验模块通过握手信号连接起来的,这种方法在很大程度上简化了顶层文件,而显示校验模块主要功能是将发送数据以及生成数据用十六进制数表示,并且通过数码管显示出来,以便于检验程序是否正确。最后,本文介绍如何利用QuartusⅡ分别对CRC生成模块和CRC校验模块进行波形仿真,并对调试验证。关键词:循环冗余校验码;模2除法;VHDL语言;QuartusⅡTheDesignofCRCBasedonFPGAZhangYun,TheCollegeofPhysicsandElectronicInformationAbstract:ThispapernotonlyintroducesbasicprincipleandcalculatingmethodofCRC,includingproductionprincipleandverificationprinciple,whichthemostimportantprincipleofismodule—2division,butalsopresentsahardwareimplementationofCRConFPGAwiththeVHDLlanguageandhowtodebugprogrambyQuartusII.Therealizationmoduledividesintotwoparts:apartistheCRCcodedecodingmodule,andanotherpartisthedemonstrationandverificationmodule.TheCRCcodedecodingmoduleistheCRCproductionmoduleandtheverificationmodulecombinedthroughthehandshakesignal,sothattheprogrammingprocedureissimplifiedtoagreatextent,whilethemainfunctionofthedemonstrationandverificationmoduleistotransmitthedataaswellastheproductiondataindicatedwiththesexadecimalnumber,andtodemonstratethroughthenixietube,whichisadvantageousfortesting.Inthedebuggingprocess,separatelycarriesontheprofilesimulationtotheCRCproductionmoduleandtheCRCverificationmodulebyQuartusII.Keywords:CRC,module—2division,VHDL,QuartusII.1引言数字通信要求传输过程中所造成的数字差错足够低。引起传输差错的根本原因是信道内存在噪声及信道传输特性不理想造成的码间串扰。为了尽可能地提供通信的可靠性,就需要采用信道编码技术,对可能或已经出现的差错进行控制,CRC码就是其中的一种编码技术。2CRC的研究状况CRC基本原理简单,实现硬件电路简单,且效果较好,目前得到广泛的运用下面是一些常见的标准CRC。名称生成多项式简记式*应用举例CRC-4x4+x+13ITUG.704CRC-12x12+x11+x3+x+1CRC-16x16+x15+x2+18005IBMSDLCCRC-ITU**x16+x12+x5+11021ISOHDLC,ITUX.25,V.34/V.41/V.42,PPP-FCSCRC-32x32+x26+x23+...+x2+x+104C11DB7ZIP,RAR,IEEE802LAN/FDDI,IEEE1394,PPP-FCSCRC-32cx32+x28+x27+...+x8+x6+11EDC6F41SCTP生成多项式的最高幂次项系数是固定的1,故在简记式中,将最高的1统一去掉了,如04C11DB7实际上是104C11DB7。**前称CRC-CCITT。ITU的前身是CCITT。备注:(1)生成多项式是标准规定的(2)CRC校验码是基于将位串看作是系数为0或1的多项式,一个k位的数据流可以看作是关于x的从k-1阶到0阶的k-1次多项式的系数序列。采用此编码,发送方和接收方必须事先商定一个生成多项式G(x),其高位和低位必须是1。要计算m位的帧M(x)的校验和,基本思想是将校验和加在帧的末尾,使这个带校验和的帧的多项式能被G(x)除尽。当接收方收到加有校验和的帧时,用G(x)去除它,如果有余数,则CRC校验错误,只有没有余数的校验才是正确的。3CRC的特征和基本工作原理3.1CRC的特征和码集选择的原则CRC即循环冗余校验码(CyclicRedundancyCheck)是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。但是信息字段和校验字段的长度也要满足一定的要求,即有码集选择原则。CRC码集选择的原则:若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得V(x)=A(x)g(x)=xRm(x)+r(x);其中:m(x)为K-1次信息多项式,r(x)为R-1次校验多项式,g(x)称为生成多项式:g(x)=g0+g1x1+g2x2+...+g(R-1)x(R-1)+gRxR发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。3.2CRC生成原理经过CRC方式编码的串行发送序列码,可称为CRC码,共有两个部分组成:k位有效信息数据和r位CRC校验码。其中r位CRC校验码是通过k位有效信息序列被一个事先选择的r+1位“生成多项式”相“除”后得到的(r位余数即是CRC校验码)。CRC校验码一般在有效信息发送时产生,拼接在有效信息后被发送;在接收端,CRC码用同样的生成多项式相除,除尽表示无误,弃掉r位CRC校验码,接收有效信息;反之,则表示传输出错,纠错或请求重发。实际的CRC校验生成是采用二进制模2算法得到的,即加法不进位,减法不借位,是一种异或操作。生成多项式G(x)是经过严格的数学分析和实验后确定的,有相应的国际标准。下面用一个例子简单说明一下CRC的生成和校验过程。设发送数据序列为110101110100.生成多项式为G(x)=5X+4X+2X+1,k=5,对应的序列为110101.将发送数据序列按模2算法被生成多项式序列去除,1000
本文标题:循环冗余校验模块的FPGA设计
链接地址:https://www.777doc.com/doc-3506468 .html