基于FPGA的UART控制器的多模块设计与实现

发布者:iota19最新更新时间:2008-01-20 来源: 中国科技信息关键字:FPGA 手机看文章 扫描二维码
随时随地手机看文章
      异步串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于微机和外设的数据交换。实现串口通信主要需要完成两部分工作:

  将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/CMOS电平的转换;

  接收并且检验串行的数据,将数据变成并行的并提供给处理器处理。

  实现RS-232电平和TTL/CMOS电平转换可以用接口芯片来实现,实现数据的串行到并行转换用的是UART,它们是实现串行通信必不可少的两个部分。虽然目前大部分处理器芯片中都集成了UART,但是一般FPGA芯片却没有这个特点,所以使用FPGA作为处理器可以有两个选择,第一个选择是使用UART芯片进行串并转换,第二个选择是在FPGA内部实现UART功能。但所有的UART芯片都存在引脚较多、体积较大、与其他器件的接口较为复杂等缺点,从而会使设计的成本和难度增加。因此可以将需要的UART功能集成到FPGA内部,而利用VHDL语言将UART的核心功能集成,不仅解决传统芯片的缺点,也使整个设计更加紧凑、稳定且可靠。

  1、UART实现原理

  UART主要有UART内核、信号监测器、移位寄存

器、波特率发生器、计数器、总线选择器和奇偶校验器总共7个模块组成,如图一所示。

UART实现原理图

  UART各个模块的功能如下:

  (1)UART内核模块

  UART内核模块是整个设计的核心。在数据接收时,UART内核模块负责控制波特率发生器和移位寄存器,使得移位寄存器在波特率始终的驱动下同步的接收并且保存RS-232接收端口上的串行数据。在数据发送时,UART内核模块首先根据待发送的数据和奇偶校验位的设置产生完整的发送序列(包括起始位、数据位、奇偶校验位和停止位),之后控制移位寄存器将序列加在到移位寄存器的内部寄存器里,最后再控制波特率发生器驱动移位寄存器将数据串行输出。

  (2)信号监督器模块

  信号检测器用于对RS-232的输入信号进行实时检测,一旦发现新的数据则立即通知UART内核。

  (3)移位寄存器模块

  移位寄存器的作用是存储输入或者输出的数据。当UART接受RS-232输入时,移位寄存器在波特率模式下采集RS-232输入信号,并且保存结果;当UART进行RS-232输出时,UART内核首先将数据加载到移位寄存器内,再使移位寄存器在波特率模式下将数据输出到RS-232输出端口上。

  (4)波特率发生器模块

  由于RS-232传输必定是工作在某种波特率下,比如9600,为了便于和RS-232总线进行同步,需要产生符合RS-232传输波特率的时钟,这就是波特率发生器的功能。

  (5)奇偶检验器模块

  奇偶校验器模块是根据奇偶校验的设置和输入数据计算出相应的奇偶校验位,它是通过纯组合逻辑实现的。

  (6)总线选择模块

  总线选择模块用于选择奇偶校验器的输入是数据发送总线还是数据接收总线。在接收数据时,总线选择模块将数据接收总线连接到奇偶校验器的输入端,来检查已接收数据的奇偶校验位是否正确;而在发送数据时,总线选择模块将数据发送总线连接到奇偶检验器的输入端,UART内核模块就能够获取并且保存待发送序列所需的奇偶校验位了。

  (7)计数器模块

  计数器模块的功能是记录串行数据发送或者接收的数目,在计数到某数值时通知UART内核模块。

  2、UART工作流程

  UART的工作流程可以分为接收过程和发送过程两部分。

  接收过程指的是UART监测到RS-232总线上的数据,顺序读取串行数据并且将其输出给CPU的过程。当信号监测器监测到新的数据(RS-232输入逻辑变为0,即RS-232传输协议的起始位)就会触发接收过程,其流程图如图二所示。首先UART内核会重置波特率发生器和移位寄存器,并且设置移位寄存器的工作模式为波特率模式,以准备接收数据。其次,移位寄存器在波特率始终的驱动下工作,不断读取RS-232串行总线的输入数据,并且将数据保存在内部的寄存器内。接收完成后,UART内核会对已接收的数据进行奇偶检验并且输出校验结果。最后,UART内核会重置信号监测器,以准备进行下一次数据接收。

