基于FPGACPLD的通用异步通信接口UART建模与设计精品Word格式文档下载.docx
- 文档编号:17147908
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:18
- 大小:118.91KB
基于FPGACPLD的通用异步通信接口UART建模与设计精品Word格式文档下载.docx
《基于FPGACPLD的通用异步通信接口UART建模与设计精品Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于FPGACPLD的通用异步通信接口UART建模与设计精品Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
2.数据接收过程12
3.数据加载和发送过程12
4.UART内核、电路图及仿真图13
(三)UART工作流程15
1.接收过程15
2.发送过程16
五、设计小结17
[参考文献及相关资料]17
【Abstract】18
【Keywords】19
基于FPGA/CPLD的通用异步通信接口UART建模与设计
电子信息工程2003080264廖泽雷指导教师冯昌昆
【内容摘要】FPGA/CPLD是大规模集成电路技术发展的产物,是一种半定制的集成电路。
结合计算机软件技术(EDA技术)可以快速、方便地构建数字系统。
FPGA是电子设计领域中最具有活力和发展前途的一项技术,它的影响丝毫不亚于20世纪70年代单片机的发明和使用。
可以毫不夸张地讲,FPGA能完成任何数字器件的功能。
随着EDA软件和硬件描述语言(HDL)的进步,FPGA的开发周期越来越短,产品功能越来越强。
FPGA在复杂逻辑电路以及数字信号处理领域中扮演者越来越重要的角色。
UART(通用异步接受/发送器)是一种短距离串行传输接口。
在数字通信和控制系统中得到广泛应用。
本设计采用了多模块化实现方法,介绍了采用VerilogDHL硬件描述语言来开发基于FPGA/CPLD的通用异步通信接口UART的设计。
系统结构进行了模块化分解,使之适应自顶向下的设计方法。
核心部分采用有限状态机(FSM)实现,使控制逻辑直观简单,大幅度提高了设计效率。
设计、综合与仿真分别在Synplify8.1和ModelSim_SE_6.1b软件开发环境下实现。
【关键词】FPGA/CPLD;
UART;
多模块;
有限状态机
随着EDA技术的发展,FPGA/CPLD已经在许多方面得到了广泛的应用,而UART(UniversalAsynchronousReceiver/Transmitter,通用异步接受/发送器),是一种广泛使用的串行数据传输协议,它允许在串行链路上进行全双工通信。
串行外设中用到的如RS232异步串行接口等,一般可以采用专用的集成电路即UART来实现,比如8250、8251等芯片都是常见的UART器件,但这些芯片速度较慢,难以满足一些高速应用的场合,虽然也有新型的UART可以满足高速的要求,但所有的UART芯片都存在引脚较多、体积较大的缺点、与其他器件的接口较为复杂等缺点,从而会使设计的成本和难度加大。
因此可以将需要的UART功能集成到FPGA/CPLD内部。
利用VerilogDHL语言将UART核心功能集成,不仅可以解决传统芯片的缺点,也使整个设计更加紧凑、稳定且可靠。
一、FPGA
(一)FPGA设计流程及概述
总的来说,要实现一个数字系统,有两种常用的方式,一种基于PLD器件,另一种则采用ASIC来实现。
基于FPGA/CPLD器件的EDA设计流程,主要包括设计输入、综合、FPGA/COLD适配、仿真等步骤。
其中设计输入是设计将所要设计的电路以开发软件要求的某种形式表达出来,并输入到相应软件中的过程,最常用的是原理图方式和HDL文本方式两种。
综合是一个很重要的步骤,指的是将较高层次的设计描述自动转化为较低层次描述的过程。
仿真是对设计电路的功能验证,可以在设计的过程中对整个系统和各个模块进行仿真,若有问题可以随时进行修改。
仿真包括功能仿真(又称前仿真)和时序仿真(又称后仿真)。
经过设计输入、综合、仿真、布局布线后,再利用FPGA来具体实现。
具体的流程图如下:
(1)设计定义
(2)HDL实现
逻辑仿真器
(3)功能仿真
逻辑综合器
(4)逻辑综合
逻辑仿真器
(5)前仿真
FPGA厂家工具
(6)布局布线
(8)静态时序分析
(7)后仿真
(8)在系统测试
说明:
(1)逻辑仿真器主要指modelsim,Verilog-XL等。
(2)逻辑综合器主要指Snyplify、FPGAExpress/FPGACompiler等。
(3)FPGA厂家工具指的是如Altera的Max+PlussⅡ、Xilinx的Foundation等。
(二)自顶向下原理
Top-down设计,即自顶向下的设计。
这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。
在功能级进行仿真、纠错,并用硬件语言对高层次的系统行为进行描述,然后用综合工具将设计转化为具体问电路网表,其对应的物理实现可以是PLD器件或专用集成电路。
由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。
在Top-down设计中,将设计分成系统级、功能级、门级、开关级等几个不同的层次,按照自上向下的顺序,在不同的层次上,对系统进行设计与仿真。
二、UART
(一)UART简述
UART(通用异步接受/发送器),是一种短距离串行传输接口,它允许在串行链路上进行全双工通信。
广泛应用于数字通信、控制系统、军事工业、医药、通信、自动控制、仪器、话音图像处理等众多领域。
(二)RS-232串口通信
1、简介
在数据通信、计算机网络以及分布工业控制系统中,经常采用串行通信来交换数据和信息。
美国电子工业协会将RS-232定为串行通信接口的电气标准,该标准定义了数据终端设备和数据通信设备间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,适合数据传输速度在0~20000bit/s范围的通信。
RS-232作为一种标准接口,不仅被内置于每一台计算机中,同时也被内置于各种外设中。
RS-232具有以下几个优点:
(1)使用广泛,几乎每一台PC都会有一个或者多个RS-232接口;
(2)连接距离可达到15m;
(3)实现简单,RS-23用于双向连接,只需要3条导线。
2、实现方案
实现串口通信主要需要完成两部分工作:
(1)将串口电平转换为设备电路板的工作电平,即实现RS-232电平TTL/CMOS电平的转换;
(2)接收并且检验串行的数据,将数据变成并行的并提供给处理器处理。
实现RS-232平和TTL/CMOS电平转换可以用接口芯片来实现,实现数
据的串行到并行转换用的是UART,它们是实现串行通信必不可少的两个部
分。
三、设计软件
本次设计、综合与仿真分别在Synplify和ModelSim_SE软件开发环境下实现。
(一)Synplify的性能特点
Synplify是优秀的FPGA/CPLD逻辑综合工具,Synplify支持Verilog1364-1995标准和VHDL1076-1993标准。
Synplify能高效地将Verilog/VHDL设计文件转换为针对选定器件的标准网表,并提供相应设计环境的配置文件。
Synplify在综合后生成Verilog和VHDL仿真网表,以便对原设计进行功能仿真。
Synplify具有资源共享优化功能,并含符号化的FSM(有限状态机)编译器,可以实现高级的状态机优化,此外还配置了一个内置的语法敏感编辑器,可以在DHL源文件中高亮显示综合后的错误和警告,使用户能迅速定位并纠正所出现的问题。
(二)ModelSim的性能特点
ModelSim是MentorGraphics的子公司ModelTechnology的产品,属于编译型的Verilog/VHDL混合仿真器。
ModelSim可以在同一个设计中单独或混合使用Verilog和VHDL,允许Verilog模块调用VHDL的实体,或VHDL调用Verilog。
由于ModelSim是编译型仿真器,使用编译后的HDL库进行仿真,因此在进行仿真前,必须编译所有的待仿真的HDL文件成为HDL仿真库,在编译时使源文件获得优化,提高了仿真速度。
ModelSim有不同的版本,主要有ModelSimOEM、ModelSimPLUS、ModelSim
_SE三种,但以ModelSim_SE的功能最为全面。
ModelSim可以完成3个层次
的Verilog仿真,分别为RTL级仿真(即将可综合的Verilog文件直接进Mo-
delSim进行功能仿真)、综合后门级仿真、适配后门级仿真(时序仿真)。
四、UART实现原理
UART即通用异步收发器,是一种串行通信方式。
数据在传输过程中是通过一位一位地进行传输来实现通信的。
串行通信具有传输线少、成本低等优点。
串行通信分为两种类型:
同步通信方式和异步通信方式。
本方案采用的是异步通信方式,其特点是:
通信的发送方和接收方各自有独立的时钟,传输的速率由双方约定。
国际上规定的一个串行通信波特率标准系列是:
110、300、600、1200、1800、2400、4800、9600、19200。
本方案采用的波特率是9600。
UART主要由UART内核、信号监测器、移位寄存器、波特率发生器、计数器、总线选择器和奇偶校验器总共7个模块组成,如图1所示。
图1UART实现原理图
(一)、UART各个模块的功能和实现程序如下:
1、信号监测器
信号监测器是用于对RS—232的输入信号进行实时监测,一旦发现新的数据则立即通知UART内核。
在监测到传输的起始位后,信号监测器需要将自己锁定,即不对输入信号进行监测,直到UART内核将其复位。
信号监测器电路图(图2)和仿真时序图(图3)如下:
图2信号监测器的电路原理图
图3信号监测器仿真时序图
2、移位寄存器
移位寄存器的基本工作原理是在触发信号的驱动下将内部寄存器序列的最高位输出,将次高位到最低位向高位移一位,并且读取输入端的数据保存到最低位,其作用是存储输入或者输出的数据。
移位寄存器电路图(图4)和仿真时序图(图5)如下:
图4移位寄存器的电路原理图
图5移位寄存器仿真时序图
3、波特率发生器
波特率发生器的功能是产生和RS—232通用所采用的波特率同步的时钟,这样才能方便地按照RS—232串行通信的时序要求进行数据接受或者发送,本设计采用波特率为9600,即每秒传输9600位数据。
要实现上述的波特率时钟的基本思路是设计一个计数器,该计数器工作在速度很高的系统时钟下,当计数到某数值时将输出置高,再计数一定数值后再将输出置低,如此反复便能够得到所需的波特率时钟。
如PFGA的系统时钟为50MHz,则波特率时钟的每个周期相当于
个系统时钟的周期。
假如要得到占空比为1:
1的波特率时钟,只要使得计数器在数到5208×
1/2=2604时将输出置高,之后计数到5208时将输出置低并且重新计数,就能够实现和9600波特率同步的时钟。
原理图如图6所示。
图6波特率时钟实现原理图
波特率发生器电路图(图7)和仿真时序图(图8)如下:
图7波特率发生器的电路原理图
图8波特率发生器仿真时序图
4、奇偶校验器
奇偶校验器的功能是根据奇偶校验的设置和输入数据计算出相应的奇偶校验位,它是通过纯组合逻辑实现的。
奇偶校验器电路图(图9)和仿真时序图(图10)如下:
图9奇偶校验器的电路原理图
图10奇偶校验器仿真时序图
5、总线选择器
总线选择模块用于选择奇偶校验器的输入是数据发送还是数据接收总线。
在接收数据时,总线选择模块将数据接收总线连接到奇偶校验器的输入端,来检查已接收的奇偶校验位是否正确;
而在发送数据时,总线选择模块将数据发送总线连接到奇偶校验器的输入端,UART内核模块就能够获取并且保存待发送序列所需的奇偶校验位了。
总线选择电路图(图11)和仿真时序图(图12)如下:
图11总线选择电路原理图
图12总线选择仿真时序图
6、计数器
计数器模块的功能是记录串行数据发送或者接收的数目,在计数到某数值时就通知UART内核模块。
计数器电路图(图13)和仿真时序图(图14)如下:
图13计数器电路原理图
图14计数器仿真时序图
(二)UART内核及有限状态机的实现
1、有限状态机(FSM)简介
有限状态机设计是时序电路设计中经常采用的一种方式,尤其适合于设计数字系统的控制模块.状态机可以认为是组合逻辑和寄存器逻辑的特殊组合,它一般包括两个部分:
组合逻辑部分和寄存器部分。
寄存器用于存储状态,组合电路用于状态译码和产生输出信号。
状态机的下一个状态及输出不仅与输入信号有关,而且还与当前所出的状态有关。
实用的状态机一般都设计为同步时序方式,它在时钟信号的触发下完成各个状态之间的转移,并且产生相应的输出。
状态机有3种表示方法:
状态图、状态表和流程图,这3种表示方法是等价的,相互之间可以转换。
其中,状态图是最常用的一种表示方式。
对于有限状态机的设计,一般首先根据所设计电路的功能画出其状态转移图,然后用Verilog语言的case、if-else等语句对状态机的转换进行描述。
UART模块的功能是控制数据接收、数据加载和数据发送的过程,着可以用状态机来实现。
下面是按接收和发送的过程来介绍UART内核模块状态机的实现。
2、数据接收过程
数据接收过程的流程图如图18所示,可以定义3个状态——空间、接收和接收完成,其状态变换图如图15所示。
图15UART内核数据接收状态转换图
3、数据加载和发送过程
数据加载和发送的过程都是为了发送数据而设定的,所以将他们放在一起进行介绍。
可以用4个状态来实现上述的过程,即空闲、加载、发送和发送完成,其中的空闲状态就是UART内核复位后的空闲,和上面介绍的数据接收过程的空闲状态一致。
数据加载和发送过程的状态转换图如图16所示。
图16UART内核数据加载和发送状态转换图
4、UART内核
UART内核模块是整个设计的核心。
在数据接收时,UART内核模块负责控制波特率发生器和移位寄存器,使得移位寄存器在波特率时钟的驱动下同步地接收并且保存RS-232接收端口上的串行数据。
在数据发送时,UART内核模块首先根据待发送的数据和奇偶校验位的设置产生完整的发送序列(包括起始位、数据位、奇偶校验位和停止位),之后控制移位寄存器将序列加载到移位寄存器的内部寄存器里,最后再控制波特率发生器驱动移位寄存器将数据串行输出。
UART内核电路图(图17)如下:
图17UART内核电路原理图
(三)UART的工作流程
UART的工作流程可以分为接收过程和发送过程两部分。
1、接收过程
接收过程指的是UART监测到RS-232总线上的数据,顺序读取串行数据并且将其给CPU的过程。
当信号监测器监测到新的数据(RS-232输入逻辑变为0,即RS-232传输协议的起始位)就会触发接收过程,其流程图如图5所示。
首先UART内核会重置波特率发生器和移位寄存器,并且设置移位寄存器的工作模式为波特率模式,以准备接收数据。
其次,移位寄存器在波特率时钟的驱动下工作,不断读取RS-232串行总线的输入数据,并且将数据保存在内部的寄存器内。
接收完成后,UART内核会对已接收的数据进行奇偶校验并且输出校验结果。
最后,UART内核会重置信号监测器,以准备进行下一次数据接收。
以下是UART接收数据流程图(图18)。
图18UART接收数据流程图
2、发送过程
发送过程是由加载和发送两个步骤组成,如图19所示。
加载步骤是UART内核按RS-232串行发送的顺序将起始位、数据位、奇偶校验位和停止位加载到移位寄存器内,这个过程工作在系统时钟下,相对于RS-232的传输速度来说非常快。
完成加载步骤后,UART内核会重置波特率发生器,并且设置移位寄存器工作在波特率模式下,于是移位寄存器便在波特率时钟的驱动下依次将加载的数据发送到RS-232的发送端TxD,这样便产生了RS-232的数据发送时序。
图19UART发送数据流程图
五、小结
随着FPGA/CPLD的飞速发展,其在现代电子设计中的应用也越来越广泛。
本设计用VerilogDHL语言进行描述,并采用了自顶向下、多模块化、参数化的方法来实现UART,其内核模块用有限状态机来实现,一是比较灵活,方便用户根据需要进行更改,二是可读性比较强,便于调试和理解。
在波特率为9600bit/s情况下对UART进行仿真验证,目前全体通过了前仿真,结果稳定可靠,具有很好的参考价值。
参考文献:
[1]刘韬,楼兴华.FPGA数字电子系统设计与开发实例导航.
人民邮电出版社,2005.
[2]王金明.VerilogHDL程序设计教材 北京:
人民邮电出版社,2004.
[3]王伟.VerilogHDL程序设计与应用北京:
北京航空航天大学出版,
2004.
[4]夏宇闻.Verilog数字系统设计教材.北京.北京航空航天大学出版社,2004.
[5]聂涛,许世宏.基于FPGA的UART设计.现代电子技术.2006,
(2)127-129.
[6]邹杰,杨建宁.基于FPGA的UART控制器的设计和实现.微计算机信息.
[7]潘松,黄继业.EDA技术实用教程[M].北京:
科学出版社,2002,10.
[8]林容益.CPU/SOC及外围电路应用设计(基于FPGA/CPLD).北京:
北京航空航天大学出版社,2004.
[9]ALTERA.a8251programmablecommunicationinterfacedatasheet.[A]www.
7altera.com.cn.2004/2005.9
TheDesignofUART(UniversalAsynchronousReceiverTransmitter)basedon
FPGA/CPLD
【Abstract】FPGA/CPLDistheproductofLSL(largeScaleIntegration),itistheattributeofsemi-customIntegrateCircuit,combiningEDAwithFPGA/CPLDwillconstructthedigitalsystemquicklyandexpediently.FPGAistheelectrontodesignatechnologywithvigoranddevelopmentprospectinthefield,ininfluencelasttheseventiesthe20thcenturyatalltheone-chipcomputeroneinventionanduse.Cansayoverstatingatall,FPGAcanfinishthefunctionofanydigitaldevice.AsEDAsoftwareandhardwaredescribetheprogressofthelanguage(HDL),thedevelopmentperiodofFPGAisshorterandshorter,theproductsfunctionarestrongerandstronger.FPGAhandlesthemoreandmoreimportantroleoftheperformerinthefieldinthecomplicatedlogicalcircuitanddigitalsignal.
UART(UniversalAsynchronousReceiverTransmitter)isashorthaulserialcommunicationinterfacewhichisappliedwidelyindigitalcommunication.Thisdesignhasusedthemulti-modularrealizationmethod,introducesVerilogtheDHLhardwaredescriptionlanguagetodevelopthedesignofUART(UniversalAsynchronousReceiverTransmitter)basedonFPGA/CPLD.ThestructureofthesystemisdividedinmodularizationsothatcanfitthemethodTop-Down.Thehardcoreofthissystemisimplementedwithfinitestatemachine(FSM),itmakesthelogicofcontrolmoreintuitionisticandmorebriefness.Theefficiencyofthedesignisimprovedinawiderange.Theimplementationofdesign,simulationandsynthesiswerecompletedbythedevelopmentsoftwareofSynplify8.1andModelSim_SE_6.1b.
【KeyWords】FPGA/CPLD;
Multi-models;
FiniteStateMachine
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGACPLD 通用 异步 通信 接口 UART 建模 设计 精品