基于CPLD的交通灯设计.doc_第1页
基于CPLD的交通灯设计.doc_第2页
基于CPLD的交通灯设计.doc_第3页
基于CPLD的交通灯设计.doc_第4页
基于CPLD的交通灯设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

基于CPLD的交通灯设计作者姓名:* (270010*) * (270010*) * (270010*) 摘 要现代EDA技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。在设计中采用EDA技术,通过广泛应用的VHDL硬件电路描述语言,实现交通灯系统控制器的设计,利用MAXPLUS 集成开发环境进行综合、仿真,并下载到CPLD可编程逻辑器件中,完成系统的控制任务。以下就是运用基于Altera公司的FLEX系列的CPLD设计的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。关键词:交通灯 VHDL CPLD AbstractModern EDA technology is used in electronic product design, more advanced technology, can replace the design of electronic systems designers to complete most of the work, and can be modified directly from the program errors and system functions without the need for hardware support, not only shorten the development cycle, but also significant cost savings by the electronic engineers of all ages. EDA technology used in the design, widely used by VHDL hardware description language to realize the design of traffic signal system controller, using MAXPLUS comprehensive integrated development environment, simulation, and download to the CPLD programmable logic devices, complete system control tasks. The following is the use of Alteras FLEX series based on CPLD design of traffic lights: one red light, indicating that the road is closed to traffic; yellow light that parking; green light that allowed to pass. Key words: traffic lights VHDL CPLD目 录引 言- 4 -第一章 任务分析- 4 -一设计任务- 4 -二、整体构思- 4 -第二章 硬件电路设计- 5 -一、分频器- 5 -二、控制器设计- 6 -三、将十进制数字分成个位和十位- 6 -四、十进制-BCD码转换器设计- 7 -五、数据选择器设计- 7 -六、数码管译码器设计- 8 -七、下图为交通灯控制器的顶层文件连接图- 8 -第三章 程序设计- 9 -一、分频器的设计- 9 -二、控制设计- 10 -三、分位译码电路设计- 11 -四、十进制-BCD码转换- 12 -五、数据选择器设计- 13 -六、位数选通器设计- 14 -七、数码管显示设计- 15 -八系统仿真波形图如下所示:- 16 -第四章 PCB板设计- 16 -一原理图设计- 16 -二PCB板- 17 -第五章 总结- 17 -参考文献- 18 -引 言随着我国经济的快速发展,车辆拥有量也随之急剧增加,再加上人口数量的膨胀,城市的交通拥挤问题变得日益突出。如何使交通灯的控制更加合理,使现有的交通资源发挥更大的效益,已经成为城市管理者和科技工作者共同关心的问题。为此,我们设计开发了一个交通灯控制系统,由于该系统采用VHDL语言自顶向下的设计方法,利用可编程逻辑器件CPLD来实现,通过外部输入可方便地设定交通灯的延迟时间,使交通灯控制数字电路设计得到了优化,提高了系统的灵活性、可靠性和可扩展性。该系统可以较好地缓解交通压力,并可实现对突发事件进行紧急处理。 在数字系统设计领域,电子设计自动化(EDA)工具已经成为主要的设计手段,随着硬件描述语言VHDL和可编程逻辑器件CPLD的广泛应用,使数字电路的设计得到了优化,并且具有很强的设计和仿真功能。 第一章 任务分析一设计任务 设计一个十字路口的交通灯控制系统,用LED显示车辆通过的方向(东西和南北各一组),用数码管显示该方向的剩余时间。要求:工作顺序为东西方向红灯亮45秒,前40秒南北方向绿灯亮,后5秒黄灯亮。然后南北方向红灯亮45秒,前40秒东西方向绿灯亮,后5秒黄灯亮。依次重复。有紧急事件时允许将某方向一直开绿灯或者开红灯,另外允许特定情况两方向均为红灯,车辆禁行,比如十字路口恶性交通事故时,东西,南北两个方向均有两位数码管适时显示该方向亮灯时间。二、整体构思(1)该交通灯控制器应具备的功能设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时长也相同,定为红灯45秒,黄灯秒,绿灯40秒,同时用数码管指示当前状态(红、黄、绿)剩余时间。另外,设计一个紧急状态,当紧急状态出现时,两个方向都禁止通行,指示红灯。紧急状态解除后,重新计数并指示时间。另外,为显示时间,还设计了一个数码显示管的倒计时模块。(2) 实现方案 一 从题目中计数值与交通灯的亮灭的关系如图(1)所示东西方向绿灯亮黄灯亮红灯亮南北方向红灯亮绿灯亮黄灯亮图(1)交通灯亮灭关系图系统框图如下所示第二章 硬件电路设计一、分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号,其原理图如下所示。 二、控制器设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况(HOLD=1)发生时,无条件点亮红灯的二极管。本控制器可以有两种设计方法,一种是利用时钟烟的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。这两种方法各有所长,必须根据所用器件的特性进行选择:比如有些FPGA有丰富的寄存器资源,而且可用与组合逻辑的资源则相对较少,那么使用第一种方法会比较节省资源;而有些CPLD的组合逻辑资源则比较多,用第二种方法可能更好,其原理图如下所示。三、将十进制数字分成个位和十位因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如25分为2和5,7分为0和7)。 与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。控制器中,引入了寄存器。分位电路就用组合逻辑电路实现。四、十进制-BCD码转换器设计根据要求,需要先把上面的十进制的时间量分别转换成BCD码,这样才好在七段数码管中显示,这部分的原理图如下。五、数据选择器设计为了节约CPLD的管脚,我们特地设计一个数据选择器,将数据分时送出,传给十引脚双数字的led数码管,其原理图如下。六、数码管译码器设计这部分用来译码,原理框图如下。 七、下图为交通灯控制器的顶层文件连接图第三章 程序设计一、分频器的设计LIBRARY IEEE;USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevider ISPORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END;ARCHITECTURE Devider OF FreDevider ISCONSTANT N:Integer:=499;signal counter:Integer range 0 to N;signal Clk:Std_Logic;BEGIN PROCESS(Clkin) begin IF rising_edge(Clkin)THEN IF Counter=N then counter=0; Clk=not clk; else counter=counter+1; end if; end if; end process; clkout=clk;end;仿真图如下所示二、控制设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分译码电路。此外,当检测到特殊情况(Hold=1)发生时,无条件点亮红色的发光二极管。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY countroller IS PORT (Clock:IN STD_LOGIC; Hold:in std_logic; NumA,NumB:out INTEGER RANGE 0 TO 45; RedA,GreenA,YellowA:out std_logic; RedB,GreenB,YellowB:out std_logic); END;ARCHITECTURE behavior OF Countroller IS BEGINprocess(Clock)VARIABLE CountNum:INTEGER:=0;BEGINIF falling_edge(Clock)THEN IF CountNum=89 THEN CountNum:=0;elsif Hold=1 THEN CountNum:=0;ELSECountNum:=CountNum+1;END IF;IF Hold=1 THEN RedA=1; GreenA=0; YellowA=0; NumA=0;ELSIF CountNum=39 THEN NumA=39-CountNum; RedA=0; GreenA=1;YellowA=0; ELSIF CountNum=44 THEN NumA=44-CountNum; RedA=0; GreenA=0; YellowA=1;ELSE NumA=89-CountNum; RedA=1; GreenA=0;YellowA=0;END IF;IF Hold=1 THEN RedB=1; GreenB=0; YellowB=0; NumB=0;ELSIF CountNum=44 THEN NumB=44-CountNum; RedB=1; GreenB=0; YellowB=0;ELSIF CountNum=84 THEN NumB=84-CountNum; RedB=0; GreenB=1; YellowB=0;ELSe NumB=89-CountNum; RedB=0; GreenB=0; YellowB=40 THENNumA=4;NumB=30 THENNumA=3;NumB=20 THENNumA=2;NumB=10 THENNumA=1;NumB=Numin-10;ELSE NumA=0;NumBNumoutNumoutNumoutNumoutNumoutNumoutNumoutNumoutNumoutNumoutNumout=-;END CASE;END PROCESS;END;仿真图如下所示五、数据选择器设计library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity mux1 is Port ( s : in std_logic_vector(1 downto 0); cin : in STD_LOGIC_vector(6 downto 0); cinn: in STD_LOGIC_vector(6 downto 0); d_out : out STD_LOGIC_vector(6 downto 0) );end mux1;architecture Behavioral of mux1 isbegind_out(6)=(cinn(6) and s(1) or(cin(6) and s(0);d_out(5)=(cinn(5) and s(1) or(cin(5) and s(0);d_out(4)=(cinn(4) and s(1) or(cin(4) and s(0);d_out(3)=(cinn(3) and s(1) or(cin(3) and s(0);d_out(2)=(cinn(2) and s(1) or(cin(2) and s(0);d_out(1)=(cinn(1) and s(1) or(cin(1) and s(0);d_out(0)=(cinn(0) and s(1) or(cin(0) and s(0);end Behavioral;仿真图如下所示六、位数选通器设计因为只需要选择个位和十位亮灭,所以只要用两个数值“01”和“10”来作为选择数值程序如下library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity sel1 is Port ( clk2 : in STD_LOGIC; s : out STD_LOGIC_vector(1 downto 0) );end sel1;architecture Behavioral of sel1 issignal temp : std_logic_vector(1 downto 0) :=10;beginprocess(clk2)begin if(clk2event and clk2 =1)then if(temp =10)then temp=01; else temp=10; end if;end if;end process;sdata_outdata_outda

温馨提示

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

评论

0/150

提交评论