首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA 的简化UART 电路设计
来源:本站整理  作者:佚名  2009-03-10 14:13:16



发送模块主要实现对并行数据的缓存,并串转换,然后把串行数据按照既定数据帧格式进行输出,其机构如图3 所示:

 图3 UART 发送模块

a) data_input[7:0]是8 位并行数据的输入端,转换成串行数据后从txd 输出;
b) wrn 是写控制信号,为1 时禁止数据输入,为0 时允许输入;
c) reset 为系统复位输入端,低电平有效;
d) clk 为系统时钟信号输入端,由波特率发生器产生;
e) tser 是并串转换过程的标志:在没有数据转换时保持为1,在并串转换开始时变成0,

并在转换过程中保持为0; f) tbre 是整个工作过程的标志。实验中串行数据结构为1 位起始位,8 位数据位,1 位奇偶校验位,1 位停止位。数据 的发送由外部接收模块控制,接收模块给出wrn 信号,UART 发送模块根据此信号将并行数据data-input 锁存进发送缓冲,并通过移位寄存器进行并串转换,在转换结束后加上奇偶校验位,发送到端口txd 进行串行输出。在整个工作过程中,输出信号tbre 作为标志信号,在串行数据全部输出完毕之后变成0, 并在发送模块未工作时保持为0。
2.4 接收模块
接收模块的结构如图4 所示。接收模块的作用是把收到的串行数据转换成并行数据进行输出,并判断收到数据是否有错。接收模块的内部结构及工作过程与发送模块类似,只不过接收模块的工作和发送模块的工作相反,是进行数据的串并转换。


图4 UART 接收模块
a) rxd 接收串行数据输入;
b) rdn 为输入控制端,只有rdn 为0 时,并行数据才允许输出;
c) data-ready 为数据是否准备好的标志;
d) parity-error 为校验位是否出错的标志;
e) framing-error 为帧是否出错的标志;
f) data-out[7:0]为并行数据输出端。

                   
接收模块从捕捉到数据串的第一个0 开始工作,然后把随后依次输入的8 个数据位通过移位在寄存器中完成窜并转换,并将并行数据输出至端口data-out 。将8 个数据位移位至寄存器后,接收模块将检测输入数据串的最后一位是否为1(停止位)来判断接收到的数据帧是否出错,若不为1,就将输出framing-error 置1。
3 仿真验证在实验中,作者选用Altera 公司的Cyclone 系列产品中的EP1C12Q240C8 芯片,硬件描述语言采用Verilog HDL,用Quartus 5.1 进行逻辑综合,仿真工具则使用ModelSim6.0 。发送模块和接收模块的仿真结果分别如图5 所示。发送的数据能够严格按照串行通信协议进行传输;接收的数据也完全正确。通过仿真测试后,将程序下载到FPGA 芯片中运行,结果通信数据正确,电路工作稳定、可靠。

图5 发送和接收模块仿真


4 结束语
用FPGA 实现了UART 通信功能,可以实现对数据的接收和发送,并可以在接收 数据时对其校验位、停止位进行判断,在发送数据时可以形成完整的一帧数据格式。本 文利用FPGA 设计实现了UART 的核心功能,可以和上位机进行异步串行通信。实验 证明该UART 设计占用资源少,工作稳定可靠。
本文作者创新观点:本文对UART 系统结构进行了模块化分析,可以根据实际的需要可选择地实现相应的通信功能,简化了电路设计,提高了系统的可靠性,可以灵活地嵌入到各个通信系统当中。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:147,199.20000 毫秒