基于FPGA的UART控制器的多模块设计与实现
基于FPGA的星载UART通讯设计与实现
基于FPGA的星载UART通讯设计与实现陈仁;王海英;华建文;樊庆;李文辰【期刊名称】《科学技术与工程》【年(卷),期】2015(015)013【摘要】通用异步收发器(universal asynchronous receiver transmitter,UART)广泛应用在星载仪器单机内部通信.针对复杂的空间电磁环境,电路受宇宙射线、单粒子影响较大的特点,研究了面向空间环境应用的UART电路设计方法.该方法在硬件上,使用抗辐照反熔丝型FPGA和军品级的通信接口芯片,实现UART通讯的总线拓扑连接结构.软件上,使用硬件描述语言完成串口通信协议,结合三模冗余串行TMR、并行TMR技术、数字滤波技术,提高系统的容错能力,提高系统的可靠性.给出了UART收发电路的工作原理、实现框图,并进行了仿真实验,实验结果验证了该方法的有效性.【总页数】6页(P212-217)【作者】陈仁;王海英;华建文;樊庆;李文辰【作者单位】中国科学院上海技术物理研究所;中国科学院红外探测与成像技术重点实验室,上海200083;中国科学院上海技术物理研究所;中国科学院上海技术物理研究所;中国科学院红外探测与成像技术重点实验室,上海200083;中国科学院上海技术物理研究所;中国科学院红外探测与成像技术重点实验室,上海200083;中国科学院上海技术物理研究所【正文语种】中文【中图分类】V447.1【相关文献】1.基于FPGA的UART模块设计与实现 [J], 刘博2.基于FPGA的UART设计与实现 [J], 刘宝军;王中训;娄阳;张珉;钟强3.基于FPGA的UART的设计与实现 [J], 张晓; 胡颖毅; 黄子硕; 魏鹏4.基于FPGA的UART抗干扰接收装置设计与实现 [J], 张名淑;张雅迪;王旭;陈飞;钱祥利5.基于FPGA的UART串行通信参数自适应设计与实现 [J], 杨洋;和蕾;王旭;钱祥利;陈飞;李静因版权原因,仅展示原文概要,查看原文内容请购买。
基于FPGA的UART电路的设计
UART传 送 一 个 字 符 以 起 始 位 ( tr i) 开 S atBt
始 , 以停 止位 ( tp Bt 结 束 ,字 符 之 间 没 有 固 定 So i )
的 时 间 间 隔 要 求 。每 一 个 字 符 的 前 面 都 有 一 位 起 始 位 ( 电 平 ,逻 辑 值 O ,字 符 本 身 由 5 8位 数 据 位 低 ) ~
波特率发 生模 块 、发送模块和接 收模块 ,并 给 出了仿真 结果 。程序 下载 到 F G 芯 片中 ,通信 数据 完全 正确 。 PA
该设计 不仅实现 了异步通讯 的主要 功能 ,而且 电路 简单 ,工 作稳定 、可靠 ,可 以将 其灵 活地嵌 入到各 个通 信系
统 中。
关 键 词 :F GA;UA P RT;VeigHD ro L l
Ab ta t s r c :Th s p p r d s rb s t e f n t n a d c a a t r tc f U ART. Th e u c i n f FP i a e e c i e h u c i n h r c e i is o o s e k y f n t s o GA , wh c o ih ic u e b u a e p o u e , ta s t e n e ev r we e i lm e t d o G n ld a d r t r d c r r n mitr a d r c i e , r mp e n e n FP Th i l t n r s l i a s e smu a i e u t s lo o
De i n o nd o s g f a ki fUART ic i a e o FPGA c r u tb s d n
基于FPGA的串口通信设计与实现
置和输人数据计算出响应
的奇偶校验位,它是通过
纯组合逻辑来实现的。
2.6总线选择模块
总线选择模块用于
选择奇偶校验器的输入是
数据发送总线还是数据接
收总线。
2.7计数器模块
计数器模块的功能
是记录串行数据发送或者
接收的数日,在计数到某
数值时通知UART内核模
块。 3 UART程序设计 UART完整的工作流程可以分为接收过程
关键词:FPGA:UART:RS232
引言 串行接口的应用非常广泛,为实现串口通 信功能一般使用专用串行接口芯片,但是这种 接口芯片存在体积较大、接口复杂以及成本较 高的缺点,使得硬件设计更加复杂,并且结构与 功能相对固定,无法根据设计的需要对其逻辑 控制进行灵活的修改。介绍了一种采用FPGA 实现串口通信的方法。 1串口通信协议 对一个设备的处理器来说,要接收和发送 串行通信的数据,需要一个器件将串行的数据 转换为并行的数据以便于处理器进行处理,这 种器件就是UART(Universal Asynchronous Re— ceiver/Transmitter)通用异步收发器。作为接iSl的 一部分,UART提供以下功能: 1.1将由计算机内部传送过来的并行数据 转换为输出的串行数据流; 1.2将计算机外部来的串行数据转换为字 节,供计算机内部使用并行数据的器件使用; 1.3在输出的串行数据流中加入奇偶校验 位,并对从外部接收的数据流进行奇偶校验: 1.4在输出数据流中加入启停标记,并从 接收数据流中删除启停标记。 2 UART模块设计 UART主要由UART内核、信号检测器、移 位寄存器、波特率发生器、计数器、总线选择器 和奇偶校验器7个模块组成。(见图1) 2.1 UART内核模块 UART内核模块是整个设计的核心。在数 据接收时,UART内核模块负责控制波特率发 生器和移位寄存器同步的接收并且保存 RS一232接收端口上的串行数据。在数据发送 时,UART内核模块首先产生完整的发送序列, 之后控制移位寄存器将序列加载到移位寄存器 的内部寄存器里,最后再控制波特率发生器驱 动移位寄存器将数据串行输出。 2_2信号检测模块 信号检测器用于对RS一232的输入信号进 行实时检测,一旦发现新的数据则立即通知 UART内核。需要注意的是,这里所说的 RS一232输入输出信号都指经过电平转换后的 逻辑信号,而不是RS一232总线上的电平信号。 2_3移位寄存器模块 移位寄存器的作用是存储输入或者输出 的数据。 2.4波特率发生器模块 由于RS一232传输必定是工作在某种波特 率下,比如9600,为了便于和RS一232总线进行 同步,需要产生符合RS一232传输波特率的时 钟。 2.5奇偶校验器模块 奇偶校验器的功能是根据奇偶校验的设
基于FPGA的UART设计综述
四川师范大学本科毕业设计基于FPGA的UART设计学生姓名院系名称专业名称班级学号指导教师完成时间基于FPGA的UART设计电子信息工程专业摘要:UART(通用异步收发器)是一种应用广泛,协议简单,易于调试的串行传输接口。
FPGA是能高密度,低消耗完成所需要的逻辑功能的一种在线可编程器件,是现在业内提高系统集成度最佳技术之一,其可反复配置,且使用灵活。
VHDL 是描述电路功能或行为的一种硬件语言。
本文首先阐述了运用FPGA实现UART接口的意义。
接着介绍了UART的波特率发生器,发送功能和接收三大核心功能的理论知识。
FPGA的工作原理,配置模式以及VHDL语言实现状态机的相关理论基础。
给出了运用VHDL语言将UART三大功能嵌入在FPGA上的模块化设计方法。
设计包括四大模块:顶层模块,波特率发生器,UART接收器,UART发生器。
在FPGA片上集成UART主要功能,减少了电路板体积,同时电路也增加了可移植和反复配置功能,有效提高了电路的集成度和灵活性。
最后运用Quartus ii 9.1实现了其功能仿真。
关键词:FPGA UART VHDL 有限状态机The Design of Universal Asynchronous Receiver Transmitter Based on FPGAAbstract:UART (Universal Asynchronous Receiver Transmitter) is a widely used, simple protocol, easy to debug serial transmission interface. FPGA is capable of high-density, low-cost needed to complete a line of programmable logic devices, is now one of the industry's best technologies to improve system integration, which can be repeated to configure and use and flexible. VHDL description of the circuit function or behavior is a hardware language. This paper first describes the use of FPGA to realize the significance of the UART interface. Then introduced the theory of knowledge UART baud rate generator, sending and receiving three core functions. FPGA works, configuration mode and the VHDL-based state machine theory. Gives the UART using VHDL language to three functions embedded in the FPGA design. Design includes four modules: the top-level module, baud rate generator, UART receivers, UART generator. Integrated on-chip UART FPGA basic functions, reducing board space, the circuit also increases the portability and repeated configuration capabilities, improve the integration and flexibility of the circuit. Finally, the use of Quartus ii 9.1 implements its functional simulation.Key Words:FPGA ;UART ;VHDL;FSM目录摘要: (I)Abstract: (II)1 绪论 (1)1.1 课题背景 (1)1.2 课题研究现状 (2)1.3 课题研究内容与主要工作 (3)1.4 课题内容结构 (3)2 UART理论基础 (4)2.1 接口技术简介 (4)2.2 UART基本结构 (4)2.3 UART数据帧格式 (5)2.4 涉及到的理论计算 (6)3 设计工具 (7)3.1 课题硬件平台——FPGA (7)3.2 设计工具QuartusII简介与使用 (7)3.3 VHDL语言简介 (7)4 UART实现方案 (8)4.1 系统总体结构 (8)4.2 顶层模块设计 (8)4.3 波特率发生模块设计 (9)4.4 接收模块 (10)4.5 发送模块设计 (12)5 UART设计的仿真与验证 (15)5.1波特率发生模块仿真 (15)5.2 接收模块仿真 (15)5.3 发送模块仿真 (16)6 总结 (17)参考文献 (18)致谢 (19)附录 (20)基于FPGA的UART设计1 绪论在计算机的数据通信中,外设一般不能与计算机直接相连,它们之间的信息交换主要存在以下问题:(1)速度不匹配。
基于FPGA实现多路UARTSPI通信系统
基于FPGA实现多路UARTSPI通信系统第一部分设计概述 /Design Introduction本次的设计为多路UART/SPI通信系统,可以实现一对多的通信。
系统可以运行在UART模式,也可以运行在SPI模式。
我选择这一课题的原因主要是目前我所在的实验室需要写基于UART的快速通信。
这一课题既可以帮助我巩固之前学习的知识,又可以为我后面的项目做准备。
在完成课题的过程中,主要用到了FPGA状态机、总线等方面的知识。
这一课题可以应用在需要高速异步串行或同步串行通信的应用场合,如实时控制、监测等。
当系统运行在UART模式下,可以实现一个发送端最多向四个接收端发送信息,且有效信息中包含地址码,接收端可以根据发送端发送的地址码判断该信息是否是发送给自己的,实现信号线复用。
UART 通信简单,仅需要一根信号线,但是其缺点是只能实现单向通信,接收端无法给发送端反向发送数据。
但是这一缺点也可以通过采用两个UART系统来弥补。
当系统运行在SPI模式下,可以实现一个主机与多个从机之间的通信,且在通信过程中,系统是全双工的。
主机通过选择性拉低某一个或者某几个从机的片选信号,实现对于从机的选择。
第二部分系统组成及功能说明 /System Construction & Function Description计划功能程序实现UART和SPI的通信,并可以通过按键的方式在两种模式之间切换。
在UART模式下,发送端给接收端发送一串数据,接收端判断是否和已知数据相符。
如果相符则点亮LED,如果不符则不点亮。
在SPI模式下,主机给从机、从机给主机同时发送数据,若接收到的数据和已知数据相符,则点亮LED,如果不符,则不点亮。
同时,UART和SPI均有寻址功能。
UART的寻址方式是在数据位前面加两位地址位,实现对最多四个接收端的区分;SPI的寻址方式是通过拉低需要选定的从机的SS信号,实现对最多四个接收端的区分。
目前所有的功能均已实现。
基于DSP+FPGA的UART设计与实现
基于DSP+FPGA的UART设计与实现摘要:UART作为RS232协议的控制接口得到广泛的应用,将UART功能集成在DSP和FPGA芯片组成的系统中,可使整个系统更为灵活、紧凑,减小电路体积,提高系统的可靠性和稳定性。
本文提出了一种基于DSP和FPGA 系统的UART 实现方法。
关键词:通用异步收发器;DSP;FPGA1 引言通用异步收发器(Universal Asynchronous Receiver/Transmitter,通常称作UART)是一种串行异步收发协议,应用十分广泛。
UART可以和各种标准串行接口,如RS232、RS485等进行全双工异步通信,具有传输距离远、成本低、可靠性高等优点。
一般UART 由专用芯片来实现,但专用芯片引脚较多,内含许多辅助功能,在实际使用时往往只需要用到UART 的基本功能,使用专用芯片会造成资源浪费和成本提高[1]。
在DSP和FPGA组成的系统中,利用DSP芯片完成UART数据收发控制,FPGA完成UART数据具体的收发时序,二者利用EMIF接口配合,即可实现UART通信功能。
这样设计可以大大减少电路体积、简化电路,也提高了系统的灵活性,使整个系统更加紧凑、稳定且可靠。
2 UART原理UART是一种串行数据总线,用于全双工异步通信。
工作原理是将数据的二进制位按位进行传输。
基本的UART 只需要两条信号线(收、发)和一条地线就可以完成数据的互通,接收和发送互不干扰。
在UART通信协议中,信号线上的状态位高电平代表“1”,低电平代表“0”。
图1 UART数据传输格式UART 数据传输格式如图1所示,一个字符由起始位、数据位、校验位和停止位组成(其中校验位可选)。
其中各位的含义如下:起始位:一位逻辑“0”信号,表示字符数据传输的开始;数据位:5~8位可选的逻辑“0”或“1”。
数据位的发送顺序为:先发送数据的最低位,最后发送最高位;校验位:包括奇校验或偶校验两种方式,即数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)。
基于FPGA的UART模块的设计
基于FPGA的UART模块的设计作者:杨宗国李艳萍来源:《现代电子技术》2009年第02期摘要:为了实现计算机与基于FPGA图像处理系统的数据通信,这里用FPGA设计了一款简易通用异步收发器(UART)模块。
UART的主要功能是实现数据处理模块与RS 232串行数据接口之间的数据转换,即将送过来的并行数据转换为输出的串行数据流,由数据处理模块传送给计算机,还可以将串行数据转换为并行数据,供数据处理模块使用。
为了简化电路设计,减少电路面积,这里省略了UART系统中的奇偶检验模块。
关键词:FPGA;VHDL;串/并转换;并/串转换;UART中图分类号:TN971文献标识码:B文章编号:1004 373X(2009)02 019 04Design of UART Module Based on FPGAYANG Zongguo,LI Yanping(College of Information Engineering,Taiyuan University of Technology,Taiyuan,030024,China)Abstract:To realize data communication between computer and FPGA-based image processing system,a simple Universal Asynchronous Receiver Transmitter(UART)is designed by FPGA.The main function of UART is to realize data conversion between data disposal module and RS 232 serial port,that is to say,parallel data trinsmitted by data disposal module is converted into serial data flow,then it is transmitted into computer,the serial data is converted into parallel data for the usage of data disposal module.For predigesting circuit design and reducing electrocircuit proportion,parity check module is not needed.Keywords:FPGA;VHDL;S/P conversion;P/S conversion;UART0 引言在计算机的数据通信中,外设一般不能与计算机直接相连,它们之间的信息交换主要存在以下问题:(1)速度不匹配。
基于FPGA的UART16550的设计
基于FPGA 的UART16550的设计王建伟,王厚军,王 毅(电子科技大学自动化工程学院 四川成都 610054)摘 要:串行通信在数字信息系统以及控制系统中得到了广泛的应用。
针对传统UAR T 传输速率低、稳定性相对较差的状况,介绍了高速异步串口UAR T16550的工作原理与设计实现,并且给出在现场可编程门阵列FP GA 上的实现与验证仿真。
这项设计对于片上系统之间以及与PC 机之间的串行数据传输有了很大程度的改善。
关键词:UAR T16550;串口;FIFO ;FP GA中图分类号:TN919 文献标识码:B 文章编号:1004-373X (2007)09-054-02Design of UART16550B ased on FPG AWAN G Jianwei ,WAN G Houjun ,WAN G Y i(School of Automation ,University of Electronic Science &Techonolgy of China ,Chengdu ,610054,China )Abstract :Serial communication is widely used in digital information systems and control systems.The traditional UAR T transfers data at a low speed and is not so stable.This paper introduces a higher performance UAR T16550which is designed on a FP GA.The simulation shows it works well on the FP GA.It will greatly improve the efficiency of data transmission be 2tween SoC and PC.K eywords :UAR T 16550;serial port ;FIFO ;FP GA收稿日期:2006-09-061 引 言UAR T (Universal Asynchronous Receiver/Transmit 2ter ,通用异步收发器)是用于控制CPU 与串行设备通信的芯片,将由CPU 传送过来的并行数据转换为输出的串行数据流。
基于FPGA的UART设计与应用
Tas ie U R ) r mt r A T是一种短 距离串行通信接 口,主要 用于计 n t, 算机、 处理器与小型通信 网络之 间的短距离通信…。目前, 微
通信接 1技 术已发展 成为硬件 和软件相 结合 的综合性技术 , 3 在嵌入式系统设 计中 ,异步串行通信接 1 3已成为必不可少 的
3 波特率发生器设计
按照 R 一3 通信规则 ,该 U R S22 A T输出 1 6倍波特率 的时 钟信号 ,UA T 在发送数据 时,只需将数据按照一定格式和 R 速率 串行移位发送 。当 U T接收数据 时,在何时采样数据 AR 线 ,即读入 串行数据 的时刻非常关键 。最理想情况是在 串行 数据每一位 的中间时刻 ,对 串行 数据进行采样 。为保证数据 采集 的准确性 ,需要对每一位数据 的时间进行 分段来降低接 收方 出现采样错误 的概率 。本设计是在每 一串行数据位 的持
p o o e T l o i m n l d ss ae m a h n e i n a d l v l e i e h i u s T e ta mis o u t ff l— up e e e v / e d t r p s d. hea g rt h i cu e tt c i e d s g n e e sgn tc n q e . d h r ns s i n f nci o ld lx t r c i e s n sdaa i on u o s r ai e T e f nci a s ic t fUART sas e i e Ex e i n a e u t h w a e d s g a ea v n a e fp o r mm a l i i o e l d. z h u t on l e t r ui o t c i l o d sgn d. p r me t lr s lss o t tt e i n h s d a tg so r g a h h h t bedgt f t e s n /e e v a aa d f n to a x a so t . h e d r c i e d t n u c i n l p n i n e c e ‘
基于FPGACPLD设计与实现UART(VHDL)
基于FPGA/CPLD设计与实现UART(VHDL)1 引言由于微电子学和计算机科学的迅速发展,给EDA(电子设计自动化)行业带来了巨大的变化。
特别是进入20世纪90年代后,电子系统已经从电路板级系统集成发展成为包括ASIC、FPGA/CPLD和嵌入系统的多种模式。
可以说EDA 产业已经成为电子信息类产品的支柱产业。
EDA之所以能蓬勃发展的关键因素之一就是采用了硬件描述语言(HDL)描述电路系统。
就FPGA和CPLD开发而言,比较流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL 和Verilog HDL因适合标准化的发展方向而最终成为IEEE标准。
下面的设计就是用VHDL来完成实现的。
2 UART设计实例通常设计数字电路大都采用自顶向下将系统按功能逐层分割的层次化设计方法,这比传统自下向上的EDA设计方法有更明显的优势(当时的主要设计文件是电路图)。
因为由自顶向下的设计过程可以看出,从总体行为设计开始到最终逻辑综合,形成网络表为止。
每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件的设计周期。
下面以UART的设计为例具体说明:(本设计只对本设计的总模块做各种基于MAX+PLUS II环境下的各种分析,对于各分模块只是作些必要的说明。
) UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是一种应用广泛的短距离串行传输接口。
UART允许在串行链路上进行全双工的通信。
串行外设用到的RS232-C异步串行接口,一般采用专用的集成电路即UART实现。
如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。
或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。
基于FPGA的UART 16倍频采样的VHDL设计
基于FPGA 的UART 16 倍频采样的VHDL 设计概述随着电子设计自动化(EDA)技术的发展,可编程逻辑器件FPGA/CPLD 已经在许多方面得到了广泛应用,而UART(通用异步收发器) 是在数字通信和控制系统中广泛使用的串行数据传输协议。
因此越来越多用户根据自己的需要,以EDA 技术作为开发手段,用一块FPGA/CPLD 设计出符合自己需要的UART 芯片。
基于FPGA/ CPLD 的UART 设计在诸多文献中都有论述,在此不再对UART 整个功能模块实现做太多的论述。
本文着重分析UART 接收器起始位的检测。
3 倍频采样的缺陷首先,串行异步通信规定了字符数据的传送格式。
每一帧数据由起始位、数据位、奇偶校验位、停止位和线路空闲状态组成,格式如图1 所示。
一般情况起始位为1 位,数据位为5、6、7 或8 位、奇偶校验位为1 位,停止位为1、1.5 或2 位。
其中的起始位和停止位就是用来实现字符的同步。
在空闲状态,传送线为逻辑1 状态。
数据的传送总是以一个起始位开始的,接着是要传送的若干数据位,低位先行,最后是一个1 状态的停止位;那么,当接收器检测到一个1 向0 的跳变时,便视为可能的起始位。
起始位被确认后,就知道发送器已开始发送,当接收了已协议好的位数后并接收到字符帧中停止位就是一帧字符数据已发送完毕。
这样,接收器就知道发送器何时开始发送数据和何时结束发送数据。
要提高接收器的接收准确性,减少误码率,必须要用比数据波特率高n 倍(n≥1)的速率对数据进行采样。
文献2 中采用了非常规的3 倍频采样方法:用3 倍频的波特率对每一位数据进行采样(如图2 所示),然后对3 次采样结果进行判决。
如果3 次采样中至少有2 次为高电平,则接收这一位数据被判决为。
基于FPGA的UART设计与实现
基于FPGA的UART设计与实现作者:何勇来源:《现代电子技术》2010年第11期摘要:介绍了应用现场可编程门阵列(FPGA)设计和实现通用异步收发器UART的方法。
采用有限状态机模型形式化描述了UART的功能,在此基础上用硬件描述语言VHDL编程实现了UART,并使用Quartus Ⅱ软件中的嵌入式逻辑分析仪SignalTapⅡ对数据传输进行了检测,验证了设计的正确性。
关键词:FPGA; UART; 有限状态机; SignalTapⅡ中图分类号:TP332 文献标识码:A文章编号:1004-373X(2010)11-0154-03Design and Realization of UART Based on FPGAHE Yong(College of Computer Science & Information, Guizhou University, Guiyang 550025, China)Abstract: A method to design and realize the universal asynchronous receiver/transmitter(UART) based on the field programmable gate array(FPGA) is introduced.The functions of UART are described formally by using the finite state machine model, by the way, UART is realized on the basis of VHDL. Moreover, the data transmission is detected with SignalTapⅡ which is an embedded logic analyzer in Quartus Ⅱ. The result proves the validity of the design.Keywords: FPGA; UART; finite state machine; SignalTapⅡ0 引言通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)可以和各种标准串行接口,如RS 232和RS 485等进行全双工异步通信,具有传输距离远、成本低、可靠性高等优点[1]。
基于FPGA的UART通信模块设计_20111002
一基于FPGA的UART通信模块设计1. UART简介(1)UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。
常常用于短距离、低速、低成本的通讯中。
8250、8251、NS16450等芯片都是常见的UART器件。
(2)基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。
TXD是UART发送端,为输出;RXD是UART接收端,为输入。
2. UART的基本特点是:(1) 在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。
在发送器空闲时,数据线应该保持在逻辑高电平状态。
(2) 起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。
(3) 数据位(Data Bits):起始位之后就是传送数据位。
数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。
(4) 校验位(parity Bit):可以认为是一个特殊的数据位。
校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。
在使用中,该位常常取消。
(5) 停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。
(6) 位时间:即每个位的时间宽度。
起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。
(7) 帧:从起始位开始到停止位结束的时间间隔称之为一帧。
(8) 波特率:UART的传送速率,用于说明数据传送的快慢。
在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。
如波特率9600=9600bps(位/秒)。
3. FPGA UART系统组成FPGA UART由三个子模块组成:波特率发生器;接收模块;发送模块;包含四个模块:顶层模块,波特率发生器,UART接收器,UART发送器(1)顶层模块(1)异步收发器的顶层模块由波特率发生器、UART接收器和UART发送器构成。
基于FPGA的UART模块化设计
几 r 广. 几 厂. 几 . n 几 r ] 弋 门. 弋n 一 ]几 n 几 几 几 几 r n n r ] n
广 1 _
Tas ie) 得 到 了相 当广 泛 的 应 用 , 允 许 串行 链 路 rnmt r t 也 它 广- 1 上 进行 全双 工 通 信 。 一般 使 用 通 用 的 U R A T接 口芯 片 , 但 这 种 芯 片 存 在 电路 复 杂 , 本 高 , 低 了 系统 的 可 靠 成 降 图 2 波 特 率发 生 器 仿 真 结 果 性 和稳定度 , 由于 结 构 和 功 能 的相 对 固 定 , 因而 我 们 不 能 根 据 自 己的 设 计 需 要 去 进 行 剪 裁 和 移 植 。 而 日益成 熟 的 S P 所 以分 频 器 对 晶振 的 分频 数 为 3 6 每 一 计 数 周期 周期 使 输 出 电平 OC 2, (yt nPorm beC i 技 术要 求将 整 个 设 计 功 能 集 成 到 ~ 高 、 变 化 , S s m O rga mal h e p) 低 即可 得 到 9 0 6 0波特 率对 应 的 U R 的时 钟 。 图 2为波 AT 块或几块芯 片中, 文通过对 U R 本 A T功 能 的 分析 , 出 了在 F G 特率 发生 器 的 仿真 波形 。 提 PA 22接 收器 模 块 接 收 模块 从 捕 捉到 数据 串的 第 一 个 0开 始 工 - 上 集成 U R A T功 能模 块 , 强 了设 计 的 灵活 性 , 化 了电 路 , 通 过 增 简 并 有 限状 态 机 来描 述 核 心 功 能控 制 逻 辑 , 而 提 高 了整 个 系统 稳 定 性 作 , 也 就 是 验 证 起 始 位 的 到 从 来 , 证 完 后 , 始 接 收 8位 验 开 数 据 , 进 行 串并 转 换 , 后 并 随 正 UR A T是 异 步 通 信 方 式 , 基 本 的 U R 最 A T通 信 只 需 要 两 条信 号 检测停止 位 , 确则输 出。接 所 线 ( X ,X 就 可 以完 成 数 据 的相 互 通 信 , 收 和 发 送 是 全 双 工 收 器状 态 转换 如 图 3 示 。 R DT D) 接 的 , 接收端, 在 串行 的数 字 信 号 转 化成 并 行 的信 号 , 能进 行 处理 数 才 接 收 器 状 态 机 共 包 含 四 据 , 发送 端 , 行 的 信 号 转 化 成 串行 信 号 才 能被 发送 到 另 一 个 设 个 状 态 : 闲 状 态 ( L 、 在 并 空 I E)检 D 备 中使 用 。 测 起 始 位 ( T R 、 据 采 样 S A T)数 S IT)停 S O U R A T帧 格 式 ( 就 是 发送 数据 的格 式 )是 以 一 个 起始 位 开 始 (H F 、 止 位检 测 (T P o 也 ,
基于FPGA的UART控制器的多模块设计与实现
作 状 态 可 读 取 。 系 统 结 构 进 行 了模 块 化 分
测 器 、移位 寄 存器 、波 特 率发 生器 、计 数 器、总线选择 器和奇偶校验 器总共 7个
模 块 组 成 ,如 图一 所 示 。 UART 各个模块 的功 能如下 :
解 ,使之适应 自顶 向下的设 计方 法。核 心部
、
U R A T实现原 理
UART主要有 UART内核、信号监
F GA; U R P A T; M l -mo e ; Fnt sa e ma h e ut i dl s i e t t c l i n
引言
异步 串行通 信要 求的 传输 线 少 ,可 靠性 高 ,传输 距离远 ,被广 泛应 用于微 机和 外设 的数据 交换 。 实现 串 口通信 主 要需要 完成 两部分 工作 : ( )将 串 口电平 转换 为设备 电路板 1 的 工 作 电 平 ,即 实 现 R S 232 电平 和 TTL CMOS电平的转换 ; / ( )接收并且检验 串行的数据,将数 2 据变成并行的并提供给处理 器处理 。
b s n P A. 1 b u r t c n e e a d h a e o F G t a d a e a b s t n t e S sa e c n e ra . T e tu t r o t e s se i t t s a b e d h s rc ue f h y t m S d ie r m d lr a i S t a a f te me h d i d d i o u i to O h t c n i h t o v l az n t
UART控制器设计
U A R T控制器设计(总15页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--西安电子科技大学可编程逻辑器件原理、应用与实验课程实验报告实验名称UART控制器设计及验证研究生院学院代培生班Array姓名学号同作者实验日期 2017 年 4 月 23 日目录一任务简介 (1)实验目的 (1)开发工具平台 (1)二模块设计 (2)输入模块设计 (2)机械按键消抖 (2)矩阵键盘扫描 (3)参量输入及显示输入 (5)显示模块 (6)三态门控制模块 (8)UART通信协议帧格式及波特率设置 (9)UART通信模块 (10)串口数据发送模块 (11)串口数据接收模块 (12)三系统介绍 (13)系统结构介绍 (13)系统子模块介绍 (15)开发板实验结果 (17)四总结 (20)一任务简介实验目的本次任务的目标为设计一个基于FPGA的串口通信控制器,具体技术要求如下:(1) 实现与PC的双向通信;(2) 可以通过输入模块在开发板上定义向PC发送的数据;(3) 数据帧长度可调(6/7/8位);(4) 通信波特率可调;(5) 在数码管上实现波特率、输入数据、接收数据的显示。
(6) 按键A用于接收模式和输入模式的选择,按键B用于选择输入模式为波特率设置还是发送数据设置,按键C为发送确认键,按键D用于选择数据帧长度,矩阵键盘(0~9)用于输入波特率因子和发送数据(十六进制显示);各种模式均有数码管显示相应内容,其中数据帧长度由四个LED灯表示。
(7) 操作流程:1. 通信参数设置:在开发板上选择数据帧长度、设置波特率、输入发送数据帧;在PC端的串口通信助手中设置波特率和数据帧长度;2. 数据发送:按下C键向PC发送数据,在PC端确认接收的数据;3. 数据接收:由PC端向开发板发送数据,在开发板上选择数据接收模式即可显示;4. 默认设置:UART控制器默认波特率为9600,默认发送数据为8’h18;(8) 以上内容均需在开发板上验证;实验截图在本文第三部分给出。
基于FPGA的UART模块设计及仿真
Q a ul软件进行顶层和 R L级的仿真和观察 , dl ur s t I T Moe —
S 仿真 工 具 仿真 发 送 过 程 以及 应 用 开 发 板 上 L D等辅 i e r E 助显 示 接 收 数据 。结 果 使其 性 能 稳 定 ,并 在 此 设 计 基 础 上 更 容 易 扩 展 为 U A O E, 于 A I 计 的重 复 R TI C R 利 P SC设
Ke wo ds F y r : PGA ; UART; rlg;i l t n Ve i o smu a i o
UART( ie slAs n h o o sRe ev rTr n mi e Unv ra y c r n u c ie / a s t r) t
通 用 异 步 收 发 器 是 各 种 设 备 之 问进 行 通 信 的关 键 模 块 , 当一 个设 备 需 要 和另 一 个 连 接 的设 备 进 行 通信 时 ,通 常 采 用 数 字 信 号 。在 硬 件 方 面 采 用 的 是 基 于 Cc n yl eI o I FG P A系列 的开 发 板 ,时钟 晶振 为 5 z 0 MH 。本 文 在 做 以 FG P A为处理 器 的系 统设 计 时 , 用 V ro 硬件 描 述语 言 采 eig l
设 计 ,在 片 内集 成 了一 款 通用 性 较 强 的 U T模 块 。用 AR
起始位
( tr) s t a
2
奇偶位
( ai ) p r y t
停 止位
(t s p) o
图 1 数 据 传 输 时 序 图
2 U ART控 制器 的 Vei g实现 ro l
21 顶 层 模块 组成 结 构 .
Ab t a tT e s s e , sn P s r c : h y t m u i gF GA h pa ep o e s r p o i e c i s h r c s o , r v d s UART mo u e, h c e in d b rlg h r wa ed s rp i n t a d l w i h i d sg e yVe i a d r e c i t s o o
基于FPGA和UART接口的多路数据采集系统的实现
Trn mi e a s t r通用异 步收发 器) t 是广 泛使用 的串行数
据传输 协 议 。其 中 R 一2 是 美 国 电子 工业 协会 在 S4 2
2 0世 纪 7 O年 代末 代 推 出 的数字 通 讯 电气 标 准 , 它 弥 补 了 R 一 3 通 信 距离短 、 率低 等不 足 , 标准 S2 2 速 该
关 键 词 : P A, F G UAR 采 集 系 统 T,
.
中宙分类号: 3 14 TP 9 . 1
文献标识码 : A
I
Th m p e e t to fM u t— h n e t q iii n e I l m n a i n 0 lic a n lDa a Ac u sto
we r a ie d t c u s t n mo u e s l c i g t e c a n lo a o i n l n a a l lt — e ilc n e t r e l a a a q ii o d l 、 ee t h h n e f An l g S g a d p r l — o s ra o v r e z i n a e wi ? Di ia i n l n O o t h g t lS g a ,a d S n;An s n 一 2 n e f c e l e l n it n e a d s ra r n miso d u i g RS 4 2I t r a e r ai o g d s a c n e ilt a s s i n z f r Di ia i n 1 Th u c i n s mu a i n r s ls a d a t a a u e n r v h o r c n s f t e o g t lS g a . e f n t i l t e u t n c u l me s r me t p o e t e c r e t e s o h o o
基于FPGA的多串口通信设计与实现
Ke y Wo  ̄S : s e r i a l p o r t ; AS I C; F P GA; UAl k T; i n t e =u p t c o n t r o l l e r ; VHDL
串行通信 因为具有传输线少、 成本低、 配置灵活等特 点, 得到了 广泛应用 , 通用异步收发传 输器 ( Un i v e r s a l As y n c h r o n o u s Re — c e i v e r / Tr a n s mi t t e r ) , 是一种 比较常用的接 口电路 , 主要用于 串行数 据和并行数据的转换。 一般该接 口由专用的UAR T 芯片完成 , 例如 S Cl 6 C 5 5 4 B I B 6 4 , 该接 口芯片具有4 路独立 的通道 , 同时提供多种控 制功能 , 但在实际使用 中往往只使用一种特定控制方式 , 这 不仅造 成 电路复杂和浪费 , 而且会使P C B 面积增 大, 布线复杂 。 [ 1 1 F P G A( F i e l d - P r o g r a mma b l e G a t e Ar r a y ) , 即现场可编程 门 阵列 , 它是作为专用集成电路领域中一种 半定制电路出现 的 , 既解 决了定制 电路的不足, 又克服了原有可编程器件 门电路数有 限的缺 点。 F P G A中具有 丰富的触发器和I / O口, 采用描述语言(ቤተ መጻሕፍቲ ባይዱVHD L 和 V e r i l o g HD L )  ̄行设计 , 用户可以根据需要, 描述 出具有各种功 能的
基于FPGA的UART控制器的实现
接收 数据不 正确 , 波特 率发生 器就是 专 门 产 生一 个 远 远 高 于波 特 率 的本地 时 钟信 号 对 输 入 R XD不 断采
样, 以不断地 让接 收器 与发 送器保 持 同步.2 £
本设 计 主要分 为波特 率发生 器模块 、 发送 模块 和接 收模块 , 采用 的芯 片为康 欣公 司的 K _ C X 7 5系列 芯 片, 其具 体型 号为 E 2 5 I4 具备 4 0 P C T4 , 6 8个 逻辑 宏单元 、 两个 锁相 环 , 2 约 0万 门 、 l 约 2万 R M b .具 体 A i t
系统 可靠性 . 此外 , 基于 F G P A的设计具 有很高 的灵活性 , 以方便 地进行升级 和移 植. 可
1 U R A T控 制 器 的 F G P A实现
异步 收发器 的顶层 模块 由波特率 发生 器 、 A T接 收 器和 U R U R A T发 送 器 构成 . A T发送 器 的用 途是 U R 将准 备输 出 的并 行数 据按照基 本 U R A T帧 格 式转 为 T D信 号 串行 输 出 ; A T接 收器 接 收 R D 串行 信 X U R X 号 , 将其转 化为并 行 数据 , 串并转 换 的时钟 同发送 器一样 处理 , 并 但 收发设 备 间 的时钟 是会 累计 的 , 导致 会
销 3 巷 第7 l
2 1 年 3月 0】
兴 艾珥 学Fra bibliotek院学
报
V( . NO 7 ' 3l 1 .
Ma . Ol I2 1
J) tURNAI OF 5HA(Xl INI ) N( VERSI、 3Y
基于 FG P A的 U R A T控 制 器 的实 现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
异步串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于微机和外设的数据交换。
实现串口通信主要需要完成两部分工作:
将串口电平转换为设备电路板的工作电平,即实现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各个模块的功能如下:
(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内核会重置信号监测器,以准备进行下一次数据接收。
基于FPGA的UART控制器的多模块设计与实现
2010年12月2日 14:59 中国科技信息作者:张明
发送过程由加载和发送两个步骤组成,如图三所示。
加载步骤是UART内核按RS-232串行发送的顺序将起始位、数据位、奇偶校验位和停止位加载到移位寄存器内,这个过程工作在系统时钟下,相对于RS-232的传输速度来说非常快。
完成加载步骤后,UART内核会重置波特率发生器,并且设置移位寄存器工作在波特率模式下,于是移位寄存器便在波特率时钟的驱动下依次将加载的数据发送到RS-232的发送端TxD,这样便产生了RS-232的数据发送时序。
3、UART各个模块的实现
除UART内核模块以外,其他模块都较为简单,用于实现某一具体功能。
现在重点对UART内核模块的实现做出介绍。
UART内核模块的功能是控制数据接收、数据加载和数据发送的过程,这可以用状态机来实现。
下面就按接收和发送的过程来介绍UART内核模块状态机的实现。
(1)数据接收过程
数据接收过程的流程图如图二所示,可以定义3个状态——空闲、接收和接收完成,其中状态变换图如图四所示。
(2)数据加载和发送过程
数据加载和发送过程都是为了发送数据而设定的,所以将它们放在一起进行介绍。
可以用4个状态来实现上述的过程,即空闲、加载、发送和发送完成,其中的空闲状态就是UART内核复位后的空闲状态,和上面介绍的数据接收过程的空闲状态一致。
数据加载和发送过程的状态转换图如图五所示。
4、仿真结果
在波特率为9600情况下对UART进行仿真,结果稳定可靠。
该设计具有很好的可读性和灵活性,具有很好的参考价值。