基于EDA的交通灯控制系统设计_第1页
基于EDA的交通灯控制系统设计_第2页
基于EDA的交通灯控制系统设计_第3页
基于EDA的交通灯控制系统设计_第4页
基于EDA的交通灯控制系统设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、2008级学生 派'* EDA课程设计EDA!程设计报告书课题名称 基于EDA的交通灯控制系统设计姓名陈勇学号0812201-08物理与电信工程系专 业电子信息工程指导教师田旺兰讲师2011年6月10日一、设计任务及要求:设计任务:设计一个具有四种信号灯的交通灯控制器。要 求:1 .由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、 黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶 中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。2 .信号灯变换次序为:主支干道交替允许通行,主干道每次放行40秒,亮5秒红灯让行驶中的车辆有时间停到禁行线外, 左

2、拐放行15秒,亮5秒红灯;支 干道放行30秒,亮5秒黄灯,左拐放行15秒,亮5秒红灯。各计时电路为 倒计时显示。指导教师签名:2011年 月 日二、指导教师评语:指导教师签名:2011 年月日三、成绩验收蛊章2011 年月日基于EDA的交通灯控制系统设计1设计目的(1)掌握十字路口交通灯控制的设计原理,并能够运用VHD闾程语言编写出实验程序,进一步对所学的ED砍口识进行掌握与实际应用。(2)学会在quartusII软件环境中仿真,熟悉软件的基本操作和运行环境。(3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。2设计的主要内容和要求设计一个基于EDA 勺交通灯控制系统,所要设

3、计的交通信号灯控制电路要能 够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。能够做到 主、支干道的红绿灯闪亮的时间不完全相同, 在绿灯跳变红灯的过程中能够用黄 灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。可以利用VHD印言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。3整体设计方案根据设计要求和系统所具有功能,并参考相关的文献资料,经行方案设计,画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如图3.1所示。并且可以得出系统的状态图如图 3.2所示,其中:S0:支

4、干道没有车辆行驶,支干道绿灯,支干道红灯S1:支干道有车辆行驶,支干道绿灯,支干道红灯S2:主干道黄灯,支干道绿灯S3:主干道红灯,支干道绿灯S4:主干道红灯,支干道黄灯图3.1整体设计方框图17CA"0图3.2系统状态图4硬件电路的设计4.1 顶层文件原理图根据以上设计思路,可以得到如下的顶层文件原理图如4.1所示,具体实物模块如图4.2所示。 a国 斯士 ,士士-*aClKlfil:fTmEImP TM副的iMEtp qEDLir|d 町E节切i;一.一.ek3R叫ih 15伍切LP 3TikflFii-ir nilHh£lL|MI力0呻句I I ww Lp H|”uF

5、但 l1|图4.1顶层文件原理图j- dktad5 0carsel2 .0s!seg6.0 insffi1i图4.2顶层文件的实体图4.2时钟分频器模块设计 b kb hi i a 一 !» ra m nj a elk CLK1S a卧m*FitarIVir:mstIS!y M lg|>FM.I-a-* 1/E* _! U I ;/;(图4.3时钟分频器模块分频器实现的是将高频时钟信号转换成低频时钟信号,用于触发控制器、计 数器和扫描显示电路。系统的动态扫描需要1HZ的脉冲,而系统时钟计时模块需 要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将1kHZ的脉冲信

6、号进行分频,产生1S的方波,作为系统时钟计时信号。具体实物模块 如图4.3所示。4.3 控制及计时模块设计控制模块根据外部输入信号和计时模块产生的输出信号,产生系统的状态 机,控制其他部分协调工作。计时模块用来设定主干道和支干道计时器的初值, 并为扫描显示译码模块提供倒计时时间。控制及计时模块采用状态机进行设计,可以定义出 5种状态,分别为S0:主 干道绿灯,支干道红灯且没有车辆行驶;S1:主干道绿灯,支干道红灯或支干道有车辆驶入;S2:主干道黄灯,支干道红灯;S3:主干道红灯,支干道绿灯;S4: 主干道红灯,支干道黄灯。利用 CASES句定义状态的转换方式及时间的变换方 式,达到主干道绿灯亮

7、45秒,支干道绿灯亮25秒,黄灯亮5秒的设计要求。 具体实物模块如图4.4所示,其中:CAR为支干道车辆检测开关CLK1S TIWE1H3.Ocar TlMFlLp 0TIMC2H|3 01FiMEZ |3 OJ(e>jnt6 0ledf: 0在支干道有车的情况下,模块可以进行减计时CLK1S为1S的时钟脉冲TIME1H、TIME1L、TIME2H、TIME2L 分别 为主干道时钟高位、主干道时钟低位、支干道 时钟高位、支干道时钟低位图4.4控制电路模块LED为LED灯发光情况,分别为主干道绿灯、 主干道黄灯、主干道红灯、支干道绿灯、主干 道黄灯、主干道红灯Count的总的系统时间,用来

8、改变系统的状态4.4 译码显示电路设计根据状态控制器所控制的状态和计数器 的计时时间,选择当前状态下的根据状态控 制器所控制的状态和计数器的计时时间,选 择当前状态下的采用动态扫描显示。具体实 物模块如图4.5所示。elkCLP?e|2 0| 会牺0TlklEI Hp 0) 711/lrl ip 0 TIM训,Uj TlMDLp 0| ccur|E Ft心图4.5译码显示电路模块4.5 顶层文件的编写将以上各个单元模块仿真成功后,再进行顶层文件的编写。将各个单元模块 的变量赋值给顶层文件,从而将各个单元模块连接起来,统一调配。得到顶层文 件的实体模块如图4.2所示。其中:CLK为1KHZK统时

9、钟脉冲CAM支干道车辆行驶情况,高电平为有车行驶,低电平为无车行驶LED为交通灯发光情况SEL为数码管位码扫描SEGJ数码管段码5软件设计5.1 时钟分频模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT(clk:IN STD_LOGIC;CLK1S:OUT STD_LOGIC);END fp;ARCHITECTURE one OF fp ISSIGNAL N: STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(clk)BEGI

10、NIF clk'EVENT AND clk='1' THEN N<=N+1;END IF;END PROCESS;CLK1S<=N(9);END one;5.2 交通灯控制及计时模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kz ISPORT(CLK1S,car:IN STD_LOGIC;-1S脉冲,支干道车辆检测TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTOM道计时TIME2H,TIME2L:OUT

11、 STD_LOGIC_VECTOR(3 DOWNTOM道计时 count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-系统总计时led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);- 交通灯显示END KZ;ARCHITECTURE one OF kz ISTYPE states IS (s0,s1,s2,s3,s4,s5);-状态初始化SIGNAL current_state,next_state :states;SIGNAL c:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINREG:PROCESS(CLK1S,car,cu

12、rrent_state,c)BEGINIF car ='0'THEN current_state <= s0;c<="0000000"ELSEIF CLK1S'EVENT AND CLK1S ='1' THEN - 支干道有车开始计数c <=c+1;current_state <=next_state;END IF;END IF;CASE current_state IS - 状态转换WHEN s0 => LED <="100001" - 支干道无车不减计时TIME1H<=

13、"0100"TIME1L<="0101"TIME2H<="0101"TIME2L<="0000"IF car = '1' THEN next_state <= s1;ELSE next_state <= s0;END IF;WHEN s1 => LED <="100001" - 主干道绿灯,支干道红灯IF c="0101100" THEN next_state <= s2;ELSE next_state <

14、= s1;END IF;WHEN s2 => LED <="010001" - 主干道黄灯,支干道红灯IF c="0110001" THEN next_state <= s3;ELSE next_state <=s2;END IF;WHEN s3 => LED <="001100" - 主干道红灯,支干道绿灯IF c="1001010" THEN next_state <= s4;ELSE next_state <= s3;END IF;WHEN s4 => L

15、ED <="001010" - 支干道黄灯,主干道红灯IF c="0110001" THEN next_state <= s5;ELSE next_state <=s4;END IF;WHEN OTHERS => LED <="100001" next_state <= s0;END CASE;IF c="0101101" THEN TIME1H<="0000"TIME1L<="0101"- - 系统时间为45,主干道黄灯计时5

16、 秒END IF;IFc="0110010" THENTIME1H<="0011"TIME1L<="0000"TIME2H<="0010"TIME2L<="0101"- - 系统时间为50,主干道计时30 秒 , 支干道计时25秒END IF;IF c="1001011" THEN TIME2H<="0000"TIME2L<="0101"- - 系统时间为75,支干道黄灯计时5 秒END IF;IFc

17、="1010000"THENTIME1H<="0100"TIME1L<="0000"TIME2H<="0101"TIME2L<="0101"- - 系统时间为80,主干道计时45 秒,支干道计时50 秒END IF;IF c="1010000" THEN c<="0000000" - 系统时间清零END IF;END PROCESS REG;count <=c;END one;5.3 扫描显示译码器:LIBRARY IE

18、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY xs ISPORT(clk,CLK1S,car:IN STD_LOGIC;TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 主干道置数- TIME2H,TIME2L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 支干道置数- count:IN STD_LOGIC_VECTOR(6 DOWNTO 0); -计数信号 sel:OUT STD

19、_LOGIC_VECTOR(2 DOWNTO 0); -数码管位码- seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -数码管段码-END xs;ARCHITECTURE one OF xs ISSIGNAL num:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL numsel:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL numseg:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSM:PROCES

20、S (clk,num,numsel) - 扫描BEGINIF clk'EVENT AND clK='1' THEN numsel<=numsel+1;IF numsel="011" THEN numsel<="000"END IF;END IF;END PROCESS SM;WX:PROCESS (numsel,Q1,Q2,Q3,Q4) -位选BEGINCASE numsel ISWHEN"011" =>num<=Q4;WHEN"010" =>num<=Q

21、3;WHEN"001" =>num<=Q2;WHEN"000" =>num<=Q1;WHEN OTHERS =>NULL;END CASE;END PROCESS WX;ZS:PROCESS(CLK1S,car,Q1,Q2,Q3,Q4,num,TIME1H,TIME1L,TIME2H,TIME2L)- 数码管置数BEGINIF car ='1' THENIF CLK1S'EVENT AND CLK1S='1' THENIF Q2>"0000" THEN Q2&

22、lt;=Q2-1;ELSEIF Q1>"0000" THEN Q1<=Q1-1;Q2<="1001" - 减计时END IF;END IF;IF Q4>"0000" THEN Q4<=Q4-1;ELSEIF Q3>"0000" THEN Q3<=Q3-1;Q4<="1001"END IF;END IF;END IF;IF Q1="0000" AND Q2="0000" THENQ1<=TIME1H;Q2

23、<=TIME1L;END IF;IF Q3="0000" AND Q4="0000" THENQ3<=TIME2H;Q4<=TIME2L;END IF;ELSE Q1<=TIME1H;Q2<=TIME1L; -支路无车辆不减计时Q3<=TIME2H;Q4<=TIME2L;END IF;END PROCESS ZS;YM:PROCESS (num,numseg)BEGINCASE num ISWHEN "0000"=>numseg<="1111110"WHEN &

24、quot;0001"=>numseg<="0110000"WHEN "0010"=>numseg<="1101101"WHEN "0011"=>numseg<="1111001"WHEN "0100"=>numseg<="0110011"WHEN "0101"=>numseg<="1011011"WHEN "0110"=>

25、numseg<="1011111"WHEN "0111"=>numseg<="1110000"WHEN "1000"=>numseg<="1111111"WHEN "1001"=>numseg<="1111011"WHEN OTHERS=>NULL;END CASE;END PROCESS YM;sel<=numsel;seg<=numseg;END one;5.4 顶层文件:LIBRARY IE

26、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY jtd ISPORT (clk:IN STD_LOGIC;-动态扫描时钟car:IN STD_LOGIC;-支路车辆传感信号led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -交通灯信号sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -数码管位码seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -数码管段码-END jt

27、d;ARCHITECTURE one OF jtd ISCOMPONENT fPPORT(clK:IN STD_LOGIC;CLK1S:OUT STD_LOGIC);END COMPONENT;COMPONENT kzPORT(CLK1S,car:IN STD_LOGIC;TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);TIME2H,TIME2L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);count:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);led:OUT STD_LOGIC_VECTOR(5 DOW

28、NTO 0);END COMPONENT;COMPONENT xsPORT(clK,CLK1S,car:IN STD_LOGIC;TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);TIME2H,TIME2L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);count:IN STD_LOGIC_VECTOR(6 DOWNTO 0);sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;SIGNAL CLK1S:STD_

29、LOGIC;SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL TIME1H,TIME1L,TIME2H,TIME2L:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINU1:fp PORT MAP(CLK=>clk,CLK1S=>CLK1S);U2:kzPORTMAP(CLK1S=>CLK1S,car=>car,count=>count,led=>led,TIME1H=>TIME1H, TIME1L=>TIME1L,TIME2H=>TIME2H,TIME2L=>TIM

30、E2L);U3:xsPORTMAP(clk=>clk,CLK1S=>CLK1S,car=>car,count=>count,sel=>sel,seg=>seg, TIME1H=>TIME1H,TIME1L=>TIME1L,TIME2H=>TIME2H,TIME2L=>TIME2L); END;6系统仿真与分析6.1 仿真结果利用quartusII软件对顶层实体程序进行编译,生成了可以进行仿真定时分 析以及下载到可编程器件的相关文件,然后进行仿真,即可得到最后仿真结果。 仿真结果如图6.1所示:Vaue at20.25 ncznrft?

31、B 1ctrQ 1ckE led ledLtf ledtLD 0B KDC01忙10 USp10DD01led:4: I 户国sagseqO 制国 xq【£JB C110011B 1 0 0 R n0 1LJLIE12K1LJ1LHULU0LLX1J£ LJ2K1-Value 就 2CL25 nccarR 1dkeoE rrle 1'XnoiIE:。£ 1i«l.UCOledt,2£013BQledl.41eoled国B 1S 5egE C110011segfoiE 1整1B 1E0力引60seg4C 1w 1-1当班OY二11 ,仁/, 11广倏I_IYmlq三审MO.,dm 4.0 ns MO.,0 ns鸵0.。七10 US 4的 此以J20 25 m*caielk9 1b a1_1 L_1 _1|_|11111 1_ 1 1 l_t国3B 1OKC1WWQlWicoa iMUBC百E田00虫引BO互kd(480LF14d1可E 1国xg3 QUQGL1二二wn工匚:jou工口mip工camn工-up二工加1工二工

温馨提示

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

评论

0/150

提交评论