一个基于FIFO技术和基于FPGA执行多通道UART控制器.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:10 大小:294KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

一个基于FIFO技术和基于FPGA执行多通道UART控制器.doc

一个基于FIFO技术和基于FPGA执行多通道UART控制器.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一个基于FIFO技术和基于FPGA执行多通道UART控制器摘要:为满足现代复杂控制系统的通讯需求,本文提出了一种基于FIFO(先进先出)技术和FPGA(现场可编程门阵列)的多通道UART控制器。本文提出的设计异步FIFO和控制器结构的方法。这种使用FPGA中FIFO电路模块和UART(通用异步收发器)电路模块设计的控制器实现了现代复杂控制系统通信的迅速和有效。通过通信序列图表,很容易知道这种控制器可以用于实现当主设备和从设备在不同波特率设置的通讯。它也可以用于减少在一个拥有多个子系统的系统中各个子系统之间的同步误差。同时该控制器是可配置和可扩展的。关键词:先进先出FPGA异步一、导言今天,由于国家提供的最先进的微控制器和数字信号处理器(DSP),复杂的控制算法可以轻松实现取得理想的系统性能。但是在实际控制系统中很难达到预期,因为各种因素影响控制系统,如控制算法自身功能的控制器,功能的实现设备和环境控制状态[1]。除了这些因素,控制系统的通信参数包括波特率,二进制误码率和子系统之间同步也带来很大的影响。为了提高控制系统精确度和更好地利用现代控制算法,我们要将更多的注意力集中在控制系统的通信。在一些控制系统,通信电路的一个系列——UART被广泛应用。通用异步接收/发送器(UART)是扮演的串行通信最重要的作用集成电路。它处理之间的串行和并行数据转换。串行通信减少了信号失真,从而使相隔很远的两个系统之间数据传输成为可能[2]。在一些复杂的系统,主控制器与口水控制器之间通信是通过串行或并行端口实施的。并行通信需要大量的多位地址总线和数据总线,只是方便短距离传输。串行通信由于其结构简单,传输距离长,是另一种广泛使用的通信方式。但有时一个共同的串行端口不能满足不同波特率复杂系统的要求,甚至是一些特殊设备的波特率设备。图一、多设备通信图如图1显示,在一个系统中,PC的波特率是115200bps,设备Ep1的波特率是57600bps,设备Ep2的波特率是19200bps,其他设备设置在为9600bps或其他波特率。如果没有特殊的波特率转换器是不可能实现本多波特率通信系统的。在6自由度机器人,有6个有相同的结构设计分控制器,主机是用于实现机器人的控制算法并传送控制参数分控制器子控制器用于收集反馈信号并将其发送到电脑。个人电脑和分控制器通过RS485总线网互相沟通。每个子控制器有一个唯一的地址号码,PC通过此号码来确定每个子控制器。当PC想将数据发送到节点6它不得不通过前5节点,这就产生了时间延迟,导致机器人的每一个自由度不同步的表现。因此,它减少了控制算法的精度,并带来了控制算法的研究的困难。为了解决上述问题,我们设计了基于FIFO的技术和FPGA的多通道UART控制器,它可以接收在一定的UART波特率块数据。并将在同一波特率UART的块或在与接收波特率不同的其他类型的波特率数据传输到子设备。它也可用于减少时间延迟至子控制器。FPGA(现场可编程门阵列)正被广泛使用和在数字电路设计中发挥着越来越重要的角色。它的可编程特性使电路设计更加灵活,缩短产品上市时间。采用FPGA技术可以提高系统的集成度,可靠性,减少电力消耗。FPGA是一般用于实现简单的接口电路或复杂的状态机,以满足不同的系统要求。本文使用ALTERA公司生产的FPGAEP1C6Q和FIFO技术设计的波特率转换器,以便在不同的波特率设备之间实施通信。先进先出堆栈通常用于时钟交叉域安全通过从一个时钟域数据到另一个异步时钟域。使用先进先出通过从一个时钟域数据到另一个时钟域需要多异步时钟设计技术。有不同的方法来设计一个FIFO的权利。本文详细的方法之一就是用来设计,综合和分析两种不同的时钟采用格雷码域安全的FIFO。在一些系统,如高速数据采集系统,基于PCI总线高速控制系统,和多DSP信号处理系统,FIFO是用来完成高速设备和低速设备之间的通信交流或完成同一子控制器的通信交流先进先出是这些系统的最重要组成部分,它可以作为不同设备之间的桥梁[3,4]。同样,在我们的控制器,基于FPGA的异步FIFO也是最重要的部分。因此,异步FIFO的功能和特征决定了我们的控制器特性。FIFO可用于完成并行或串行端口通信。二,设计异步FIFOA、FIFO导言异步FIFO指的是设计一个FIFO,使其在一个时钟域,将数据值写入FIFO缓冲区,在另一个时钟域从相同的FIFO缓冲区读取数据值,其中两个时钟域异步对方。FIFO总是用于数据缓存——储存的频率或异步信号的相位差。异步FIFO经常被用来快速安全地将数据从一个时钟域传输到另一个异步时钟域。在异步时钟电路,时钟周期和每个时钟域阶段是完全独立的,因此数据丢失的可能性始终不为零。本文介绍的设计与高读/写速度和高可靠性的FPGA的FI