基于FPGA的通用异步收发机的设计(赵权、刘翠玲)
- 格式:pdf
- 大小:299.50 KB
- 文档页数:5
龙源期刊网
基于FPGA的通用异步收发器设计
作者:林爱英胡惠敏贾树恒
来源:《现代电子技术》2011年第15期
摘要:采用Verilog HDL语言作为硬件功能的描述,运用模块化设计方法分别设计了通用异步收发器(UART)的发送模块、接收模块和波特率发生器,并结合现场可编程门阵列(FPGA)的特点,实现了一个可移植的UART模块。
该设计不仅实现了串行异步通信的主要功能,而
且电路简单,工作稳定、可靠,可以将其灵活地嵌入到各个通信系统中。
关键词:通用异步收发器;现场可编程门阵列;Verilog HDL;串行通信
中图分类号:TN915.04-34; TN402 文献标识码:A 文章编号:1004-373X(2011)15-0121-03。
江苏科技大学本科毕业设计(论文)基于FPGA的异步FIFO设计Asynchronous FIFO design based on FPGA摘要在现代集成电路芯片中,随着设计规模的不断扩大,一个系统往往包含多个时钟,如何进行异步时钟间的数据传输成为了一个很重要的问题。
异步FIFO (First In First Out)是一种先进先出电路,可以在两个不同的时钟系统间进行快速准确的数据传输,是解决异步时钟数据传输问题的简单有效的方案。
异步FIFO 在网络接口、数据采集和图像处理等方面得到了十分广泛的应用,由于国内对该方面研究起步较晚,国内的一些研究所和厂商开发的FIFO电路还远不能满足市场和军事需求。
由于在异步电路中,时钟间的周期和相位完全独立,以及亚稳态问题的存在,数据传输时的丢失率不为零,如何实现异步信号同步化和降低亚稳态概率以及正确判断FIFO的储存状态成为了设计异步FIFO电路的难点。
本课题介绍了一种基于FPGA的异步FIFO 电路设计方法。
课题选用Quartus II软件,在Cyclone II 系列的EP2C5T144C8N芯片的基础上,利用VHDL 硬件描述语言进行逻辑描述,采用层次化、描述语言和图形输入相结合的方法设计了一个RAM深度为128 bit,数据宽度为8 bit的高速、高可靠的异步FIFO电路,并对该电路功能进行时序仿真测试和硬件仿真测试。
关键词:异步FIFO;同步化;亚稳态;仿真测试AbstractIn modern IC chips, with the continuous expansion of the scale of design, a system always contains several clocks. How to transmit data between the asynchronous clocks become a very important problem.Asynchronous FIFO (First In First Out) is a first-in, first-out circuit, it can transmit data between two diffent clock systems fastly and accurately, it is also a simple and effective solution to solve the problem of asynchronous clock data transfer. The asynchronous FIFO has a very wide range of applications in network interface, data acquisition and image processing.But because of the aspect of a late start, some domestic research institutes and manufacturers which research the FIFO circuit also can not meet the needs of the market and the military.In the asynchronous circuit, because of that the clock cycle and phase is completely independent, and the presence of metastability problems, the loss rate of data transmission is not zero. How to implement asynchronous signal synchronization, reduce the probability of metastability and judge the state of the FIFO storage correctly become a difficult problem while designing the asynchronous FIFO circuit. This paper introduces a method of asynchronous FIFO circuit design based on FPGA. This topic selects Quartus II software, the Cyclone II family EP2C5T144C8N chip, based on the use of VHDL hardware description language for logical descriptions, using the method of combining hierarchical, description language and graphical input ,This topic designs a high-speed, highly reliable asynchronous FIFO circuit as the RAM depth is 128 bit and the data width is 8 bit, and tests the circuit function with timing and software simulation.Keywords:Asynchronous FIFO; Synchronization; Metastability; simulation testing目录第一章绪论 (1)1.1 FPGA简介 (1)1.2 异步FIFO简介 (1)1.3 国内外研究现状及存在的问题 (1)1.3.1 研究现状 (1)1.3.2 存在问题 (2)1.4 本课题主要研究内容 (3)第二章异步FIFO设计要求及基本原理 (4)2.1 设计要求 (4)2.2 异步FIFO基本原理 (5)2.3 异步FIFO设计难点 (5)2.4 系统设计方案 (6)2.5 异步FIFO验证方案 (7)2.5.1 验证复位功能 (7)2.5.2 验证写操作功能 (7)2.5.3 验证读操作功能 (7)2.5.4 验证异步FIFO电路整体功能 (7)第三章模块设计与实现 (8)3.1 格雷码计数器模块 (8)3.2 同步模块 (8)3.3 格雷码∕自然码转换模块 (9)3.4 空满标志产生模块 (10)3.5 双端口RAM (13)第四章时序仿真与实现 (15)4.1 模块整合 (15)4.2 时序仿真及功能测试 (17)4.2.1 复位功能软件仿真与测试 (17)4.2.2 写操作功能时序仿真与测试 (17)4.2.3 读操作功能时序仿真与测试 (18)4.2.4 异步FIFO电路整体功能软件仿真与测试 (18)4.2.5 时序仿真结果总结 (19)第五章硬件仿真与实现 (20)5.1 外部电路焊接 (20)5.2 引脚分配 (21)5.3 调试电路设计 (24)5.3.1 调试电路介绍 (24)5.3.2 异步时钟产生模块 (25)5.3.3 伪随机数据队列产生模块 (25)5.3.5 调试电路引脚分配 (26)5.3.6 调试电路硬件仿真 (27)5.4 异步FIFO电路硬件仿真 (28)5.4.1 复位功能硬件仿真与测试 (29)5.4.2 写操作功能硬件仿真与测试 (30)5.4.3 读操作功能硬件仿真与测试 (30)5.4.4 异步FIFO硬件电路整体功能软硬件仿真与测试 (31)5.4.5 硬件仿真结果总结 (32)结论 (33)致谢 (34)参考文献 (35)附录 (36)第一章绪论1.1 FPGA简介FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在CPLD、PAL、GAL等可编程器件的基础上进一步发展的产物[10]。
摘要:通用异步收发器是一种能同时支持短距离和长距离数据传输的串行通信接口,被广泛应用于微机和外设之间的数据交换,本文对FPGA的通用异步收发器设计进行分析。
关键词:通用异步收发器数据传输数据交换串行通信方式传递数据所传输的距离比较远,所用的数据线也很少,并且其稳定性也高。
因此在数据通信方面能够被广泛的使用。
异步收发器(UART)是经常被使用来进行串口通信的设备。
本文就是用VHDL语言编写的应用在FPGA上的一个UART。
在传递数据时,我们仅仅需要使用UART的几个作用,所以如果专门购置专用的UART,则会造成资金和功能上的浪费。
恰好VHDL可以用硬件语言搭建出UART的模型,可以根据所需要的功能来进行程序的编写,这样既省费用又省步骤。
1UART的工作原理UART(Universal Asynchronous Receiver Trans-mitter,通用异步收发器)是通常使用的异步串行传递数据的传输协议。
在串行通信中,数据是一个字节帧一个字节帧来发送信息的。
发送端和接收端在接收数据帧的时候必须有约定的格式和约定的波特率。
一个数据帧由1位起始位(低电平)、5~8位数据位、1位校验位(可选可不选)和停止位来组成。
一个数据帧的开始便是起始位,起始位处于逻辑0状态,处于逻辑0状态就表明发送端已经准备开始发送数据了。
一个数据帧的结束是停止位,停止位处于逻辑1状态,处于逻辑1就表明接收端已经停止接收数据了。
而波特率采用标准速率9600字节每秒。
数据在传输时,低位在前,高位在后。
接收端检测并确认起始位后,开始接收数据位。
当接到停止位后,FPGA向CPU发出中断信号。
发送数据时,CPU设置波特率为9600字节每秒,然后FPGA将数据一帧一帧的通过总线传递给CPU,当CPU接收到低电平时,表示此时数据传送结束。
2程序设计与仿真顶层程序与仿真:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity top isport(clk32mhz,reset,rxd,xmit_cmd_p_in:in std_log-ic;rec_ready,txd_out,txd_done_out:out std_logic;txdbuf_in:in std_logic_vector(7downto0);rec_buf:out std_logic_vector(7downto0);bclkout:out std_logic);end top;architecture Behavioral of top iscomponent recieverport(bclkr,resetr,rxdr:in std_logic;r_ready:out std_logic;rbuf:out std_logic_vector(7downto0));end component;component transferport(bclkt,resett,xmit_cmd_p:in std_logic;txdbuf:in std_logic_vector(7downto0);txd:out std_logic;txd_done:out std_logic);end component;component baudport(clk,resetb:in std_logic;bclk:out std_logic);end component;signal b:std_logic;beginu1:baud port map(clk=>clk32mhz,resetb=>reset, bclk=>b);u2:reciever port map(bclkr=>b,resetr=>reset,rx-dr=>rxd,r_ready=>rec_ready,rbuf=>rec_buf);u3:transfer port map(bclkt=>b,resett=>reset, xmit_cmd_p=>xmit_cmd_p_in,txdbuf=>txdbuf_in,txd=>txd_out,txd_done=>txd_done_out);bclkout<=b;endBehavioral;3总结UlART经常用于数据之间的串行通信,它所需要使用的线路较少,并且稳定性高,数据可以传输很长的距离,因此芯片或计算机系统之间进行数据传送时经常用UART。
基于FPGA 的异步串行通信控制器的设计与实现摘要】本论文采用VHDL 语言描述硬件功能,利用Altera 公司的FPGA 芯片,采用模块化设计方法设计UART(通用异步收发器)的各个模块,在QuartusII 和ModelSim 环境下进行设计、编译、仿真和下载。
而上位机利用VC6.0 实现PC 机与UART 的通信。
最后的通信测试表明系统数据完全正确。
【关键词】UART FPGA VHDL VC【中图分类号】TN02 【文献标识码】A 【文章编号】1006-9682(2009)01-0023-03【Abstract】This paper described the hardware functions by VHDL and designed the UART modules in modularization method by usingFPGA COMS chip of Altera company, which was designed, compiled, simulated and downloaded in QuartusII and ModelSim. However, uppermachine used VC6.0 to realize the communication between PC and UART. The final simulation results show the system data is completedcorrect.【Key words】UART FPGA VHDL VC一、引言UART(Universal Asynchronous Receiver Transmitter)通用异步收发器、是一种应用非常广泛的短距离串行传输接口,主要应用于短距离、低速低成本的微机与下位机的实时通讯中,串行外设接口芯片的型号有很多,如16550 等,然而这类芯片本身已经相当复杂,有的甚至含有许多辅助的功能模块(如FIFO),但是实际应用中常常不需要使用如此完整的UART 的功能以及这些辅助功能。
FPGA 通用异步收发器设计一.设计目的1.了解短距离串行传输接口。
2.了解FPGA 通用一部收发器的原理和应用。
二.设计内容(1)在信号线上共有两种状态,可别离用逻辑1(高电平)和逻辑0(低电平)来区分。
在发送器空闲时,数据线应该维持在逻辑高电平状态。
(2)起始位(Start Bit ):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示同意器数据传输即将开始。
(3)数据位(Data Bits ):起始位以后确实是传送数据位。
数据位一样为8位一个字节的数据(也有6位、7位的情形),低位(LSB )在前,高位(MSB )在后。
(4)校验位(parity Bit ):能够以为是一个特殊的数据位。
校验位一样用来判定接收的数据位有无错误,一样是奇偶校验。
在利用中,该位常常取消。
(5)停止位:停止位在最后,用以标志一个字符传送的终止,它对应于逻辑1状态。
(6)位时刻:即每一个位的时刻宽度。
起始位、数据位、校验位的位宽度是一致的,停止位有位、1位、位格式,一样为1位。
(7)帧:从起始位开始到停止位终止的时刻距离称之为一帧。
(8)波特率:UART 的传送速度,用于说明数据传送的快慢。
在串行通信中,数据是按位进行传送的,因此传送速度用每秒钟传送数据位的数量来表示,称之为波特率。
如波特率9600=9600bps (位/秒)。
⏹UART 的数据帧格式为:⏹三.设计原理FPGA UART 系统组成FPGA UART 由三个子模块组成:(1)波特率发生器;START D0 D1 D2 D3 D4 D5 D6 D7 PSTOP 起始位数 据 位校验位 停止位(2)接收模块;(3)发送模块;模块设计1. 顶层模块2. 波特率发生器3. UART接收器4. UART发送器1. 顶层模块异步收发器的顶层模块由波特率发生器、UART接收器和UART发送器组成。
UART发送器的用途是将预备输出的并行数据依照大体UART帧格式转为TXD信号串行输出。
(10)申请公布号 CN 102045078 A(43)申请公布日 2011.05.04C N 102045078 A*CN102045078A*(21)申请号 201010567994.7(22)申请日 2010.12.01H04B 1/16(2006.01)(71)申请人东南大学地址210096 江苏省南京市玄武区四牌楼2号(72)发明人陈熙源 汤新华 王熙赢 祝雪芬黄涛 方琳(74)专利代理机构南京经纬专利商标代理有限公司 32200代理人许方(54)发明名称一种基于FPGA 的软件接收机系统及实现方法(57)摘要本发明公布了一种基于FPGA 的软件接收机系统及实现方法,所述系统由信号捕获模块、信号跟踪模块、PVT 解算模块组成,其中信号捕获模块包括3个FFT 模块和一个复数共轭模块,信号跟踪模块包括PLL 模块和DLL 模块。
所述方法采用信号捕获模块完成输入信号的数据捕获测试;采用信号跟踪模块完成捕获数据的跟踪测试;采用PVT解算模块完成跟踪测试后的数据的解算测试;采用利用时钟信号完成信号捕获模块、信号跟踪模块、PVT 解算模块的融合。
本发明提高了系统的可靠性,可以在允许范围内改变CPU 的时钟频率以及数据处理的字节位数,大大提高了系统的灵活性。
(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 1 页 说明书 4 页 附图 2 页1.一种基于FPGA的软件接收机系统,其特征在于:由信号捕获模块、信号跟踪模块、PVT解算模块组成,其中信号捕获模块包括3个FFT模块和一个复数共轭模块,信号跟踪模块包括PLL模块和DLL模块;第一FFT模块的输入端接前端输入信号,第二FFT模块的输入端接本地码输入信号,第二FFT模块的输出端串接复数共轭模块后与第一FFT模块的输出端分别接第三FFT模块的输入端,第三FFT模块的输出端分别串接PLL模块和DLL模块后接PVT解算模块的输入端。
基于FPGA的步进电机发射机控制系统设计杨菁【摘要】本文提出一种采用FPGA对步进电机速度与位置控制的方法,建立一种步进电机驱动控制系统,该系统采用脉冲频率实现步进电机速度控制,可防止失步和过冲,提高工作效率,并结合实际工作控制,结果表明该方法的可行性。
【期刊名称】《数字技术与应用》【年(卷),期】2014(000)006【总页数】2页(P7-8)【关键词】短波发射机;FPGA控制模块;步进电机步进驱动器;光电控制【作者】杨菁【作者单位】中国传媒大学理工学部北京 100024; 国家新闻出版广电总局731台福建龙岩 364000【正文语种】中文【中图分类】TP273直流电机是一种将电能转换成机械位移的机构,是发射机的原机设计。
但直流伺服电机及减速机构存在较大的误差,原有的机械减速装置不够精确,误差放大器在电路中由于机房的干扰原因会出现数值不对,容易过调,难以抓到所要求的位置。
在FPGA步进电机控制系统中,第一,采用每转1000个脉冲(0.360/单脉冲)的光电码盘取代原有的跟踪电位器,用在电机控制板内的数字计数取代原有的8bit的A/D变换器,将极大提高计算精度;第二,采用谐波减速器来取代原有的机械减速装置,可以很大程度地保护传动装置之间的连接销钉;第三,取消原有的误差放大器,将可调元件的实际位置采用光电码盘的计数测量与要求的预置值进行数字运算比较,其误差将在数字上等于零;第四,取消伺服放大器,调整小盒的输出直接控制电机驱动电路驱动步进电机的转动。
1.1 系统概述整个步进电机控制系统结合发射机的自身运行特点,以FPGA为步进核心,外连信息采集、频率调度、报警保护等控制模块,在发射机运行过程当中,由FPGA综合外来信号条件,输送出各路电机脉冲信号到步进电机驱动器,再到步进电机,进行实时的检测,从而确保各调谐器件转动位置的精确性,具有很好的多路通信能力、快速运算能力和抗干扰能力。
1.2 系统结构步进电机控制系统结构,包括以下4个部分:FPGA主控模块,这里集中了短波发射机各个采集点所汇的信息,该部分涉及了短波发射机的开、关机,倒频,各路电机位置驱动,各个调谐点的粗细调,各种过荷保护。