基于FPGA的异步串行通信.doc

上传人:文****钱 文档编号:43655 上传时间:2018-05-10 格式:DOC 页数:42 大小:3.37MB
下载 相关 举报
基于FPGA的异步串行通信.doc_第1页
第1页 / 共42页
基于FPGA的异步串行通信.doc_第2页
第2页 / 共42页
基于FPGA的异步串行通信.doc_第3页
第3页 / 共42页
基于FPGA的异步串行通信.doc_第4页
第4页 / 共42页
基于FPGA的异步串行通信.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、摘要I摘要为了适应全数字化自动控制更加广泛的应用,采用FPGA对UART进行多模块的系统设计的方法,使串口通信的集成度更高。对UART系统结构进行了多模块的分解。UART通用异步收发器是一种应用广泛的短距离串行传输接口,常用于短距离、低速、低成本的通信中。本文采用VERILOG语言设计了一个UART发送模块和接收模块,从而可实现FPGA和PC机的异步串行通。利用ALTERA公司的EP1C6Q240I8芯片,采用ALTIUMDESIGNERSUMMER09画出原理图及PCB图且在QUARTUSII90环境下进行设计、编译、仿真。关键字UART,FPGA,VERILOG,原理图,PCBABSTRA

2、CTIIABSTRACTINORDERTOMEETTHEFULLDIGITALAUTOMATICCONTROLISUSEDMOREANDMOREWIDELY,ASYSTEMATICDESIGNMETHODOFFPGAMODULEOFUART,THESERIALCOMMUNICATION,AHIGHERDEGREEOFINTEGRATIONTHESTRUCTUREOFUARTSYSTEMISDECOMPOSEDMULTIMODULEUARTUNIVERSALASYNCHRONOUSRECEIVERTRANSMITTERISASHORTDISTANCESERIALTRANSMISSIONINTER

3、FACEISAWIDELYUSED,COMMUNICATIONUSEDINSHORTDISTANCE,LOWSPEED,LOWCOSTTHISPAPERDESCRIBESTHEDESIGNOFAUARTTRANSMITTINGMODULEANDARECEIVINGMODULEUSINGVERILOGLANGUAGE,WHICHCANBEASYNCHRONOUSSERIALFPGAANDPCMACHINEIMPLEMENTATIONUSINGEP1C6Q240I8CHIPOFALTERACOMPANY,09DRAWTHESCHEMATICDIAGRAMANDPCBDIAGRAMANDDESIGN

4、,COMPILE,SIMULATIONINQUARTUSII90ENVIRONMENTUSINGALTIUMDESIGNERSUMMERKEYWORDSUART,FPGA,VERILOG,SCHEMATICDIAGRAM,PCB目录III目录第1章引言111课题任务112课题要求213研究意义3第2章设计方案521硬件部分5211电源模块5212复位电路8221软件工具10222模块流程图13第3章实现功能描述1631实现功能描述1632电路设计16321主要芯片介绍16322原理图设计18323PCB图设计2133软件设计26第4章调试与实现3141调试中遇到的重点和难点3142解决方案31

5、43实现展示31第5章总结错误未定义书签。参考文献37第1章引言1第1章引言11课题任务本课题任务是使用VERILOG语言,写一个异步串行通信UART接口,并在FPGA上面仿真实现。VERILOGHDL是一种硬件描述语言(HDLHARDWAREDESCRIPTIONLANGUAGE),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。VERILOGHDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由GATEWAYDESIGNAUTOMATION公司(该公司于1989年被CADEN

6、CE公司收购)开发。异步串行通信UART是一种广泛应用的串行数据传输协议,UART的要求是传输线少,可靠性高而且传输距离远。UART功能负责从总线采集数据,转换成传输格式,然后发送到串口。也负责从串口接收数据,检查和删除附加的位,并传送结果数据给总线。异步串行通信广泛的应用于军事、工业、自动控制、仪器、通信、医药、话音图像处理等众多领域。现实应用中多采用专用集成芯片实现UART功能,如8250、8250A、16450、16C451、16C551等。但在实际应用中,一般只需要UART的几个主要功能,专用芯片成本比较大且造成资源的浪费。近年来随着电子设计技术的日趋成熟,特别是FPGA在集成度和速度

