基于FPGA的串口通讯电路设计.docx

上传人:b****7 文档编号:25029689 上传时间:2023-06-04 格式:DOCX 页数:62 大小:1.75MB
下载 相关 举报
基于FPGA的串口通讯电路设计.docx_第1页
第1页 / 共62页
基于FPGA的串口通讯电路设计.docx_第2页
第2页 / 共62页
基于FPGA的串口通讯电路设计.docx_第3页
第3页 / 共62页
基于FPGA的串口通讯电路设计.docx_第4页
第4页 / 共62页
基于FPGA的串口通讯电路设计.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

基于FPGA的串口通讯电路设计.docx

《基于FPGA的串口通讯电路设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的串口通讯电路设计.docx(62页珍藏版)》请在冰豆网上搜索。

基于FPGA的串口通讯电路设计.docx

基于FPGA的串口通讯电路设计

本科学生毕业论文

论文题目:

基于FPGA的串口通信电路设计

学院:

电子工程学院

年级:

专业:

集成电路设计与集成系统

姓名:

学号:

指导教师:

 

2011年5月28日

摘要

串行通信接口是一种应用广泛的通信接口。

目前,大部分处理器都集成了支持RS-232接口(又称EIARS-232-C)的通用异步收发器(UniversalAsynchronousReceiver/Transmitter,UART),本文设计了一个串口数据采集和处理程序,详细介绍了用VerilogHDL硬件描述语言来开发波特率发生器、接收模块和发送模块这三个模块,以及系统各个模块的具体设计方法和原理,用QuartusII软件进行仿真并给出结果,分别验证各个模块的正确性。

本设计还使用基于ALTERA公司的CycloneIIEP2C5T144芯片的FPGA开发板,在FPGA开发板上实现和PC通过串口调试软件完成双向通信,不仅要求将开发板的数据显示在PC的串口调试助手软件上,还要求用PC发送数据的ASCII码来驱动电路的8个LED灯,验证用FPGA实现串行通信的可行性。

 

关键词

串行通信;RS-232;UART;VerilogHDL;FPGA

Abstract

Serialcommunicationinterfaceisawidelyusedcommunicationinterface.Atpresent,mostofprocessorintegratedRS-232(EIARS-232-C)interfacetosupportUART(UniversalAsynchronousReceiver/Transmitter)communication,Thisthesisdesignadataacquisitionandtreatmentprogram.Besidesthat,thethesisintroducedBaudRateGeneratormodule、Receivermodule、SendmodulebasedonlanguageVerilogHDLandgivetheresultsbysimulateinQuartusIIsoftware.ThisdesignalsousesEP2C5T144FPGAchiptoachievethetwo-waycommunicationbysimulatewithQuartusIIandPCthroughtheserialportdebuggingsoftware.Notonlyrequiresthedevelopmentboard'sdatadisplayedinthePC'sserialportdebuggingsoftware,alsoaskASCIIdatasentbyPCCodetodriveeightLEDlights,meanwhileverifiedtheserialcommunicationwithFPGA.

 

Keywords

Serialcommunication;RS-232;UART;VerilogHDL;FPGA

第1章语言和工具

1.1VerilogHDL语言概述

VerilogHDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。

数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

VerilogHDL语言具有下述描述能力:

设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

所有这些都使用同一种建模语言。

此外,VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

VerilogHDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。

语言从C编程语言中继承了多种操作符和结构。

VerilogHDL提供了扩展的建模能力,其中许多扩展最初很难理解。

但是,VerilogHDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。

当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

VerilogHDL语言最初是于1983年由GatewayDesignAutomation公司为其模拟器产品开发的硬件建模语言。

那时它只是一种专用语言。

由于他们的模拟、仿真器产品的广泛使用,VerilogHDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。

在一次努力增加语言普及性的活动中,VerilogHDL语言于1990年被推向公众领域。

OpenVerilogInternational(OVI)是促进Verilog发展的国际性组织。

1992年,OVI决定致力于推广VerilogOVI标准成为IEEE标准。

这一努力最后获得成功,Verilog语言于1995年成为IEEE标准,称为IEEEStd1364-1995。

完整的标准在Verilog硬件描述语言参考手册中有详细描述[]。

下面列出的是VerilogHDL硬件描述语言的主要能力:

