1、 第 29 页 共 29 页 引言交通灯控制器件在我们的日常生活中有着很重要的意义。由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全、迅速地通行,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯亮禁止通行; 绿灯亮允许通行;黄灯亮则给行驶中的车辆有时间停靠在禁行线外。实现红、绿灯的自动指挥对城市交通管理现代化有着重要的意义。本次设计是采用可编程逻辑器件(PLD)为主控制器芯片,通过Quartus II综合性PLD开发平台,用Verilog HDL硬件描述语言完成控制器电路的程序设计和仿真验证,然后将设计结果编程下载到PLD芯片中,通过PLD的I/O口输出信号,控制外围电路
2、连接以实现对交通灯的控制。在该设计的制作过程中Quartus II综合性PLD开发平台和Verilog HDL硬件描述语言必不可少的工具。设计的各个模块功能都要运用到Verilog HDL硬件描述语言、Quartus II综合性PLD开发平台对其进行编写和模拟仿真。并将所写程序下载至EDA6000实验开发系统上,对各方面功能进行模拟硬件电路验证实现。在对程序验证正确,并论证其现实可行后,还需要运用电路知识和PCB设计软件Protel 99SE制作电路板。下面简要介绍可编程逻辑器件(PLD)、Quartus II综合性PLD开发平台、Verilog HDL硬件描述语言和EDA6000实验开发系统
3、。可编程逻辑器件(PLD)。PLD是可编程逻辑器件(Programable Logic Device)的简称。是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用PLD来实现。PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的
4、可靠性。 PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。随着科学的发展,社会的进步,数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(
5、FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。本次设计所运用到的EPM7128SLC84-15便是复杂可编程逻辑器件(CPLD)的一个代表。虽然名字和复杂程度各不相同,但是一个PLD器件一般由三大部分组成,其结构如图1所示。(1)、一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。(2)、输入输出块。(3)、连接逻辑块的互连资源。连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入输出块之间的连接。图 1 典型的PLD框图Quartus II 综合性PLD开发平台。Quartus II 是Alte
6、ra公司的综合性PLD开发软件,支持原理图、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点,并支持MAX7000/MAX3000等乘积项器件,为目前常用的EDA开发软件。此外由于Quartus II简单易学功能强大,所以在许多大中院校中被选为E
7、DA课程学习的配套软件。也是广大师生在学习EDA过程中运用得最多的PLD开发软件。Verilog HDL硬件描述语言。Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Quartus II开发软件中支持VHDL、Verilog HDL等硬件描述语言。Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,其最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学
8、习和掌握。由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,VHDL的学习要困难一些。但Verilog HDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。EDA6000实验开发系统。EDA6000是南京伟福公司结合多年PLD、EDA、DSP及SOPC开发经验,分析国内外多种EDA实验开发系统,取长补短,研制出的EDA实验开发系统。该系统的优点很多,这里只介绍其中最重要,也是在PLD设计过程中运用得最多的两个功能。(1)多芯片。支持XCS05/10、XC9572/108、XCV200、FLEX10K10、MAX7128S等多种系
9、列FPGA/EPLD芯片。本次设计用到的是MAX7128S芯片。(2)软、硬件结合。EDA6000实验系统采用软、硬件结合技术,可以在PC机的软件(伟福6000)上定义实验所要连线,下载到实验仪上即可。实验仪运行的结果可以在软件上观察到,如果想观察高速信号,就用逻辑分析仪采样,传上来进行分析。软件可以将RAM的数据下载到实验仪上,供实验仪做VGA、DAC等数据输出类实验。也可将ADC采样的到数据上载到PC机的软件中,供学生分析、观察、保存。由于这个优点,为程序的模拟硬件电路实现提供了很大的方便。1 方案论证根据毕业设计任务书的要求,本次设计必须满足以下要求:(1)用PLD芯片实现交通灯控制电路
10、的设计。(2)能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒,红、绿、黄灯显示的次序符合实际交通道路控制的要求。(3)在EDA实验开发系统上完成电路的设计与验证后,根据设计电路的输入和输出设备的需要设计并制作PCB板,完成基于PLD的交通灯控制电路的设计。11 整体设计构想在查阅资料后可以得知,交通灯控制系统的设计平台有很多种。如:有基于单片机的交通灯,有基于FPGA的也有基于PLD的。在众多设计中,基于单片机的交通灯控制系统是最具有实用价值的。目前交通信号灯,大部分都是用单片机控制,加上无线通信来实现的。基于PLD的交通灯控制系统的设计题是在PLD学
11、习中一个最经典,最典型的题目,尤其是定时器和计数器那部分。通过基于PLD的交通灯控制电路设计,让制作者熟悉掌握EDA技术,并能够运用硬件描述语言对PLD器件进行程序编写,通过对PLD芯片的选择和硬件电路实现,让设计者能够基本掌握该项技术。根据第(2)项的要求,要能够设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒,所以要在路口要放置数码管,用以倒计时的显示。还有红、绿、黄灯显示的次序要符合实际交通道路控制的要求,根据对现实中的十字路口交通灯的观察,发现交通灯的形式虽然有多种多样,但是基本的结构是不变的,其主要工作状态有以下几种:状态0:东西方向绿灯亮,南北
12、方向红灯亮,用以东西方向的车辆通行。状态1:东西方向黄灯亮,用于给予东西方向通行的车辆以准备停止的时间。状态2:南北方向绿灯亮,东西方向红灯亮,用以南北方向的车辆通行。状态3:南北方向黄灯亮,用于告给予南北方向通行的车辆以准备停止的时间。此四种状态反复轮回运行便构成了一个十字路口交通灯。图2就是这四种状态的示意图。图 2 十字路口交通灯示意图完成整体设计构想以后,在Quartus II 综合性PLD开发平台上,用Verilog HDL硬件描述语言编写各设计模块的程序,然后在EDA6000实验箱上验证可以实现交通灯控制器的功能,最后制作PCB板,实现电路整体设计方案。1.2 程序设计方案根据任务
13、书的要求,该交通灯控制系统主要有这几个功能(1)、能够产生倒计时,可以设置倒计时的大小(即倒计时起始时间),并能显示出来。(2)、能够产生1秒的时钟。(3)、能够控制红、黄、绿灯的显示。根据以上三点,本次设计大体可以分为四大部分:(1)、分频电路。将外部晶振分频用于产生1秒的时钟信号。(2)、中央控制电路。用于控制东西、南北方向信号灯的亮灭和与之配套的倒计时(即倒计时起始时间)。(3)、减法计数器。用于倒计时的产生。(4)、译码显示电路。用于倒计时的显示。根据以上四点,可以设计并绘制出原理图,如图3所示。图 3 交通灯控制系统原理图2 程序设计根据以上流程,用Verilog HDL硬件描述语言
14、完成对各部分进行编写,在编译通过后完成的顶层文件如图4所示:图 1 交通灯控制系统顶层文件在图4中, newclk为分频电路,conter为中央控制电路,sub10为减法计数器,ymq为译码显示电路。下面将对各部分电路一一解释。21分频电路分频电路用于完成外部石英晶体振荡器输出频率的分频。本电路设计中使用的石英晶体振荡器的输出频率为4096kHZ,经过4096000分频后得到周期为1s的时钟。分频电路的Verilog HDL程序如下: module newclk(clk,newclk); input clk; outputnewclk;regnewclk;reg 24:0 cnter;alwa
15、ys (posedge clk)beginif (cnter 0) beginq=q-1;if (q=0) cout=0;else cout=1;endelse if (q = 0) begin q=9;cout=1;end endendmodule在十进制减法计数器中,clk用于接收分频电路产生的1秒时钟信号;Lod与中央控制电路的lod相连,用于决定减法计数器的工作状态;输入信号a与中央控制电路的qa相连,用以决定倒计时起始时间,Cout为进位端,用于产生进位信号。当要显示两位十进制数时,将位于个位的减法计数器的cout与位于十位的减法计数器的clk端相连。编译通过后生成的十进制减法计数器
16、的元件符号如图6所示。图 6 减法计数器的元件符号23 译码显示电路共阴数码管的引脚图如图7所示。共阴极数码管的原理是将数码管内部的发光二极管的阴极连接起来并接地。输出为高电平有效,即当输出为高电平时,数码管中相应的发光二极管发光。图7 共阴数码管引脚图译码器的译码原理如下:按照图7中ABCDEFG的顺序,在输入端输入要显示的数字的二进制数,对其进行翻译,以得到该数字的电平信号,并在输出端通过数码管显示出来。例如:当输入信号为二进制0000时,数码管显示0,即A,B,C,D,E,F都亮而G不亮。具体翻译如表格1所示。表格1二进制十六进制共阴数码管显示G F E D C B A 00000011
17、11110001100001100010210110110011310011110100411001100101511011010110611111000111700001111000811111111001911001111010A11101111011B11111001100C10110001101D10111101110E11110011111F1110001根据表格1写出16进制共阴显示译码器电路的Verilog HDL程序,如下:module ymq (in ,out );input 3:0 in ;output 6:0 out ;reg 6:0 out ;always (in)be
18、gin case (in ) 4b0000: out = 7b0111111; 4b0001: out = 7b0000110; 4b0010: out = 7b1011011; 4b0011: out = 7b1001111; 4b0100: out = 7b1100110; 4b0101: out = 7b1101101; 4b0110: out = 7b1111100; 4b0111: out = 7b0000111; 4b1000: out = 7b1111111; 4b1001: out = 7b1100111; 4b1010: out = 7b1110111; 4b1011: ou
19、t = 7b1111100; 4b1100: out = 7b1011000; 4b1101: out = 7b1011110; 4b1110: out = 7b1111001; 4b1111: out = 7b1110001; default: out = 7b0000000; endcaseendendmodule 图 8 译码器元件符号该译码器程序可以显示0到F共16个数字(即代表10进制的0到15)。其中输入端in用于接收减法计数器产生的4位二进制信号,在翻译后由输出端out输出。编译完成后的生成元件符号如如图8所示。24 中央控制电路中央控制电路用于整个电路的控制,其Verilog
20、HDL程序如下:module contr(lod,cin,aq,qa,d); input7:0aq;inputcin; output reg7:0 qa;output reg5:0d;output reg lod;reg 1:0qc;initial d=b100010;always (negedge cin )beginif (aq=0) lod=0; else lod=1;endalways (negedge lod )begin qc=qc+1;case (qc)0 :begin qa=h03;d=b100010;end1 :begin qa=h19;d=b001100;end2 :beg
21、in qa=h03;d=b010100;end3 :begin qa=h19;d=b100001;enddefault :qa=h00;endcaseendendmodule中央控制电路的作用是对整个交通灯控制电路进行控制,控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。本程序共提供了0、1、2、3四种工作状态,其中最大定时为19秒,最小为3秒。其具体的工作状态如方案论证中的图2所示。编译完成后生成的元件图如图9所示。图9 中央控制电路元件图25 顶层文件在Quartus II中新建一个工程,为交通灯控制器电路建立一个原理图编辑BDF文件。
22、在原理图编辑窗口中,调出已经设计好的分频器元件,中央控制器元件,十进制减法计数器元件(2片)和译码器元件(2片),并用鼠标完成各元件之间的电路连接,形成交通灯控制器电路的顶层文件,如图10所示。图10 交通灯控制系统顶层文件编译完成交通灯控制器的顶层设计文件后就可下载至EDA6000实验平台进行硬件电路验证。3 程序调试验证在编译完成后,要用到EDA6000实验箱对程序进行模拟硬件电路验证。首先将EDA6000实验箱与计算机相连,然后打开与EDA6000实验箱配套的伟福6000软件,点击连接EDA实验开发系统后,看到实验箱上的数码管全亮后,EDA6000实验箱便与计算机连接上了。在下面的介绍中
23、,都综合运用到了Quartus II软件和伟福EDA6000实验开发系统。31 引脚锁定下载验证的第一步就是在Quartus II软件中选择好相应的PLD器件,并将其引脚锁定。本次用到的是实验箱上自带的芯片EPM7128S。在伟福6000中选择好数码管用于倒计时显示和LED灯用于交通灯显示,并为其设定好I/O口。本次设计中,我将I/O口00I/O口06连接到用于显示个位倒计时的数码管,I/O口08I/O口14连接到显示十位倒计时的数码管。由于西面和东面、南面和北面的交通灯显示是一样的,所以选择东面和北面的交通,共6盏用于与I/O口15I/O口20相连。连接完成后如图11所示。图 11在伟福60
24、00的I/O引脚定义菜单下查看各I/O口对应的引脚,最后在Quartus II的Assignment下拉菜单下选择Pins,弹出引脚锁定菜单,在Location中输入各部分所对应的引脚。两个数码管的引脚out0 out13分别定义为:45、50、49、51、54、55、56、58、52、60、61、63、64、65。6个交通灯d0 d5分别定义为67、68、69、70、73、76。clk与83脚外部晶振连接。完成引脚锁定后再次进行设计电路的编译。32 程序下载将引脚锁定后,点击Quartus II中的Programmer对程序进行下载。在Mode下拉菜单中选择JTAG模式(该模式是EPM712
25、8S系列的下载模式),并在Programmer/Configure下打钩,点击Start,在Progress的蓝条进行到100时,下载完成。33 程序调试下载完成后,点击伟福6000上的 启动/暂停 按钮,程序启动。启动后观察实验箱上的各部分运行正常,交通灯控制电路的四种显示状态都能完好的呈现。交通灯控制器的硬件验证如图12所示。 图12 交通灯控制器的硬件验证图 根据观察,任务书中所要求实现的各项功能在EDA6000实验平台上都得以实现。可以说以上程序是无误的,根据该程序完全可以设计出与之相配的外部硬件电路。4 硬件电路实现在EDA6000实验开发系统上完成硬件电路验证后,便可着手于基于PC
26、B板的硬件电路设计。在着手设计之前,先要对所设计电路做一个大概的规划。首先要对市面上大量的PLD芯片进行选择,找到合适的芯片,其次是查阅芯片资料,对该芯片有个全面的了解,掌握其工作环境和各引脚的作用,完成一个最小系统的设计。然后根据设计所要求的外部显示功能,完成一个外围电路的设计。最后将这两部分连接起来。41 PLD芯片的选择目前的PLD芯片主要由ALTERA,Lattice,Xilinx等公司生产。针对市面上PLD芯片众多,本着熟悉、简单、易用等原则,我选择了ALTERA公司生产的EPM7128SLC84-15这块芯片。EPM7128SLC84-15是ALTERA公司生产的MAX7000S系
27、列中的一块。选择这块芯片的原因有三点,首先,该芯片是市面上最常见的PLD芯片,在大学期间有过很多的接触,有在EDA6000实验箱上使用的经验,对其各方面功能有一定的了解。再次,该芯片的为ALTERA公司的产品,为同是该公司生产的Quartus II综合性PLD开发软件支持,不必因为选用其他公司的产品而另外学习使用一套软件和编程语言。最后,由于该芯片使用广泛,在图书馆和网络上都有很多关于它的资料,方便参考和学习。4.1.1通用PLD芯片EPM7128SLC8415型号标识对EPM7128SLC84-15的型号标识做以下简要介绍。(1)EP。EP代表的是ALTERA公司的产品,该公司的产品一般都以
28、EP开头,代表可重复编程。(2)M。M代表的是ALTERA公司的MAX系列CPLD产品。(3)7为产品系列号,即属于MAX7000S。(4)128。表示改芯片的逻辑宏单元数为128。(5)LC表示采用PLCC封装(Plastic Leaded Chip Carrier,塑料方形扁平封装)。(6)84-15,表示该芯片有84个引脚,引脚间延时为15ns。4.1.2 EPM7128SLC84的性能指标及特点EPM7128SLC84是Altera公司开发的CPLD器件,属于MAX 7000S系列。在高集成度PLD器件中,MAX 7000S系列是速度最快的类型之一,它内部为第二代MAX(Multipl
29、e Array Matrix)结构。除了集成度高的优点外,器件内部单元(cell)之间的连接采用连续的金属线,这种互连结构为单元之间提供了固定的、短时延的信号通道,从而消除了内部延时的难以预测性,并有效地提高了芯片资源的利用效率。EPM7128SLC84是基于EEPROM的可编程CMOS器件,其主要性能指标为:(1)外部引脚数目为84,内部等效门数为2500左右;(2)内部有128个逻辑宏单元(Macrocell),每16个宏单元组成一个逻辑阵列块(LAB),每个逻辑阵列块对应8个I/O引脚;(3)除通用I/O引脚外,EPM7128SLC84有两个全局时钟、一个全局使能和一个全局清零输入;(4
30、)器件最高计数频率为151.5MHz,内部互连延时为1ns。EPM7128SLC84的主要特点为:(1)支持通过JTAG口进行5V电压的在片编程;(2)宏单元的工作速率和功耗可编程选择,用户可决定每一个宏单元的工作模式选择一般模式或是节能模式(功耗降低50%或更多,但延时加大)(3)宏单元的触发器有独立的清零、预置、时钟和时钟使能控制,可通过编程进行设置;(4)器件的引脚输出可设置,有以下三种选项:多电平I/O接口,通过硬件设置可使引脚输出支持5V或3.3V两种电平;输出回转速率(Slew-Rate)控制,用户可决定每一I/O引脚的输出回转速率,大回转速率缩小了信号通道的延时,但有可能加大瞬态
31、躁声;集电极开路选择。(5)具有一个完善、友好的软件环境支持器件开发,Altera公司的EDA软件Quartus II 集成了设计文件编辑、编译、仿真、时序分析和器件编程等各项功能,并能直接控制器件内部宏单元或输出引脚的设置;(6)Altera的硬件描述语言与CPLD硬件结合紧密,并且提供优化的Megafunction函数库,支持灵活地描述各类常用复杂电路,如计数器、锁相环等。4.1.3 EPM7128SLC84的内部结构EPM7128SLC84是Altera公司开发的CPLD器件,属于MAX 7000S系列。其内部由五类模块组成,分别为宏单元、扩展乘积项、逻辑阵列块、可编程互连阵列(PIA)
32、和I/O控制块。宏单元是EPM7128SLC84的基本元素,每个宏单元由组合电路和一个可编程触发器组成。组合电路最多可有20个乘积项,宏单元本身提供5个,其他15个来自于本逻辑块内其他宏单元提供的并行扩展乘积项,同时宏单元还输出一个共享扩展乘积项,逻辑块内的并行扩展乘积项和共享扩展乘积项组成扩展乘积项。触发器能通过编程设置为D、T、JK和RS四种类型,数据端既可来自于组合电路的输出,也可为I/O引脚的直接输入,触发器的时钟、清零、预置和使能等均可编程控制,其中时钟、清零端的信号均有全局信号和组合电路输出两种来源。每个逻辑阵列块LAB由16个宏单元组成,LAB的输入信号包括:从器件内部的公共总线
33、可编程互连阵列PIA反馈来的36路信号;两路全局时钟和一路全局清零信号;直接从I/O引脚输入的8路信号。LAB之间通过PIA相连,PIA内的信号通道其延时是固定的,不存在积累效应。宏单元的输出经I/O控制块送至I/O引脚,I/O控制块控制每一个I/O引脚的工作模式,决定其为输入、输出或是双向引脚,并决定其三态输出的使能端控制。图13为MAX7000S系列的内部结构图。图13 MAX7000S内部结构图42 EPM7128SLC84最小系统4.2.1EPM7128S各引脚功能在熟悉EPM7128SLC84的各项性能和特点后,在制作最小系统前,先将各引脚功能做一个简单的介绍。芯片引脚分布图如14所
34、示。(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所示。图14 EPM7128S引脚图
35、图 15 ALTERA板上的接口标准(3)EPM7000S的四个全局输入脚GCLK1,OE2(GCLK2),OE1,GLCRn它们的作用是: GCLK:全局时钟脚,这个脚的驱动能力最强,到所有逻辑单元的延时基本相同,所以如系统有外部时钟输入,建议定义此脚为时钟脚。 OE1:全局输出使能, 这个脚的驱动能力最强,到所有逻辑单元的延时基本相同,如有三态输出,建议由此脚来控制(也可由内部逻辑产生输出使能信号)。 OE2/GCLK2:全局输出使能/全局时钟脚,两者皆可。 GCLRn:全局清零,如有寄存器清零,建议由此脚来控制(也可由内部逻辑产生清零信号),优点同上。(4)除以上引脚外,其他引脚都为普通
36、I/O口,可任意使用。4.2.2EPM7128S最小系统根据以上引脚说明,可将其各部分连接组成一块EPM7128S最小系统。在考虑到简单、实用和后期调试电路方便等各方面的因素,本次设计决定购买在市面上可见的EPM7128S PCB板,并按照说明书对各部分元器件焊接。EPM7128S PCB板如图16所示。图16 EPM7128S PCB图17 EPM7128S最小系统根据焊接说明书,焊接后得到的EPM7128S最小系统如17图 所示。该最小系统有如下特点:(1)采用完全开放式设计:将EPM7128的全部I/O引脚、电源、时钟、复位信号、4个LED全部连接到插针上,在将设计下载到CPLD后,使用
37、插线跟外围电路进行任意连接,可以搭建自己需要的任何一种电路,非常灵活和适用,具有很强的通用性,这正是最小系统板的主要特点。(2)独立性:该最小系统板本身提供电源(包括5V和3.3V)、时钟、复位、下载电路和4个LED,组成了一个CPLD的最小系统,所以可以用于学习、进行一定的实验和验证,但主要用作核心板,外围电路可由需要任意搭建。本设计的硬件资源如下:(1)PLD(EPM7128SLC84-15或者EPM7128SLC84-10); (2)电源:5V直流输入,电源插座引入,或者直接使用插线引入,有开关和过压保护。提供5V转3.3V电源电路。输入是5V信号,但输出可以配置为5V或者3.3V信号,
38、通过电源跳线设置:VCCI/O5V时,输出为5V信号,VCCI/O3.3V时,输出为3.3V信号。如果错误地插入了超过5.1V的电压,稳压二极管可能会烧毁,但能保护其他的器件不致烧毁。烧毁的稳压二极管需要自己换新。(3)时钟电路:一个晶振插座,提供一个4.096MHZ的晶振,用户可以很方便更换其他频率的晶振,注意晶振的方向,以晶振上的一个标志点为1脚,必须和PCB上的点对应;(4)复位电路:具有上电复位和按键复位功能,复位信号为高电平,单独引到插针上,可以同时作为CPLD和其他外围电路的复位信号;(5)下载电路:一个10针插座和下载指示灯,下载时指示灯闪烁;(6)插针阵列:PLD的全部I/O引
39、脚、电源及其跳线、时钟、复位信号、4个LED全部连接到插针上;(7)插线:用于连接实验电路或者验证电路。插线两端都含有插头(即杜邦头),插头内的簧片有良好的弹性,可以保证插接点的稳定和良好接触,避免了面包板上经常出现的插头松动和接触不良现象。插线有10种颜色,便于辨认。(8)转接区:主要解决一个引脚同时连接到多个引脚的情况。转接区有7个转接点,每个转接点由4个插针组成(这4个针连接在一起)。43 外围电路设计4.3.1外围电路构想外围电路由12个LED灯(红、黄、绿各3个)用于显示交通控制。四个共阴7段数码管,用于输出倒计时。由于南北和东西两面的LED灯和倒计时显示是一样的,所以将南北和东西的
40、LED灯并联,数码管通过排阻上拉后并联,这样可以最大程度的简化电路。4.3.2外围电路PCB板设计在外围电路的制作中,要运用到Protel 99SE这个软件。Protel 99SE是ProklTechnology公司开发的基于Windows环境下的电路板设计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业必学课程,同时也是业界人士首选的电路板设计工具。制作电路板一般分为以下几个步骤:(1)规划电路板一般在设计的PCB板时都有严格的外形尺寸要求,需要认真规划确定电路板的物理尺寸。进入PCB编辑器,单击下方的Keep Out Layer标签将当前工作层设置为Keep Out L
41、ayer。该层为禁止布线层,一般用于设置电路板的边界。执行Place/Keepout/Track命令,光标变为十字形状。单击一条板边的起点,然后移动光标到合适位置后单击确定板边的终点。双击在Track对话框中设置X起点、终点坐标,Y起点、终点坐标,最终确定电路板的长度和宽度。由于有了EPM7128S的最小系统,现在只需要设计外围电路就可以了,因此我将电路板的长度定为10cm,宽度定为10cm。(2)绘制原理图 该外部电路的原理图为北边和西边的共6个LED灯通过限流电阻与6个排针相连,应为南边和北边,东边和西边的LED灯的亮灭是一直的,所以将其串连起来就可以了。另外有4个数码管,每两个一组分别用
42、以显示东西、南北的倒计时情况,所以将其通过1K排阻上拉后与排针相连就好了。画好的交通灯控制器外围电路的原理图如图18所示。图18 交通灯控制器外围电路原理图上拉电阻的作用是提高元器件的使用效率,其阻值的选择原则包括: 从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小; 从确保足够的驱动电流考虑应当足够小;电阻小,电流大;对于高速电路,过大的上拉电阻可能边沿变平缓.综合考虑。对于与二极管连接的限流电阻选择:型号:红光、黄光、绿光电流:红黄:电流在1535mA之间 绿 :电流在1520mA之间正向压降:红黄 2.1V(典型值) 2.7V(最大值)绿 3.9V (典型值) 4.5V(最大值)限流电阻计算: R=(VccVFn)/IF Vcc电源电压 VFLED正向电压 nLED串联的个数 IFLED正向电流通常取1020mA计算得:红、黄光二极管的限流电阻为300欧,绿光二极管的限流电阻为100欧。(3)加载元件封装 在加载元件封装之前必须加载所需要的元件封装库。本设计中大多数元件的封装都能在 PCB 编辑器中自带的 PCB Footprints.lib 中找到。只有共阴数码管没有现成的封装图。这就需要自己利用PCB元件封装编辑