当前位置:首页>> >>


基于FPGA的UART控制器设计.rar

收藏

资源目录
    文档预览:
    编号:20181030002151127    类型:共享资源    大小:1.21MB    格式:RAR    上传时间:2018-10-30
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    25
    金币
    关 键 词:
    基于 FPGA UART 控制器 设计
    资源描述:
    科技学院 2011 届本科毕业论文基于 FPGA 的 UART 控制器设计专 业: 电子信息科学与技术指导教师: 周骅 学生姓名: 黄彦岑 学生学号: 072004110440 中国﹒贵州﹒贵阳2011 年 5 月贵州大学科技学院本科毕业论文(设计) 第 I 页目 录摘要 ....................................................................................................................................IIIAbstract..............................................................................................................................IV第一章 绪论 ......................................................................................................................11.1 课题设计说明 ......................................................................................................11.2 设计研究的内容 ..................................................................................................11.3 FPGA 实现 UART 的意义 .................................................................................21.4 论文结构安排 ......................................................................................................2第二章 UART 与 FPGA 工作原理说明 .........................................................................32.1 UART 的相关知识背景 ......................................................................................32.1.1 UART 技术概述 ........................................................................................32.1.2 UART 的工作原理 ....................................................................................32.1.3 帧格 式 ........................................................................................................52.1.4 UART 的相关接口 ....................................................................................62.2 串行口通信基础知识 ..........................................................................................72.3 FPGA 介绍 ..........................................................................................................82.4 FPGA 的设计流程及设计环境介绍 ..................................................................92.5 小结 ....................................................................................................................10第三章 FPGA 的 UART 的实现 ...................................................................................113.1 UART 设计结构 ................................................................................................113.2 UART 实现的设计 ............................................................................................113.2.1 顶层模块设计 ..........................................................................................113.2.2 波特率发生模块设计 ..............................................................................123.2.3 接收模块实现设计 ....................................................................................143.2.4 发送模块实现设计 ..................................................................................163.3 小结 ....................................................................................................................18第四章 FPGA 的 UART 实现设计结果分析 ...............................................................194.1 设计结果分析 ....................................................................................................19贵州大学科技学院本科毕业论文(设计) 第 II 页4.1.1 顶层设计仿真 ..........................................................................................194.1.2 波特率设计仿真 ......................................................................................194.1.3 接收模块设计仿真 ..................................................................................194.1.4 发送模块设计仿真 ..................................................................................214.2 仿真验证总结 ....................................................................................................224.3 小结 ....................................................................................................................22结 语 ............................................................................................................................23参考文献 ............................................................................................................................24附录:部分 串口实现程序 ................................................................................................25致 谢 ............................................................................................................................29贵州大学科技学院本科毕业论文(设计) 第 III 页基于 FPGA 的 uart 控制器设计摘要UART(即 Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART 允许在串行链路上进行全双工的通信。随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。串行通信作为一种主要的通信方式,它是在一根传输线上一位一位地传送信息,这根线既作数据线又作联络线。串行外设用到 RS232-C 异步串行接口,一般采用专用的集成电路即UART 实现。如 8250、8251、NS16450 等芯片都是常见的 UART 器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如 FIFO),我们在进行设计时并不是经常需要使用完整的 UART 的功能和这些辅助功能。该设计使用 FPGA/CPLD 器件,将所需要的 UART功能集成到 FPGA 内部。使用 Verilog 语言编写通用异步收发器内部的各个子模块以及整个系统程序代码,并通过 Quartus II 集成的软件开发环境中对各个子模块进行逻辑综合、仿真验证以及硬件的实现验证,来达到整个系统的实现。从而使整个设计更加紧凑、稳定且可靠。本文采用了 verilogHDL 进行描述。并在 quartus II 环境下进行了仿真验证和在 FPGA 开发板下进行下载验证,基于 FPGA 的 UART 实现。关键词:FPGA;UART; verilogHDL;子模块设计贵州大学科技学院本科毕业论文(设计) 第 IV 页The Uart Controller Design Based on FPGAAbstractThe UART Universal Asynchronous Transmitter (i.e. with general Asynchronous transceiver) is widely used serial data transfer protocol. UART permitted in serial links on full-duplex communication. With the application of microcomputer system, the development of the network and computer communication function appears more and more important. Serial communication as a major means of communication, it is a transmission line in a root to transmit information, a data is only this wire and traverse. Serial peripherals using RS232 - C asynchronous serial interface, generally USES special integrated circuit namely UART realized. If 8251, NS16450 owns, such chips are common UART device, this kind of chip has quite complex, some contain many auxiliary of the module (such as FIFO), we in developing the design is not often need to use complete UART function and the auxiliary functions. This design USES the FPGA/CPLD device, will need to function integration UART FPGA internal. Use Verilog language writing general asynchronous transceiver internal each child modules and the whole system program code, and through Quartus II integration software development environment for each child modules in comprehensive, simulation validation logic and the realization of hardware validation, to achieve the realization of the entire system. So it makes the whole design is more compact, stable and reliable. This paper adopted verilogHDL description. And quartus II environment in simulated and FPGA under development board download verification, based on FPGA realizing the UART.Keywords: FPGA, UART, verilogHDL ,Son module design 贵州大学科技学院本科毕业论文(设计) 第 1 页第一章 绪论1.1 课题设计说明随着计算机技术的发展和广泛应用,尤其是在工业控制领域的应用越来越广泛,计算机通信显的尤为重要。特别是进入 20 世纪 90 年代后,电子系统已经从电路板级系统集成 发展成为包括 ASIC、FPGA/CPLD 和嵌入系统的多种模式。可以说 EDA 产业已经成为电子信息类产品的支柱产业。EDA 产业能蓬勃发展的因素之一关键就是采用了HDL、Verilog HD 等硬件描述语言来描述电路系统。比如已 FPGA 和 CPLD 开发来说,比较流行的 HDL 主要有 Verilog HDL、VHDL、ABEL-HDL 和 AHDL 等,其中 VHDL 和Verilog HDL 因适合标准化的发展方向而最终成为 IEEE 标准 [1]。虽然串行通信使设备之间在最大程度上减少了连线,但带来的是计数和串行通信与并行通信之间转换等问题,这使串行通信技术比并行通信技术更为复杂。串行通信与并转通信可用软件实现转换,也可用硬件实现。用软件实现串行传送大多采用循环移位指令将一个字节由高位到低位(或低位到高位)一位一位依次传送,这种方法虽然简单但速度慢,而且大量占用 CPU 的时间,影响系统的性能。更为方便的实现方法是用硬件,目前常用的 LSI微处理器串行接口芯片是 UART(通用异步收发器)、USART(通用同步异步收发器)和ACIA(异步通信接口适配器)等。不论是哪一种芯片,它们的一种基本功能是实现串/并转换。正是这些串行接口芯片弥补了串行通信较为复杂这一缺陷。本文应用 EDA(电子设计自动化)技术,基于 FPGA(现场可编程门阵列)/CPLD(复杂可编程逻辑器件)设计与实现 UART。所有功能的实现采用了 verilogHDL 进行描述。并在 quartus II 环境下进行了仿真。该实现功能电路简单,工作稳定,可以灵活地嵌入个通信系统中 [2]。1.2 设计研究的内容本课题的内容就是要用 Verilog 语言基于 FPGA 的串口通信的实现,首先根据通用异步收发器的具体性能与要求将 UART 分为几个模块的组合,采用层次化设计方法和硬件描述语言(Verilog)来编写内部的逻辑功能模块,然后运用 Quartus II 的综合工具以及 Quartus II 的仿真工具中对其进行综合优化以及仿真验证,最后下载到实物开发板上进调试。贵州大学科技学院本科毕业论文(设计) 第 2 页主要的研究内容有如下几点:第一步:熟悉基于 FPGA 的设计方法及流程,使用 FPGA 开发软件 QuartusⅡ, 以及硬件描述语言 verilog 进行设计的方法,并且掌握各个模块之间的联系与工作流程,熟悉 UART 通信协议(RS-232 协议)。第二步:用 Verilog 语言编写通用异步收发器内部的各个子模块以及整个系统程序代码。第三步:在 Quartus II 集成的软件开发环境中对其进行逻辑综合、仿真验证以及硬件的实现验证。1.3 FPGA 实现 UART 的意义串行通信的优点具有传输线少、成本低、可靠性高等性能,所以系统间的通信互联常采用 RS-232 接口方式,通常该接口由 UART 专用芯片来实现。但 UART 接口芯片一般引脚较多,内含许多辅助模块和一些辅助功能,在实际使用时往往用不到这些功能,因此若采用 UART 专用芯片,必将使电路变得复杂,PCB 面积增大,从而导致成本增加,系统的稳定性和可靠性降低。基本的 UART 通信只需要两条信号线(RXD 和 TXD) ,接收与发送是全双工形式,其中 TXD 是 UART 的发送端, RXD 是 UART 的接收端。FPGA(Field Pmgrammable Gate Array)现场可编程门阵列在数字电路的设计中已经被广泛使用。由于 FPGA 的功能日益强大,开发周期短、可重复编程等优点也越来越明显,可以在 FPGA芯片上集成 UART 功能模块,从而简化电路,缩小 PCB 面积,提高系统可靠性。这种设计方式可以将以前需要多块集成芯片的电路设计到一块大模块可编程逻辑器件中,大大减少了电路板的尺寸,增强了系统的可靠性和设计的灵活性。此外,FPGA 的设计具有很高的灵活性,可以方便地进行升级和移植 [3]。1.4 论文结构安排第一章主要指出本课题的提出背景以及研究意义,以及与本研究该课题相关的技术。第二章着重介绍 UART 与 FPGA 相关知识背景包括 UART 通信时各模块的工作特性及串行口的特性。第三章主要对 UART 的结构设计,包括系统设计以及各个模块的设计过程。第四章主要是对设计完成程度进行总结,包括完成了那些功能,存在的问题。贵州大学科技学院本科毕业论文(设计) 第 3 页第二章 UART 与 FPGA 工作原理说明2.1 UART 的相关知识背景2.1.1 UART 技术概述UART(Universal Asynchronous Receiver/Transmitter) 的全称是串口通用异步收发器。其功能是辅助处理器与串行设备之间的通信,是实现设备之间低速数据通信的标准协议。所谓“异步”并不需要额外的时钟线进行数据的同步传输,是一种串行总线接口,只需要占用两根线就可以完成数据的收发。常用的波特率有:1200bps,9600bps,38400bps,115200bps。串行通信是在一根传输线上一位一位地传送信息.这根线既作数据线又作联络线。串行通信作为一种主要的通信方式,由于所用的传输线少,并且可以借助现存的电话网进行信息传送,因此特别适合于远距离传送。在串行传输中,通信双方都按通信协议进行,所谓通信协议是指通信双方的一种约定。约定对数据格式、同步方式、传送速度、传送步骤、纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。串行接口是连接 FPGA 和 PC 机的一种简单方式。根据这种简单方式这个设计向大家展示了如何运用 FPGA 来实现 UART 的方法。2.1.2 UART 的工作原理UART 主要有 UART 内核、信号监测器、移位寄存器、波特率发生器、计数器、总线选择器和奇偶校验器总共 7 个模块组成 [4],如图 2.1。图 2.1 UART 的原理图贵州大学科技学院本科毕业论文(设计) 第 4 页UART 各个模块的功能如下:1.UART 内核模块内核模块是整个设计的核心部分,内部为控制逻辑,它接收来自微处理器或上层部件的控制信号,执行其所要求的操作,并输出状态信息和控制信号。数据在接收时,UART内核模块主要负责对波特率发生器和移位寄存器的控制,使移位寄存器控制在波特率产生的系统时钟驱动下接收并保存RS-232接收端口上的串行数据的同步进行。当数据进行发送时,UART内核模块先根据待发送数据、奇偶校验位和停止位的设置产生完整的发送序列,然后控制移位寄存器将发送序列加载到移位寄存器的内部寄存器里,最后通过控制波特率发生器驱动移位寄存器输出串行数据。2.信号监督器模块此模块完成对串行输入端(RXD)的输入信号进行实时监测,只要发现新的数据信号就立即通知 UART 内核。3.移位寄存器模块移位寄存器的作用是存储输入或者输出的数据。发送时,微处理器将待发数据送入发送数据寄存器,然后对待发数据格式化,包括起始位、奇偶校验位和停止位。将格式化后的数据送到发送移位寄存器,然后按是先定义的的波特率以串行形式输出。接收时,串行输入设备通过通用异步发生器的串行输入端口将串行数据发送到通用异步发生器的接收器。当串行输入端口的电位由高电位转换为低电平时,接收器判断出接收到的是起始位,此时就把后续的数据位依次置入接收移位寄存器。当接收一个完整数据后,就送往内核的接收移位寄存器,就会通知微处理器或者高层部件读取接收到的数据。4.波特率发生器模块由于 UART 在进行发送和接收工作需要在相同的波特率完成,为了在不同的工作时刻获得这样相同的波特率,这就必须要使用波特率发生器的功能来实现。5.奇偶检验器模块为了使传送数据过程更可靠,在 UART 中设置了奇偶校验器。在接收时,奇偶校验器检查接收到的每一个字符码中“l”的个数,如果要求没有符合,就会发出校验出错信号。发送时则根据待发送数据计算出奇偶校验标志,并且由内核将教研标志加载到发送6.总线选择模块贵州大学科技学院本科毕业论文(设计) 第 5 页总线选择模块是根据选择奇偶校验器的输入来判断是数据发送总线还是数据接收总线。在接收数据时,总线选择模块将数据接收总线连接到奇偶校验器的输入端,来检查接收数据是否正确;而在发送数据时,总线选择模块将数据发送总线连接到奇偶检验器的输入端,UART 内核模块就能够获取并且保存待发送序列所需的奇偶校验位了。7.计数器模块计数器模块的功能是在可控的输入时钟驱动下进行计数,当达到计数上阈时给UART内核一个提示信号。2.1.3 帧格式UART 的帧格式如图 2.2。图 2.2 UART 帧格式示意图该帧格式包括电路空闲状态(idle,高电平)、起始位(start bit,低电平)、5~8 位数据位(data bits)、奇偶位(parity bit, 可选)和停止位(stop bit,位数可为 1、1.5、2 位) [5]。1.空闲位空闲是指在 UART 总线上没有数据进行传输,表现为发送方输出逻辑“1”,在空闲时,接收方时刻监视 UART 总线上电平变化,当发现起始变化,则进入数据接收状态,直至接收完一帧数据,如果最后没有检测到停止位,则标志帧错误。2.起始位起始位为低电平有效。当需要数据传输时,首先发送一个“起始位”,起始位为一个低电平逻辑“0”,当 UART 空闲时总线为高电平逻辑“1”。之所以要有起始位是因为,在 UART 数据的传输只有一条线路,并且 UART 没有控制线。为了要让接收方何时接收数据,固在数据发送前,先发送一个低电平作为数据发送的起始标志,当接收方在空闲时检测到这个低电平,则开始逐位接收数据。3.数据位在起始位与奇偶位之间的是数据位。数据位可以是 5、6、7 或者 8 位,收发双方
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于FPGA的UART控制器设计.rar
    链接地址:http://www.gold-doc.com/p-254697.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    [email protected] 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开