•基本逻辑门,例如and、or和nand等都内置在语言中。

•用户定义原语(UDP)创建的灵活性。

用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。

•开关级基本结构模型,例如pmos和nmos等也被内置在语言中[]。

•提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。

•可采用三种不同方式或混合方式对设计建模。

这些方式包括:

行为描述方式——使用过程化结构建模;数据流方式——使用连续赋值语句方式建模;结构化方式——使用门和模块实例语句描述建模。

•VerilogHDL中有两类数据类型:

线网数据类型wire和寄存器数据类型reg。

线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。

•能够描述层次设计,可使用模块实例结构描述任何层次。

•设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。

•VerilogHDL不再是某些公司的专有语言而是IEEE标准。

•人和机器都可阅读VerilogHDL语言,因此它可作为EDA的工具和设计者之间的交互语言。

•VerilogHDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。

PLI是允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。

•设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。

•能够使用内置开关级原语在开关级对设计完整建模。

•同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。

•VerilogHDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。

这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。

•在行为级描述中,VerilogHDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。

•能够使用门和模块实例化语句在结构级进行结构描述。

•VerilogHDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。

•VerilogHDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。

•对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。

•可以显式地对并发和定时进行建模。

•提供强有力的文件读写能力。

•语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义[]。

1.2FPGA概述

FPGA(FieldProgrammableGateArray)现场可编程逻辑门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。

在修改和升级时,不需额外地改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本[]。

一、什么是可编程逻辑器件:

在数字电子系统领域,存在三种基本的器件类型:

存储器、微处理器和逻辑器件。

存储器用来存储随机信息,如数据表或数据库的内容。

微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。

逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能。

逻辑器件又分为固定逻辑和可编程逻辑,固定逻辑是器件复杂性不同,从设计、原型到最终生产,当应用发生变化时就要从头设计,可编程逻辑器件较固定的优点就在于当应用发生变化和器件工作不合适时不用从头设计,直接从新编写逻辑器件后就可以了,这样就节省了前期的开发费用和周期。

二、可编程逻辑器件CPLD/FPGA的比较:

可编程逻辑包括PAL、GAL、PLD等,经过不断的发展,演变成现在的CPLD/FPGA。

CPLD(ComplexProgrammableLogicDevice)复杂可编程逻辑器件和FPGA(FieldProgrammableGateArray)两者的功能基本相同,只是实现的原理有些不同,忽略两者的区别时统称为可编程逻辑器件或者是CPLD/FPGA。

两者的区别一般有如下特点[]:

(1)CPLD的逻辑单元比较大,容量较小,时序确定,延时可预测,FPGA基于查找表(LUT)所以时间上取决于查找表的路由。

(2)CPLD的容量一般比较小,寄存器少,适合做一些容量不大,组合逻辑比较复杂的设计,如地址译码器,总线接口和上电复位逻辑等,相反FPGA则可以做一些容量大,内嵌存储器等高级设计,如嵌入式CPU,数据处理等。

(3)CPLD内部连线采用连续性内部连线,这样的链接延时比较固定,但受连接路径的影响,FPGA则采用片段链接,可以充分利用连线资源。

(4)FPGA可以提供比CPLD器件足够大的逻辑容量密度,大大减少PCB的空间,降低系统的功耗。

上述了CPLD和FPGA的区别,但是作为可编程逻辑器件,他们也有其共同的特点,概括起来他们基本组成分三大部分:

(1)二维的逻辑阵列(逻辑单元),构成器件的德逻辑组成核心。

(2)输入和输出块(I/O),负责芯片与外界电路的借口连接。

(3)链接逻辑块的互联资源,用于逻辑块之间,逻辑块与输入/输出之间的连接。

三、FPGA的特点:

(1)高性能是实时性,由于FPGA芯片内部是通过上百万个逻辑单元完成硬件实现,具有并行处理的能力,运算速度比平常的单片机和DSP快很多。

(2)高集成性FPGA可根据用户的需求在内部嵌入硬/软IP核,以实现不同的而要求而且采用SOPC技术也可节省目标硬件的面积。

(3)高可靠性和地成本目前的FPGA芯片在出厂之前都做过100%的检测,不需要设计人员承担投片生产的费用。

