《基于FPGA的串口通讯电路设计毕业论文》由会员分享,可在线阅读,更多相关《基于FPGA的串口通讯电路设计毕业论文(55页珍藏版)》请在金锄头文库上搜索。
1、本科学生毕业论文论文题目:基于FPGA的串口通信电路设计学 院:电子工程学院年 级:专 业:集成电路设计与集成系统姓 名:学 号:指导教师:2011 年 5 月 28 日II摘要串行通信接口是一种应用广泛的通信接口。目前,大部分处理器都集成了支持RS-232接口(又称EIA RS-232-C)的通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART),本文设计了一个串口数据采集和处理程序,详细介绍了用Verilog HDL硬件描述语言来开发波特率发生器、接收模块和发送模块这三个模块,以及系统各个模块的具体设计方法和原理,用Quartus
2、 II软件进行仿真并给出结果,分别验证各个模块的正确性。本设计还使用基于ALTERA公司的Cyclone II EP2C5T144芯片的FPGA开发板,在FPGA开发板上实现和PC通过串口调试软件完成双向通信,不仅要求将开发板的数据显示在PC的串口调试助手软件上,还要求用PC发送数据的ASCII码来驱动电路的8个LED灯,验证用FPGA实现串行通信的可行性。关键词串行通信;RS-232;UART;Verilog HDL;FPGAAbstractSerial communication interface is a widely used communication interface. At
3、present, most of processor integrated RS-232(EIA RS-232-C) interface to support UART (Universal Asynchronous Receiver/Transmitter) communication, This thesis design a data acquisition and treatment program. Besides that, the thesis introduced Baud Rate Generator module、Receiver module、Send module ba
4、sed on language Verilog HDL and give the results by simulate in Quartus II software. This design also uses EP2C5T144 FPGA chip to achieve the two-way communication by simulate with Quartus II and PC through the serial port debugging software. Not only requires the development boards data displayed i
5、n the PCs serial port debugging software, also ask ASCII data sent by PC Code to drive eight LED lights, meanwhile verified the serial communication with FPGA.Key wordsSerial communication; RS-232; UART; Verilog HDL; FPGA目录摘要IAbstractII第1章 语言和工具11.1 Verilog HDL语言概述11.2 FPGA概述31.3 Quartus II软件介绍71.4
6、FPGA开发板介绍81.5 本章小结11第2章 串口通信协议简介122.1 串口通信接口122.2 RS232通信协议122.3 串口通信时序分析142.4 本章小结15第3章 串口通信的Verilog HDL实现163.1 设计功能说明163.2 波特率发生器模块的Verilog HDL实现163.3 发送模块的Verilog HDL实现183.4 接收模块的Verilog HDL实现243.5 本章小结30第4章 串口通信的硬件调试314.1 板级调试说明314.2 下载配置FPGA324.3 配置串口调试软件344.4 调试结果344.5 本章小结37结论38参考文献39附录1 波特率发
7、生器Verilog HDL实现40附录2 发送模块Verilog HDL实现41附录3 接收模块Verilog HDL实现46致谢51第1章 语言和工具1.1 Verilog HDL语言概述Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外
8、,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog HDL语言最初是于1983年由
9、Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于他们的模拟、仿真器产品的广泛使用,Verilog HDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中,Verilog HDL语言于1990年被推向公众领域。Open Verilog International(OVI)是促进Verilog发展的国际性组织。1992年,OVI决定致力于推广Verilog OVI标准成为IEEE标准。这一努力最后获得成功,Verilog 语言于1995年成为IEEE标准,称为IEEE Std 13641995。
10、完整的标准在Verilog硬件描述语言参考手册中有详细描述 夏宇闻.Verilog数字系统设计教程M.北京:北京航空航天大学出版,2008:37-164。下面列出的是Verilog HDL硬件描述语言的主要能力: 基本逻辑门,例如and、or和nand等都内置在语言中。 用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 开关级基本结构模型,例如pmos和nmos等也被内置在语言中 云创工作室.Verilog HDL程序设计与实践M.北京:人民邮电出版社,2009:1-10。 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。
11、可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。 Verilog HDL中有两类数据类型:线网数据类型wire和寄存器数据类型reg。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 能够描述层次设计,可使用模块实例结构描述任何层次。 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。 Verilog HDL不再是某些公司的专有语言而是IEEE标准。 人和机器都可阅读Verilog HDL语言,因此它可作为EDA的工具和设计者之间的交互语言。 Ver
12、ilog HDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。 能够使用内置开关级原语在开关级对设计完整建模。 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。 Verilog HDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 在行为级描述中,Verilog HDL不仅能够在RTL级上
13、进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。 能够使用门和模块实例化语句在结构级进行结构描述。 Verilog HDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。 Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。 可以显式地对并发和定时进行建模。 提供强有力的文件读写能力。 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义 刘福奇,刘波.Verilog HDL应用程序设计M.北京
14、:电子工业出版社,2009:322-324。1.2 FPGA概述FPGA(Field Programmable Gate Array)现场可编程逻辑门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的
15、周期,提高了实现的灵活性并降低了成本 刘韬,楼兴华.FPGA数字电子系统设计M.北京:人民邮电出版社,2005:1-11。一、什么是可编程逻辑器件:在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件。存储器用来存储随机信息,如数据表或数据库的内容。微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能。逻辑器件又分为固定逻辑和可编程逻辑,固定逻辑是器件复杂性不同,从设计、原型到最终生产,当应用发生变化时就要从头设计,可编程逻辑器件较固定的优点就在于当应用发生变化和器件工作不合适时不用从头设计,直接从新编写逻辑器件后就可以了,这样就节省了前期的开发费用和周期。二、可编程逻辑器件CPLD/FPGA的比较:可编程逻辑包括PAL、GAL、PLD等,经过不断的发展,演变成现在的CPLD/FPGA。CPLD(Complex Programmable