基于pld的交通灯控制电路的设计工程类资料_第1页
基于pld的交通灯控制电路的设计工程类资料_第2页
基于pld的交通灯控制电路的设计工程类资料_第3页
基于pld的交通灯控制电路的设计工程类资料_第4页
基于pld的交通灯控制电路的设计工程类资料_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第26页共26页PAGE引言交通灯控制器件在我们的日常生活中有着很重要的意义。由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全、迅速地通行,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯亮禁止通行;绿灯亮允许通行;黄灯亮则给行驶中的车辆有时间停靠在禁行线外。实现红、绿灯的自动指挥对城市交通管理现代化有着重要的意义。本次设计是采用可编程逻辑器件(PLD)为主控制器芯片,通过QuartusII综合性PLD开发平台,用VerilogHDL硬件描述语言完成控制器电路的程序设计和仿真验证,然后将设计结果编程下载到PLD芯片中,通过PLD的I/O口输出信号,控制外围电路连接以实现对交通灯的控制。在该设计的制作过程中QuartusII综合性PLD开发平台和VerilogHDL硬件描述语言必不可少的工具。设计的各个模块功能都要运用到VerilogHDL硬件描述语言、QuartusII综合性PLD开发平台对其进行编写和模拟仿真。并将所写程序下载至EDA6000实验开发系统上,对各方面功能进行模拟硬件电路验证实现。在对程序验证正确,并论证其现实可行后,还需要运用电路知识和PCB设计软件Protel99SE制作电路板。下面简要介绍可编程逻辑器件(PLD)、QuartusII综合性PLD开发平台、VerilogHDL硬件描述语言和EDA6000实验开发系统。可编程逻辑器件(PLD)。PLD是可编程逻辑器件(ProgramableLogicDevice)的简称。是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用PLD来实现。PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。随着科学的发展,社会的进步,数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。本次设计所运用到的EPM7128SLC84-15便是复杂可编程逻辑器件(CPLD)的一个代表。虽然名字和复杂程度各不相同,但是一个PLD器件一般由三大部分组成,其结构如图1所示。(1)、一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。(2)、输入/输出块。(3)、连接逻辑块的互连资源。连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。图1典型的PLD框图 QuartusII综合性PLD开发平台。QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点,并支持MAX7000/MAX3000等乘积项器件,为目前常用的EDA开发软件。 此外由于QuartusII简单易学功能强大,所以在许多大中院校中被选为EDA课程学习的配套软件。也是广大师生在学习EDA过程中运用得最多的PLD开发软件。VerilogHDL硬件描述语言。VerilogHDL是一种硬件描述语言(HDL:HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。QuartusII开发软件中支持VHDL、VerilogHDL等硬件描述语言。VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,其最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握。由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,VHDL的学习要困难一些。但VerilogHDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。EDA6000实验开发系统。EDA6000是南京伟福公司结合多年PLD、EDA、DSP及SOPC开发经验,分析国内外多种EDA实验开发系统,取长补短,研制出的EDA实验开发系统。该系统的优点很多,这里只介绍其中最重要,也是在PLD设计过程中运用得最多的两个功能。(1)多芯片。支持XCS05/10、XC9572/108、XCV200、FLEX10K10、MAX7128S等多种系列FPGA/EPLD芯片。本次设计用到的是MAX7128S芯片。(2)软、硬件结合。EDA6000实验系统采用软、硬件结合技术,可以在PC机的软件(伟福6000)上定义实验所要连线,下载到实验仪上即可。实验仪运行的结果可以在软件上观察到,如果想观察高速信号,就用逻辑分析仪采样,传上来进行分析。软件可以将RAM的数据下载到实验仪上,供实验仪做VGA、DAC等数据输出类实验。也可将ADC采样的到数据上载到PC机的软件中,供学生分析、观察、保存。由于这个优点,为程序的模拟硬件电路实现提供了很大的方便。1方案论证根据毕业设计任务书的要求,本次设计必须满足以下要求:(1)用PLD芯片实现交通灯控制电路的设计。(2)能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒,红、绿、黄灯显示的次序符合实际交通道路控制的要求。(3)在EDA实验开发系统上完成电路的设计与验证后,根据设计电路的输入和输出设备的需要设计并制作PCB板,完成基于PLD的交通灯控制电路的设计。1.1整体设计构想在查阅资料后可以得知,交通灯控制系统的设计平台有很多种。如:有基于单片机的交通灯,有基于FPGA的也有基于PLD的。在众多设计中,基于单片机的交通灯控制系统是最具有实用价值的。目前交通信号灯,大部分都是用单片机控制,加上无线通信来实现的。基于PLD的交通灯控制系统的设计题是在PLD学习中一个最经典,最典型的题目,尤其是定时器和计数器那部分。通过基于PLD的交通灯控制电路设计,让制作者熟悉掌握EDA技术,并能够运用硬件描述语言对PLD器件进行程序编写,通过对PLD芯片的选择和硬件电路实现,让设计者能够基本掌握该项技术。 根据第(2)项的要求,要能够设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒,所以要在路口要放置数码管,用以倒计时的显示。还有红、绿、黄灯显示的次序要符合实际交通道路控制的要求,根据对现实中的十字路口交通灯的观察,发现交通灯的形式虽然有多种多样,但是基本的结构是不变的,其主要工作状态有以下几种:=1\*GB3①状态0:东西方向绿灯亮,南北方向红灯亮,用以东西方向的车辆通行。=2\*GB3②状态1:东西方向黄灯亮,用于给予东西方向通行的车辆以准备停止的时间。=3\*GB3③状态2:南北方向绿灯亮,东西方向红灯亮,用以南北方向的车辆通行。=4\*GB3④状态3:南北方向黄灯亮,用于告给予南北方向通行的车辆以准备停止的时间。 此四种状态反复轮回运行便构成了一个十字路口交通灯。图2就是这四种状态的示意图。图2十字路口交通灯示意图完成整体设计构想以后,在QuartusII综合性PLD开发平台上,用VerilogHDL硬件描述语言编写各设计模块的程序,然后在EDA6000实验箱上验证可以实现交通灯控制器的功能,最后制作PCB板,实现电路整体设计方案。1.2程序设计方案根据任务书的要求,该交通灯控制系统主要有这几个功能(1)、能够产生倒计时,可以设置倒计时的大小(即倒计时起始时间),并能显示出来。(2)、能够产生1秒的时钟。 (3)、能够控制红、黄、绿灯的显示。根据以上三点,本次设计大体可以分为四大部分: (1)、分频电路。将外部晶振分频用于产生1秒的时钟信号。 (2)、中央控制电路。用于控制东西、南北方向信号灯的亮灭和与之配套的倒计时(即倒计时起始时间)。 (3)、减法计数器。用于倒计时的产生。 (4)、译码显示电路。用于倒计时的显示。 根据以上四点,可以设计并绘制出原理图,如图3所示。图3交通灯控制系统原理图2程序设计根据以上流程,用VerilogHDL硬件描述语言完成对各部分进行编写,在编译通过后完成的顶层文件如图4所示:图SEQ图\*ARABIC4交通灯控制系统顶层文件在图4中,newclk为分频电路,conter为中央控制电路,sub10为减法计数器,ymq为译码显示电路。下面将对各部分电路一一解释。2.1分频电路分频电路用于完成外部石英晶体振荡器输出频率的分频。本电路设计中使用的石英晶体振荡器的输出频率为4096kHZ,经过4096000分频后得到周期为1s的时钟。分频电路的VerilogHDL程序如下:modulenewclk(clk,newclk); input clk; output newclk; reg newclk; reg[24:0] cnter; always@(posedgeclk) begin if(cnter<4096000-1) cnter=cnter+1; else cnter=0; if(cnter==4096000-1)newclk=1; elsenewclk=0; endendmodule 在程序中,该分频器的输入端口为clk,接于外部晶振的输出。输出端口newclk,用于输出4096000分频后的1Hz(即1秒时钟信号)信号。 完成分频器程序的编写后,通过编译确保程序无误,然后点击File菜单下的Create/update—CreatSymbolFilesforcurrentFile,成分频器的元件符号,用于顶层文件的连接。生成元器件如图5所示。图5分频器的元件符号图5分频器的元件符号 后面几个模块的编译和元件符号的生成都是如此操作,故不再重复说明。2.2减法计数器减法计数器用于交通灯控制电路的倒计时,倒计时的最大时间为99秒,因此设计一个十进制减法计数器,然后用两片十进制减法计数器构成两位十进制减法计数器电路。十进制减法计数器的VerilogHDL程序如下:modulesub10(clk,lod,a,q,cout); input clk,lod; input[3:0] a; output[3:0] q; output cout; reg[3:0] q; reg cout;always@(posedgeclkornegedgelod) begin if(~lod)beginq=a;cout=1;end elseif(q>0)begin q=q-1; if(q==0)cout=0; elsecout=1; end elseif(q==0)beginq=9;cout=1;end endendmodule 在十进制减法计数器中,clk用于接收分频电路产生的1秒时钟信号;Lod与中央控制电路的lod相连,用于决定减法计数器的工作状态;输入信号a与中央控制电路的qa相连,用以决定倒计时起始时间,Cout为进位端,用于产生进位信号。当要显示两位十进制数时,将位于个位的减法计数器的cout与位于十位的减法计数器的clk端相连。编译通过后生成的十进制减法计数器的元件符号如图6所示。图6减法计数器的元件符号2.3译码显示电路共阴数码管的引脚图如图7所示。共阴极数码管的原理是将数码管内部的发光二极管的阴极连接起来并接地。输出为高电平有效,即当输出为高电平时,数码管中相应的发光二极管发光。图7共阴数码管引脚图译码器的译码原理如下:按照图7中ABCDEFG的顺序,在输入端输入要显示的数字的二进制数,对其进行翻译,以得到该数字的电平信号,并在输出端通过数码管显示出来。例如:当输入信号为二进制0000时,数码管显示0,即A,B,C,D,E,F都亮而G不亮。具体翻译如表格1所示。表格1二进制十六进制共阴数码管显示GFEDCBA0000001111110001100001100010210110110011310011110100411001100101511011010110611111000111700001111000811111111001911001111010A11101111011B11111001100C10110001101D10111101110E11110011111F1110001根据表格1写出16进制共阴显示译码器电路的VerilogHDL程序,如下:moduleymq(in,out);input[3:0]in;output[6:0]out;reg[6:0]out;always@(in)begincase(in)4'b0000:out=7'b0111111;4'b0001:out=7'b0000110;4'b0010:out=7'b1011011;4'b0011:out=7'b1001111;4'b0100:out=7'b1100110;4'b0101:out=7'b1101101;4'b0110:out=7'b1111100;4'b0111:out=7'b0000111;4'b1000:out=7'b1111111;4'b1001:out=7'b1100111;4'b1010:out=7'b1110111;4'b1011:out=7'b1111100;4'b1100:out=7'b1011000;4'b1101:out=7'b1011110;4'b1110:out=7'b1111001;4'b1111:out=7'b1110001;default:out=7'b0000000;endcaseendendmodule图8译码器元件符号该译码器程序可以显示0到F共16个数字(即代表10进制的0到15)。其中输入端in用于接收减法计数器产生的4位二进制信号,在翻译后由输出端out输出。图8译码器元件符号编译完成后的生成元件符号如如图8所示。2.4中央控制电路中央控制电路用于整个电路的控制,其VerilogHDL程序如下:modulecontr(lod,cin,aq,qa,d); input[7:0] aq; input cin; outputreg[7:0]qa; outputreg[5:0]d; outputreg lod; reg[1:0] qc;initiald='b100010; always@(negedgecin) begin if(aq==0)lod=0; elselod=1; endalways@(negedgelod) beginqc=qc+1; case(qc)0:beginqa='h03;d='b100010;end 1:beginqa='h19;d='b001100;end 2:beginqa='h03;d='b010100;end 3:beginqa='h19;d='b100001;end default:qa='h00; endcase endendmodule中央控制电路的作用是对整个交通灯控制电路进行控制,控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。本程序共提供了0、1、2、3四种工作状态,其中最大定时为19秒,最小为3秒。其具体的工作状态如方案论证中的图2所示。编译完成后生成的元件图如图9所示。图9中央控制电路元件图2.5顶层文件 在QuartusII中新建一个工程,为交通灯控制器电路建立一个原理图编辑BDF文件。在原理图编辑窗口中,调出已经设计好的分频器元件,中央控制器元件,十进制减法计数器元件(2片)和译码器元件(2片),并用鼠标完成各元件之间的电路连接,形成交通灯控制器电路的顶层文件,如图10所示。 图10交通灯控制系统顶层文件 编译完成交通灯控制器的顶层设计文件后就可下载至EDA6000实验平台进行硬件电路验证。3程序调试验证在编译完成后,要用到EDA6000实验箱对程序进行模拟硬件电路验证。首先将EDA6000实验箱与计算机相连,然后打开与EDA6000实验箱配套的伟福6000软件,点击连接EDA实验开发系统后,看到实验箱上的数码管全亮后,EDA6000实验箱便与计算机连接上了。 在下面的介绍中,都综合运用到了QuartusII软件和伟福EDA6000实验开发系统。3.1引脚锁定 下载验证的第一步就是在QuartusII软件中选择好相应的PLD器件,并将其引脚锁定。本次用到的是实验箱上自带的芯片EPM7128S。在伟福6000中选择好数码管用于倒计时显示和LED灯用于交通灯显示,并为其设定好I/O口。本次设计中,我将I/O口00I/O口06连接到用于显示个位倒计时的数码管,I/O口08I/O口14连接到显示十位倒计时的数码管。由于西面和东面、南面和北面的交通灯显示是一样的,所以选择东面和北面的交通,共6盏用于与I/O口15I/O口20相连。连接完成后如图11所示。图11在伟福6000的I/O引脚定义菜单下查看各I/O口对应的引脚,最后在QuartusII的Assignment下拉菜单下选择Pins,弹出引脚锁定菜单,在Location中输入各部分所对应的引脚。 两个数码管的引脚out[0]out[13]分别定义为:45、50、49、51、54、55、56、58、52、60、61、63、64、65。6个交通灯d[0]d[5]分别定义为67、68、69、70、73、76。clk与83脚外部晶振连接。完成引脚锁定后再次进行设计电路的编译。3.2程序下载 将引脚锁定后,点击QuartusII中的Programmer对程序进行下载。 在Mode下拉菜单中选择JTAG模式(该模式是EPM7128S系列的下载模式),并在Programmer/Configure下打钩,点击Start,在Progress的蓝条进行到100%时,下载完成。3.3程序调试 下载完成后,点击伟福6000上的启动/暂停按钮,程序启动。启动后观察实验箱上的各部分运行正常,交通灯控制电路的四种显示状态都能完好的呈现。交通灯控制器的硬件验证如图12所示。图12交通灯控制器的硬件验证图根据观察,任务书中所要求实现的各项功能在EDA6000实验平台上都得以实现。可以说以上程序是无误的,根据该程序完全可以设计出与之相配的外部硬件电路。4硬件电路实现在EDA6000实验开发系统上完成硬件电路验证后,便可着手于基于PCB板的硬件电路设计。在着手设计之前,先要对所设计电路做一个大概的规划。首先要对市面上大量的PLD芯片进行选择,找到合适的芯片,其次是查阅芯片资料,对该芯片有个全面的了解,掌握其工作环境和各引脚的作用,完成一个最小系统的设计。然后根据设计所要求的外部显示功能,完成一个外围电路的设计。最后将这两部分连接起来。4.1PLD芯片的选择目前的PLD芯片主要由ALTERA,Lattice,Xilinx等公司生产。针对市面上PLD芯片众多,本着熟悉、简单、易用等原则,我选择了ALTERA公司生产的EPM7128SLC84-15这块芯片。EPM7128SLC84-15是ALTERA公司生产的MAX7000S系列中的一块。选择这块芯片的原因有三点,首先,该芯片是市面上最常见的PLD芯片,在大学期间有过很多的接触,有在EDA6000实验箱上使用的经验,对其各方面功能有一定的了解。再次,该芯片的为ALTERA公司的产品,为同是该公司生产的QuartusII综合性PLD开发软件支持,不必因为选用其他公司的产品而另外学习使用一套软件和编程语言。最后,由于该芯片使用广泛,在图书馆和网络上都有很多关于它的资料,方便参考和学习。4.对EPM7128SLC84-15的型号标识做以下简要介绍。(1)EP。EP代表的是ALTERA公司的产品,该公司的产品一般都以EP开头,代表可重复编程。(2)M。M代表的是ALTERA公司的MAX系列CPLD产品。(3)7为产品系列号,即属于MAX7000S。(4)128。表示改芯片的逻辑宏单元数为128。(5)LC表示采用PLCC封装(PlasticLeadedChipCarrier,塑料方形扁平封装)。(6)84-15,表示该芯片有84个引脚,引脚间延时为15ns。4.EPM7128SLC84是Altera公司开发的CPLD器件,属于MAX7000S系列。在高集成度PLD器件中,MAX7000S系列是速度最快的类型之一,它内部为第二代MAX(MultipleArrayMatrix)结构。除了集成度高的优点外,器件内部单元(cell)之间的连接采用连续的金属线,这种互连结构为单元之间提供了固定的、短时延的信号通道,从而消除了内部延时的难以预测性,并有效地提高了芯片资源的利用效率。EPM7128SLC84是基于EEPROM的可编程CMOS器件,其主要性能指标为:(1)外部引脚数目为84,内部等效门数为2500左右;(2)内部有128个逻辑宏单元(Macrocell),每16个宏单元组成一个逻辑阵列块(LAB),每个逻辑阵列块对应8个I/O引脚;(3)除通用I/O引脚外,EPM7128SLC84有两个全局时钟、一个全局使能和一个全局清零输入;(4)器件最高计数频率为151.5MHz,内部互连延时为1ns。

EPM7128SLC84的主要特点为:(1)支持通过JTAG口进行5V电压的在片编程;(2)宏单元的工作速率和功耗可编程选择,用户可决定每一个宏单元的工作模式——选择一般模式或是节能模式(功耗降低50%或更多,但延时加大)(3)宏单元的触发器有独立的清零、预置、时钟和时钟使能控制,可通过编程进行设置;(4)器件的引脚输出可设置,有以下三种选项:①多电平I/O接口,通过硬件设置可使引脚输出支持5V或3.3V两种电平;②输出回转速率(Slew-Rate)控制,用户可决定每一I/O引脚的输出回转速率,大回转速率缩小了信号通道的延时,但有可能加大瞬态躁声;③集电极开路选择。(5)具有一个完善、友好的软件环境支持器件开发,Altera公司的EDA软件QuartusII集成了设计文件编辑、编译、仿真、时序分析和器件编程等各项功能,并能直接控制器件内部宏单元或输出引脚的设置;(6)Altera的硬件描述语言与CPLD硬件结合紧密,并且提供优化的Megafunction函数库,支持灵活地描述各类常用复杂电路,如计数器、锁相环等。4.EPM7128SLC84是Altera公司开发的CPLD器件,属于MAX7000S系列。其内部由五类模块组成,分别为宏单元、扩展乘积项、逻辑阵列块、可编程互连阵列(PIA)和I/O控制块。

宏单元是EPM7128SLC84的基本元素,每个宏单元由组合电路和一个可编程触发器组成。组合电路最多可有20个乘积项,宏单元本身提供5个,其他15个来自于本逻辑块内其他宏单元提供的并行扩展乘积项,同时宏单元还输出一个共享扩展乘积项,逻辑块内的并行扩展乘积项和共享扩展乘积项组成扩展乘积项。触发器能通过编程设置为D、T、JK和RS四种类型,数据端既可来自于组合电路的输出,也可为I/O引脚的直接输入,触发器的时钟、清零、预置和使能等均可编程控制,其中时钟、清零端的信号均有全局信号和组合电路输出两种来源。

每个逻辑阵列块LAB由16个宏单元组成,LAB的输入信号包括:从器件内部的公共总线——可编程互连阵列PIA反馈来的36路信号;两路全局时钟和一路全局清零信号;直接从I/O引脚输入的8路信号。LAB之间通过PIA相连,PIA内的信号通道其延时是固定的,不存在积累效应。

宏单元的输出经I/O控制块送至I/O引脚,I/O控制块控制每一个I/O引脚的工作模式,决定其为输入、输出或是双向引脚,并决定其三态输出的使能端控制。图13为MAX7000S系列的内部结构图。图13MAX7000S内部结构图4.2EPM7128SLC84最小系统4.2.在熟悉EPM7128SLC84的各项性能和特点后,在制作最小系统前,先将各引脚功能做一个简单的介绍。芯片引脚分布图如14所示。(1)VCCNT、VCCI/O、GND。VCCNT与+5V电源相连接,GND与地极相连接。I/O口电源VCCIO的连接要考虑实际的需要。EPM7128S芯片为VCCIO提供了两种电平的选择,+5V和+3.3V。VCCIO可以VCCNT一样与+5V电源连接,也可单独与+3.3V电源连接。电平选择由具体电路需要而定,当其与多少伏电源连接时,I/O口的输出电流也大致为多少伏。 (2)TMS、TCK、TDI、TDO。TMS、TCK、TDI、TDO分别为模式选择、时钟、数据输入和数据输出线,为JTAG在线可编程引脚,为芯片提供下载功能。ALTERA板上的接口标准如图15所示。图14EPM7128S引脚图 图15ALTERA板上的接口标准 (3)EPM7000S的四个全局输入脚GCLK1,OE2(GCLK2),OE1,GLCRn它们的作用是: =1\*GB3①GCLK:全局时钟脚,这个脚的驱动能力最强,到所有逻辑单元的延时基本相同,所以如系统有外部时钟输入,建议定义此脚为时钟脚。=2\*GB3②OE1:全局输出使能,这个脚的驱动能力最强,到所有逻辑单元的延时基本相同,如有三态输出,建议由此脚来控制(也可由内部逻辑产生输出使能信号)。=3\*GB3③OE2/GCLK2:全局输出使能/全局时钟脚,两者皆可。=4\*GB3④GCLRn:全局清零,如有寄存器清零,建议由此脚来控制(也可由内部逻辑产生清零信号),优点同上。 (4)除以上引脚外,其他引脚都为普通I/O口,可任意使用。4.根据以上引脚说明,可将其各部分连接组成一块EPM7128S最小系统。在考虑到简单、实用和后期调试电路方便等各方面的因素,本次设计决定购买在市面上可见的EPM7128SPCB板,并按照说明书对各部分元器件焊接。EPM7128SPCB板如图16所示。图16EPM7128SPCB图16EPM7128SPCB图17EPM7128S最小系统 根据焊接说明书,焊接后得到的EPM7128S最小系统如17图所示。 该最小系统有如下特点:(1)采用完全开放式设计:将EPM7128的全部I/O引脚、电源、时钟、复位信号、4个LED全部连接到插针上,在将设计下载到CPLD后,使用插线跟外围电路进行任意连接,可以搭建自己需要的任何一种电路,非常灵活和适用,具有很强的通用性,这正是最小系统板的主要特点。(2)独立性:该最小系统板本身提供电源(包括5V和3.3V)、时钟、复位、下载电路和4个LED,组成了一个CPLD的最小系统,所以可以用于学习、进行一定的实验和验证,但主要用作核心板,外围电路可由需要任意搭建。本设计的硬件资源如下:(1)PLD(EPM7128SLC84-15或者EPM7128SLC84-10);(2)电源:5V直流输入,电源插座引入,或者直接使用插线引入,有开关和过压保护。提供5V转3.3V电源电路。输入是5V信号,但输出可以配置为5V或者3.3V信号,通过电源跳线设置:VCCI/O=5V时,输出为5V信号,VCCI/O=3.3V时,输出为3.3V信号。如果错误地插入了超过5.1V的电压,稳压二极管可能会烧毁,但能保护其他的器件不致烧毁。烧毁的稳压二极管需要自己换新。(3)时钟电路:一个晶振插座,提供一个4.096MHZ的晶振,用户可以很方便更换其他频率的晶振,注意晶振的方向,以晶振上的一个标志点为1脚,必须和PCB上的点对应;(4)复位电路:具有上电复位和按键复位功能,复位信号为高电平,单独引到插针上,可以同时作为CPLD和其他外围电路的复位信号;(5)下载电路:一个10针插座和下载指示灯,下载时指示灯闪烁;(6)插针阵列:PLD的全部I/O引脚、电源及其跳线、时钟、复位信号、4个LED全部连接到插针上;(7)插线:用于连接实验电路或者验证电路。插线两端都含有插头(即杜邦头),插头内的簧片有良好的弹性,可以保证插接点的稳定和良好接触,避免了面包板上经常出现的插头松动和接触不良现象。插线有10种颜色,便于辨认。(8)转接区:主要解决一个引脚同时连接到多个引脚的情况。转接区有7个转接点,每个转接点由4个插针组成(这4个针连接在一起)。4.3外围电路设计4.外围电路由12个LED灯(红、黄、绿各3个)用于显示交通控制。四个共阴7段数码管,用于输出倒计时。由于南北和东西两面的LED灯和倒计时显示是一样的,所以将南北和东西的LED灯并联,数码管通过排阻上拉后并联,这样可以最大程度的简化电路。4.在外围电路的制作中,要运用到Protel99SE这个软件。Protel99SE是ProklTechnology公司开发的基于Windows环境下的电路板设计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业必学课程,同时也是业界人士首选的电路板设计工具。制作电路板一般分为以下几个步骤:(1)规划电路板一般在设计的PCB板时都有严格的外形尺寸要求,需要认真规划确定电路板的物理尺寸。进入PCB编辑器,单击下方的KeepOutLayer标签将当前工作层设置为KeepOutLayer。该层为禁止布线层,一般用于设置电路板的边界。执行Place/Keepout/Track命令,光标变为十字形状。单击一条板边的起点,然后移动光标到合适位置后单击确定板边的终点。双击在Track对话框中设置X起点、终点坐标,Y起点、终点坐标,最终确定电路板的长度和宽度。由于有了EPM7128S的最小系统,现在只需要设计外围电路就可以了,因此我将电路板的长度定为10cm,宽度定为10cm。(2)绘制原理图 该外部电路的原理图为北边和西边的共6个LED灯通过限流电阻与6个排针相连,应为南边和北边,东边和西边的LED灯的亮灭是一直的,所以将其串连起来就可以了。另外有4个数码管,每两个一组分别用以显示东西、南北的倒计时情况,所以将其通过1K排阻上拉后与排针相连就好了。画好的交通灯控制器外围电路的原理图如图18所示。图18交通灯控制器外围电路原理图上拉电阻的作用是提高元器件的使用效率,其阻值的选择原则包括:

=1\*GB3①从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小;

=2\*GB3②从确保足够的驱动电流考虑应当足够小;电阻小,电流大;

=3\*GB3③对于高速电路,过大的上拉电阻可能边沿变平缓.综合考虑。对于与二极管连接的限流电阻选择:=1\*GB3①型号:红光、黄光、绿光

=2\*GB3②电流:红黄:电流在15~35mA之间

绿:电流在15~20mA之间=3\*GB3③正向压降:红黄

2.1V(典型值)

2.7V(最大值)绿

3.9V(典型值)

4.5V(最大值)=4\*GB3④限流电阻计算:

R=(Vcc-VF×n)/IF

Vcc——电源电压

VF——LED正向电压

n——LED串联的个数

IF——LED正向电流通常取10—20mA计算得:红、黄光二极管的限流电阻为300欧,绿光二极管的限流电阻为100欧。(3)加载元件封装在加载元件封装之前必须加载所需要的元件封装库。本设计中大多数元件的封装都能在PCB编辑器中自带的PCBFootprints.lib中找到。只有共阴数码管没有现成的封装图。这就需要自己利用PCB元件封装编辑器来自制元件的封装。观察这7段数码管的特点,对其尺寸和引脚距离的丈量,画处共阴数码管的封装如图19。图19共阴极7段数码管封装编辑好后,单击Rename键,输入新的封装名称SMG,保存。再回到PCB编辑器中将刚才制作的元件封装图加载进来就可以了。日后若还要用到该封装,只需将元件的封装名写为SMG就可以了。(4)PCB设计在完成7段数码管的封装后,将所有元件封装完成后就可以对改电路的PCB进行设计了。首先在规划好的10*10的范围内,在其中偏右下的区域内,分别在东西南北四个方向每边防止3个LED灯。并分别在北面和西面的LED灯上方放置两个七段数码管,用以倒计时的显示。然后在这些元件的附近放置和其相连的电阻和上拉电阻。最后在板子上方放置用以与I/O口相连的排针。在放置好元件后,点击Rule设置好导线宽度和元件最小距离后就可以用导线将各部分元件相连接起来了。为了方便电路板的腐蚀和焊接,我将导线宽度设置在1mm左右,并将地线和电源线加粗。最后设计好的PCB如图20所示。图20外围电路PCB4.4PCB板的制作首先把电路的PCB图打印出来,通过压板机将PCB转印到事先选择好的铜板上。待板子冷却后撕掉PCB纸,查看是否存在断线和短路情况,如有的话用油性笔对其进行修改。检查完成后将其放入腐蚀液中(由盐酸、双氧水组成),腐蚀好的铜板要涂上松香液,防止铜线被氧化。最后用打孔机把所需的元器件插孔打好。4.5元件安装与焊接在安装元件时,一定要慎重,在安装前要仔细检测各个元件的好坏,这也是为下一步调试电路打好基础。判断所用到元件好坏以及引脚的极性,对照装配图将元件插入孔中,再用焊锡把元器件焊接好才算完成电路板的基本制作。在焊接元件时要注意顺序,一般是先焊高度比较低的元件。焊接时一般可以按照跳线电阻排阻发光二极管芯片座排针极性电容这样的顺序进行。焊接电路板时应细心,要掌握好焊接要领,防止出现虚焊、假焊或将不该连接的两线连接起来等会造成短路、断路等情况。5硬件电路调试5.1硬件电路连接 本次设计的硬件电路分为两大部分,EPM7128S最小系统和外围电路。两部分之间用导线连接起来。 本次设计中用到了最小系统的4、6、9、11、15、17脚用于交通灯信号的输出,5、8、10、12、16、18、21脚用于交通灯个位倒计时的输出,22、25、28、30、35、37、40脚用于十位倒计时的输出。再将晶振输出端与clk(即83脚)连接。 将上述引脚用导线与与之相对应的外围电路上的元件连接好后,这样硬件电路的连接就完成了。5.2引脚锁定和程序下载 最小系统板通过专用下载线与计算机连接,不用通过EDA6000实验开发系统和伟福6000软件,所以过程与前面的程序调试验证中有所不同。 将最小系统板通过下载线连接上计算机后,即可启动QuartusII对引脚锁定和程序下载了。如果使用的计算机之前没有连接过PLD芯片,则必须按照如下步骤安装驱动程序。(1)安装QuartusII软件;(2)选择:控制面板添加硬件硬件是否连接好?选“是“选“添加新的硬件设备”选“安装我手动从列表中选择的硬件(高级)”硬件类型选“声音、视频和游戏控制器”设备驱动程序选“从磁盘安装”驱动程序选:安装目录\QuartusII\Drivers\win2000型号选:alterabyteblaster,安装过程安装完成(3)重新启动计算机,安装成功 安装完成并连接上计算机后,点击QuartusII中的AssignmentDevice选择相应的PLD元件。点击AssignmentPins对引脚进行锁定。下载完成后接上电源打开开关,启动程序。5.3在运行过程中出现的问题及解决方法 在完成以上步骤启动程序后,发现在交通灯控制电路的各方面都运行正常,但是其中存在一个很重要的问题,即芯片过烫。 在查阅资料后可以了解EPM7128S这块芯片的功耗很大,所以适当的发烫事正常现象,但是芯片过烫也有其它几个方面的原因。其中比较重要的有以下几点:(1)输入电流太大;(2)板子存在虚短路现象;(3)I/O引脚与板子上的其他器件电平不匹配产生了很大的电流,时间长了甚至会损坏芯片。针对问题(1),先检查原来使用的变压器,可以发现输入电流在允许范围之内。所以芯片过烫应该与输入电流方面的问题无关,问题(1)排除。针对问题(2)种情况,该最小系统的PCB为工业制版,在仔细观察和用万用表检测后发现电路并无虚短路现象。排除最小系统板后,用同样的方法检查外围电路,发现也无虚短路现象,所以问题(2)也可排除掉。针对问题(3)种情况,我将外围电路单独供电,并选择单独的未与其他器件相连的引脚作为输出引脚;接下来在QuartusII中将未用上的引脚全部设为Asinputs,TriStated。具体步骤:点击AssignmentsDeviceDevice&PinOptionsUnusedPinsAsinputs,TriStated确定,然后就可以编译下载了。完成以上操作后,发现芯片发烫问题有了明显的改善。所以问题应该是出在问题(3)中。完成上述操作,并解决以上问题后,交通灯控制系统能够正常的运行,任务书中要求的各项功能都能得以实现,可以说本次设计已经获得了成功。6结论经过大学四年学习的积累,在我已基本掌握了相关专业方面知识的情况下,我严肃认真的完成了我的毕业设计。从得到题目到查找资料,从对任务书的研究到完成设计的初步构想,从对VerilogHDL语言的学习到编写出程序,从对QuartusII、Protel99SE等开发应用软件的基本了解到熟练运用、从对EDA技术的半知半解到能够应用并做出成品……这段过程充满了未知与挑战。伴随着对未知领域的探索而有所收获的喜悦和被未知情况带来的失败打击,我完成了我的毕业设计。本次设计已经不仅仅是对我大学四年所知识的一次综合运用与总结,更是对我精神上的一次洗礼。在不断的跌倒与爬起的过程,培养了我的钻研精神、面对困难的心态和做事的毅力与耐心。在我看来毕业设计的真正意义已不仅仅是对一个工程的设计与实现,也是对做人做事一种态度的培养,更重要的是它搭起了连接大学生活与日后工作的一座桥梁。在这次历时3个月的毕业设计中,在不断的自学下加深了我的理论知识;通过对相关资料的查找与整理,锻炼了我收集资料和学习资料的能力;通过对电路板的设计、焊接和一堆有可能造成整个设计失败的小问题的处理,我丢掉了做事马虎的习惯;通过对软、硬件的调试,培养了我找出错误和判断错误的能力。本次毕业设计题目是《基于PLD的交通灯控制系统的设计》,在设计制作过程中完成了题目要求的全部功能。总结制作过程,对课题所遇到的重点和难点做了如下总结。(1)VerilogHDL语言的学习和研究。(2)EPM7128S芯片的研究。如:基本工作原理,各I/O口的功能和芯片的工作环境等。(3)QuartusII、Protel99SE等软件的学习和运用。(4)用所学的VerilogHDL语言对任务书要求的各功能的实现。克服这几个重点和难点,我了解并掌握了可编程逻辑器件的基本理论知识。更重要的意义是通过本次设计让我养成了一种理性的逻辑思维能力,对我日后的生活和工作都有十分重要的意义。谢辞经过数月的资料查阅、整理和准备,今天我的毕业设计终于顺利地完成了。回顾起这个艰辛却充满挑战、让人感到充实和回味的过程,期间有太多的人需要感谢。首先,要特别感谢我的毕业设计指导老师江国强教授。在江教授的悉心指导下,我的毕业设计从选题、资料的收集、开题报告的准备、软硬件电路的设计制作、调试以及论文的编写得以顺利进行。在这个过程中,江教授倾注了大量的心血,他循循善诱,精心指导,给予我无尽的启迪。他在设计过程中给予我启发性的指导,在我遇到困难时提出各种假设并让我通过自己的努力解决困难。在论文的写作过程中,帮我制定框架并对初稿进行了仔细的批阅,指正谬误。这种启发式的教学方法、严谨的治学态度和一丝不苟的工作作风,是我学习和效仿的榜样。在此,对江国强教授做出的全部努力和给予的一切帮助,我深深地表示感谢!其次,我要感谢桂林电子科技大学信息科技学院信息工程系和电子工程系的各学科的老师们以及大学四年里陪伴我一起走过的同学、朋友们。正是有了各位老师的倾囊相授,我才有了今天的知识积累。毕业设计的制作过程中,也正是因为有了各位老师和同学的帮助,我才少走了许多弯路。在大家的帮助下,我的毕业设计才最终得以完成,达到任务书所要求的各项性能指标,论文的写作也得以不断的完善直至最终定稿。通过这次毕业设计的制作,我学到了很多东西。其中给我影响最大的就是在完成这次毕业设计的过程中,我了解到了“知行合一”的重要性。通过收集和查阅资料,将其进行整理和理解,并与已有的知识进行重组,再通过运用这些知识去实现任务书所要求的软、硬件各部分功能。在反复的相互磨砺中,我的理论知识比以前更加扎实,动手能力也得到了相当大得提高。在整个设计制作过程中,常常会遇到一些意想不到的问题,而这些问题说明了我对该方面的知识还不了解或了解有所偏差甚至是错误。这就要求我不断的研究学习以弥补不足和修正错误,进而避免再次发生类似的情况。在我看来这不单是学习的态度,也是做人做事所必须有的态度。最后我还要再次感谢我的指导老师江国强教授和在本次毕业设计过程中关心帮助过我的老师和同学,谢谢你们!参考文献[1]江国强编著.EDA技术与应用(第2版)[M].北京:电子工业出版社,2007[2]江国强编著.新编数字逻辑电路[M].北京:邮电大学出版社,2006[3]江国强编著.PLD在电子电路设计中的应用[M].北京:清华大学出版社,2007[4]江国强编著.EDA实训教材(自编教材)[5]潘松,王国栋编著.VHDL实用教程[M].成都:电子科技大学出版社,2000[6]潘松,王国栋编著.EDA技术实用教程[M].北京:科学出版社,2002[7]赵雅兴编著.FPGA原理、设计与应用[M].天津:天津大学出版社,1999[8]赵曙光等编著.可编程逻辑器件原理、开发与应用[M].西安:西安电子科技大学出版社,2000[9]StefanSjoholm,LennartLindh著,边计年等译.用VHDL设计电子电路.北京:清华大学出版社,2000[10]JanickBergeron.WritingTestbenches:FunctI/OnalVerificatI/OnofHDLModels.TheNetherlands:KluwerAcademicPublishers,2000目录TOC\o"1-2"\h\z第一章项目的意义和必要性 11.1项目名称及承办单位 11.2项目编制的依据 11.3肺宁系列产品的国内外现状 21.4产业关联度分析 31.5项目的市场分析 4第二章项目前期的技术基础 82.1成果来源及知识产权情况,已完成的研发工作 82.3产品临床试验的安全性和有效性 8第三章建设方案 233.1建设规模 233.2建设内容 233.3产品工艺技术 233.5产品质量标准 293.6土建工程 373.7主要技术经济指标 39第四章建设内容、地点 414.1建设内容及建设规模 414.2建设地点 PA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论