7、上的大幅提高,可以用一个芯片构成一个复杂的系统。一个芯片就能完成处理计算、通信、控制等多功能,而且成本大幅度降低。根据以上考虑,本文采用FPGA实现UART功能。在本文的设计中有着重要作用。FPGAFIELDPROGRAMMABLEGATEARRAY现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物跚1。FPGA的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热门的技术之一,应用范围遍及航空航天、医疗、通讯、网络通讯、安防、广播、汽车电子、工业、消费类市场、测量测试等多个热门领域心引。并随着工艺的

8、进步和技术的发展,向更多、更广泛的应用领域扩展。越来越多的设计也开始以ASIC转向FPGA,FPGA正以各种电子产品的形式进入了我们日常生活的各个角落。FPGA主要由三种可编程单元和一个用于存放编程数据的静态存储器组成。三种可编程单元是可配置逻辑模块CLBCONFIGURABLELOGICBLOCK、输出输入模块LOBINPUTOUTPUTBLOCK和互连资源IRINTERCONNECTRESOURCE口钔。它们的工作状态全部由编程数据存储器中的数据设定,工作时需要对片内的数据存储器进行编程。用户可以根据不同的配置模式,采用不同的编程方式。它是一种大规模可编程逻辑器件,包电子科技大学成都学院本

9、科毕业设计论文2含大量的单个逻辑单元,它的体系结构和逻辑单元灵活、集成度高以及适用范围宽,并且设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验。FPGA以其突出的优点,减少了电子系统的开发风险和开发成本,缩短了上市时间,通过在系统编程、远程在线重构等技术降低维护升级成本。随着可编程逻辑器件应用的日益广泛,许多IC制造厂家涉足FPGA领域。主要生产厂商有ALTERA、XILINX、ACTEL、LATTICE等。其中ALTERA和XILINX主要生产RAM工艺的作为一般用途的FPGA产品。而ACTEL主要生产采用反熔丝工艺和FLASH工艺的非易失性的FPG

10、A产品。本设计采用的FPGA是ALTERA公司的CYCLONE系列的芯片,ALTERACYCLONE低成本FPGA前所未有地将低功耗、低成本和丰富的功能结合在一起。12课题要求基本的UART通信只需要两条信号线,即RXD和TXD,TXD是UART的发送端,RXD是UART的接收端,接收与发送时全双工工作的。UART是异步通信方式,发送方和接收方分别有各自独立的时钟,传输的速率由双方约定,使用起止式异步协议。起止式异步协议的特点是一个字符一个字符的进行传输,字符之间没有固定的时间间隔要求,每个字符都以起始位开始,以停止位结束。基本的帧格式每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本

11、身由58BIT数据位组成,接着是一位校验位(也可由没有校验位),最后是一位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高点平,这样就保证起始位开始处一定有一个下降沿。数据发送实际就是按照基本UART帧格式将寄存器中的并行数据转换为串行数据,为其加上起始位和停止位,以一定的波特率进行传输。波特率BAUDRATE即调制速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。它是对符号传输速率的一种度量,1BAUD即指每秒传输1个符号。在基于FPGA实现通用异步通信时,波特率发生器是一个必不可少的部分。波特率发生器实际上就是一个分频器,可以根据给定的系统时钟频率

12、和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数从而产生所需的时钟频率。在设定发送和接收使用相同的波特率的情况下,UART只需要一个波特率发生器就可以了,波特率可以有多种选择,如9600BIT/S、14400BIT/S、19200BIT/S、38400BIT/S等,本文选择的是最常用的9600BIT/S。UART的数据接收的首要任务是能够正确检测到数据的起始位,起始位是一位0,它作为联络信号附加发送信息,因为空闲位都为高电平,所以当接收数据线的信号突第1章引言3然变为低电平时,告诉接收端将有数据传送。一个字符接收完毕后,对数据进行校验(若数据包含奇偶校验位),最后检测停