(4)高灵活性和低功耗FPGA是现场可编程,用户可以反复的编程,擦写,使用,或者在外围电路保持不变的情况下,采用不同的设计而实现不同的功能,这样给产品的升级和维护带来极大的方便。

四、FPGA的体系结构:

FPGA采用逻辑单元阵列LCA(LogicCellArray)的概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock),输入/输出模块IOB(Input/OutputBlock),内部连线(Interconnect)和用于存放编程数据的静态存储器SRAM组成。

五、FPGA的设计流程:

FPGA是可编程芯片,因此FPGA的设计方法包括硬件设计和软件设计两部分。

硬件包括FPGA芯片电路、存储器、输入输出接口电路以及其他设备,软件即是相应的VHDL程序和VerilogHDL程序。

FPGA采用自顶而下的设计方法,开始从系统级设计,然后逐步分化到二级单元,三级单元知道可以直接操作基本逻辑单元或IP核为止,一般情况下设计流程[]如图1-1所示,步骤如下:

图1-1FPGA开发的一般流程

(1)功能定义/器件选型

在FPGA设计项目开始之前,必须有系统功能的定义和模块的划分,另外就是要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本、以及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。

(2)设计输入

设计输入有原理图输入和硬件描述语言输入,原理图输入比较直观但不易仿真,但效率很低,且不易维护,不利于模块构造和重用。

更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。

硬件语言包括VHDL和VerilogHDL以及SystemC等,硬件描述语言输入其共同的突出特点:

语言与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。

(3)功能仿真

功能仿真也称为前仿真是在编译之前对用户所设计的电路进行逻辑功能验证,此时没有延迟信息,仅是对功能的初步检测。

(4)综合优化

所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。

综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。

就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。

(5)综合后仿真

综合后仿真检查综合结果是否和原设计一致。

在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。

但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。

(6)实现与布局布线

布局布线可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件(如配置文件与相关报告),实现是将综合生成的逻辑网表配置到具体的FPGA芯片上。

(7)时序仿真

时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。

时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。

(8)板级仿真与验证

板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具仿真和验证。

(9)芯片编程与调试

设计的最后一步就是芯片编程与调试。

芯片编程是指产生使用的数据文件(位数据流文件,BitstreamGeneration),然后将编程数据下载到FPGA芯片中。

逻辑分析仪(LogicAnalyzer,LA)是FPGA设计的主要调试工具,但需要引出大量的测试管脚,且LA价格昂贵。

目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪。

六、FPGA的应用领域:

随着FPGA厂商降低芯片的成本,FPGA被广泛应用于,通信,数字信号处理,工业控制,航空航天等领域,并取得非常高的可靠性。

1.3QuartusII软件介绍

QuartusII软件是Altera公司的EDA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

[]

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

QuartusII软件支持APEX系列、Cyclone系列、Stratix系列和Excalibur系列等新型系列器件的开发。

含有工作组计算、集成逻辑分析仪、EDA工具集成、多过程支持、增强重编译和IP集成等特性。

支持百万门级的设计,支持高速I/O设计,具有更强的设计能力和更快的编译速度。

QuartusII开发软件为可编程片上系统(SOPC)设计提供了一个完整的设计环境。

无论是使用个人电脑、NUIX或Linux工作站,QuartusII都提供了方便设计、快速编译处理以及编程功能。

QuartusII输入的设计过程可分为创建工程、输入文件、项目编译、项目校验和编程下载等几个步骤。

1.4FPGA开发板介绍

本设计中开发板采用Altera公司CycloneII系列EP2C5T144C8或者EP2C8T144C8芯片而设计的。

帮助用户降低学习成本和加快用户快速进入可编程逻辑器件的设计开发领域。

提供一个帮助用户快速学习可编程逻辑器件的硬件平台。

开发板上使用JTAG接口对芯片进行编程,也可以使用AS接口下载。

配送的ByteBlasterII下载线可以下载Altera公司的所有FPGA/CPLD芯片。

开发板上所有的I/O口都通过排针引了出来,板上都有标示。

引出来的I/O用户可以任意配置分配管脚,方便用户开发自己的产品,最大限度为用户节约学习成本。

开发板硬件配置介绍:

(1)CycloneIIU1EP2C5T144C8或者EP2C8T144C8

(2)IICU5AT24C04或者AT24C02或者AT24C01

