FPGA课程设计方案FPGA器件设计方案与实现UART .docx

上传人:C****o 文档编号:13048784 上传时间:2022-04-27 格式:DOCX 页数:21 大小:90.63KB
返回 下载 相关 举报
FPGA课程设计方案FPGA器件设计方案与实现UART .docx_第1页
第1页 / 共21页
FPGA课程设计方案FPGA器件设计方案与实现UART .docx_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《FPGA课程设计方案FPGA器件设计方案与实现UART .docx》由会员分享,可在线阅读,更多相关《FPGA课程设计方案FPGA器件设计方案与实现UART .docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习目录摘要 III ABSTRACTIV引言 1可编辑资料 - - - 欢迎下载精品名师归纳总结1 工程构成的基本原理 21.1 、UART简介 21.2 、UART的基本特点 2 2 工程实现的基本原就 32.1 、FPGAUART系统组成如图 2 所示: 32.2 、波特率发生器 32.3 、UART接收器 32.4 、UART发送器 52.5 芯片的选择 5 3 程序设计 63.1 顶层程序 63.2 UART发送器程序 83.3 UART接收器程序 103.4 整体电路图 12

2、 4 仿真 124.1 顶层仿真 124.2 波特率发生器仿真 13 4.3UART发送器仿真 134.4 UART接收器仿真 13 5 总结 136 参考文献 14摘 要基于 FPGA 设计和实现UART ,可以用片上很少的规律单元实现UART 的基本功能。与传统设计相比,能有效削减系统的PCB 面积,降低系统的功耗,提高设计的稳固性和牢靠性,并可便利的进行系统升级和移植。接受有限状态机模型形式化描述了UART 的功能 ,在此基础上用硬件描述语言VHDL编程实现了 UART ,并使用 Quartus软件中的嵌入式规律分析仪SignalTap对数据传输进行了检测,验证了设计的正确性。本设计具有

3、较大的灵敏性,通过调整波特率发生器的分频参数,就可以使其工作在不 同的频率。接受 16 倍波特率的采样时钟,可以实时有效探测数据的起始位,并可对数据位进行“对准”中心采样,保证了所采样数据的正确性。该模块可以作为一个完整的IP核移植进各种 FPGA 中,在实际应用时可嵌入到其他系统中,很简洁实现和远端上位机可编辑资料 - - - 欢迎下载精品名师归纳总结的异步通信。关键字 : FPGA。UART 。有限状态机。 SignalTapAbstractDesign and implementation based on FPGA UART, can be used on a few logical

4、unit realizes the basic function of UART. Compared with the traditional design, can effectively reduce the PCB area system, reduce the power consumption of the system, and improve the design of the stability and reliability, and easy system upgrades and migration.The functions of UART are described

5、formally by using the finite state machinemodel, by the way, UART is realized on the basis ofVHDL. Moreover, the data transmission is detected可编辑资料 - - - 欢迎下载精品名师归纳总结with SignalTap which is an embedded logic analyzer in Quartusof the design. The result proves the validity可编辑资料 - - - 欢迎下载精品名师归纳总结This

6、 design has great flexibility,by adjusting the frequency division baud rate generator parameters, you can make it work on a different frequency. Using 16 times the baud rate of the sampling clock, can effectively detect real-time data of the start bit, and to on the central sampling of data bits, en

7、sures the correctness of the sampled data. The module can be used as a complete IP nuclear transplantation into various kinds of FPGA, in the actual application can be embedded intoothersystems, iseasy toimplementand the remote PC asynchronous communication.Key word: FPGA。 UART 。 finite state machin

8、e。SignalTap可编辑资料 - - - 欢迎下载精品名师归纳总结引言随着电子设备功能的不断增强 ,复杂度也在不断提高 ,对这些系统的测试要求也越来越高,因而促进了自动测试系统的进展。而数字I/O 模块作为自动测试系统重要的测试模块, 它既可以作为信号源勉励被测系统,也可以检测被测系统的输出,在许多领域得到了特殊广泛的应用 。当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断的进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、进展到超大规模集成电路 VLSIC以及许多具有特定功能的专用集成电路。但是,随着微电子技术的进展,设计与制造集成电路的任务已不完全由

9、半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路ASIC 芯片,而且期望ASIC 的设计周期尽可能短,最好是在试验室里就能设计出合适的ASIC 芯片,并且立刻投入实际应用之中,因而显现了现场可编程规律器件 FPLD ,其中应用最广泛的当属现场可编程门阵列FPGA和复杂可编程规律器件 CPLD 。可编辑资料 - - - 欢迎下载精品名师归纳总结1 工程构成的基本原理1.1 、UART 简介UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯 中。8250、

