基于fpga的uart收发器设计(附件)【字数:10254】

摘 要 通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)是一种串行通信接口,被广泛应用于计算机和外部设备的连接上。传统UART芯片的数据传输速度较慢,不能满足高速率的需求且不具有可移植性,因此迫切需要一种有效可靠的低成本数据交换方案。本毕业设计依据UART和FPGA技术的特点,实现了基于FPGA的UART收发器设计。在保证数据正常交换的同时,不仅简化了硬件电路,而且极大的降低了成本、提高了系统的可靠性。本课题采用自顶向下的设计方法,在Vivado软件的环境下,利用Verilog HDL硬件描述语言对UART接口进行设计和仿真。通过系统功能划分,本系统实现了波特率发生器模块,发送模块和接收模块。最后利用BASYS3开发板进行板级验证,实现PC机和FPGA器件的通信。
目 录
第一章 绪论 1
1.1引言 1
1.2课题研究现状及意义 1
第二章 FPGA结构及硬件描述语言 2
2.1FPGA的基本结构 2
2.1.1可配置逻辑模块CLB 2
2.1.2可编程输入/输出单元 2
2.1.3内部连线 2
2.1.4其他功能模块 2
2.2FPGA设计流程及方法 2
2.3硬件描述语言 3
2.3.1Verilog HDL 4
2.3.2VHDL 4
第三章 UART通信协议及RS232接口 5
3.1通信 5
3.1.1串行通信与并行通信 5
3.1.2串行通信种类 5
3.2异步串行通信协议 5
3.3RS232接口标准 6
3.3.1RS232信号线 6
3.3.2RS232接口特性 6
第四章 UART的设计与实现 7
4.1UART实现原理 7
4.1.1UART主要构成模块 7
4.1.2UART工作过程 8
4.1.3数据帧格式 8
4.2各功能模块的实现 9
4.2.1波特率发生模块 1 *好棒文|www.hbsrm.com +Q: ^351916072* 
0
4.2.2发送模块 10
4.2.3接收模块 12
第五章 模块仿真及下载验证 14
5.1模块原理图和仿真 14
5.1.1波特率发生器模块 14
5.1.2发送模块 15
5.1.3接收模块 16
5.2下载验证 17
结束语 19
致 谢 20
参考文献 21
附录A 顶层模块程序 22
附录B 波特率发生器模块程序 24
附录C 发送模块程序 25
附录D 接收模块程序 28
附录E 测试模块模块 31
第一章 绪论
1.1引言
目前,EDA技术已经广泛应用于现代电子设计技术领域,包括专用集成芯片设计(ASIC),可编程逻辑器件(PLD)等领域。其中可编程逻辑器件凭借其优越性已得到普遍的发展。所谓的“硬件软件化”就是利用EDA技术实现的。研究设计人员通过Verilog HDL来设计硬件,让硬件设计和软件编程一样方便。EDA技术发展快速,主要是因为这传统的硬件设计理念、方法及过程越来越不能满足当前社会的需要。电子电路设计研发人员在研究系统的硬件电路时,并不需要向传统方式一样,只需要利用相关电子设计自动化技术便能够实现设计。EDA技术给电子类设计人员带来许多便利,也推动了自身的发展。
1.2课题研究现状及意义
当今社会是一个信息化的社会,社会的发展和人们的需求推动了EDA技术发展。以EDA技术为基础的SOC技术应用最为广泛,因为它的出现使得设计研究人员摆脱传统的设计方法。这种硬件软件化的方法凭借它的便利性迅速占据电子行业的主流。现场可编程逻辑器件FPGA因为它的集成度高,灵活性好,支持在线可编程等等,快速赢得电子类设计研发人员的青睐。由于FPGA的便利性,设计人员只要利用计算机通过编程语言就可以设计出一些功能集成到芯片上。这不仅解决了成本投入,缩短了产品的研发周期和风险。近几年来,FPGA应用广泛,应用于各种需要数字电路的领域。比如说通信、雷达、控制、家用电器、计算机等各个领域。
通用异步收发器用于处理数据交换传输的问题。在集成电路行业内,虽然UART芯片的使用很广泛,但是使用UART芯片仍然存在许多的弊端。比如说,UART芯片不灵活因为使用UART芯片时需要将其固定在电路板上;占用资源比较多因为它的闲置引脚较多,导致其功耗高等等原因都让我们为此寻求别的方法。因为大部分厂家生产的FPGA器件内部并没有UART这个IP核,而我们进行电路设计时往往需要这个功能模块。因此本设计“基于FPGA的UART收发器”就可以解决上述问题。
由于厂商所生产的UART芯片都较为复杂,而我们在一些具体的设计中,只需要调用其简要的功能,因此我们只需要把设计好的UART的功能模块下载到FPGA器件中,就可以满足我们的需求。这样一来,不仅提高了整个设计的简洁性,还能简化电路。
第二章 FPGA结构及硬件描述语言
2.1FPGA的基本结构
可配置编程逻辑块组成的数字集成电路就是现场可编程逻辑门阵列(FPGA),通过内部连线把这些可配置的逻辑模块连接在一起。设计人员对此类器件进行在线编程来实现各种任务。FPGA有以下几个逻辑单元:可配置逻辑模块、输出输入单元模块、内部的连线和内嵌功能单元等等。
2.1.1可配置逻辑模块CLB
CLB是一个基本逻辑单元,使用者通过这个单元实现自定义逻辑电路。FPGA芯片型号的不同,可配置逻辑模块的数量也会不同,但是开关矩阵是每个CLB单元都不可或缺的一部分。
2.1.2可编程输入/输出单元
可编程输入/输出单元就是所谓的I/O单元。它能够满足输入输出信号在不同的电气特性下的驱动和匹配等要求。I/O单元按组分类并且根据组别的不同,所提供的接口电平是不同的。
2.1.3内部连线
FPGA内部的各个逻辑单元都是通过内部连线连接在一起的,信号的传输速度以及输出信号的失真度都受布线的工艺和长度的影响。可以根据设定的约束条件,利用FPGA开发软件中的工具来连通各个逻辑单元。事实上,布线方式影响设计成本和产品性能。
2.1.4其他功能模块

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/57.html

好棒文