




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的UART设计摘 要:串口通信即我们通常所说的UART通信,这种总线通信技术现在已经应用非常广泛,在各类数据收发设备中都能看到它的身影。在使用FPGA的基础上对UART进行相关设计,可以更加方便地实现UART的基本功能。本文首先对FPGA以及硬件描述语言做了简略的介绍,重点阐述了UART的工作原理,内部结构以及数据收发的基本格式,对于串口技术相关知识也做了简介。接着在了解各个模块之间的联系,特点以及如何相互协调工作的基础上对UART进行模块化的设计,通过VHDL语言来描述各个模块功能的实现。具体分为顶层设计模块,发送模块,接收模块以及波特率模块。然后在Modelsim仿真环境下对各个模块进行仿真,得到仿真波形,将波形结合实际收发的数据来判断仿真的正确性。其中对于波特率模块实现了可调,可以配置115200以下的常见波特率,文中列出了3600,7200,9600以及115200这四种不同的波特率,并对每种情况进行仿真验证。最后根据软件仿真结果表明数据的正确性,并且验证了UART的基本功能。关键词:FPGA;VHDL;UARTThe design of UART based on FPGAAbstract:Serial communication is said UART communication in our daily life, the bus communication technology is now widely used.It can be saw in various types of data transceiver device.The design of UART based on FPGA can be more convenient to realize the basic function of UART.This paper firstly makes a brief introduction of the FPGA and hardware description language, expounds the working principle, internal structure and basic format of sending and receiving data of the UART. It also introduces the serial interface technology. Then it will design the modules of the UART on the basic of understanding the relationship between the various modules, working characteristics and the way they coordinating with each other. Using VHDL language to describe the realization of the function of each module. These modules are divided into the top-level designing module, sending module, receiving module and the baud rate module. Then making the simulation of various modules in the environment of the Modelsim and getting the simulation wave.Then connecting the wave to the actual sending and receiving data to judge the correctness of the simulation. And it is adjustable for baud rate module , you can configure the common baud rate under 115200 .In this paper it lists four different baud rate of 3600, 7200, 9600 and 115200, and makes the simulation for each case. According to the software simulation results it will show the correctness of the data, and it can illustrate the basic function of the UART. Key words:FPGA;VHDL; UART 目 录 1.概述1 1.1 课题的意义1 1.2 EDA技术简介1 1.3 FPGA技术简介2 1.4 硬件描述语言简介2 1.5 课题的主要研究工作及设计方案3 1.6 论文结构32. UART系统设计4 2.1 UART基本工作原理4 2.2 串口相关技术概述4 2.3 系统结构设计43.系统设计实现7 3.1 设计流程概述7 3.2 系统顶层软件设计8 3.3系统发送模块设计113.4 系统接收模块设计164. 模块仿真验证26 4.1发送模块仿真验证26 4.2接收模块仿真验证26 4.3波特率模块仿真验证27 4.4错误验证295.结束语30参考文献31 致 谢32附 录33 附录1:设计程序34 附录2:原理图43 1.概述1.1 课题的意义随着可编程逻辑相关技术的发展,FPGA的功能也得到了进一步的强化,其容量大、性能高、功耗低、使用方便灵活、成本低等特点也显得尤为突出,使得基于FPGA的设计能够更加的方便灵活,与此同时也可以实现将硬件功能通过像软件编程这样的方式来修改。在使用FPGA的基础上对UART进行相关设计,可以更加方便地实现UART的基本功能。在传统的设计方法面前,这样的设计有着不少显著的特点,比如可以明显的减少系统PCB的面积,对设计的稳定性也能得到提高,从而降低系统的功耗,使得资源利用更加合理充分。采用VHDL语言设计一个用于FPGA内部的UART软核,在保证其数据正常交换的同时,不仅简化了硬件电路,而且极大的降低了成本、提高了系统的稳定性。使用QuartusII编写硬件语言,然后对UART的各个模块进行分模块设计,其中包括波特率模块,UART数据接收模块和UART数据发送模块。依据其系统组成设计顶层模块,所有功能的实现全部采用VHDL语言进行描述,之后用Modelsim软件对所有模块进行仿真调试,从而实现UART的基本功能。1.2 EDA技术简介电子设计自动化简称EDA。这门技术已经在很多领域开始普及并且发展非常迅速,尤其是在数字系统电子设计领域是非常通用的技术,其涉及到的面非常广泛并且所涵盖的研究内容也非常的丰富。在设计过程中通过查阅大量的资料以及在大学课程中所接触到所学习到的内容,在类似本课题的设计过程中EDA技术既有一些狭义的的定义也有一些广义的定义。在本文中大规模可编程逻辑器件主要是作为这种狭义EDA技术来介绍,如设计过程中所用到的FPGA作为主要的系统设计载体,同时以硬件描述语言(HDL)为主要的表达方式(如:Verilog、VHDL),以计算机、大规模可编程器件的开发环境以及一些实际的系统开发环境来为其进行设计,相关的开发软件也包含其中,通过上述这些现有条件可以自动完成一些类似软件方式的电子系统到硬件系统的逻辑编译、设计逻辑简化、设计逻辑的综合和优化、后期的布局布线、逻辑验证,有些时候也可以对一些特定专用芯片(ASIC)进行其适配编译、逻辑的映射、设计的编译下载等工作,用以上这种方式实现的设计最终成为其现在的集成电路系统。广义的EDA技术,在除了上述介绍的狭义的EDA技术之外,还包括一些计算机的辅助分析技术(CAA),如现在常用的一些Pspice、EWB、MATLAB等技术,还有一些版级或者说是系统级的辅助技术,主要有印刷电路板设计PCBCAD技术,如Protel、ORCAD等。在广义的EDA技术中,上述的这些技术则不具备或者可以说是没有逻辑综合等功能,因此它们在严格意义上来讲是不能被称之为EDA技术。在很多设计过程中运用EDA技术设计的电路系统中主要的特点如下: a)可以通过软件设计的方式来对硬件系统进行设计; b)这种方式是用软件工具来自动完成的,不需要过多人为的干涉; c)在设计的各个阶段设计工程师可以通过一些软件仿真工具对其设计进行实时的仿真与验证; d)这样的硬件系统设计可以进行现场编程,在线修改升级以及一些其他的功能; e)系统可以集成在一个体积小功耗低的芯片上; f)随着其可编程逻辑器件的不断更新,这种设计从以前的“组合设计”转向真正的“自由设计”; g)整个设计的移植性好,其效率高。因此可以说,EDA技术是现代集成电路系统的发展趋势。主要是指通过一个基本的工作平台,即工程的一个工作站,融合应用电子、计算机、信息处理及人工智能等多种技术的最新成果研发出大量的软件工具,让各领域的设计工程师进行电子产品自动设计的综合技术。EDA工具的出现在很大程度上减轻了工程师的工作量,它让通过计算机完成整个电子产品的设计已经成为可能。在本文中应用到EDA技术,主要是针对集成电路(IC)设计。1.3 FPGA技术简介现场可编程门阵列简称FPGA,20世纪80年代中期推出的一种高密度可编程逻辑器件。它由掩膜门阵列演变而来,是在GAL、CPLD、 PAL等可编程器件的基础上进一步发展而得到的。综合了低密度的PLD的优点,但是与低密度的PLD相比,FPGA不受“与或”阵列机构,触发器和I/O数量的限制。它所完成的复杂逻辑电路是通过内部逻辑单元之间的链接来实现的。一般来说,FPGA比ASIC的速度要慢一些,工作中它需要消耗更多的电能,并且他无法实现比较复杂的设计,但是工艺越来越先进,单片可编程门阵列的集成规模已经达到几百万门,速度已超过300MHz。同时,FPGA具有很多其他的优点,比如可以快速成品,由于它比较低的造价,在很多时候,初始的设计都是在普通的FPGA上完成的,当设计趋于完善后再将设计转移到一种类似ASIC的芯片上。FPGA的基本特点如下: a)使用FPGA设计的ASIC电路,无需投片生产;b)FPGA可在一些全定制或半定制的特定用途的集成电路中做试样片;c)FPGA所需要的周期短、花费的费用低;d)有很多的触发器和I/O引脚存在于FPGA的内部结构中;e)FPGA采用高速CMOS技术,能够兼容CMOS、TTL电平,功耗相对也较低。1.4 硬件描述语言简介VHDL和Verilog语言如今是作为集成电路系统中比较常用到的硬件描述语言。这里主要使用的是VHDL语言。定义为超高速集成电路对于硬件方面描述的语言,于1987年12月,被 IEEE 认定为IEEE1076标准,成为第一个被纳入IEEE标准的硬件描述语言。如今,VHDL在硬件描述语言方面已经被认定为普遍通用的语言。VHDL语言优点如下: a)较强的系统级和电路描述能力。VHDL语言可用于描述系统级电路,采用多层次、模块化、自顶向下与自底向上或者混合方式来对系统功能进行描述。同时也可以采用行为描述的方式、通过寄存器传输来描述或者对于结构方面的描述,或者是将这三种混合来描述电路,另外,对于同步或者异步的随机电路来说VHDL语言也可以支持这类的设计,这一点其他硬件描述语言是不能实现的; b)与具体器件无关,设计硬件电路时,可以不针对某种具体的器件,也不需要熟悉器件的内部结构,设计人员只需要重点注意系统设计和优化方面; c)基于库的设计方式,便于复用。VHDL语言采用基于库的设计方式,使得设计不用从门电路一步步进行,可以直接复用以前设计中存放在库中的模块和元件,提高了设计效率; d)语法规范,易于共享。VHDL语法规范,所以有良好的可读性。同时用VHDL语言编写的代码文件不但是程序文件,而且也是一个文档文件。因此,用VHDL语言所写的代码不仅可以用于设计人员的相互交流,也可以作为签约双方的合同文本。总之,作为一种硬件开发语言,VHDL语言不但拥有良好的描述,模拟,综合的功能,而且作为标准硬件描述语言也有优化和布线的功能。因此它能够让设计人员之间能方便交流和共享设计的成果,这样一来也可以缩短硬件电路设计开发的周期,与此同时,个人的工作量也可以减小。1.5 课题的主要研究工作及设计方案 设计中需要实现的功能如下:a)采用VHDL语言实现一个用于FPGA中的通用UART软核;b)UART软核支持起始位(1bit)数据(8bit)终止位(1bit)的数据格式; c)可配置支持115200以下的常见波特率等常见的UART功能。 设计方案:搭建Quartus II+ModelSim仿真开发平台,采用模块化设计方法设计UART内部的各个模块,使用VHDL语言在Quartus上编写程序,并通过仿真软件Modelsim对各模块进行仿真验证。1.6 论文结构 论文的结构安排如下:第1章 :介绍课题研究的意义,FPGA和EDA技术以及硬件描述语言的简介。第2章 :介绍了UART基本工作原理,结构组成,同时论述了其各个模块工作原理及串口相关论述。第3章 :系统的设计实现,分模块进行设计。第4章 :对上一章的设计部分进行仿真验证。结束语、参考文献、致谢、附录。2. UART系统设计2.1 UART基本工作原理通用异步收发传输器简称UART,是一种广泛使用的异步串口通信协议。工作时,传输数据的每个字符按照一位接一位的方式进行传输。在数据发送时,当一个有效的起始脉冲被检测到之后,接收到的数据会通过接收逻辑执行“串并”转换。具体来说,发送数据首先要产生一个完整的发送数据序列,这里面包括了起始位、数据位、奇偶校验位和停止位。之后UART会按照之前设置好的参数将序列加载到寄存器里,一直到发送序列中没有数据。通过控制波特率发生器将寄存器的数据进行串行输出。另外还会对一些错误进行检测,例如溢出方面的错误、奇偶校验错误、帧错误等等,并且被检测到的状态将会添加到之前已经写入接收序列的数据中。数据接收时,来自RS232接收端口上的数据会被波特率时钟驱动移位寄存器开始同步接收并保存,当数据输入变为低电平时,起始位开始被接收,计数器运行,数据采样,若起始位有效,则开始数据位的采样,紧接着是奇偶位的检测,最后当Rx为高电平,则说明停止位被有效确认,无帧错误。当一个完整的字符被接收时,数据将会被存放在接收序列中。2.2 串口相关技术概述在串行通讯时,为了使不同的设备之间可以连接起来,通讯的双方必须采用一个标准接口,RS-232-C就是这样一种串行通讯接口,并且是目前最常用的,在计算机串行接口与外设连接中大量应用,232为标识号,C表示修改次数。RS-232-C标准是由美国EIA与BELL等公司一起开发制定的于1969年公布的通信协议。这个串行通讯接口标准对于串行通信接口的相关问题都作了明确规定,例如,信号线功能方面的问题和电器特性方面。RS-232应用范围广泛,价格便宜,易于编程,使用的导线来说也可以比其他接口更长,但还是相对有限。采用点对点的连接方式,一个接口只能与一个外设相连。总线标准里包括25条信号线,分为一个主通道和一个辅助通道。一般来说主通道使用的情况比较多,类似于一条发送线、一条接收线这样的双工通信来说,几条信号线足以实现。RS-232-C标准中对于数据传输速率的规定有每秒3600、4800、9600和115200波特,字符是以串行方式传输,一般常见的编码格式是异步起停格式。 RS-232-C 标准中还规定,对于驱动器来说,可以有2500pF的电容负载,因此通信距离也会受到这种电容负载的限制。串行通信接口标准在使用和发展中不断地改进增加,已经形成了多种,大多是在RS-232-C标准的基础上经过演变而来的。所以说,RS-232-C作为一种标准,现如今已在计算机通信接口中广泛采用。2.3 系统结构设计对于UART来说主要实现的是串并行数据之间的转换,主要是由发送模块,接收模块,波特率发生器,控制器等组成。如图2-1所示为UART功能模块图。波特发生器 UART控制器接收模块发送模块对象模块图2-1 UART功能模块图 对于UART来说,一个最基本的通信环节中使用两条信号线就能够实现全双工通信的任务,它们分别是TxD和RxD。TxD作为UART的发送端,起到输出作用;RxD作为UART接收端,直接负责输入部分。UART内部传输过程中,信号线上有高电平(逻辑1)和低电平(逻辑0)两种状态。一般来说,发送器空闲时,数据线会保持在高电平的状态,一个数据帧的传送是通过发送器发送起始位来开始的,起始位发送时,数据线会置于逻辑0状态,接收器将会收到提示,表明数据的传输即将开始。接着发送器会发送数据位,对于数据位来说一般为8位,也有5位,6位,7位等等的情况,遵循低位先,高位后的原则发送。然后发送校验位(可选),校验位是用来判断数据位传输的正确与否,一般是奇偶校验。最后是停止位,是用来表述一个完整数据传送的结束,此时数据线处于逻辑1状态。UART的帧格式包括起始位(低电平)、5至8位数据位(文中为8位数据位)、校验位可选和停止位。如图2-2为UART数据帧格式。 D0 D1 D2 D3 D4 D5 D6 D7 空闲位 起始位 数据位 校验位 停止位图2-2 UART数据帧格式 UART处理的是并行数据转为串行数据,但并不是简单的转换。对于UART内部做更详细的分析,我们可以看到UART内部结构中的一些组成部分,有着更加详尽的关联,从而能实现UART的一些基本功能,如图2-3所示。 图2-3 UART通信接口结构图 3.系统设计实现本章内容主要对本次系统设计中基于FPGA软件设计部分进行系统设计,首先给出系统实现的总体流程,基本设计思路,对流程中的每一个过程作出概述,在这基础上对每个模块进行分模块设计,针对每个模块不同的特点给出最适合的设计方案。在Quartus里面使用VHDL语言编写程序,并对程序进行编译仿真,在下一章中对仿真结果进行比较分析。3.1 设计流程概述如图3-1所示为整个FPGA系统设计流程图,包括了整个FPGA软件设计阶段的流程。设计定义HDL实现功能仿真逻辑仿真器逻辑综合逻辑综合器前仿真逻辑仿真器布局布线相应厂家工具后仿真时序分析逻辑仿真器系统测试 图3-1 设计流程图从图中可以看出,首先是系统的设计定义部分,设计定义部分对整个系统设计来说起着至关重要的作用。在完成设计定义部分的内容,并且确定设计方案可行的基础上,则开始用硬件描述语言VHDL对其进行编程。VHDL实现部分主要是采用UP-Down的设计思路,对系统设计进行行为级模块化的划分,这一部分是在编程工具下完成的,这里指的是Quartus软件,该部分VHDL的实现主要是实现系统前端的逻辑设计功能。在完成VHDL前端的逻辑设计功能之后则开始对这部分逻辑功能进行功能验证即功能仿真,对功能进行仿真验证的时候则是通过仿真工具Modelsim软件来进行仿真。在上述FPGA系统流程中的其他部分,包括逻辑综合、前仿真、布局布线、后仿真、时序分析、系统测试等流程,这些设计流程应用于实物部分,暂且不作为研究对象,只做简单了解,不详细介绍。对应于上述流程中的逻辑仿真器指的是Modelsim,FPGA对应于逻辑综合器,FPGA厂家工具指的是如Altera的Quartus II。在本次系统的设计过程中所设计的内容主要是仿真之前的流程,布局布线等后端的设计在严格意义上来说属于数字系统部分设计内容的后端,在该系统的设计过程中不涉及到该部分。3.2 系统顶层软件设计如图3-2,图3-3所示为通用异步收发器软件设计部分RTL级结构图和technology视图,RTL级的结构图主要可以对系统软件结构设计中数据通道数据流的控制进行观察分析。由该图分析该系统设计中其模块主要由波特率设置调节模块、系统接收模块和系统发送模块组成。波特率控制模块由系统时钟输入进行分频处理使系统发送模块和接收模块得到适当的波特率控制,通过可调计数器对波特率进行可调处理,当系统需要多少波特率时,则作出相应的设置,从而实现波特率可调,这里主要是实现3600,7200,9600以及115200;系统接收模块主要接收RS232外部收到的串行数据信息,该系统中主要通过串口调试工具接收由PC机发送的串口信息,其中波特率信息则接收由系统内部波特率控制模块发送的信息,接收之后的数据则进行接收完成处理及做好接收下一个数据准备的信号;系统发送模块在该系统设计中主要是指将FPGA控制部分的数据按照串行数据的顺序进行加载发送,数据会暂时存放在寄存器里,接收模块接收到发送信号之后会自动进入准备接收状态,从而完成一个完整数据的发送接收环节,这里值得注意的一点事,发送模块的波特率必须与接收机模块保持一致,否则将出现错误。图3-2 系统总的RTL视图53图3-3 系统总的technology视图 3.3系统发送模块设计发送模块RTL视图如图3-4所示,如图3-5所示为该系统设计过程中系统发送模块软件设计流程图,结合实际情况对该图所示内容进行概述。如图所示系统发送模块设计开始之后对系统寄存器部分进行初始化处理,设置发送缓冲区。初始值则是对通信协议进行初始化设置,主要包括波特率的设置,数据传输位的设置等。发送的过程中,一般有两个步骤,分别为加载和发送。加载步骤顾名思义是将数据加载进去,具体来说,这里需要加载移位寄存器内的包括了起始位,8位数据位和停止位,这一过程必须严格按照串行发送数据的顺序。加载结束之后,UART内核会将波特率发生器进行一次重置,并且将移位寄存器设置为在波特率模式下工作,这么一来波特率时钟就会驱动移位寄存器将之前加载的数据依次发送到TxD发送端,这样便产生了数据发送时序。串口发送模块针对于接收并行数据进行协议的组包设计,实现并行数据输入,串行数据输出的功能,从发送的角度,实现了对于串口协议的组合功能。发送模块设计与接收模块类似,依然针对波特率,数据位,停止位进行控制,实现全双向的串口通信控制功能。发送模块的technology视图如图3-6图3-8。其发送控制的波特率由其波特率模块给出,主要实现对并行数据的缓存,将并行数据转化成串行数据,按照给定数据帧格式进行输出。 图3-4 发送模块RTL视图图3-5发送模块流程图图3-6 发送模块technology图(1)图3-7 发送模块technology图(2)图3-8 发送模块technology图(3)3.4 系统接收模块设计如图3-9所示为该系统设计过程中系统接收模块软件设计流程图,结合实际情况对该图所示内容进行概述。如图所示系统接收模块设计开始之后对系统寄存器部分进行初始化处理,设置接收缓冲区。初始值则是对通信协议进行初始化设置,主要包括波特率的设置,数据传输位的设置等。在接收过程中,异步收发器检测到RS-232总线上的数据,然后按照顺序读取串行数据,在这之后数据会被输出到计算机CPU。当一个新的数据被检测到,接收过程就会被触发。一般来说,UART中波特率发生器和移位寄存器会被重置,接着设置移位寄存器波特率模式下工作,从而对接收数据进行准备。之后,波特率时钟会驱动移位寄存器工作,依次读取RS-232串行总线上输入的数据,并且将读取的数据寄放在内部寄存器内,最后,信号监测器也会进行重置,从而进行下一次的数据接收。 图3-9接收模块流程图 接收模块的RTL视图如图3-10。Technology图如图3-11图3-14。其接收控制的波特率由其波特率模块给出,接收模块主要是将收到的串行数据转化成并行数据进行输出,同时对接收到的数据做出错误与否的判断。接收模块接收时,从数据串第一位0开始接收,然后将数据位依次通过移位寄存器完成串并转换,最后检测数据串的最后一位是否为高电平来确认数据帧是否出错,接收器还可以检测到溢出错误,数据是否在旧数据尚未被读取就有新数据的覆盖,对于每一个错误都会设置一个错误标志。图3-10接收模块RTL视图 图3-11 接收模块technology图(1)图3-12 接收模块technology图(2)图3-13 接收模块technology图(3)图3-14 接收模块technology图(4)3.5 系统波特率模块设计波特率是一种传送速率,来描述数据传输的快慢。本次设计中发送模块与接收模块均采用模块化的设计方法,接收模块与发送模块能够正常工作的前提是能够在正确的波特率下工作,并且需要在同一波特率下进行,下一章中会验证不在同一波特率下的错误仿真。该系统设计过程中主要对波特率进行了可调,可以配置支持115200以下常见波特率,这里主要指3600、7200、9600和115200。通过计数器改变波特率,当系统需要多少的波特率时则正确设置当前的波特率。图3-15为总的chip planner视图,可以看出整个资源使用情况。下一章会分别将这四种波特率进行仿真调试,观察其区别,该系统波特率的RTL视图和technology图如图3-16图3-19所示。图3-15资源使用图3-16 波特率模块technology图(1)图3-17 波特率模块technology图(2)图3-18 波特率模块technology图(3)图3-19 波特率的RTL视图4. 模块仿真验证本章内容主要是对上一章设计部分进行仿真结果的验证,分别对每个模块仿真波形分析比较。从而验证仿真模块的正确性。在发送模块部分,设定一个发送数据,从发送端发出之后对波形分析,发送的数据被接收端接收后,得到相应的仿真波形,观察波形,数据帧格式有无错误,发送接收是否在同一波特率下,波特率部分主要验证设定的波特率在仿真波形中是否正确,是否可以完成可调的设置。以下将分别一一论证。4.1发送模块仿真验证在波特率为9600的情况下,对系统发送模块进行仿真,得到发送数据的仿真结果如图4-1。图4-1 发送模块仿真图图中所示为待发送的数据位,可以看出是其二进制值是10101010,经信号触发后,从低位顺序发送。图中所示为txd输出波形,根据波形可以读出一个完整的数据帧为0010101011,其中第一位是起始位,最后一位为停止位,中间8位为数据位,也就是01010101,数据帧格式正确。此外传输是从低位开始的,所以波形得到的数据位应该为10101010。经验证,仿真波形得到的数据与发送的数据一致,由此可以证明发送模块仿真正确。4.2接收模块仿真验证同样在波特率为9600情况下,对接收模块进行仿真,得到的仿真结果如图4-2所示。图4-2接收模块仿真图图中所示为接收数据,可以看出,接收的数据为10101010。图中所示为rxd接收波形,根据波形可以读出一个完整的数据帧为0010101011,其中第一位0为起始位,最后一位是停止位1,中间的数据位为01010101,数据帧格式争取,但是传输是从最低位开始,所以相应的数据应该是10101010。经验证,仿真得到的数据与接受的数据对应一致,从而可以证明接收模块仿真正确。4.3波特率模块仿真验证 在这一节中将分别对四种不同的波特率进行仿真,以验证波特率可调性。如图4-3,图4-4,图4-5,图4-6所示,通过可调计数器分别得到了波特率为3600,7200,9600和115200的仿真波形并且把他们放在同一个波形里进行比较分析,得到一个总的仿真波形如图4-7所示。下面将一一验证每个波形的波特率是否正确。图4-3波特率3600仿真波形分析图中波形,截取一个完整的时钟周期,可以看出,上图中时钟周期17350ns,对应的时钟频率即为58018,一般采用波特率的16倍频率作为时钟频率,波特率因子为16,由此可以计算出波特率为58018除以16,约为3600。从而验证3600波特率仿真结果正确。图4-4波特率7200仿真波形 分析图中波形,截取一个完整的时钟周期,可以看出,上图中时钟周期为8754.242ns,从而计算出时钟频率为114942,根据波特率因子为16,可以计算出波特率频率为114942除以16,约为7200。从而验证7200波特率仿真结果正确。图4-5波特率9600仿真波形分析图中波形,截取一个完整的时钟周期,可以看出,上图中时钟周期为6417.843ns,计算出时钟频率为153160,根据波特率因子为16,可以计算出波特率为153160除以16,约等于9600。从而验证9600波特率仿真结果正确。图4-6波特率115200仿真波形 分析图中波形,截取一个完整的时钟周期,可以看出,上图中时钟周期为536.929ns,计算出时钟频率为187969,根据波特率因子为16,可以计算出波特率为187969除以16,约等于115200。从而验证115200波特率仿真结果正确。图4-7波特率总仿真 图4-7为波特率总仿真图,观察仿真总波形可以看到波特率在不同情况下采样点时间间隔不同,采样点的密度不一样,波特率越大,就越密。根据以上波特率仿真波形及分析可以得出波特率仿真模块正确,并且实现了波特率可配置。4.4错误验证根据数据传输通信的要求,发送和接收必须在同一波特率下进行,否则将无法进行正常通信,以下将验证发送在9600波特率下,接收在115200波特率下的仿真情况。如图4-8所示为仿真波形。图4-8错误验证仿真图 图中分别为接收波形,发送波形和接收数据,从图中可以看出无论是接收还是发送数据帧格式都出现了错误,无法实现通信,由此可见在发送和接收的时候必须在同一波特率下进行,否则将出现错误,无法通信。5.结束语在本次的系统设计中,通过查阅大量的参考文献以及结合实际的设计情况,对数字系统设计的重点以及一些难点做了简单的总结介绍。通常采用的设计方法是UP-Down的设计方法,这也是最好用最通用的一种设计方法,通过这种设计方法结合大量的设计实例证明采用这种方式可以使电路的后仿真通过率在很大程度上提高,并且系统的工作频率也随着提高,其工作频率可以达到一个非常稳定的水平,从而在很大程度上提升了系统的工作效率。主要以Altera的FPGA为主控芯片,设计了一种基于FPGA的通用异步收发器控制单元,采用分模块设计方式对该单元及所属硬件电路系统进行仿真调试,由仿真波形和实验调试现象明显可见,通用异步收发器控制单元能够实现对系统所提出的应用功能以及后期都系统提出的附加功能等。在实验的过程中也发现其实验结果与理论分析有一定的差距,但是通过大量的实验数据分析与总结,对理论研究也有了更加深刻的认识。该设计通过调试结果和大量实验数据表明,该设计控制单元方案是可行的,达到了预期的设计目标,实现了UART的基本功能。该设计中所涉及的方案思路与应用技术,对于该设计今后的深入研究、修改、扩展移植打下很坚固的基础。参考文献1 董大成,张建东,史国庆. 基于FPGA的UART IP核设计与实现J. 计算机测量与控制. 2012(08) 2 段素蓉,庄圣贤. 一种内置FIFO全双工UART的设计与实现J. 通信技术. 2010(02) 3 张晓峰,李悦丽,黎向阳,张强. 一种基于FPGA和SC16C554实现多串口通信的方法J. 电子技术. 2009(06) 4 赵海登,刘晓文,胡景军,汤晓蕾. 基于FPGA的UART IP核的设计实现J. 通信技术. 2009(05)5 徐玉丹,陶辉,秦龙,马世伟. 一种基于FPGA的芯片测试多通道串口扩展设计J. 电子测量技术. 2013(03) 6 蒋明柯,皮佑国. 数控系统中RS485串行通信协议的设计J. 组合机床与自动化加工技术. 2013(05) 7 鄢涛,杜小丹,刘永红,胡庆. 基于RS485的数据通信协议的设计与实现J. 电子设计工程. 2013(17) 8 江洋,杨俊峰,宋克柱. 基于RS-485长距离数据传输系统设计J. 核电子学与探测技术. 2013(04)9 袁亚恒,周伟. 基于FPGA的自动化设备的设计J,武汉理工大学学报,信息管理工程版. 2010(12)10 范文萍,吴定雪. 基于FPGA的自动主控制系统的设计与实现J,信息化纵横. 2011(14)11 宋潇,李佩佩,韩莹. 自动售票机控制设计J,科技信息,机械与电子. 2012(33)12 谭卫泽,徐畅. 面向FPGA器件的VHDL语言优化设计方法J,南宁职业技术学院学报. 2010(4)13 陈志刚. VHDL语言在电路设计中的优化J,电子测试. 2010(9)14 周润雅. 基于Quartus II的FPGA/CPLD数字系统设计实例M,北京:电子工业出版社,201115 张凯,林伟. VHDL实例剖析M,北京:国防工业出版社,200916 姜雪松,吴钰淳,王鹰. VHDL设计实例与仿真,北京:机械工业出版社,201017 潘松,王国栋. VHDL实用教程. 成都:电子科技大学出版社,201218 徐光军,徐光辉. CPLD/FPGA的开发与应用. 北京:电子工业出版社,201219 张玲,潘爱先,张翰韬. 计算机基础知识与基本操作(第三版)M,北京:清华大学出版社,200820 彭德林,金忠伟. 计算机应用基础模块教程M,北京:中国水利水电出版社,2010致 谢毕业设计渐渐临近尾声,也预示着大学四年的生活即将画上一个句号。四年来,学校和老师对我的教诲铭记于心,在此要感谢我的母校对我的栽培,给予我的优良的学习环境,专业方面的知识以及为人处世的道理。首先要感谢我的指导老师周磊老师。在这次毕业设计中,周老师给了我很大的帮助,教会我理解课题的含义,指导我课题研究实现的方向,帮我解答疑惑,细心地叮嘱我论文中不能忽略的每个小细节,在我设计遇到瓶颈的时候耐心为我开导,认真负责的工作态度让我敬佩,使我得到不少的提高,在此对周老师表达最诚挚的谢意。同时要感谢对我专业知识授课的老师,是你们在平时的教授中为我的专业知识打下良好的基础,让我能在这条路上更好地前行。感谢四年来一路相伴的同学,相识是一种缘分,四年来我们共同生活,一起进步,一起为了理想而奋斗,如今即将各自远去,感谢有你们的陪伴。最后我要感谢我的父母,是你们的辛苦奋斗为我创造了好的生活学习环境,是你们在背后的支持让我不畏惧所有的困难,是你们让我明白了奋斗的意义,谢谢你们的爱,让我的成长充满了欢乐,接下来的日子里我不会让你们失望。再次感谢父母的养育,学校的栽培,老师的辛勤付出,同学的一路相伴,感谢周老师两个多月毕业设计的悉心指导,谢谢你们! 设计者: 2015年 6月 5日附 录附录1:设计程序附录2:原理图附录1:设计程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity top isPort(clk32mhz,reset,rxd,xmit_cmd_p_in:in std_logic; -总的输入输出信号的定义 rec_ready,txd_out:out std_logic; flag:out std_logic;deg :out std_logic_vector(7 downto 0);txdbuf_in:in std_logic_vector(7 downto 0); -待发送数据输入rec_buf:out std_logic_vector(7 downto 0) -接收数据缓冲);end top;architecture Behavioral of top iscomponent recieverPort(bclkr,resetr,rxdr:in std_logic; r_ready:out std_logic;rbuf:out std_logic_vector(7 downto 0) );end component;component transferPort(bclkt,resett,xmit_cmd_p:in std_logic; txdbuf:in std_logic_vector(7 downto 0);txd:out std_logic;txd_done:out std_logic;flag:out std_logic;deg:out std_logic_vector(7 downto 0) );end component;component baudPort(clk,resetb:in std_logic; bclk:out std_logic );end component;component displayport(clk :in std_logic;data :in std_logic;flag :out std_logic;deg :out std_logic_vector(7 downto 0) );end component;signal b:std_logic;signal txd_done_out:std_logic;signal wire1:std_logic;signal wire2:std_logic_vector(7 downto 0);beginu1:baud -波特率选择,不同的波特率进行计数器的设置port map(clk=clk32mhz,resetb=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年综合类-上海住院医师外科-普通外科学历年真题摘选带答案(5卷单选题百道集合)
- 2025年环保气象安全技能考试-环境监察岗位考试历年参考题库含答案解析(5套100道单选题合辑)
- 学校女生教育管理办法
- 同城租赁项目管理办法
- 山峰景观维护管理办法
- 小榄人才入户管理办法
- 大额存单资金管理办法
- 结核性视网膜脉络膜炎
- 大脑良性肿瘤的护理查房
- 2025年煤炭矿山职业技能鉴定考试-井下电气安装工历年参考题库含答案解析(5套共100道单选题合辑)
- 三明医学科技职业学院护理专业人才培养方案
- 第十一章5#导流洞工程施工方法说明及附图
- DZ∕T 0153-2014 物化探工程测量规范(正式版)
- 船舶机务管理培训课件
- 2024年辽北技师学院春季招生职业能力测试题库及答案
- 《肺癌的诊断与治疗》课件
- 苏教版三年级下册计算题400道及答案
- 物业管理服务采购采购需求公示招投标书范本
- DB13-T1394-6-2011金属非金属矿山在用设备安全检测检验综合判定规则第6部分-矿用炮孔钻机
- 铁路无人机培训课件
- 驾照体检表完整版本
评论
0/150
提交评论