10、8251、NS16450等芯片都是常见的 UART器件。基本的 UART通信只需要两条信号线( RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。 TXD是 UART发送端,为输出。 RXD是 UART接收端,为输入。1.2 、UART 的基本特点(1) 在信号线上共有两种状态,可分别用规律1(高电平)和规律 0(低电平)来区分。在发送器闲暇时,数据线应当保持在规律高电平状态。(2) 起始位( Start Bit):发送器是通过发送起始位而开头一个字符传送,起始位使数据线处于规律 0 状态,提示接受器数据传输即将开头。(3) 数据位( Data Bits):起始位之后就是传送数

11、据位。数据位一般为8 位一个字节的数据(也有 6 位、7 位的情形),低位( LSB)在前,高位( MSB)在后。(4) 校验位( parity Bit):可以认为是一个特殊的数据位。校验位一般用来判定接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。(5) 停止位:停止位在最终,用以标志一个字符传送的终止,它对应于规律 1 状态。(6) 位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一样的,停止位有 0.5 位、1 位、1.5 位格式,一般为 1 位。(7) 帧:从起始位开头到停止位终止的时间间隔称之为一帧。8)波特率: UART的传送速率,用于说明数据传送的快慢。

12、在串行通信可编辑资料 - - - 欢迎下载精品名师归纳总结中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率 9600=9600bps(位/ 秒)。 UART的数据帧格式为如图 1 所示图 1: UART的数据帧格式2 工程实现的基本原就2.1 、FPGA UART系统组成如图 2 所示:可编辑资料 - - - 欢迎下载精品名师归纳总结FPGA UAR由T图 2: FPGA UART系统组成三个子模块组成:可编辑资料 - - - 欢迎下载精品名师归纳总结(1) 波特率发生器。(2) 接收模块。(3) 发送模块。2.2 、波特率发生器波特率发生器实际上就

13、是一个分频器。可以依据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。波特率分频因子可以依据不同的应用需要更换。2.3 、UART 接收器由于串行数据帧和接收时钟是异步的,由规律1 转为规律 0 可以被视为一个数据帧的起始位。然而,为了防止毛刺影响,能够得到正确的起始位信号,必需要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于规律0 才可认定接收到的是起始位。由于内部采样时钟bclk 周期(由波特率发生器产生)是发送或接收波特率时钟频率的16 倍,所以起始位需要至少8 个连续bclk 周期的规律 0 被接收到,才认为起始位接收

14、到,接着数据位和奇偶校验位将每隔 16 个 bclk 周期被采样一次(即每一个波特率时钟被采样一次)。假如可编辑资料 - - - 欢迎下载精品名师归纳总结起始位的确是 16 个 bclk 周期长,那么接下来的数据将在每个位的中点处被采样。图 3: UART接收器的接收状态机R_START状态:当 UART接收器复位后,接收状态机将处于这一个状态。在 此状态,状态机始终在等待 RXD的电平跳转,从规律 1 变为规律 0,即起始位,这意味着新的一帧UART数据帧的开头,一旦起始位被确定,状态机将转入R_CENTE状R 态。状态图中的 RXD_SYN信C号是 RXD的同步信号,由于在进行逻 辑 1

15、或规律 0 判定时,不期望检测的信号是不稳固的,所以不直接检测RXD信号,而是检测经过同步后的 RXD_SYN信C 号。R_CENTE状R 态:对于异步串行信号,为了使每一次都检测到正确的位信号,而且在较后的数据位检测时累计误差较小,明显在每位的中点检测是最为理想的。在本状态,就是由起始位求出每位的中点,通过对bclk 的个数进行计数( RCNT1)6 ,但计数值不是想当然的“ 1000”,要考虑经过一个状态,也即经过了一个 bclk 周期,所期望得到的是在采样时1/2 位。另外,可能在R_START状态检测到的起始位不是真正的起始位,可能是一个偶然显现的干扰尖脉冲(负脉冲)。这种干扰脉冲的周

16、期是很短的,所以可以认为保持规律0超过 1/4 个位时间的信号确定是起始位。R_WAIT状态: 当状态机处于这一状态,等待计满 15 个 bclk ,在第 16 个bclk 是进入 R_SAMPL状E 态进行数据位的采样检测,同时也判定是否采集的数据位长度已达到数据帧的长度( FRAMELE)N,假如到来,就说明停止位来临了。FRAMELE在N设计时是可更换的(使用了 Generic ),在本设计中默认为8,即对应的 UART工作在 8 位数据位、无校验位格式。R_SAMPL状E 态:即数据位采样检测,完成后无条件状态机转入R_WAIT状态,等待下次数据位的到来。R_STOP状态:无论停止位是

