FPGA课程设计基于FPGA器件设计与实现UART

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

I目录摘要...................................................................IIABSTRACT................................................................III引言......................................................................11项目构成的基本原理.......................................................21.1、UART简介............................................................21.2、UART的基本特点......................................................22项目实现的基本原则.......................................................42.1、FPGAUART系统组成如图2所示:........................................42.2、波特率发生器.........................................................42.3、UART接收器..........................................................42.4、UART发送器..........................................................62.5芯片的选择............................................................73程序设计.................................................................83.1顶层程序..............................................................83.2UART发送器程序.......................................................103.3UART接收器程序.......................................................123.4整体电路图...........................................................144仿真....................................................................154.1顶层仿真.............................................................154.2波特率发生器仿真.....................................................154.3UART发送器仿真.......................................................164.4UART接收器仿真.......................................................165总结....................................................................176参考文献................................................................18II摘要基于FPGA设计和实现UART,可以用片上很少的逻辑单元实现UART的基本功能。与传统设计相比,能有效减少系统的PCB面积,降低系统的功耗,提高设计的稳定性和可靠性,并可方便地进行系统升级和移植。采用有限状态机模型形式化描述了UART的功能,在此基础上用硬件描述语言VHDL编程实现了UART,并使用QuartusⅡ软件中的嵌入式逻辑分析仪SignalTap对数据传输进行了检测,验证了设计的正确性。本设计具有较大的灵活性,通过调整波特率发生器的分频参数,就可以使其工作在不同的频率。采用16倍波特率的采样时钟,可以实时有效探测数据的起始位,并可对数据位进行“对准”中央采样,保证了所采样数据的正确性。该模块可以作为一个完整的IP核移植进各种FPGA中,在实际应用时可嵌入到其他系统中,很容易实现和远端上位机的异步通信。关键字:FPGA;UART;有限状态机;SignalTapIIIAbstractDesignandimplementationbasedonFPGAUART,canbeusedonafewlogicalunitrealizesthebasicfunctionofUART.Comparedwiththetraditionaldesign,caneffectivelyreducethePCBareasystem,reducethepowerconsumptionofthesystem,andimprovethedesignofthestabilityandreliability,andeasysystemupgradesandmigration.ThefunctionsofUARTaredescribedformallybyusingthefinitestatemachinemodel,bytheway,UARTisrealizedonthebasisofVHDL.Moreover,thedatatransmissionisdetectedwithSignalTapwhichisanembeddedlogicanalyzerinQuartusⅡ.Theresultprovesthevalidityofthedesign.Thisdesignhasgreatflexibility,byadjustingthefrequencydivisionbaudrategeneratorparameters,youcanmakeitworkonadifferentfrequency.Using16timesthebaudrateofthesamplingclock,caneffectivelydetectreal-timedataofthestartbit,andtoonthecentralsamplingofdatabits,ensuresthecorrectnessofthesampleddata.ThemodulecanbeusedasacompleteIPnucleartransplantationintovariouskindsofFPGA,intheactualapplicationcanbeembeddedintoothersystems,iseasytoimplementandtheremotePCasynchronouscommunication.Keyword:FPGA;UART;finitestatemachine;SignalTap1引言随着电子设备功能的不断增强,复杂度也在不断提高,对这些系统的测试要求也越来越高,因而促进了自动测试系统的发展。而数字I/O模块作为自动测试系统重要的测试模块,它既可以作为信号源激励被测系统,也可以检测被测系统的输出,在很多领域得到了非常广泛的应用。当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。21项目构成的基本原理1.1、UART简介UART(UniversalAsynchronousReceiverTransmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。1.2、UART的基本特点(1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。(2)起始位(StartBit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。(3)数据位(DataBits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。(4)校验位(parityBit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。(5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。(6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。(7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。8)波特率:UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率9600=9600bps(位/秒)。UART的数据帧格式为如图1所示3图1:UART的数据帧格式42项目实现的基本原则2.1、FPGAUART系统组成如图2所示:图2:FPGAUART系统组成FPGAUART由三个子模块组成:(1)波特率发生器;(2)接收模块;(3)发送模块;2.2、波特率发生器波特率发生器实际上就是一个分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。波特率分频因子可以根据不同的应用需要更改。2.3、UART接收器由于串行数据帧和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一个数据帧的起始位。然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0才可认定接收到的是起始位。由于内部采样时钟bclk周期(由波特率发生器产生)是发送或接收波特率时钟频率的16倍,5所以起始位需要至少8个连续bclk周期的逻辑0被接收到,才认为起始位接收到,接着数据位和奇偶校验位将每隔16个bclk周期被采样一次(即每一个波特率时钟被采样一次)。如果起始位的确是16个bclk周期长,那么接下来的数据将在每个位的中点处被采样。图3:UART接收器的接收状态机R_START状态:当UART接收器复位后,接收状态机将处于这一个状态。在此状态,状态机一直在等待RXD的电平跳转,从逻辑1变为逻辑0,即起始位,这意味着新的一帧UART数据帧的开始,一旦起始位被确定,状态机将转入R_CENTER状态。状态图中的RXD_SYNC信号是RXD的同步信号,因为在进行逻辑1或逻辑0判断时,不希望检测的信号是不稳定的,所以不直接检测R

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功