13、止位,以确认数据接收完毕。数据传输开始后,接收端不断检测传输线,看是否有起始位到来。当收到一系列的“1”之后,检测到一个下降沿,说明起始位出现。但是,由于传输中有可能会产生毛刺,接收端极有可能将毛刺误认为是起始位,所以要对检测到的起始位进行判别。一般采用以下方法取接收端的时钟频率是发送频率的16倍频,当检测到一个下降沿后,在接下来的16个周期内检测接收到的“0”的个数,若“0”的个数超过8个或者10个,则认为是起始位,否则认为不是起始位,继续检测。在检测到起始位后,还需要确定起始位的中间点位置,由于检测起始位采取16倍频,因此计数器到8的时刻即是起始位的中间点位置,在随后的数据位接收中,应恰好

14、在每一位的中间点采样,这样可提高接收的可靠性,接收数据位时可采取与发送数据相同的时钟频率,如果8位数据位、1位停止位的话,则需要采样9次,还需要进行串并转换,完成一个字符的接收。由上述描述中可以知道,异步通信是按字符传输的,每传输一个字符,就用起始位来通知接收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样的一些附加位,使得传输效率降低,只有约80。因此,起止协议一般用在数据速率较慢的场合(小于192KBIT/S)。

15、本课题需要的要求为以48MHZ晶振产生驱动,以产生波特率9600、8位数据位、一位停止位的格式进行数据传送。13研究意义通用异步收发器主要实现功能是接收外设传送的串行数据转换为并行数据同时校验该数据,然后将并行数据提供给处理器处理,或者将处理器发送来的并行数据转换成串行数据同时根据串行通信协议附加上起始位、奇偶校验位以及停止位,然后从串行数据输出端发送出去。用UART来实现传输数据的串/并转换或者并/串转换。目前大部分处理器芯片中都集成了UART功能,但是在FPGA芯片中一般没有集成UART,这增电子科技大学成都学院本科毕业设计论文4加了FPGA芯片与其它处理器间数据交换的复杂性。为提高FPG

16、A设计的灵活性,我们可以用硬件描述语言编写一个具有UART功能的模块,然后把这个模块配置到FPGA芯片中。由于FPGA的功能日益增大,开发周期短,现场可编程等一系列优点也越来越明显,将需要的UART功能集成到FPGA内部,利用VERILOG语言将UART的核心功能集成,去掉一些不必要的管脚,这样既可简化电路又能提高系统可靠性以及稳定性并可以方便的对芯片进行升级或者内嵌到各种不同的FPGA芯片中,方便快捷,使整个设计更加紧凑、稳定、可靠。因此利用FPGA自身的优点来设计设备间串行通信接口具有较高的实用价值和重大意义。第2章设计方案5第2章设计方案21硬件部分本设计的电路框图如图21,包含着五个模

17、块,分别是FPGA模块、JTAG电路模块、接收模块、发送模块以及电源模块。其中FPGA模块,在本设计使用的是芯片EP1C6Q24OI8,也是异步串行通讯模块的重要部分。对于JTAG电路而言在本设计中主要起着测试的作用。接收模块和发送模块是本设计的重点,基于FPGA的异步串行通讯的实现,就包括一个接收模块及发送模块,并且在此基础上进行仿真。电源模块在本设计中是分为外部电源电路和FPGA内部供电电源电路来完成供电部分。图21211电源模块本设计需要的电路供电内核需要15V供电,I/O则需要33V供电所以我们需要15V和33V两个电源电路如图22。电子科技大学成都学院本科毕业设计论文633V电源直接

18、由主板提供的5V电源经过33VLDO芯片SPX111733并且滤波以后得到。33V用于给FPGA所有I/O口、核心板上存储电路、串行配置器件、复位电路和LED等供电,且供电能力最大为800MA。SPX1117系列LDO芯片输出电流可达800MA,输出电压的精度在正负百分之一以内,还具有电流限制和热保护功能。使用时,其输出端需要接一个至少10UF的钽电容来改善瞬态响应和稳定性。SPX1117为一个低功耗正向电压调节器,其可以用在一些高效率,小封装的低功耗设计中。这款器件非常适合便携式电脑及电池供电的应用。SPX1117有很低的静态电流,在满负载时其低压差仅为11V。当输出电流减少时,静态电流随负

19、载变化,并提高效率。SPX1117可调节,以选择15V,18V,25V,285V,30V,33V及5V的输出电压。SPX1117为提供多种3引脚封装SOT223,TO252,TO220及TO263。一个10UF的输出电容可有效地保证稳定性,然而在大多数应用中,仅需一个更小的22UF电容为了确保SPX1117的稳定性,输出端至少需要一个22UF的钽/陶瓷电容或10UF铝电容。其值可以根据输出负载/温度范围的要求变动。ESR的值取决于用来保持稳定的电容类型。建议ESR选取05或更小的值。也可以选用一个更大的输出电容值(100UF)以增长负载瞬态响应。在焊接过程中,可以使用无活性剂或微活性剂。SPX

20、1117的输入、输出、及地引脚可能在散热的过程中,导致器件损坏。尽量避免手工焊接及波峰焊接,因为这些方法可能对芯片的热稳定性造成伤害。温度特性SPX1117(SOT223封装)从接点到焊贴片的热阻为15/W,31/W从焊贴片到周围环境,从接点到周围环境的总热阻为46/W。SPX1117的内部热限定功能,可以在一些过载的情况下保护器件。需要注意,当器件处于连续工作状态下,最大接点温度不会超过125。当温度155启动热保护功能,当温度4D3SR60SR71ENDELSEIFSTATE9BEGINIFRX1BRSR/接收数据进入缓冲寄存器ENDENDENDALWAYSPOSEDGECLK96ORPO

21、SEDGERSTORNEGEDGECLK_EN/状态转换BEGINIFRSTSTATE4B0000ELSEIFCLK_ENSTATE4B0000ELSESTATESTATE1ENDENDMODULE第4章调试与实现31第4章调试与实现41调试中遇到的重点和难点在本设计中重点部分在于代码及其仿真部分,其中代码部分包含发送模块和接收模块。对于发送模块此部分的代码一定要按照基本UART帧格式将并行数据转换为串行数据,为其加上起始位和停止位。以及选择合适的波特率,本设计采用的是最常用的9600BIT/S接收部分首要任务是要能够正确检测到数据的起始位。在实际操作过程中,仿真这一块是我遇到的难点部分,所以

22、最后得到正确的波形图来讲是比较难的,在仿真过程中,由于对软件不是很熟悉,很多操作自己还不会使用,进程就比较慢。对于信号的设定以及相关数据的设置自己都不熟悉,导致仿真迟迟不能完成。42解决方案由于之前自己使用的QUARTUSII91版本的软件,但此软件没有仿真模块,为了方便起见,本设计使用的是90版本的,因为本身自带仿真模块,查看也比较方便。针对自己不熟悉这个软件,通过自己在网上查看相关资料以及老师的指导和同学的帮助,对其有了一定的了解,对信号的设定和数据的设置的问题也迎刃而解。最终得到了正确的波形图。43实现展示在编写好代码后就开始编译,改正,直至没有错误,在进行波形仿真。如下图是代码正确后进

23、行仿真前的步骤图41,42,43,44,45电子科技大学成都学院本科毕业设计论文32图41新建波形文件图42双击NAME弹出此窗口进行文件选择第4章调试与实现33图43选择仿真波形图所需的信号图44随机信号波形电子科技大学成都学院本科毕业设计论文34图45读入信号(1)发送模块仿真结果在这些步骤之后,发送模块的仿真结果如下图46,发送模块需要我们自己输入8位的并行数据,其中CLK16X的周期设置为10PS,,相当于是本次仿真的驱动,为了方便观察,SR本身默认的是十进制,在这里我们把它设置为二进制。当CLK_EN由低变高且STATE由高电平变为低电平时,表明起始位出现,且需要注意的是发送数据一定