17、 1 仍是 1.5 位,或是 2 位,状态机在 R_STOP不具体检测 RXD,只是输出帧接收完毕信号( REC_DONEclk32mhz,resetb=reset,bclk=b 。-顶层映射u2:reciever port mapbclkr=b,resetr=reset,rxdr=rxd,r_ready=rec_ready, rbuf=rec_buf。u3:transfer port mapbclkt=b,resett=reset,xmit_cmd_p=xmit_cmd_p_in,txdbuf=txdbuf_in,txd=txd_out,txd_done=txd_done_out。end B

18、ehavioral。3.2 波特率发 生器程序library IEEE。use IEEE.STD_LOGIC_1164.ALL 。use IEEE.STD_LOGIC_ARITH.ALL 。use IEEE.STD_LOGIC_UNSIGNED.ALL 。entity baud isPort clk,resetb:in std_logic。bclk:out std_logic。end baud。architecture Behavioral of baud is可编辑资料 - - - 欢迎下载精品名师归纳总结begin processclk,resetb variable cnt:intege

19、r。beginif resetb=1 then cnt:=0。 bclk=208 then cnt:=0。 bclk=1。-设置分频系数else cnt:=cnt+1。 bclk=0。end if。end if。end process。end Behavioral。3.2 UART 发送器程序library IEEE。use IEEE.STD_LOGIC_1164.ALL 。use IEEE.STD_LOGIC_ARITH.ALL 。use IEEE.STD_LOGIC_UNSIGNED.ALL 。entity transfer is genericframlent:integer:=8。Po

20、rt bclkt,resett,xmit_cmd_p:in std_logic。-定义输入输出信号txdbuf:in std_logic_vector7 downto 0:=11001010。txd:out std_logic。txd_done:out std_logic。end transfer。architecture Behavioral of transfer is可编辑资料 - - - 欢迎下载精品名师归纳总结type states is x_idle,x_start,x_wait,x_shift,x_stop。 signal state:states:=x_idle。-定义个子状态

21、可编辑资料 - - - 欢迎下载精品名师归纳总结signal tcnt:integer:=0。beginprocessbclkt,resett,xmit_cmd_p,txdbuf-主-控时序、组合进程可编辑资料 - - - 欢迎下载精品名师归纳总结variable xcnt16:std_logic_vector4 downto 0:=00000。-定义中间变量variable xbitcnt:integer:=0。variable txds:std_logic。beginif resett=1 then state=x_idle。 txd_done-状态 1,等待数据帧发送命令if xmit_

22、cmd_p=1 then state=x_start。txd_done=0。else state-状态 2,发送信号至起始位if xcnt16=01111 then state=x_wait。 xcnt16:=00000。else xcnt16:=xcnt16+1。 txds:=0。 state -状态 3,等待状态if xcnt16=01110 thenif xbitcnt=framlent then state=x_stop。 xbitcnt:=0 。else state=x_shif。tend if。xcnt16:=00000。else xcnt16:=xcnt16+1。 statetx

23、ds:=txdbufxbitcnt。xbitcnt:=xbitcnt+1。state-状态 5,停止位发送状态if xcnt16=01111 thenif xmit_cmd_p=0 then state=x_idle。 xcnt16:=00000。else xcnt16:=xcnt16。 state=x_stop。end if。 txd_done=1。else xcnt16:=xcnt16+1。 txds:=1。 statestate=x_idle。end case。end if。txd=txds。 end process。 end Behavioral。3.3 UART 接收器程序libra

24、ry IEEE。use IEEE.STD_LOGIC_1164.ALL 。use IEEE.STD_LOGIC_ARITH.ALL 。use IEEE.STD_LOGIC_UNSIGNED.ALL 。entity reciever is genericframlenr:integer:=8。Port bclkr,resetr,rxdr:in std_logic。-定义输入输出信号r_ready:out std_logic。rbuf:out std_logic_vector7 downto 0。end reciever。architecture Behavioral of reciever is

25、可编辑资料 - - - 欢迎下载精品名师归纳总结type states is r_start,r_center,r_wait,r_sample,r_stop。 signal state:states:=r_star。t-定义各子状态可编辑资料 - - - 欢迎下载精品名师归纳总结signal rxd_sync:std_logic。beginpro1:processrxdr beginif rxdr=0 thenrxd_sync=0。else rxd_sync=1。end if。end process。pro2:processbclkr,resetr,rxd_sync主-控时序、组合进程可编辑资

26、料 - - - 欢迎下载精品名师归纳总结variable count:std_logic_vector3 downto 0。-定义中间变量variable rcnt:integer:=0。variable rbufs:std_logic_vector7 downto 0。begin可编辑资料 - - - 欢迎下载精品名师归纳总结if resetr=1 then state-状态 1,等待起始位可编辑资料 - - - 欢迎下载精品名师归纳总结if rxd_sync=0 thenstate=r_cente。relse state=r_star。t end if。r_ready=0。 rcnt:=0

27、。r_ready-状态 2,求出每位的中点if rxd_sync=0 thenif count=0100 then state=r_wait。 count:=0000 。else count:=count+1。 state=r_cente。rend if。else state-状态 3,等待状态if count=1110 then可编辑资料 - - - 欢迎下载精品名师归纳总结if rcnt=framlenr then state=r_stop。else state=r_sample。end if。count:=0000。else count:=count+1。 staterbufsrcnt:

28、=rxd_sync。 rcnt:=rcnt+1。stater_readystate=r_star。t end case。end if。end process。 end Behavioral。3.4 整体电路图rbuf=rbufs。 state=r_star。t-状态 4,输出帧接收可编辑资料 - - - 欢迎下载精品名师归纳总结整个系统的 : 整体电路图如图 5 所示:图 5:系统的整体电路图4 仿真4.1 顶层仿真可编辑资料 - - - 欢迎下载精品名师归纳总结仿真波形图如图 4 所示。图 6 仿真波形可编辑资料 - - - 欢迎下载精品名师归纳总结4.2 波特率发生器仿真仿真波形如图 7

29、所示。图 7 波特率发生器的仿真波形4.3 UART 发送器仿真仿真波形如图 8 所示图 8 UART 发送器的仿真波形4.4 UART 接收器仿真UART 接收器的仿真波形如图 9 所示。图 9UART 接收器的仿真波形5 总结利用 Verilog 设计的灵敏性实现了 UART 通信功能 ,可以实现对数据的接收和发送,并可以在接收数据时对其校验位、停止位进行判定,在发送数据时可以形成完整的一帧数据格式 . 其接收和发送数据 的时钟有内部波特率发生器产生 ,依据预置的分频 计系数 ,对外部时钟进行分频 ,产生需要的接收或发送时钟 . 将该UART 设计作为一功能块嵌入到一个FPGA/CPLD

30、实现的数据采集与处理系统中, 可以成功的实现和远端的 PC 机进行异步串行通信 . 试验证明该 UART 设计占用资源少 , 工作稳固牢靠,可运用在中低端的异步通信系统中。回忆起此设计过程,至今我仍感叹颇多,的确,从选题到定稿,从理论到实践,在短短一个星期的日子里,可以说得是苦多于甜,但是可以学到许多许多的东西,同时不仅可以巩固了以前所学过的学问,而且学到了许多在书本上所没有学到过的学问。通过这次设计使我懂得了理论与实际相结合是很重要的, 只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理可编辑资料 - - - 欢迎下载精品名师归纳总结论中得出结论,才能真正为社会服务,从而提

31、高自己的实际动手才能和独立摸索的才能。在设计的过程中遇到问题,可以说得是困难重重,这到底第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发觉了自己的不足之处,对以前所学过的学问懂得得不够深刻,把握得不够牢固。在这次设计中遇到了许多实际性的问题,在实际设计中才发觉,书本上理论性的东西与在实际运用中的仍是有确定的出入的,所以有些问题不但要深化的懂得,而且要不断的更正以前的错误思维。一切问题必需要靠自己一点一滴的解决,而在解决的过程当中你会发觉自己在飞速的提升。对于教材治理系统, 其程序是比较简洁的,主要是解决程序设计中的问题,而程序设计是一个很灵敏的东西,它反映了你解决问题的规律思维和创

32、新才能,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。许多子程序是可以借鉴书本上的,但怎样连接各个子程序才是关键的问题所在,这需要对系统的结构很熟识。通过这次设计我也发觉了自身存在的不足之处,虽然感觉理论上已经把握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。6 参考文献1 罗朝霞 .高书莉 .CPLD/FPGA 设计及应用 .人民邮电出版社 .2007.2 常胜,黄启俊.基于异步 FIFO 实现不同时钟域间数据传递的设计 J. 电子设计应用,20048:57-59.3 阎石.数字电子技术基础(第四版 /第五版) M. 北京:高等训练出版社 .

33、2006.4 伍时和 .数字电子技术基础 .清华高校出版社 .2021.5 康华光 .电子技术基础 数字部分 .高等训练出版社 .2006.6 谢自美 .电子线路设计试验测试.华中科技出版社 .2005.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部可编辑资料 - - - 欢迎下载精品名师归纳总结This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用

34、于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall ab

35、ide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