当前位置: 网学 > 网学资源大全 > 计算机 > 正文

基于VHDL UART IP设计与实现

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: admin 发布时间: 13/09/05
【网学提醒】:本文主要为网上学习者提供基于VHDL UART IP设计与实现,希望对需要基于VHDL UART IP设计与实现网友有所帮助,学习一下吧!

资料包括: 论文(4页2617字) 
说明:

摘要: UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送装置,具有可编程性和高度兼容性,在数字通信及控制系统等各种嵌入式领域中得到了广泛的应用。介绍了一种利用VHDL语言设计的UART核心功能的方法,具体阐述了发送、接收以及波特率发生器模块的设计,并将其集成到可编程逻辑器件CPLD上,最后通过串口调试软件验证该UART IP核功能正确、稳定、可靠。

关键词: UART;VHDL;IP核;CPLD

Abstract: UART (Universal Asynchronous Receiver/Transmitter), with a high degree of programmability and compatibility, has been widely used in digital communication, control systems, and other embedded fields. This paper presents a method that uses VHDL language to design the core functionality of UART, expound the design of sending, receiving, and the baud rate generator module in detail, and integrated into the programmable logic device CPLD, then to verify the function of the UART IP core through the serial port debugging software.

Key words: UART; VHDL; IP core; CPLD


1 引言
IP核即知识产权核,是一段具有特定电路功能的硬件描述语言程序,它将一些在数字电路中常用的功能块设计成可修改参数的模块。为此利用IP核复用技术[7,9]避免了大量重复劳动,是设计人员赢得迅速上市时间的主要策略。
UART(通用异步收发器)[1,8]主要用于控制设备之间的串行通信,广泛应用于SoC设计中。UART性能的优劣将直接影响相应电子系统的性能和指标。常见的串行接口芯片如8250、16450、16550等,由于速度较慢,难以满足一些需要高速应用的场合。
基于以上考虑,本文探讨了利用VHDL设计紧凑、可修改配置的UART IP核,并将其集成到可编程逻辑器件CPLD上得以实现。
2 UART核心模块设计与实现
2.1 UART基本原理
UART主要用来实现串行和并行数据流之间的变换,主要功能是:从CPU接收并行数据转换成串行数据输出;或者是从串口读入外部数据,将其转换为并行数据送往CPU。所谓异步收发是指在UART协议中,接收、发送不使用统一参考时钟,收发双方取得同步的方法是采用固定的串行数据格式,即在数据格式设置中分别加上起始位和停止位,用来标志一个数据帧的开始和结束。其串行数据格式如图1所示,包括1位起始位,5~8位数据位,1位奇偶校验位(可选),1/1.5/2位停止位。
UART的功能系统可划分为六个模块:波特率发生器、发送模块、接收模块、接口模块、接收和发送FIFO、Modem模块,各部分模块关系如图2所示。本文着重于波特率发生器、发送模块和接收模块的设计,并给出其仿真结果。
2.2 波特率发生器
UART核包含一个可编程的波特率发生器,它给发送模块和接收模块提供发送数据和接收数据的基准时钟,波特率发生器产生的时钟clk16,是串行数据波特率的16倍。它对系统时钟进行分频,计算公式为:clk16=系统时钟/波特率*16,针对不同波特率设定相应的数值就可以得到期望的内部波特率时钟。这里我们将外部输入的32MHz的信号分成频率为153600Hz的信号。其仿真波形如图3所示。
图3 波特率发生器模块仿真
2.3 发送模块设计
串行数据发送模块设计框图[13,14]如图4所示。
图4 UART发送模块框图
当并行8位数据从总线写入发送模块后,发送模块将并行数据装入锁存器THR中,然后在移位寄存器TSR中将数据移位,产生完整的发送序列[15](包括起始位、数据位、奇偶校验位和停止位),以相应波特率从txd发送。发送模块的输入时钟clk16是串行数据波特率的16倍,模块内部将其16分频后得到波特率时钟txdclk。发送模块的状态机FSM如图5所示:
图5 发送状态转换关系图
分为X_Idle、X_Start、X_Wait、X_Shift和X_Stop 5个状态,分别对应空闲、起始、等待、移位和停止这5个状态。

目录:
1 引言
2 UART核心模块设计与实现
3 总结
参考文献:
张莉,杨永明.基于CPLD的UART设计[J],微计算机息,2002,(02)
何慧珠,张会新.基于FPGA的UART IP核设计与实现[J].微计算机信息,2008,(02)
候伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计.西安电子科技大学出版社.2000
林敏.VHDL数字系统设计与高层次综合.北京:电子工业出版社.2002
戴慧.VHDL设计技巧探讨[J].正德学院学报,2006,(01)
JOE C.串行通信编程指南[M].北京:北京科海培训中心,1990
李洋,王森章.使用System C设计UART IP核[J].微型电脑
应用,2004,20(4):64-48
滕桂明,刘璞,刘萍.基于可编程逻辑器件UART的实现[J].科技咨询导报,2007,(26)
刘伟峰,庒弈琪等.高性能嵌入式UART IP核的设计[J].电子器件,2007,(04)
黄海林,沈绪榜.基于有限状态机的UART设计[J].微电子学与计算机,2002,(12).
赵延,葛利嘉.基于FPGA的UART设计实现及其验证方法[J].
Ge Rui,Ou Gang.Design of UART in FPGA’s SoC
System.Ship Electronic Engineering.26(3):84-86.
[15]Ralf N.Hardware/Software Co_designed for Data Flow Dominated Embedded System[M].Kluwer Academic Publishers,1998.
[16]Altera Corporation.Quartus II Handbook,volume 5.May 2007.

作者点评:
本文详细介绍了一种基于VHDL的UART IP核的设计,给出了核心模块的功能仿真,并将其集成到可编程逻辑器件CPLD中进行验证,证明该
UART IP功能正确、稳定 ,可重构,可移植性强,
可以很好的应用到SoC集成设计中。
  • 上一篇资讯: ASP.NET交通信息网上查询系统的设计与实现
  • 下一篇资讯: 基于RMI的考勤信息管理系统的设计与实现
  • 相关资讯

    网学推荐

    免费论文

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号