基于FPGA的UART模块化设计
- 格式:pdf
- 大小:911.21 KB
- 文档页数:2
基于FPGA的UART接口模块设计关键字:FPGAUART(UniversalAnynchronousReceiverTransmitter,通用异步接收发送器)是广泛应用的串行数据传输协议之一,其应用范围遍及计算机外设、工控自动化等场合。
虽然USB传输协议比UART协议有更高的性能,但电路复杂开发难度大,并且大多数的微处理器只集成了UART,因此UART仍然是目前数字系统之间进行串行通信的主要协议。
随着FPGA的广泛应用,经常需要FPGA与其他数字系统进行串行通信,专用的UART 集成电路如8250,8251等是比较复杂的,因为专用的UART集成电路既要考虑异步的收发功能,又要兼容RS232接口设计,在实际应用中,往往只需要用到UART的基本功能,使用专用芯片会造成资源浪费和成本提高。
可以将所需要的UART功能集成到FPGA内部,实现FPGA与其他数字系统的直接通信,从而简化了整个系统电路,提高了可靠性、稳定性和灵活性。
1 UART简介基本的UART通信只需要两条信号线(RXD,TXD)就可以完成数据的相互通信,接收与发送是全双工形式,其中TXD是UART发送端,RXD是UART接收端。
UART基本特点是:在信号线上有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。
在发送器空闲时,数据线应保持在逻辑高电平状态。
发送器是通过发送起始比特而开始一个字符传送,起始比特使数据线处于逻辑0状态,提示接收器数据传输即将开始。
数据位一般为8位一个字节的数(也有6位7位的情况),低位(LSB)在前,高位(MSB)在后。
校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。
停止位在最后,用以标志UART 一个字符传送的结束,它对应于逻辑1状态,UART数据帧格式如图1所示。
图1 UART数据帧格式2 UART功能实现UART可以分解为3个子模块:波特率发生器模块;发送模块;接收模块。
UART的功能主要由VHDL硬件描述语言编程,图2是编译后生成的图元SCI,它包括了UART的最主要的部分,即发送模块和接收模块。
关于以FPGA为基础的UART控制器设计方案详解通用异步收发器(UART,Universa lA synchronousRece iver Transm itter)是一种应用广泛的短距离串行传输接口,具有传输线少、成本低、可靠性高等优点。
8250、8251等都是常见的UART 接口芯片,但专用芯片一般引脚较多,内含许多辅助模块和一些辅助功能,在实际使用时往往用不到这些功能,基本的UART 通信只需要接收和发送两条信号线,接收与发送是全双工形式,因此若采用UART 专用芯片,将会使电路变得复杂,PCB面积增大,从而导致成本增加,系统的稳定性和可靠性降低。
由于FPGA 的功能日益强大,开发周期短、可重复编程等优点也越来越明显,可以在FPGA 芯片上集成UART 功能模块,从而简化电路,缩小PCB 面积,提高系统可靠性。
此外,基于FPGA 的设计具有很高的灵活性,可以方便地进行升级和移植。
1、UART 控制器的FPGA实现异步收发器的顶层模块由波特率发生器、UART 接收器和UART发送器构成。
UART 发送器的用途是将准备输出的并行数据按照基本UART 帧格式转为TXD 信号串行输出; UART 接收器接收RXD 串行信号,并将其转化为并行数据,但串并转换的时钟同发送器一样处理,收发设备间的时钟是会累计的,会导致接收数据不正确,波特率发生器就是专门产生一个远远高于波特率的本地时钟信号对输入RXD 不断采样,以不断地让接收器与发送器保持同步。
本设计主要分为波特率发生器模块、发送模块和接收模块,采用的芯片为康欣公司的KX _7C5系列芯片,其具体型号为EP2C5T144,具备4608个逻辑宏单元、两个锁相环,约20万门、约12万RAM bi.t 具体实现方法如下:1. 1、波特率控制器波特率控制可有多种方法实现,常用计数器分频,或利用片内锁相环控制,分频较为简单,但对输入频率有要求,分频后的频率必须在该波特率下频率偏差允许范围内,设定较好的输入频率值,可解决此问题,这样可较少消耗片内资源,锁相环技术虽然对输入频率没有过高要求,但定制内部锁相环,必然耗费较多的片内资源,本设计出于对片内资源的考虑,采用了分频方法实现波特率控制器。
四川师范大学本科毕业设计基于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的UART模块化设计
高军建;苗志英
【期刊名称】《价值工程》
【年(卷),期】2010(029)019
【摘要】UART 因其可靠性高,传输距离远,线路简单而成为比较广泛的串行数据通信电路,而现在大部分集成电路通信用的UART芯片,存在成本高,电路复杂,移植性较差等缺点,本文提出了一种基于FPGA的嵌入式 UART模块化设计方法,将UART 模块集成到FPGA上,而这些模块功能全部基于verilogHDL硬件描述语言,并通过有限状态机来实现,增强了设计的灵活性,降低了成本,并可以作为一个IP核,移植到其它FPGA嵌入式系统中,可移植性增强.
【总页数】2页(P148-149)
【作者】高军建;苗志英
【作者单位】长沙理工大学电气与信息工程学院,长沙,410076;北京大学软件与微电子学院,北京102600
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于FPGA的UART控制VGA图像显示器设计 [J], 李营; 范静静; 权循忠; 吕兆承; 陈帅
2.基于FPGA的UART的设计与实现 [J], 张晓; 胡颖毅; 黄子硕; 魏鹏
3.基于FPGA的UART串行通信参数自适应设计与实现 [J], 杨洋;和蕾;王旭;钱祥利;陈飞;李静
4.基于FPGA的宽波特率误差容忍范围的UART设计 [J], 丰淑凤;朱晓莹;王旭
5.基于FPGA的CPU与保密机之间的UART通信设计 [J], 李淼;李娟娟
因版权原因,仅展示原文概要,查看原文内容请购买。
基于FPGA 的UART 设计聂 涛1,许世宏2(11空军工程大学工程学院 陕西西安 710038;21空军第一航空学院 河南信阳 464000)摘 要:UAR T 是一种广泛应用于短距离、低速、低成本通信的串行传输接口。
由于常用UAR T 芯片比较复杂且移植性差,提出一种采用可编程器件FP GA 实现UAR T 的方法,实现了对UAR T 的模块化设计。
首先简要介绍UAR T 的基本特点,然后依据其系统组成设计顶层模块,再采用有限状态机设计接收器模块和发送器模块,所有功能的实现全部采用V HDL 进行描述,并用Modelsim 软件对所有模块仿真实现。
最后将UAR T 的核心功能集成到FP GA 上,使整体设计紧凑,小巧,实现的UAR T 功能稳定、可靠。
关键词:UAR T ;FP GA ;V HDL ;有限状态机;Modelsim中图分类号:TN915104 文献标识码:B 文章编号:1004373X (2006)0212703Design of UART B ased on FPG AN IE Tao 1,XU Shihong 2(11Engineering Institute ,Air Force Engineering University ,Xi ′an ,710038,China ;21First Aeronautic College of Air Force ,Xinyang ,464000,China )Abstract :UAR T is a transmission interface widely used in the short distance ,low speed and low cost communication 1Becausecommon UAR T chip is complicated ,this article introduces a method to design UAR T based on FP GA (Field Programmable G ate Array )and realizes the design of UART models 1First ,we introduce the basic features of UAR T ,then design the top model based on the system constructers 1Second ,the receiver and transfer are designed by FSM (Finite State Machine )1All functions are given by V HDL 1We stimu 2late the functions with Modelsim successfully ,which makes the whole design compact and cabinet ,makes UAR T stable and reliable 1Keywords :UAR T ;FP GA ;V HDL ;finitestate machine ;Modelsim收稿日期:20050921 UAR T (Universal Asynchronous Receiver Transmitter ,通用异步收发器)是广泛使用的串行数据传输协议。
基于FPGA的UART设计毕业设计此文档为word格式,下载后可随意编辑摘要通用串口是远程通信接口,在数字系统使用很普遍,是一个很重要的部件。
本论文使用Verilog HDL 语言描述硬件功能,利用QuartusII 5.0在 FPGA 芯片上的综合描述,采用模块化设计方法设计UART(通用异步收发器)的各个模块。
其中包括波特发生器,程序控制器,UART数据接收器和UART数据发送器,本文采用的外部时钟为48MHZ,波特率为9600。
在QuartusII 5.0和Modelsim6.0环境下进行设计、编译和仿真。
最后的程序编译仿真表明系统数据完全正确。
关键词:VerilogHDL; UART;帧格式;FPGA;AbstractAbstractIn this paper, the use of hardware description languages Verilog VHDL function, the use of Altera's FPGA chips, the design of modular design method of UART (Universal Asynchronous Receiver Transmitter) of each module, including Porter, generators, process controllers, UART receiver data and the UART transmitter data. QuartusII 5.0 and Modelsim6.0 in environment design, compilation, simulation and downloading. Finally, simulation results show that the procedures for compiling data entirely correct.Key words: VerilogHDL; UART; frame format; FPGA目录第一章绪论 (1)1.1引言 (1)1.2 什么是Verilog HDL? (1)1.3 历史 (2)1.4 主要能力 (2)1.5 模块 (4)1.6 数据流描述方式 (5)第二章片上系统SOC与FPGA的现状 (6)2.1 片上系统SOC介绍 (6)2.2 FPGA技术介绍 (6)2.3 FPGA 核心设计流程 (7)2.3.1 设计流程图 (7)2.3.2关键步骤的实现 (8)2.3.2.1 功能仿真 (8)2.3.2.2 逻辑综合 (9)2.3.2.3 前仿真 (9)2.3.2.4 布局布线 (150)2.3.2.5 后仿真(时序仿真) (161)第三章UART设计 (172)3.1 UART的帧格式 (172)3.2 UART模块 (183)3.2.1主要引脚功能介绍 (183)3.2.2UART主体程序 (194)3.3UART发送模块 (205)3.3.1UART的数据发送服务 (205)3.3.2UART的数据发送操作 (16)3.3.3UART的数据发送模块程序 (17)3.3.4UART的数据发送模块程序仿真图 (250)3.4UART接收模块 (261)3.4.1UART数据接收服务 (261)3.4.2UART数据接收操作 (272)3.4.3UART的数据接收模块程序 (272)3.4.4UART的数据接收模块程序功能仿真图 (305)3.5UART控制器 (26)3.5.1UART控制器服务 (26)3.5.2UART控制器模块程序 (3126)3.5.3UART控制器模块程序仿真图 (28)3.6UART波特发生器 (29)3.6.1UART波特发生器服务 (29)3.6.2UART波特发生器模块程序 (29)3.6.13UART波特发生器程序仿真图 (350)结论 (361)参考文献 (372)致谢 (383)附录 (394)外文资料原文 (405)译文 (483)绪论绪论1.1引言21世纪,电子技术迅猛发展,高新技术日新月异。
基于FPGA 的UART 模块的设计杨宗国,李艳萍(太原理工大学信息工程学院 山西太原 030024)摘 要:为了实现计算机与基于F PGA 图像处理系统的数据通信,这里用FP GA 设计了一款简易通用异步收发器(U A RT )模块。
U A RT 的主要功能是实现数据处理模块与RS 232串行数据接口之间的数据转换,即将送过来的并行数据转换为输出的串行数据流,由数据处理模块传送给计算机,还可以将串行数据转换为并行数据,供数据处理模块使用。
为了简化电路设计,减少电路面积,这里省略了U A RT 系统中的奇偶检验模块。
关键词:F PG A;V HDL ;串/并转换;并/串转换;U AR T中图分类号:T N971 文献标识码:B 文章编号:1004-373X(2009)02-019-04Design of UART Module Based on FPGAYA N G Zo ng guo,L I Yanping(Colleg e o f Info rmat i o n Engine ering,Ta i y uan U niversity of T echnolo gy ,T aiyuan,030024,Chi na)Abstract :To realize data communication between computer and FPGA -based imag e processing system,a simple U niversal Asyn -chronous Receiver Transmitter (U ART )is designed by F PGA.T he main function of UA RT is to realize data conversion between data disposal module and RS 232serial 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 par allel data for the usage o f data disposal module.For pred-i g esting circuit design and reducing electrocircuit proportio n,par ity check module is not needed.Keywords :FP GA ;V H DL ;S/P conversion;P/S conversio n;U A RT收稿日期:2008-05-300 引 言在计算机的数据通信中,外设一般不能与计算机直接相连,它们之间的信息交换主要存在以下问题:(1)速度不匹配。
编号基于FPGA的UART模块设计与实现Design and Realization of UART based onFPGA学生姓名周大勇专业控制科学与工程学号S*********指导教师杨晓慧学院电子信息工程学院二〇一三年六月摘要UART因其可靠性高,传输距离远,线路简单,同时UART作为RS232协议的控制接口,从而成为比较广泛的串行数据通信电路,而现在大部分集成电路通信用的UART芯片,存在成本高,电路复杂,移植性较差等缺点,本文提出了一种将UART的功能集成在FPGA芯片中,可使整个系统更为灵活、紧凑,减小整个电路的体积,提高系统的可靠性和稳定性。
本模块功能全部基于verilogHDL硬件描述语言。
关键词:FPGA, UART ,verilogHDL ,RS232ABSTRACTUART, because of its high reliability, long transmission distance and the simple line, moreover mainly used in communication between device with RS232 interface. Thus it is becoming more extensive serial data communication circuit. But now most of the integrated UART chips used in communications, have faults of high cost and poor portability. The circuit of the chip is complex. This paper presents a method that UART function will be integrated in FPGA chip, It can makesystem more compact, flexible, reliable and stable. All functions of module are based on verilogHDL hardware description language.Keywords:FPGA, UART, verilogHDL, RS232目录摘要 (I)ABSTRACT .................................................................................................................................. I I 目录...................................................................................................................................... I II 第一章绪论. (1)第二章UART 简介 (2)第三章UART功能设计 (3)3.1 波特率发生模块 (3)3.2 波特率接收模块 (5)3.3 UART发送模块 (8)第四章顶层电路及实验数据 (11)第五章结论 (12)致谢 (13)参考文献 (14)第一章绪论通用异步收发器(universal asynchronous receiver transmitter, UART)尽管自20世纪70年代就已出现,但因其简单可靠,目前仍是一种使用广泛的串行通信接口。
基于FPGA的UART设计1 UART与RS232UART(Universal Asynchronous Receiver and Transmitter)通用异步收发器(异步串行通信口),是一种通用的数据通信协议,它包括了RS232、RS499、RS423、RS422和 RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。
而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容,这些都是物理层的概念。
通信协议,是属于通信网络中的数据链路层的概念。
COM是PC(个人计算机)上,异步串行通信口的简写。
由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。
所以,现在 PC机的COM均为RS232。
若配有多个异步串行通信口,则分别称为COM1、COM2... 。
一般而言UART和外界通信只需要两条信号线RXD和TXD,其中RXD是UART的接收端,TXD是UART的发送端,接收与发送是全双工形式。
工作原理是将传输数据的每个字符一位接一位地传输。
图一给出了其工作模式:图一其中各位的意义如下:起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
资料位:紧接着起始位之后。
资料位的个数可以是4、5、6、7、8等,构成一个字符。
通常采用ASCII码。
从最低位开始传送,靠时钟定位。
奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
停止位:它是一个字符数据的结束标志。
可以是1位、1.5位、2位的高电平。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
波特率:是衡量资料传送速率的指针。
表示每秒钟传送的二进制位数。
例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。
基于FPGA 的UART 设计与实现在光栅尺信号采集电路中,使用了FPGA 完成对光栅尺脉冲的滤波、细分、辩向及计数,计数值最终由串行通信接口传送至上位机。
如果使用专用UART 芯片或利用单片机的串行通信接口实现数据传输,一是会造成成本增加,二是会造成电路面积和功耗更大。
在FPGA 中实现UART 模块,完成串口通信的功能,能够克服使用专用芯片或单片机完成数据通信的缺点,使整个系统更加灵活,使系统能够根据需要进行串口功能的升级、扩充和裁剪。
根据光栅尺信号采集电路的要求,串口主要需要实现数据的接收和发送,其主要过程为,当串口接收到上位机发送的一个字符‘s ’时,将24位的计数值通过串口分3次发送至上位机。
因此,本文所设计的UART 模块主要包括三个部分:波特率发生器模块、接收模块、发送模块。
通用异步接收发送器(UART )是广泛使用的串行数据传输协议。
基本的UART 通信只需要两条信号线(RXD ,TXD )就可以完成数据的互相通信,接收与发送是全双工形式,TXD 是发送端,RXD 是接收端。
UART 数据传输的格式如图1所示,本文是根据图1所示的数据帧格式进行UART 模块的设计。
起始位1位停止位D1D3D2D4D5D6D7D08 图1. UART 数据帧格式1. 16倍波特率发生器模块16倍波特率发生器模块主要产生UART 通信时所需要的时钟(16倍的波特率)。
16倍波特率发生器模块主要使用计数器实现分频,计数器由系统时钟驱动,当计数值等于某固定数值(cnter )的一半时,16倍波特率发生器输出高电平,当计数值小于cnter 且大于cnter/2时,16倍波特率发生器输出低电平,当计数值大于cnter 时,将计数器清零。
光栅尺信号采集电路所提供的系统时钟频率为20MHz ,因此,cnter=20MHz/(9600Bps ×16)=136。
16倍波特率发生器模块主要代码如下:module m16btl(clk, clk16x);input clk;output clk16x;reg clk16x;reg [11:0] cnter;always @(posedge clk)beginif (cnter >= 136)cnter <= 0;elsebeginif (cnter <= 68)clk16x <= 1;elseclk16x <= 0;cnter <= cnter + 1;endendendmodule其中clk为系统时钟输入端,clk16x为16倍波特率信号输出端。
价值工程
0引言
随着电子计算机技术,尤其是嵌入式技术的大力发展和广泛应用,UART (Universal Asynchronous Receive Transmitter)也得到了相当广泛的应用,它允许串行链路上进行全双工通信。
一般使用通用的UART 接口芯片,但这种芯片存在电路复杂,成本高,降低了系统的可靠性和稳定度,由于结构和功能的相对固定,因而我们不
能根据自己的设计需要去进行剪裁和移植。
而日益成熟的SOPC (System On Programmable Chip )技术要求将整个设计功能集成到一块或几块芯片中,本文通过对UART 功能的分析,提出了在FPGA 上集成UART 功能模块,增强了设计的灵活性,简化了电路,并通过
有限状态机来描述核心功能控制逻辑,从而提高了整个系统稳定性和可靠度。
1UART 通信原理
UART 是异步通信方式,最基本的UART 通信只需要两条信号线(RXD,TXD )就可以完成数据的相互通信,接收和发送是全双工的,在接收端,串行的数字信号转化成并行的信号,才能进行处理数
据,在发送端,并行的信号转化成串行信号才能被发送到另一个设备中使用。
UART 帧格式(也就是发送数据的格式),是以一个起始位开始的,并以停止位结束。
起始位后是数据位,可以是5、6、7、8位,再加一个奇偶校验位(可选),本设计没有设置奇偶校验位,最后是停止位(1位、1.5位或2位)。
其帧格式如图1所示。
当无数据发送或接收时,各引脚置高电平,以保证开始位来临之前为高电平。
2UART 的FPGA 实现
本设计中包括三个模块:波特率发生模块,接收器模块,发送器模块。
2.1波特率发生模块波特率发生器实际上就是一个分频器,
具体是通过一个计数器实现。
本设计采用16倍频采样的方案,也就是采用16倍于波特率的时钟,即若系统波特率为9600,则波特率发生器的输出时钟为9600×16;因为本系统的外部晶振为50MHZ,所以分频器对晶振的分频数为326,
每一计数周期周期使输出电平高、
低变化,即可得到9600波特率对应的UART 的时钟。
图2为波特率发生器的仿真波形。
2.2接收器模块接收模块从捕捉到数据串的第一个0开始工作,也就是验证起始位的到
来,验证完后,开始接收8位数据,并进行串并转换,随后检测停止位,
正确则输出。
接收器状态转换如图3所示。
接收器状态机共包含四个状态:
空闲状态(IDLE )、检测起始位(START )、数据采样(SHIFT
)、停止位检测(STOP )。
接收机复位进入IDLE 状态,
等待开始位到来,当RXD 发生从1到0跳变,
进入START 状态检测到起始位,开始对采样时钟计数,当计数到8时,
进入SHIFT 状态。
在SHIFT 状态,开始数据采样,每16采样时钟采集一位串行数据,
并进行串/并转换,当采样到有8位数据时,
进入STOP 状态。
在STOP 状态,检测停止位是否为1,如果为1则输出串/并转换的8位数据,
如果是0,则不能输出,回到IDLE 状态。
由于UART 的帧发送格式为,先发送低位,再发送高位,所以如果串行输入为10011000,则并行输出为00011001。
仿真结果如图4所示。
2.3发送器模块发送器的功能实际上就是对并行数据的缓存,并进行并/串转换,然后将数据输出,功能原理和接收器相似。
图5为发送器状态转换图。
基于FPGA 的UART 模块化设计
Design of UART Module Based on FPGA
高军建①Gao Junjian ;苗志英②Miao Zhiying
(①长沙理工大学电气与信息工程学院,长沙410076;②北京大学软件与微电子学院,北京102600)
(①College of Electic and Information Engineering ,Changsha University of Science &Technology ,Changsha 410076,China ;
②School of Software and Microelectronics ,Peking University ,Beijing 102600,China )
摘要:UART 因其可靠性高,传输距离远,线路简单而成为比较广泛的串行数据通信电路,而现在大部分集成电路通信用的UART 芯片,存
在成本高,电路复杂,移植性较差等缺点,本文提出了一种基于FPGA 的嵌入式UART 模块化设计方法,将UART 模块集成到FPGA 上,而这些
模块功能全部基于verilogHDL 硬件描述语言,
并通过有限状态机来实现,增强了设计的灵活性,降低了成本,并可以作为一个IP 核,移植到其它FPGA 嵌入式系统中,可移植性增强。
Abstract :UART,because of its high reliability,long transmission distance and the simple line,is becoming more extensive serial data communication circuit.But now most of the integrated UART chips used in communications,have faults of high cost and poor portability.The circuit of the chip is complex.This paper presents a method that UART module based on FPGA.UART module integrated into the FPGA.While all functions of these modules are based on verilogHDL hardware description language,and realize through the finite state machine.This design enhanced flexibility and reduced costs,and can be used as an IP core that ported into other FPGA embedded systems,enhancing the portability.
关键词:UART ;FPGA ;verilogHDL ;有限状态机Key words :UART ;FPGA ;verilogHDL ;finite state machine
中图分类号:TP391
文献标识码:A
文章编号:1006-4311(2010)19-0148-02
———————————————————————作者简介:高军建(1985-)
,男,河北衡水人,在读硕士研究生,主要研究方向为嵌入式系统设计及应用。
·148·
Value Engineering 发送器状态机包含的四个状态:STATE0:当UART 复位进入此状态,输入使能,若检测到高电平,则进入STATE1状态。
STATE1:发送起始位0。
保持TX 为低电平16个采样周期后,进入STATE2状态,否则保持本状态。
STATE2:发送8位数据。
每一位数据占用16个采样周期。
发送完毕,进入STATE3状态。
STATE3:检测并发送停止位。
将TX 置为高电平,保持16个采样周期。
返回STATE0状态。
仿真结果如图6所示。
3实验结果
本设计使用Verilog 语言,并在Alera 的DE2-70平台上加以验证并通过串口调试助手证实数据能够正确收发。
实验结果如图7。
4结束语
使用FPGA 实现UART 模块,使系统体积更小,降低了功耗,提高了稳定度。
而对于收发的数据帧和波特率能较容易的改变,大大增加了系统设计的灵活性。
另外,本设计还可以作为一个IP 核,灵活的移植进其它FPGA 嵌入式系统中,通用性增强。
参考文献:
[1]王伟.VerilogHDL 程序
设计与应用.北京人民邮电出版社,2005.
[2]冼进.VerilogHDL 数字控制系统设计实例.北京:中国水利水电出版社,2007.
[3]杨宗国,李艳萍.基于FPGA 的UART 模块的设计.现代电子技术,2009,(2):19-22.
[4]杨夏,王平,张军.基于FPGA 的简化UART 电路设计.微计算机信息(嵌入式与SOC )2008,24:276-277、279.
[5]赵延,葛利嘉,双涛.基于FPGA 的UART 设计实现及其验证方法
.
现代电子技术,2008,17:162-164.
·149·。