《基于PLC与EDA的交通信号灯的设计论文.doc》由会员分享,可在线阅读,更多相关《基于PLC与EDA的交通信号灯的设计论文.doc(33页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)报告题 目 基于PLC与EDA的交通信号灯的设计 系 别 电子工程系 .专 业 应用电子/应用日语 .班 级 .2010年 4 月基于PLC与EDA的交通信号灯的设计摘要:十字路口的红绿灯指挥着行人和车辆的安全运行,实现红绿灯的自动指挥能使交通管理工作得到改善,也是城市交通管理工作自动化的重要标志之一。解决好公路交通灯控制问题将是保障交通有序、安全、快捷运行的重要环节。但现在有的交通信号灯控制系统都是单一的固定时序控制,不能够根据实际交通状况进行调节控制。PLC和EDA是两种新型的通用的自动控制装置。PLC它将传统的继电器控制技术、计算机技术和通讯技术融为一体,是专门为工业控制
2、而设计的,具有功能强、通用灵活、可靠性高、稳定性好、抗干拢能加强、编程简单、使用方便以及体积小、重量轻、功耗低等一系列优点。EDA中用VHDL语言设计交通信号灯控制系统,并在MAX+PLUSII系统对FPGA/CPLD芯片进行下载,由于生成的是集成化得数字电路,没有系统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。关键词 交通信号灯 PLC EDA VHDL语言Based on PLC and EDA Design of The Traffic Lightsabstract: Crossroads with traffic lights directing the safe ope
3、ration of vehicles and pedestrians, to achieve the automatic traffic lights make traffic management command and work,To improve urban traffic management automation is an important landmark. Highway traffic light control to solve the problem would be to protect the traffic orderly, safe and efficient
4、 operation of the important part. But now there is a single traffic signal control system of fixed timing control can not be adjusted according to actual traffic control. PLC and the EDA are two new universal control device. It will relay the traditional PLC control technology, computer technology a
5、nd communication technology integration, is designedDoors designed for industrial control, with strong functions, general flexibility, high reliability, good stability, anti-jamming can be strengthened, and programming is simple, easy to use and small size, light weight, low power, a number of advan
6、tages. EDA design using VHDL, traffic signal control system. And in the MAX + PLUSII system FPGA / CPLD chip to download, due to be generated is the integrated digital circuit, there is no system of wiring problems, so failure rate, high reliability, and size is very small.Keywords: Traffic lights P
7、LC EDA VHDL language目 录前 言1第一章 PLC和EDA的特点和应用21.1 PLC的概述21.2 PLC的特点21.3 PLC的应用31.4 EDA的概述51.5 EDA的特点51.6 EDA的应用6第二章 交通信号灯的PLC控制线路设计72.1 控制要求72.2 控制时序72.3 硬件及外围元器件82.4 正常时序控制梯型图和指令表9第三章 利用EDA技术实现交通信号灯控制143.1 交通系统的发展趋势143.2 选择VHDL硬件描述语言设计的优势143.3 红绿灯交通信号系统功能描述143.4 红绿灯交通信号系统的VHDL模块153.4.1 时钟脉冲发生电路153.4
8、.2 计数秒数选择电路153.4.3 倒计时控制电路173.4.4 红绿灯信号控制电路203.4.5 建立程序包213.4.6 连接各个模块223.5VHDL程序223.6得到仿真结果25第四章 设计总结26谢 辞28参考文献29前 言传统数字电子技术的设计问题,一般是用若干计数器、逻辑门、触发器等构成电路,元件众多,结果是电路中的接线多、故障率增加、可靠性降低。PLC和EDA的出现时实验室中制作专用集成电路成为可能。可编程控制器是在继电器控制和计算机控制的基础上发展而来的新型工业自动控制装置。早期的可编程控制器在功能上只能实现逻辑控制,因而被称为可编程逻辑控制器(Programmable L
9、ogic Controller),简称PLC。随着微电子技术和微型计算机的发展,微处理器用于PLC,使其不仅可以实现逻辑控制,还可以进行数字运算和处理、模拟量调节和联网通信等。随着电子技术的发展,现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD的出现,使得电子系统的设计者利用EDA软件,在实验室里就可以设计自己的专用集成电路ASIC器件。这种可编程ASIC不仅使设计的产品达到小型化、集成化和高可靠性,而且器件具有用户可编程特性,大大缩短设计周期,减少了设计费用,降低了设计风险。目前数字系统的设计可以直接面向用户需求,根据系统的行为功能要求,自上至下地逐层完成相应的描述、综合、优化、仿真与验
10、证,直到生成器件,实现电子设计自动化。当启动开关合上后,东西绿灯亮20s后闪烁3s灭,黄灯亮2s灭;红灯亮25s,绿灯亮循环;对应东西绿黄灯亮时南北红灯亮20s,接着绿灯亮20s后闪烁3秒;黄灯亮2s后,红灯又亮循环。第一章 PLC和EDA的特点和应用1.1 PLC的概述可编程控制器(PLC)是在继电器控制技术和计算机技术的基础上发展起来的一种新型的工业自动控制设备,它以微处理器微核心,集自动化技术、计算机技术、通信技术为一体,广泛应用于自动化的各个领域。PLC从原来具有逻辑控制、顺序控制等功能,发展到现在已具有模拟量输入/输出、定位控制、旋转角度检测、高速计数、数据处理、联网通信等功能。PL
11、C使用面向控制过程、面向用户的“自然语言”编程,适应工业环境,简单易懂,操作方便,是可靠性高的新一代通用工业控制装置。1.2 PLC的特点1.使用灵活、通用性强PLC的硬件是标准化的,加之PLC的产品已系列化,功能模块品种多,可以灵活组成各种不同大小和不同功能的控制系统。在PLC构成的控制系统中,只需在PLC的端子上接入相应的输入输出信号线。当需要变更控制系统的功能时,可以用编程器在线或离线修改程序,同一个PLC装置用于不同的控制对象,只是输入输出组件和应用软件的不同。2.可靠性高、抗干扰能力强微机功能强大但抗干扰能力差,工业现场的电磁干扰,电源波动,机械振动,温度和湿度的变化,都可能导致一般
12、通用微机不能正常工作;传统的继电器接触器控制系统抗干扰能力强,但由于存在大量的机械触点(易磨损、烧蚀)而寿命短,系统可靠性差。PLC采用微电子技术,大量的开关动作由无触点的电子存储器件来完成,大部分继电器和繁杂连线被软件程序所取代,故寿命长,可靠性大大提高,从实际使用情况来看,PLC控制系统的平均无故障时间一般可达45万小时。PLC采取了一系列硬件和软件抗干扰措施,能适应有各种强烈干扰的工业现场,并具有故障自诊断能力。如一般PLC能抗1000V、1ms脉冲的干扰,其工作环境温度为060,无需强迫风冷。3.接口简单、维护方便PLC的接口按工业控制的要求设计,有较强的带负载能力(输入输出可直接与交
13、流220V,直流24V等强电相连),接口电路一般亦为模块式,便于维修更换。有的PLC甚至可以带电插拔输入输出模块,可不脱机停电而直接更换故障模块,大大缩短了故障修复时间。4.体积小、功耗小、性价比高以小型PLC(TSX21)为例,它具有128个I/O接口,可相当于400800个继电器组成的系统的控制功能,其尺寸仅为216127110mm3,重2.3kg,不带接口的空载功耗为1.2W,其成本仅相当于同功能继电器系统的1020。PLC的输入输出系统能够直观地反应现场信号的变化状态,还能通过各种方式直观地反映控制系统的运行状态,如内部工作状态、通讯状态、I/O点状态、异常状态和电源状态等,对此均有醒
14、目的指示,非常有利于运行和维护人员对系统进行监视。5.编程简单、容易掌握PLC是面向用户的设备,PLC的设计者充分考虑了现场工程技术人员的技能和习惯。大多数PLC的编程均提供了常用的梯形图方式和面向工业控制的简单指令方式。编程语言形象直观,指令少、语法简便,不需要专门的计算机知识和语言,具有一定的电工和工艺知识的人员都可在短时间内掌握。利用专用的编程器,可方便地查看、编辑、修改用户程序。6.设计、施工、调试周期短用继电器接触器控制完成一项控制工程,必须首先按工艺要求画出电气原理图,然后画出继电器屏(柜)的布置和接线图等,进行安装调试,以后修改起来十分不便。而采用PLC控制,由于其靠软件实现控制
15、,硬件线路非常简洁,并为模块化积木式结构,且已商品化,故仅需按性能、容量(输入输出点数、内存大小)等选用组装,而大量具体的程序编制工作也可在PLC到货前进行,因而缩短了设计周期,使设计和施工可同时进行。由于用软件编程取代了硬接线实现控制功能,大大减轻了繁重的安装接线工作,缩短了施工周期。PLC是通过程序完成控制任务的,采用了方便用户的工业编程语言,且都具有强制和仿真的功能,故程序的设计、修改和调试都很方便,这样可大大缩短设计和投运周期。7对生产工艺改变适应性强,可进行柔性生产;1.3 PLC的应用在自动化控制领域,PLC是一种重要的控制设备。目前,世界上有200多个厂家生产300多种PLC产品
16、,应用在汽车(23%)、粮食加工(16.4%)、化学/制药(11.5%)、金属/矿山(11.5%)、纸浆/造纸(11.3%)等行业。其应用类型大致分为以下几种:1开关量顺序、逻辑控制 这是PLC最基本、最广泛的应用领域,它取代传统的继电器电路,实现逻辑控制、顺序控制,既可用于单台设备的控制,也可用于多机群控及自动化流水线。如注塑机、印刷机、订书机械、组合机床、磨床、包装生产线、电镀流水线等。2 模拟量控制 在工业生产过程当中,有许多连续变化的量,如温度、压力、流量、液位和速度等都是模拟量。为了使可编程控制器处理模拟量,必须实现模拟量(Analog)和数字量(Digital)之间的A/D转换及D
17、/A转换。PLC厂家都生产配套的A/D和D/A转换模块,使可编程控制器用于模拟量控制。 3 运动控制 PLC可以用于圆周运动或直线运动的控制。从控制机构配置来说,早期直接用于开关量I/O模块连接位置传感器和执行机构,现在一般使用专用的运动控制模块。如可驱动步进电机或伺服电机的单轴或多轴位置控制模块。世界上各主要PLC厂家的产品几乎都有运动控制功能,广泛用于各种机械、机床、机器人、电梯等场合。 4 过程控制 过程控制是指对温度、压力、流量等模拟量的闭环控制。作为工业控制计算机,PLC能编制各种各样的控制算法程序,完成闭环控制。PID调节是一般闭环控制系统中用得较多的调节方法。大中型PLC都有PI
18、D模块,目前许多小型PLC也具有此功能模块。PID处理一般是运行专用的PID子程序。过程控制在冶金、化工、热处理、锅炉控制等场合有非常广泛的应用。 5 数据处理 现代PLC具有数学运算(含矩阵运算、函数运算、逻辑运算)、数据传送、数据转换、排序、查表、位操作等功能,可以完成数据的采集、分析及处理。这些数据可以与存储在存储器中的参考值比较,完成一定的控制操作,也可以利用通信功能传送到别的智能装置,或将它们打印制表。数据处理一般用于大型控制系统,如无人控制的柔性制造系统;也可用于过程控制系统,如造纸、冶金、食品工业中的一些大型控制系统。 6 通信及联网 PLC通信含PLC间的通信及PLC与其它智能
19、设备间的通信。随着计算机控制的发展,工厂自动化网络发展得很快,各PLC厂商都十分重视PLC的通信功能,纷纷推出各自的网络系统。新近生产的PLC都具有通信接口,通信非常方便。1.4 EDA的概述EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程
20、逻辑器件的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。利用EDA工具,电子设计
21、师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。1.5 EDA的特点利用EDA技术进行电子系统的设计,具有以下几个特点:(1)用软件的方式设计硬件;(2)用软件方式设计的系统到硬件系统的转换是由有关的开发
22、软件自动完成的;(3)设计过程中可用有关软件进行各种仿真;(4)系统可现场编程,在线升级;(5)整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。可以从传统设计方法和 EDA设计方法的区别说明EDA设计方法的优势:(1)设计思想不同:EDA是采用自上而下(Top - Down)的设计方法。自上而下是指将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大,则还需将子系统进一步分解为更小的子系统和模快,层层分解,直至整个系统中各个子系统关系合理,并便于逻辑电路级的设计和实现为止。自上而下设计中可逐层描述,逐层仿真,保证满足系统指标。传统设计方法
23、是采用自下而上(BottomUp)的设计方法。(2)与传统的基于电路板的设计方法不同,EDA技术是基于芯片的设计方法。(3)描述方式不同:传统设计方法采用电路图为主;EDA设计方法以硬件描述语言(HDL_ Hard description Language)为主。(4)设计手段不同:传统设计方法以手工设计为主;EDA设计方法其方案验证与设计、系统逻辑综合、布局布线、性能仿真、器件编程等均由 EDA工具一体化完成。1.6 EDA的应用1.EDA技术将广泛应用于高校电类专业的实践教学工作中2.EDA技术将广泛应用于科研工作和新产品的开发中3.EDA技术将广泛应用于专用集成电路的开发 4.EDA技术
24、将广泛应用与传统机电设备的升级换代和技术改。第二章 交通信号灯的PLC控制线路设计2.1 控制要求信号灯受启动及停止按钮的控制,当按下启动按钮时,信号灯系统开始工作,并周而复始地循环工作,当按下停止按钮时,系统将停止在初始状态,所有信号灯都熄灭。2.2 控制时序本文选用三菱系列的FX2N-64,其输入端接收来自各个路口的车辆探测器测得的输出标准电脉冲,输出接十字路口的红绿信号交通灯。信号灯的选择:选用红、黄、绿发光二极管作为信号灯(箭头方向型)。FX2N系列拥有无以匹及的速度、高级的功能、逻辑选件以及定位控制等特点,FX2N是从16到256路输入/输出的多种应用的选择方案。价格便宜,功能齐全,
25、比起其他PLC有着速度、逻辑、定位等优越之处。安装简单,维修方便。FX2N-64的I/O总数32,输入/输出各32个,输入类型为漏型,输出类型为继电器或晶体管。FX2N通过储存的程序周期运转。交通灯示意图如图2-1所示,在东西南北两个方向均安装信号灯,两个方向各6个灯,分为红、黄、绿三种颜色。工作时序如图2-2所示,当启动开关合上后,东西绿灯亮20s后闪烁3s灭,黄灯亮2s灭;红灯亮25s,绿灯亮循环;对应东西绿黄灯亮时南北红灯亮20s,接着绿灯亮20s后闪烁3秒;黄灯亮2s后,红灯又亮循环图2-1 交通灯示意图图2-2 交通灯工作时序2.3 硬件及外围元器件根据信号灯的控制要求,所有的器件有
26、:三菱FX系列PLC、起动按钮SB1、停止按钮SB2、红黄绿色信号灯各4只,输入输出端口接线如图3所示。由图可见:起动按钮SB1接于输入继电器X0端,停止按钮SB2接于输入继电器xl端,东西方向的绿灯接于输出继电器Y5端,东西方向黄灯接于输出继电器Y4端,东西方向的红灯接于输出继电器Y3端,南北方向绿灯接于输出继电器Y2端,南北方向的黄灯接于输出继电器Y1,南北方向红灯接于输出继电器Y0。将输出端的COM1及COM2用导线相连,输出端的电源为交流220V。如果信号灯的功率较大,一个输出继电器不能带动两只信号灯,可以采用一个输出点驱动一只信号灯,也可以采用输出继电器先带动中间继电器,再由中间继电
27、器驱动信号灯。图2-3 PLC外部接线图2.4 正常时序控制梯型图和指令表图2-4 正常时序控制梯型图I/O指令表LD 00000AND NOT TIM005TIM000#0050TIM001#0080TIM002#0100TIM003#0150TIM004#0180TIM005#0200LD 00000AND NOT TIM002OUT 01003LD NOT TIM000AND 00000LD TIM000AND 25502AND NOT TIM001OR LDOUT 01001LD TIM001AND NOT TIM002OUT 01002LD TIM002AND NOT TIM005O
28、UT 01000LD TIM002AND NOT TIM003LD TIM003AND 25502AND NOT TIM004OR LDOUT 01004LD TIM004AND NOT TIM005OUT 01005END 第三章 利用EDA技术实现交通信号灯控制3.1 交通系统的发展趋势交通系统未来的发展趋势就是要提高通行能力,加强环境保护,开展智能化运输和环保专项技术的研究,并且要做到以人为本,重点开展交通安全技术的研究,在这个过程中要确定经济合理的目标,促进新材料的广泛应用和开发。3.2 选择VHDL硬件描述语言设计的优势首先,简单地介绍一下什么是VHDL硬件描述语言。VHDL的英文全
29、称是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language。是EDA设计中使用最多的语言之一,它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大地简化了硬件设计任务,提高了设计效率和可靠性。其次,这次设计选用VHDL硬件描述语言的优势就在于传统的用原理图设计电路的方法具有直观形象的优点,但如果所设计系统的规模比较大,或者设计软件不能提供设计者所需的库单元时,这种方法就显得很受限制了。而且用原理图表示的设计,通用性、可移植性也比较弱,所以在现代的设计中,越来越多地采用了基于硬件描述语
30、言的设计方式。利用硬件描述语言来设计电路,使探测各种设计方案变成一件很容易的事,因为只需要对描述语言进行修改,这比更改电路原理图要容易实现得多3.3 红绿灯交通信号系统功能描述在交通信号灯的设计中,外部硬件电路方面主要包括:两组红绿灯、两组LED显示器(见图1)。软件方面包括:(1)电路合成模块的概念:将交通灯信号系统划分成若干个小电路,编写每一个模块的VHDL程序代码,并将各个小电路相连接。这样可以增加程序的调试速度,同时也能够将工作细分,以提高编程速度。(2)参数化的概念:针对不同时段的交通流量,可以调整红绿灯电路(增加或者减少电路的计数时间),以增加程序的灵活性。3.4 红绿灯交通信号系
31、统的VHDL模块3.4.1 时钟脉冲发生电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟(clock)才能让系统正常的工作。因此,hld1时钟发生电路(见图4)最主要的功能就是产生一些稳定的输出信号,并将其用做后面几个电路的使能控制与同步信号。3.4.2 计数秒数选择电路当通过交通路口时,如果能在一个方向增添一个倒计时显示器对车辆、行人加以提示,可能会有更好的效果。因此,hld2计数秒数选择电路(见图7)最主 要的功能就是负责输出显示器需要的数值(即倒数的秒数值),作为倒计时显示器电路的计数秒数。图3-1 计数秒数
32、选择电路模块图系统输入信号:clk:由外部信号发生器提供1kHZ的时钟信号;reset:系统内部自复位信号;ena_scan:接收由时钟发生电路提供的250Hz的时钟脉冲信号;recount:接收由交通灯信号控制电路产生的重新计数的使能控制信号;sign_state:接收由交通灯信号控制电路产生的状态信号。load:负责产生计数器所需要的计数数值。经仿真后得到的时序图(见图3-2) 图3-2 计数秒数选择电路时序图由计数描述选择电路的时序图(见图3-2)可以看出这段程序中定义了在正常车流量情况下,东西及南北方向红灯、黄灯和绿灯需要维持的秒数分别是15s、5s和25s。architecture
33、bhv of hld2 isconstant redew_time:integer:=15;-东西方向红灯设定为15s。constant yellowew_time:integer:=5;-东西方向黄灯设定为5s。constant greenew_time:integer:=25;-东西方向绿灯设定为25s。constant redsn_time:integer:=15;-南北方向红灯设定为15s。constant yellowsn_time:integer:=5;-南北方向黄灯设定为5s。constant greensn_time:integer:=25;-南北方向绿灯设定为25s。begi
34、nprocess(reset,clk)begin if reset=1 then load=00000000; elsif (clkevent and clk=1) then if (ena_scan=1 and recount=1) then case sign_state is load -sign_state=“000”时,南北方向绿灯亮25s。 when 001=loadloadloadloadloadloadload=conv_std_logic_vector(greenew_time,8);就是将十进制的25转换成二进制的19,这就使设计减少了很多不必要的麻烦。3.4.3 倒计时控
35、制电路通过日常生活中的观察,我发现在一些交通路口已经开始使用倒计时显示器,它们的作用就是用来提示车辆行人目前还有多长时间信号灯会发生变化,这样车辆行人就可以提前判断是否有足够的时间通过路口,进而就可以避免很多意外事故的发生。例如:南北方向绿灯,车辆处于正常行驶中,东西方向红灯,车辆处于等待中,若南北方向行驶的车辆看到倒计时显示器上可以通行的时间很短,可能就会放慢速度等待下一次通行,这样在东西方向绿灯时,车辆就能够正常行驶,不会为等待南北方向强行的车辆而耽误更多的时间。如此循环下去,道路就会畅通无阻了。考虑到有些路口的交通拥堵现象较为严重,车辆会在道路上排成很长的一队,这样排在较远距离的司机就很
36、难看清楚倒计时显示器上变化的数字,有可能会影响到车辆之间的正常行驶。因此,如果采用发光二极管作为倒计时的显示装置就会使司机和行人一目了然,同样也能够起到很好的提示作用。所以,hld3倒计时控制电路(见图3-3)最主要的功能就是负责接收hld2电路输出的值,然后将其转换成BCD码,并利用发光二极管显示出来,让车辆行人能够清楚地知道再过多久信号灯就会发生变化。系统输入信号:clk:由外部信号发生器提供1kHz的时钟信号;reset:系统内部自复位信号;ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号;图3-3 脉冲信号recount:重新计数的使能控制信号;load:负责接收计数器所需要的
37、计数数值。系统输出信号:led:负责将计数数值转换成BCD码,并利用发光二极管显示倒计时状态;next_state:当计数器计时完毕后,负责产生一个脉冲信号,作为下一个状态的触发信号。经仿真后得到的时序图(见图3-4):图3-4 倒计时控制电路时序图由倒计时控制电路的时序图(见图3-4)可以看出,当clk时钟信号来临后,在ena_1hz脉冲信号的同时激励下,led会按照预先设置好的时间开始逐1递减,进行倒计时显示。process(clk,reset)beginif (reset=1) then cnt_ff=00000000; led=0000000000000000000000000;-当r
38、eset=1,则将cnt_ff与led清零。elsif (clkevent and clk=1) then if ena_1hz=1 then if (recount=1) then cnt_ff=load-1;-当reset=0,clk为上升沿触发,且ena_1hz与recount为1时,load将减1的数值赋给cnt_ff。 else cnt_ffled(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)=0000000000
39、000000000000000; end case;这段程序是采用的就是查表的方法并且利用发光二极管进行倒计时显示,如图10所示:当绿灯点亮开始计数后,load就会将减1后的值赋给cnt_ff,之后cnt_ff又会从case语句中查找到相对应的值再赋给led显示所剩余的时间。在程序编写过程中运用到了conv_integer()语句,它可以将cnt_ff所赋的值转换成整数。由图可知led是25位的系统输出信号,负责控制发光二极管的输出,所以25位的输出信号可以分成七组控制发光二极管的显示,其中“1”为点亮,“0”为熄灭。3.4.4 红绿灯信号控制电路在红绿灯交通信号系统中,大多数的情况是通过自动
40、控制的方式指挥交通。但为了配合高峰时段,防止交通拥挤,有时还必须使用手动控制,即让交通警察自行指挥交通。因此,hld4红绿灯信号控制电路(见图11)除了负责监控路口红绿灯之外,最主要的功能就是能够利用开关来切换手动与自动的模式,让交通警察能够通过外部输入的方式来控制红绿灯交通信号系统的运做。系统输入信号:clk:由外部信号发生器提供1kHZ的时钟信号;reset:系统内部自复位信号;ena_scan:接收由时钟发生电路提供的250Hz的时钟脉冲信号;ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号;flash_1hz:接收由时钟发生电路提供的1Hz的脉冲时钟信号;a_m:手动、自动切换
41、按钮(1:自动、0:手动);图3-5 红绿灯信号控制电路st_butt: 红绿灯状态切换按钮(在手动操作下,每按一次按钮就变换一个状态);next_state:接收由倒计时控制电路提供的下一个状态的触发信号。系统输出信号: recount:产生重新计数的输出使能控制信号;sign_state:产生输出状态信号;red:负责红色信号灯的显示;green:负责绿色信号灯的显示;yellow:负责黄色信号灯的显示。3.4.5 建立程序包在程序设计语言中,程序的开始总会调用库(library)来提供设计程序时所需要的基本命令。但是,如果要进一步设计较为复杂的程序时,库中的命令可能就无法支持了。因此,可
42、以设计一个子程序来满足程序设计的需求。上述问题在硬件描述语言的设计中也存在,在VHDL程序中的第一行(library ieee;)就是要使用IEEE设计好的库文件,但如果需要使用的元器件并不在库中时,就只能自己定义了。一个程序包中至少应该包含以下结构中的一种:常数说明:如定义系统数据总线通道的宽度。VHDL数据类型说明:主要用于在整个设计中通用的数据类型。元件定义:元件定义主要规定在VHDL设计中参与文件例化的文件接口界面。子程序:并入程序包的子程序有利于在设计中任一处进行方便地调3.4.6 连接各个模块light电路的工作就是将所有的子电路全部连接起来,进行时序分析,当程序完成后,再下载到FPGA,以便硬件电路的验证