(3)ASU6EPCS1或者EPCS4

(4)UART通用的MAX232转换或者USB—串口小板

(5)PS/2A;PS/2B

(6)8个动态数码管

(7)8个LED灯

(8)BELL

(9)LCD12864/LCD1602接口

(10)4个独立按键

(11)一个FPGA重配置按键

(12)JTAGAS下载模式

(13)上电模式:

外接5VDC电源

(14)50M有源晶体

(15)8路数据输入,可以固定的输入1(高电平)或者0(低电平)

本程序用到的LED灯管脚分配原理图如1-2所示,I/O口分配如下:

D30:

PIN65、D31:

PIN69、D32:

PIN70、D33:

PIN71、D34:

PIN72、D35:

PIN73、D36:

PIN74、D37:

PIN60,当I/O口为低电平时LED点亮。

图1-28个发光二极管I/O口分配

本程序用到的串口通信,串口管脚分配原理图如1-3所示,I/O口分配如下:

TX:

PIN9、RX:

PIN8。

图1-3串口接口的I/O口分配

开发板上没有用的I/O都接了出来,具体请看学习板上的标示,板上更清楚。

没有用的I/O口如图1-3所示。

本设计中输出的节后也用到了其中几个I/O接口,后面分配的时候可以看到本设计具体分配的管脚。

图1-4没有用的I/O口分配

1.5本章小结

首先本章主要对VerilogHDL语言进行简要概述,介绍了VerilogHDL语言的发展历史和VerilogHDL硬件描述语言具备的能力。

其次还对QuartusII软件进行了简要概述,QuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力支持APEX系列、Cyclone系列、Stratix系列和Excalibur系列等新型系列器件的开发。

含有工作组计算、集成逻辑分析仪、EDA工具集成、多过程支持、增强重编译和IP集成等特性。

支持百万门级的设计,支持高速I/O设计,具有更强的设计能力和更快的编译速度。

QuartusII输入的设计过程可分为创建工程、输入文件、项目编译、项目校验和编程下载等几个步骤。

最后本章还对FPGA进行了简要概述,并且对本设计将用到的FPGA开发板进行了介绍,以及本设计中将要用到的I/O口都给出了图示。

后面的章节将用到本章介绍的VerilogHDL语言和QuartusII软件以及FPGA开发板,还将对软件的使用和开发过程进行详细介绍。

第2章串口通信协议简介

RS-232[]接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。

它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。

本章主要介绍RS232接口的原理介绍。

2.1串口通信接口

串口即串行数据接口,是一种常用的数据接口。

在PC一般都有两个串行口(COM1和COM2),其形状如图1-1所示,是典型的9针D形接口,也称为DB9。

由于串口多采用RS-232-C传输协议并长达数十年,因此也常被称为RS-232接口。

图2-1串口的物理形状示意图

串口主要用于网管控制或主业务数据的传输,支持数据的双向传输,速率9600-115200bps,即可以完成和PC的通信,也可以完成与带有标准串口的外设相连,其典型的连接方式如图1-2所示。

其中串口接口分为带插孔和带插针的两种,其中插针端称为DCE,插孔端称为DTE。

图2-2串口连接的示意图

2.2RS232通信协议

RS-232全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”,该标准规定采用25个脚的串口连接器(DB25),不仅对连接器的每个引脚的信号内容加以规定,还规定了各种信号的电平。

标准的RS-232-C协议具有25根信号线,其中有4根为数据线、11根控制线、3根定时线和7根备用线。

通常情况下,使用其中的9根线就可以实现RS-232串口通信。

通常DB-25也可以像DB-9那样使用,但是它们的针号和针孔之间的连接关系是不一样的,下面给出常用的25针DB-25和DB-9的对照表以及管脚说明[],如表1-1所示。

表2-1RS-232-C接口引脚定义

DB25

DB9

信号源

信号名

信号功能描述

2

3

DCE

TXD

发送数据,终端通过此将信号发给调制器

3

2

DTE

RXD

接收数据,终端通过此从调制器接收数据

4

7

DCE

RTS

请求发送,当终端需要发送数据时,使能该信号,控制调制器进入发送状态

5

8

DTE

CTS

允许发送,当调制器准备好接收数据时,使能该信号,通知终端开始发送

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1