UART接收数据流程图

  发送过程由加载和发送两个步骤组成,如图三所示。加载步骤是UART内核按RS-232串行发送的顺序将起始位、数据位、奇偶校验位和停止位加载到移位寄存器内,这个过程工作在系统时钟下,相对于RS-232的传输速度来说非常快。完成加载步骤后,UART内核会重置波特率发生器,并且设置移位寄存器工作在波特率模式下,于是移位寄存器便在波特率时钟的驱动下依次将加载的数据发送到RS-232的发送端TxD,这样便产生了RS-232的数据发送时序。

UART发送数据流程图

3、UART各个模块的实现

  除UART内核模块以外,其他模块都较为简单,用于实现某一具体功能。现在重点对UART内核模块的实现做出介绍。

  UART内核模块的功能是控制数据接收、数据加载和数据发送的过程,这可以用状态机来实现。下面就按接收和发送的过程来介绍UART内核模块状态机的实现。

  (1)数据接收过程

  数据接收过程的流程图如图二所示,可以定义3个状态——空闲、接收和接收完成,其中状态变换图如图四所示。

状态变换图

  (2)数据加载和发送过程

  数据加载和发送过程都是为了发送数据而设定的,所以将它们放在一起进行介绍。可以用4个状态来实现上述的过程,即空闲、加载、发送和发送完成,其中的空闲状态就是UART内核复位后的空闲状态,和上面介绍的数据接收过程的空闲状态一致。

  数据加载和发送过程的状态转换图如图五所示。

数据加载和发送过程的状态转换图

  4、仿真结果

  在波特率为9600情况下对UART进行仿真,结果稳定可靠。该设计具有很好的可读性和灵活性,具有很好的参考价值。

关键字:FPGA 引用地址:基于FPGA的UART控制器的多模块设计与实现

上一篇:FPGA器件选型研究
下一篇:TMS320C61416 EMIF总线下双FPGA加载设计

推荐阅读最新更新时间:2024-05-13 21:01

硬件在环(HIL)仿真应用中的LabVIEW FPGA
硬件在环(HIL)仿真可以对虚拟运行环境中的设备进行非常逼真的模拟。一个典型的HIL系统包括用于从控制系统接收数据的传感器、用于发送数据的传动器、一个用于处理数据的控制器、一个人机界面(HMI)以及一个开发后仿真分析平台。 由此下载
[应用]
英特尔发布行业首款集成高带宽内存、支持加速的 FPGA
近日,英特尔宣布推出英特尔® Stratix® 10 MX FPGA,该产品是行业首款采用集成式高带宽内存 DRAM (HBM2) 的现场可编程门阵列 (FPGA)。通过集成 HBM2,英特尔 Stratix 10 MX FPGA 可提供 10 倍于独立 DDR 内存解决方案的内存带宽1。凭借强大带宽功能,英特尔 Stratix 10 MX FPGA 可用作高性能计算 (HPC)、数据中心、网络功能虚拟化 (NFV) 和广播应用的基本多功能加速器,这些应用需要硬件加速器提升大规模数据移动和流数据管道框架的速度。 在 HPC 环境中,大规模数据移动前后数据的压缩和解压缩功能至关重要。相比独立的 FPGA,集成 HBM2 的 F
[嵌入式]
基于FPGA的大动态数控AGC系统设计
随着软件无线电技术和FPGA、DSP、AD 等技术的高速发展,数字接收机的应用日益广泛。为了扩大数字接收机的ADC 动态范围,广泛采用了自动增益控制(AGC) ,使接收机的增益随着信号的强弱进行调整,其性能的好坏直接影响着接收机能否高质量稳定接收。传统的AGC 电路大都采用模拟电路,但由于模拟AGC 缺乏智能性,难以实现复杂的控制算法,且精度不高,调试复杂。这里介绍了一种基于FPGA 和数控VGA 芯片AD8370 的数字自动增益控制的实现方法,实时地调整中频接收机的增益,大大增强了系统的动态范围。   1 数控AGC 实现方法   数控AGC 原理框图如图1 所示,在信号数字化后,根据样本估计出信号功率,与参考值比较后,
[嵌入式]
基于<font color='red'>FPGA</font>的大动态数控AGC系统设计
FPGA之DDS信号发生器
本文主要涉及以下几个问题 1:频率控制字如何得到 2:DDS的框图 3:用MATLAB得到正弦波的数字量化 4:设计代码 5:仿真代码 6:仿真图 首先将正弦波信号离散化,离散成多少位的根据自己的设计精度要求来定,但最高位一定是符号位,负数用补码来表示;然后用rom或者ram来存储离散后的数据;再由频率控制字的累加来给出地址用于读出ROM或者ram中的数据。 1:相位累加器的位宽设为n,fc/(2^n)称作频率分辨率,这是能分辨出的最小频率,提高相位累加器位宽可以调高频率分辨率。目标频率f=M*fc/2^n ,fc是采样频率,M是频率控制字,由此可以得到频率控制字。 2:DDS框图其中输入到ra
[测试测量]
<font color='red'>FPGA</font>之DDS信号发生器
基于FPGA和ARM的图像采集传输系统
  引言   图像处理技术的快速发展,使得图像采集处理系统在提高农业生产自动化程度中的应用越来越广泛。目前的图像采集系统有的基于CCD摄像机、图像采集卡和计算机,有的基于CCD摄像机、解码器、FPGA和DSP,而有的基于CMOS图像传感器芯片、FPGA和DSP,它们在实时性,灵活性,可维护性方面各有优缺点。而在农业生产中,以基于CCD摄像机、图像采集卡和计算机的系统居多。本文结合实际系统中的前端图像处理和图像数据传输需要.充分利用ARM的灵活性和FPGA的并行性特点,设计了一种基于ARM+FPGA的图像快速采集传输系统。所选的ARM (Ad-vanced RISC Machines)体系结构是32位嵌入式RISC微处理器结构,该
