基于fpga的uart控制器的设计和实现new

基于fpga的uart控制器的设计和实现new

ID:33813066

大小:129.88 KB

页数:5页

时间:2019-02-28

基于fpga的uart控制器的设计和实现new_第1页
基于fpga的uart控制器的设计和实现new_第2页
基于fpga的uart控制器的设计和实现new_第3页
基于fpga的uart控制器的设计和实现new_第4页
基于fpga的uart控制器的设计和实现new_第5页
资源描述:

《基于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上的中断信号。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。