欢迎来到天天文库
浏览记录
ID:33813066
大小:129.88 KB
页数:5页
时间:2019-02-28
《基于fpga的uart控制器的设计和实现new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于FPGA的UART控制器的设计和实现DesignandRealizationofUARTControllerBasedonFPGA(江苏大学)邹杰杨建宁Zou,JieYang,Jianning摘要:文章介绍了一种在现场可编程门阵列(FPGA)上实现UART的方法。UART的波特率可设置调整,工作状态可读取。系统结构进行了模块化分解,使之适应自顶向下(Top-Down)的设计方法。核心部分采用有限状态机(FSM)实现,使控制逻辑直观简单,大幅度提高了设计效率。最后给出功能仿真结果,验证了整个设计的正确性和可靠性。关键词:UART有限状态机FPGA中图分类号:TP332文献标识码:BA
2、bstract:ThispaperintroducesamethodtoimplementUARTbasedonFieldProgrammableGateArray(FPGA).Itsbaudratecanbesetandthestatescanberead.ThestructureofthissystemisdividedinmodularizationsothatcanfitthemethodTop-Down.Thehardcoreofthissystemisimplementedwithfinitestatemachine(FSM).Itmakesthelogicofcontro
3、lmoreintuitionisticandmorebriefness.Theefficiencyofthedesignisimprovedinawiderange.Simulatingexperiments,presentatlasttoprovedthevalidityandreliabilityinthewholedesign.KeyWord:UARTFSMFPGA引言异步串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于微机和外设的数据交换。通常都由通用异步收发器UART(UniversalAsynchronousReceiver-Transmitter)来实现该功能,
4、如IBMPC机中作为串行接口芯片的NationalINS8250。在实际应用中,往往只需要UART的几个主要功能,专用的接口芯片会造成资源浪费和成本提高,特别是近来电子设计领域中日趋成熟的SOC技术,由于要在单块或极少数的几块芯片中实现整个系统的功能,设计者就必须将类似的功能模块集成到FPGA中。本文提出了一种采用FPGA实现UART功能的方法,可以有效地解决上述问题。1功能简介该UART控制器所传输的一帧串行数据包括1位起始位,8位数据位和1位停止位。传输时,低位在前,高位在后。接收端检测并确认起始位后,接收8位数据位。停止位接收完毕后,向CPU发出中断信号,同时将数据送到计算机的8
5、位数据总线上。发送数据时,先由CPU设置波特率,然后将8位并行数据加上起始位和停止位发送给外设。停止位发送完毕后,向CPU发出中断信号。在数据发送和接收过程中,CPU可以加载控制信号来读取UART的工作状态,以便进行实时处理。2功能实现2.1系统总体结构在大规模电路的设计中,广泛采用层次化,结构化的设计方法。它将一个完整的硬件设计任务从系统级开始,划分为若干个可操作的模块,编制出相应的模型并进行仿真验证,最后在系统级上进行组合。这样在提高设计效率的同时又提高了设计质量,是目前复杂数字系统实现的主要手段,也是本文设计思想的基础。系统的结构划分如图1所示,其中:clk为系统时钟,RESET
6、为全局异步复位信号,C为控制信号,CS和WR分别为片选和读写信号,RXD和TXD分别为串行输出和输入,D_IN和D_OUT为并行输入和输出,INT_RXD和INT_TXD为接收完成中断和发送完成中断信号。WRCSC[2:0]CPU接口D_OUT[7:0]CPU控制模块模块C[0]clkRESETsampleINT_RXD分频INT_TXD模块串行接口D_IN[7:0]模块TXDRXD图12.2分频模块UART的波特率和有效采样位置由该模块确定。实现原理是对系统时钟clk进行分频,分频系数N由CPU设置。分频功能由一个16位计数器完成,计数值每计到N/2时,分频输出信号(sample)为
7、高电平,计数溢出后变为低电平。其频率为时钟频率的1/N,即为UART的波特率。接收数据时,系统时钟clk作为采样信号,即采样频率为波特率的N倍。通过串行接口模块的设计,可以使有效采样位置处于数据位的中间。由于D_IN是8位数据线,故要在外部控制信号C[0]和内部使能信号的作用下分2次将分频系数写入计数器中。2.3CPU控制模块该模块对CPU的控制信号C进行译码,产生相应的内部信号。(1)中断清除:清除INT_RXD和INT_TXD上的中断信号。
此文档下载收益归作者所有