[单片机]
基于<font color='red'>FPGA</font>和ARM的图像采集传输系统
ARM DSP X86 POWERPC MIPS FPGA简介
ARM:RISC(哈系),基于Load/Store的内存访问方式,长度固定的指令,流水线结构(RISC指令都是固定长度的,这也导致指令编码中会有较多的浪费,使得程序空间变大)。基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额,具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面。其可以做的功耗很低,很精简,因此适合没有固定电源,使用电池供电的移动设备。 DSP:哈佛设计,数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。强大数据处理能力和高运行速度,主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能
[单片机]
基于FPGA的时统模块可靠性设计
摘要:文章从FPGA逻辑编程设计技术、EMC技术、高速电路PCB设计技术等几个方面介绍了时统接收处理模块的抗干扰设计及其实现方法,实现了同步脉冲的提取、对时功能、自守时、脉宽调制等功能,提高了同步精度和抗干扰性。解决了传统时统模块定时精度不高、设置固定只能满足单一需求等问题。 关键词:同步精度;可编程门阵列;时统;紧凑型PCI 高可靠性永远是计算机系统中必不可少的重要需求,尤其是对于整个系统中用来产生统一时间信号的专用设备来说,其可靠性和精准性非常重要。时统模块的功能就是保证整个系统处在统一时间的基准上,它接收时统站发来的时间信号,完成与时统站送来时间信号的同步,同时回送一路供时统站延时检查和解调检查用,并向测控设备发送
[嵌入式]
基于<font color='red'>FPGA</font>的时统模块可靠性设计
Synopsys与Lattice Semiconductor续签多年期FPGA设计软件OEM协议
美国加利福尼亚州,山景城 2016年6月27日 亮点: 多年期合约的续签使得莱迪思半导体的用户得以继续使用Synopsys Synplify Pro综合工具 在时序、面积和运行时间专为Lattice体系结构优化,以获得最佳质量结果,帮助客户实现其智能联网器件更快上市 与Lattice Diamond软件集成,为Lattice FPGA实现提供统一的设计流程 新思科技(Synopsys, Inc.,纳斯达克股票代码:SNPS)日前宣布与Lattice Semiconductor Corporation续签了多年期的Synopsys Synplify Pro FPGA综合工具OEM协议。根据协议,Synopsys将继续为
[嵌入式]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved