基于FPGA的通用异步收发机的设计(赵权、刘翠玲)
基于FPGA的通用异步收发器设计

龙源期刊网
基于FPGA的通用异步收发器设计
作者:林爱英胡惠敏贾树恒
来源:《现代电子技术》2011年第15期
摘要:采用Verilog HDL语言作为硬件功能的描述,运用模块化设计方法分别设计了通用异步收发器(UART)的发送模块、接收模块和波特率发生器,并结合现场可编程门阵列(FPGA)的特点,实现了一个可移植的UART模块。
该设计不仅实现了串行异步通信的主要功能,而
且电路简单,工作稳定、可靠,可以将其灵活地嵌入到各个通信系统中。
关键词:通用异步收发器;现场可编程门阵列;Verilog HDL;串行通信
中图分类号:TN915.04-34; TN402 文献标识码:A 文章编号:1004-373X(2011)15-0121-03。
基于FPGA的通用异步收发传输器控镦FLASH存储系统设计

1 总体 方案 设 计
在V S P存储 系统 中 , 测井 数 据 由井 下 的采 集 节 点传输给井上的采集站再通过有线 网络传 输给 P c 机 。所 得 到 的 测 井 数 据 通 过 串 口从 P C机 发 送 给 F P G A, 再由 F L A S H 写 控 制 器 将 测 井 数 据 写 入 F L A S H, 最后 F L A S H读控制器将烧写到 F L A S H 中 的数据 读 出并通 过 串 口发 送 到 P c机 与 原 始测 井 数 据进 行 比较 。如图 1所示 。 系统 以 F P G A为 核心 , 实现 串 口收发、 F L A S H 的读 、 写、 擦 除操 作 以及 整个 系 统 的控 制 协 调 功 能 。 首先 P c机 控制 开关 选择器 产生 F L A S H擦 除命令 使 能信 号并通 过 擦 除模 块 完 成 F L A S H 擦 除 操作 。 当 P c机 接 收到测 井 数 据并 以字 节 形式 完 成 串 口数 据 的发送 后 , 开关 选 择 器启 动 U A R T接 收模 块 和 写 模 块将 接 收 到 的测 井 数 据 写 入 F L A S H。为 了检 验 烧 写到 F L A S H 中 的测 井 数 据 是 否 正 确 , F L A S H 写 模 块将 测井 数据 写入 F L A S H后 , 开关 选择器 启 动读 模 块并将 从 F L A S H 读 取 到 的测 井 数 据 通 过 U A R T发 送模块 发送 给 P c机 。最后 通 过 串 口调 试 工具 将 接 收到 的测井 数据 与 原始 测 井 数 据 进行 比较 , 以保 证 测井 数据 正确 写入 。
⑥
2 0 1 4 S c i . T e c h . E n g r g .
基于FPGA的异步FIFO设计_毕业设计(论文)

江苏科技大学本科毕业设计(论文)基于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]。
基于PLDFPGA的通用异步收发器设计

摘要:通用异步收发器是一种能同时支持短距离和长距离数据传输的串行通信接口,被广泛应用于微机和外设之间的数据交换,本文对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的UARTIP核设计

一 种 基 于 FPGA 的 UART IP 核 设计
刘贤明, 赵 侃, 谢 恺
( 解放军炮兵学院,合肥 230031 ) 摘要: 针对大部分集成电路中的 UART( 通用异步收发器) 芯 片 成 本高、 电路 复杂、 移 植 性 较 差等 缺点, 提 出 了一种 基 于 FPGA 的 UART IP 核设计方法, 应用有限状态机设计了 接 收 器、 发 送 器 等 模 块, 并使 用 VerilogHDL 硬件 描述 语 言 进行编程仿真试验。仿真结果表明: 该方法减小了系统体积, 降低了 功 耗, 提高 了系统的 稳 定性 和 可靠 性, 增 加 了系 统的灵活性, 提高了可移植性。 关键词: FPGA( 现场可编程逻辑门阵列) ; UART( 通用异步收发器) ; IP( 知识产权) 核; 状态机 中图分类号: TN391 文献标识码: A 文章编号: 1006 - 0707 ( 2011 ) 03 - 0064 - 03 UART 的全称是通 用 异 步 收 发 器 ( universal asynchronous receiver transmitter) , 是实现设备之间低速数据通信的标 准 协 议。它具有使用简单 ( 只有 几 个 寄 存器 ) 、 应用 广 泛、 接线简 单等优点, 对电平进行转换后, 通信 距 离较 长, 但 存 在 电路 复 杂、 成本高、 可移植 性 差等 缺点。 本 文 采 用 FPGA ( 现 场 逻辑 ) , 门阵列 通过对 UART 功能的分析和模块化 处理, 可以用波 特率发生器、 接收器、 发 送 器 三 大 基 本 模 块 来 描述 UART, 实 现 UART 的功 能, 使 整 个 系统 更 为 灵活、 紧 凑, 减少 整 个 电路 的体积, 提高系统的可靠性和稳定性
基于FPGA 的异步串行通信控制器的设计与实现

基于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 的功能以及这些辅助功能。
EDA原理_第12章_通用异步接收发送器的设计与实现共41页
发送模块将发送的数据送到DBIN端口,并且将其转换 成一个字节的串行发送数据,转换完的数据TXD端口上。
UART的设计和实现-接收模块的设计
接收模块接收串行数据并将其转换为并行数据。该 设计包括下面几个部分:
UART的设计和实现-发送模块的状态机
在delay状态下,发送数据按照正确的波特率发送数 据。当tdelayctr与波特率常数一样时,结束该状态。进 入到Shift状态。一旦进入到waitwrite状态,结束发送过 程。在这个状态需要确认WR信号为高,才能开始发送 过程。
UART的设计和实现 -发送模块的状态机内部结构
该电子教案为<<EDA原理及VHDL>>一书的配套教学资源 版权所有,不得用于其它商业用途
通用异步接收发送器 的设计和实现
何宾 2019.09
UART的设计和实现-本章概要
本章给出了PLD器件在简单通信系统的应用-UART设计。 通用异步接收/发送器的设计也是PLD在通信系统的经典应 用。该章首先介绍了UART设计原理,其中包括UART原 理和设计描述、接收模块设计,随后介绍了UART的 VHDL代码描述,最后介绍了URAT的软件仿真验证和硬 件验证。
:= "101000110";
signal rdReg
: std_logic_vector(7 downto 0)
:= "00000000";
signal rdSReg
: std_logic_vector(9 downto 0)
:= "1111111111";
FPGA通用异步收发器设计
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信号串行输出。
一种基于FPGA的软件接收机系统及实现方法[发明专利]
(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的步进电机发射机控制系统设计杨菁【摘要】本文提出一种采用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主控模块,这里集中了短波发射机各个采集点所汇的信息,该部分涉及了短波发射机的开、关机,倒频,各路电机位置驱动,各个调谐点的粗细调,各种过荷保护。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jan.2008
53
基于FPGA的通用异步收发机的设计
赵权, 刘翠玲
(北京工商大学信息.r-希2学院,北京 100037)
摘 要:阐述了通用异步收发机(UART)异步串行通信原理,介绍了实现UART异步串行通信的 硬件接口电路及各部分硬件模块,同时还介绍了用硬件描述语言Verilog来开发UART通信接口 电路模块的方法.研究基于Verilog语言,结合有限状态机的设计方法来实现UART,将其核心功 能集成到现场可编程门阵列(FPGA)_L,使其整体设计紧凑、小巧,实现的UART功能稳定、可靠; 同时,与其他设计方法相比较,利用有限状态机的方法具有结构模式直观简单,设计流程短,程序层 次分明,易综合,可靠性高等优点,这种方法必将在电子设计自动化(EDA)技术申发挥重要作用.
statel状态:输出起始位之前的一位逻辑1,然 后转入到state2.
state2状态:输出起始位0.综合statel和 state2可知,在第一位数据位之前,有一个从1到0 的下跳变.
state3状态:根据8位数据,检验校验位为逻辑 1还是逻辑0,校验位在state4状态输出.
state4状态:该状态机的功能在state3中已经讲 过.
:inst一一一一一一一一一一一一一一一一一一一一一j 图4接收端信号模块
2.2发送模块 发送器实现的功能是将输入的8位并行数据变
为串行数据,同时在数据头部加起始位,在数据位尾 部加奇偶校验位和停止位.相对于接收部分来说,
万方数据
第26卷第1期
赵权等:基于FPGA的通用异步收发机的设计
55
^丽试雨f一一一一一一一一一一一一一一一:
第26卷第1期 2008年1月
北京工商大学学报(自然科学版) Journal of Beijing Technology and Business University(Natural Science Edition)
文章编号:1671—1513(2008)01—0053—04
V01.26 No.1
I 600 000÷(16 x 10 000)一1=9(09H). (2) 2.4综合实现
在ModelSim中进行前段仿真,然后利用Quar— tus生成的.Vo文件在ModelSim中进行后端仿真, 将两次仿真结果进行对比,发现后端仿真中的输出 波形有轻度延迟,仿真结果符合实际.
利用革新实验平台,在QuatusⅡ6环境中进行
由于串行数据帧与接收数据时钟是异步的,接 收器功能实现的关键是接收器的时钟与每个接收字 符的时钟同步.一个有效的办法是接收器采用高速 率的时钟对串行的数据采样,如果采样频率是位时 钟频率的整数倍,就比较容易实现.理论上倍数越 高,接收数据各位的分辨率越高.在实际设计中,一 般最大选择16倍.
要保证异步通信的双方准确无误地交换信息, 必须有效控制采集通信线路上电平信号的时机.根 据实际选择恰当的时机能够使系统准确稳定.如图 2所示的D点是每一数据位周期的中心点,所以一 般系统中的D点是最佳采集时机.当所用的开发系
统的时钟频率和波特率不匹配时就容易产生固定的 频差.采用高稳定度的时钟可以将误差缩小,只要 留出比较小的余度就可以.因此,稍微靠近A点的 B点和C点是最佳采集时期[3J.
起始位
数据DO 数据D1
B CDE F
启动检测A
G
图2采样过程分析
在异步串口接收中,帧结构起了至关重要的作 用.如果在数据帧的结尾第一个停止位的位置抽取 到了低电平,说明发生了帧错误,应该进行帧数据的 滑动,直至找到帧头和帧尾.用Verilog实现上述各 功能的有限状态图机FSM(finite state machine)流 程如图3.
state5状态:输出停止位. 利用Quartus生成的发送系统信号端口模块如 图7,利用ModelSim对设计文件进行Verilog仿真 的波形如图814-5]. 2.3波特率发生器 设计的UART的接收和发送按照相同的波特
万方数据
图8发送系统端口Verilog仿真波形
如果希望输出10 000 Hz的波特率,可以得出从 总线写入的数值为
一
起始位
停止位 I
l,LjET’I' 8位数据
停止位
叭I l 1
0/1 o/l 0/1 0/1 0/1 0/1 0/1 0/l l
l
I}
I
.氐位
高位
位宽取决于波特率
5日
位
空闲位 1
ll 10
下降沿指 玎≮一 字符的开始
图1异步串行通信的字符格式
采用/kitera公司的Quartus II为设计平台,设计 采用的(hardware description language,HDL)语言为 Verilog,作为本系统逻辑描述程序的唯一表达语言, 采用自顶向下的设计原则,对异步接收发送器 (uART)进行设计.同时选用Altera公司的ACEX 1K系列器件EPlKl00QC208—3来实现最终的 UART电路.
读8位并行数据‘——,』输出逻辑高电平
跏J广I氘撼
图7发送端信号模块
率进行,波特率可以通过接口模块的总线接口进行 设置.UART收发的每一个数据宽度都是波特率发
生器输出的时钟周期的16倍,即假定当前按照
9 600 b/s进行收发,那么波特率发生器的输出时钟
频率应该为9 600 x 16 Hz.假定提供的外部时钟为
46.
-!l 1J 常晓明.Verilog HDL实践与应用系统设计[M].北 京:北京航空航天大学出版社,2004.
b 1J Michael D C.Verilog HDL高级数字设计[M】.张雅 绮,李锵,译.北京:电子工业出版社,2005.
DESIGN oF UART CIRCUIT BASED oN FPGA
关键词:Verilog HDL;通用异步收发机;现场可编程门阵列;状态机
中图分类号:TN919.6
文献标识码:A
通用异步收发机(universal asynchronous reeeiv— er/transmitter,UART)是广泛使用的串行数据通信 电路模块,因为其要求的传输线少,可靠性高,传输 距离远.它提供了RS232C数据终端设备接口,使 得系统间互联常采用RS232接口方式.一般说来, 该接口由硬件(uART专用芯片)实现.UART功能 包括微处理器接口、用于数据传输的缓冲器 (Buffer)、帧产生、奇偶校验、并串转换等.广泛应用 于军事、工业、医药、通信、自动控制、仪器、话音图像 处理等众多领域.首先介绍异步串行通信原理,然 后着重介绍用硬件描述语言Verilog来开发符合 Rs232标准的UART通信接口电路的现场可编程 门阵列(field programmable gate array,FPGA)设计.
异步传输是一个字符接一个字符传输,在没有 传送代码时,通讯线会一直处于逻辑1状态;而传送 时,数据两头必须加上起始位和停止位.停止位的 起始时间可选为1位、1.5位或2位.一个字符的信 息由起始位、数据位、奇偶校验位和停止位组成.每 一个字符的传送靠起始位来同步,字符的前面是一 位起始位,用时钟下降沿通知接收方传输开始,紧跟 着起始位之后的是数据位,传输时低位在前、高位在 后,字符本身由5~8位数据位组成.数据位后面是 奇偶校验位,最后是停止位.停止位是高电平标志 一个字符的结束,并为下一个字符的开始传送做准 备.停止位后面是不定长度的空闲位.停止位和空 闲位都规定高电平,这样可以保证起始位开始处有
1.6 MHz,可以很简单地通过总线写入不同的数值
到波特率发生器保持寄存器,然后用计数器的方式 生成所需要的各种波特率,即分频器[5】.计算公式
如下,RS为所期望的波特率:
!鱼QQ QQQ一,“ (16×Rs)
,1、 、1 7
输出奇偶校验位’:::二)判断奇偶校验位
图6发送系统状态转换示意
state0状态:当UART被复位信号复位以后。 状态机将立刻进入这一状态,在该状态下读8位并 行数据,并转到statel.
ZHAO Quan,LIU Cui—ling (College of Information Engineering,Beijing Technology and Business University,Beijing 100037,China)
Abstract:This paper describes the function and characteristics of UART with FSM in Verilog.The key functions of FPGA,which include baud rate producer,transmitter and receiver,were implement— ed on FPGA.The simulation result is also given in this paper.When the Verilog program is download— ed in a FPGA chip.it works well and the data is totally correct.This design can perform the main function of UART.The circuit is simple and it works stably and credibly.It can be embedded in vari— OUS communication systems flexibly. Key words:verilog HDL;universal asynchronous receiver transmitter;field programmable gate array;
收稿日期:2007—09—27 作者简介:赵权(1982一)。男。河南信阳人,硕士研究生,研究方向为仪器仪表及其自动化;