24、要按照基本的UART帧格式。当输入的8位数据开始进行传送,并且每发送1BIT数据,移位寄存器SR右移一位,同时TX也输出1BIT数据。图46UART发送模块仿真结果2接收模块仿真结果第4章调试与实现35接收模块的仿真波形如图47所示。CLK16周期依然设置为10PS,把SR设置为二进制,以方便观看。由于RX是输入数据,这里我们是设置的随机,当CLK_EN从低电平转换到高电平时,检测到起始位,则数据开始进行传输,从图中可以看出每接收到1BIT数据,移位寄存器SR右移一位,当接收完数据,正确检测到停止位后,将数据发送给缓冲寄存器。图47UART接收模块仿真结果第5章总结36第5章总结本文介绍了一种

25、基于FPGA实现异步串行通信功能,采用多模块的方法实现异步串行通信功能,可以方便用户根据需要进行裁减、便于理解和调试。本文运用VERILOG语言进行设计异步串行通讯模块的设计。用FPGA实现UART功能,充分利用了FPGA的剩余资源,相对于专用UART芯片,减小系统PCB板的面积,降低系统的功耗,提高系统的稳定性。近年来在电子设计领域中,这种硬件软件化的方法已经成为当今电子设计领域中的一种流行趋势。在很多串行数据通信方面,该UART可以完全代替专用的UART芯片,该设计采用ALTERA公司的CYCLONE系列的EP1C6Q240。通过ALTIUMDESIGNERSUMMER09画出原理图和PC

26、B及QUARTUSII90软件进行编程及纠错和波形仿真均满足要求,整个设计的正确性和完整性得到验证,各项功能均达到预期的要求。参考文献37参考文献(1)周立功等EDA实验与实践北京北京航空航天大学出版社,2011146155(2)王金明冷自强EDA技术与VERILOG设计北京科学出版社,2011382387(3)HTTP/WENKUBAIDUCOM/LINKURLBYSL9GSB1D1B1ITAXXM6Y_5W6OK6UESOVZHTAIKVRRTGJ_2XPOKA2AVU2VFYHVOVSB8X_QBETAU3BO7KDG1SUGNRPBJBHTSWJFB8EYP4Q致谢38致谢时光匆匆,如

27、白驹过隙。在毕业论文定稿之际,四年的大学本科生活也即将画上句号。遥想初入求是园之时,还历历在目,恍如隔日,不免感叹光阴易逝、韶华难追。然而,艰辛而快乐的求学之路,也给我留下了很多难以忘怀的欣慰和幸福。在此,向四年来陪伴我一起走过,给予我帮助和关心的良师益友以及亲人们,致以最为真挚的谢意首先,我要感谢电子科大成都学院对我四年来的教育,让我从幼稚走向成熟,懂得更多社会生活准则,充实的校园生活带给我无数的感动与纪念。感谢微电子技术系给我提供了学习的平台,让我学到更多的知识。同时,我要特别感谢我的本科毕业论文指导老师王怡老师。由于个人爱好原因我选择了这个毕设题目,第一次接触王怡老师还是她教授我们单片机

28、这门课程,她渊博的学识、严谨的治学态度以及为人师表的言行举止,都给我留下了深刻的印象。这也是为什么我会选择王老师作为我本科毕业论文导师的原因。在接下来将近一年的论文创作过程中,王老师在论文的选题、框架的调整、内容的删增、乃至具体格式的规范等方面,都投入了大量的精力,提出了大量很有价值的建议意见,给了我很大的启发和帮助,让我领会到了一个真正学者所应该具有的风采以及为人处事的道理,深受感动。朋友之间的相互帮助、相互关怀同样让人难以忘怀、感动至深。每每回想起学术讨论时的一个个片断、生活中不起眼的点点滴滴,都会让人感到无比的亲切、温馨。四年,一同走过;思念,一生常有。祝我们的友谊能够万古长存,也祝各位一生幸福、前程似锦最后,我要感谢的是我最亲爱的父母。在我二十多年的成长过程中,你们无时不刻无私地关怀和奉献,是我独在异乡求学的最大精神支柱,也是我可以依偎的最温馨港湾。你们是我永远的牵挂和眷念附录

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。