收藏 分销(赏)

交通信号控制器的设计介绍.doc

上传人:w****g 文档编号:4136242 上传时间:2024-07-31 格式:DOC 页数:16 大小:754.50KB 下载积分:8 金币
下载 相关 举报
交通信号控制器的设计介绍.doc_第1页
第1页 / 共16页
交通信号控制器的设计介绍.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
《EDA技术》 课程设计报告 题 目: 交通信号控制器的设计 班 级: 学 号: 姓 名: 同组人员: 指导教师: 年 月 日 《EDA技术》课程设计成绩评定 成绩评定: (百分制) 指导教师签字: 评阅时间: 目 录 1 设计要求与目的 1 1.1 设计要求 1 1.2 设计目的 1 2 方案设计 1 2.1 设计思路 1 2.2 设计总体框图 2 2.3 状态分析表 3 3 电路的设计 3 3.1 主控模块的设计 3 3.2 计数器模块的设计 6 3.3 显示控制器的设计 9 3.4 顶层文件原理图 10 4 系统仿真 11 5 硬件调试与结果分析 11 6 设计总结 13 参考文献 13 交通信号控制器的设计 1 设计要求与目的 1.1 设计要求 用EDA设计一个简单的交通灯控制器,具有如下功能: (1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 (2)用红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 (3)主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 (4)在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 1.2 设计目的 (1)掌握十字路口交通灯控制的设计原理,并能够运用VHDL编程语言编写出实 (2)验程序,进一步对所学的EDA知识进行掌握与实际应用。 学会在MAX+plus Ⅱ软件环境中仿真,熟悉软件的基本操作和运行环境。 (3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。 2 方案设计 2.1 设计思路 (1)主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。 (2)45秒、25秒、5秒定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,定时结束信号也输入到主控电路,由主控电路启、闭三色信号灯或启动另一计时电路。 (3)主控电路是核心,这是一个时序电路,其输入信号为:车辆检测信号(A,B); 45秒、25秒、5秒定时信号(C,D,E)。其状态转化如图2-1所示: 主道有车或支道没车但45秒未到 5秒已到 5秒已到 主道绿灯亮 支道红灯亮 主道无车,支道有车,或主, 支道均有车,45秒已到 主道红灯亮 支道黄灯亮 未过5秒 主道黄灯亮 支道红灯亮 支道无车,或主支道均有车,25秒已到 5秒已到 主道红灯亮 支道绿灯亮 支道有车,主道无车,或主支道均有车,45秒未到 图 2-1 状态转换图 2.2 设计总体框图 发光二极管 控制器 分频电路 分位电路 计数器 七段数码管 译码电路 倒计时数 Clk 图2-2 设计框图 具体控制过程为支干道没有车来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,且在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。由于主、支干道有45秒和25秒得放行时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,所以设计45秒、25秒和5秒计时电路,均采用倒计时。考虑到显示的方便,每个计时电路又由计数器和码型转换电路组成。码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示。 2.3 状态分析表 表2-1 状态分析表 主干道 支干道 指示灯 亮灯时间 指示灯 亮灯时间 红灯亮 30s 绿灯亮 25s 红灯亮 黄灯亮 5s 绿灯亮 45s 红灯亮 50s 黄灯亮 5s 红灯亮 3 电路的设计 3.1 主控模块的设计 由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。信号灯变换次序为:主支干道交替允许通行,主干道每次放行40S,亮5S红灯让行驶中的车辆有时间停到禁行线外,左拐放行15秒,亮5S红灯;支干道放行30S,亮5S黄灯,左拐放行15秒,亮5S红灯,其中主支干道的红黄绿灯表示如MR、MY、MG、BR、BY、BG。根据下面源程序生成如图3-1的控制器元件图 图 3-1 控制器元件图 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JTDKZ IS PORT(CLK,SM,SB:IN STD_LOGIC; MR,MY,MG,BR,BY,BG:OUT STD_LOGIC); END ENTITY JTDKZ; ARCHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A,B,C,D); SIGNAL STATE:STATE_TYPE; BEGIN CNT:PROCESS(CLK)IS VARIABLE S:INTEGER RANGE 0 TO 45; VARIABLE CLR,EN:BIT; BEGIN IF(CLK'EVENT AND CLK='1') THEN IF CLR='0'THEN S:=0; ELSIF EN='0'THEN S:=S; ELSE S:=S+1; END IF; CASE STATE IS WHEN A=>MR<='0';MY<='0';MG<='1'; BR<='1';BY<='0';BG<='0'; IF(SB AND SM)='1'THEN IF S=45 THEN STATE<=B;CLR:='0';EN:='0'; ELSE STATE<=A;CLR:='1';EN:='1'; END IF; ELSIF(SB AND (NOT SM))='1'THEN STATE<=B;CLR:='0';EN:='0'; ELSE STATE<=A;CLR:='1';EN:='1'; END IF; WHEN B=>MR<='0';MY<='1';MG<='0'; BR<='1';BY<='0';BG<='0'; IF S=5 THEN STATE<=C;CLR:='0';EN:='0'; ELSE STATE<=B;CLR:='1';EN:='1'; END IF; WHEN C=>MR<='1';MY<='0';MG<='0'; BR<='0';BY<='0';BG<='1'; IF(SM AND SB)='1'THEN IF S=25 THEN STATE<=D;CLR:='0';EN:='0'; ELSE STATE<=C;CLR:='1';EN:='1'; END IF; ELSIF SB='0'THEN STATE<=D;CLR:='0';EN:='0'; ELSE STATE<=C;CLR:='1';EN:='1'; END IF; WHEN D=>MR<='1';MY<='0';MG<='0'; BR<='0';BY<='1';BG<='0'; IF S=5 THEN STATE<=A;CLR:='0';EN:='0'; ELSE STATE<=D;CLR:='1';EN:='1'; END IF; END CASE; END IF; END PROCESS CNT; END ARCHITECTURE ART; 3.2 计数器模块的设计 这里计数器的计数范围为0—45S 。计到45后,下一个时钟沿回复到0,开始下一轮计数。根据下面源程序生成如图3-2的45s计数器元件图,当计数器及时45s后,主干道由绿转黄,支干道由红转绿。 图 3-2 45s计数器元件图 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT45S IS PORT (SB,CLK,EN45:IN STD_LOGIC; DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY CNT45S; ARCHITECTURE ART OF CNT45S IS SIGNAL CNT6B:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(SB,CLK,EN45) IS BEGIN IF SB='0' THEN CNT6B<=CNT6B-CNT6B-1; ELSIF(CLK'EVENT AND CLK='1')THEN IF EN45='1' THEN CNT6B<=CNT6B+1; ELSIF EN45='0' THEN CNT6B<=CNT6B-CNT6B-1; END IF; END IF; END PROCESS; PROCESS(CNT6B)IS BEGIN CASE CNT6B IS WHEN"000000"=>DOUT45M<="00111111";DOUT45B<="00111111"; WHEN"000001"=>DOUT45M<="00111111";DOUT45B<="00000110"; WHEN"000010"=>DOUT45M<="00111111";DOUT45B<="01011011"; WHEN"000011"=>DOUT45M<="00111111";DOUT45B<="01001111"; WHEN"000100"=>DOUT45M<="00111111";DOUT45B<="01100110"; WHEN"000101"=>DOUT45M<="00111111";DOUT45B<="01101101"; WHEN"000110"=>DOUT45M<="00111111";DOUT45B<="01111101"; WHEN"000111"=>DOUT45M<="00111111";DOUT45B<="00000111"; WHEN"001000"=>DOUT45M<="00111111";DOUT45B<="01111111"; WHEN"001001"=>DOUT45M<="00111111";DOUT45B<="01101111"; WHEN"001010"=>DOUT45M<="00000110";DOUT45B<="00111111"; WHEN"001011"=>DOUT45M<="00000110";DOUT45B<="00000110"; WHEN"001100"=>DOUT45M<="00000110";DOUT45B<="01011011"; WHEN"001101"=>DOUT45M<="00000110";DOUT45B<="01001111"; WHEN"001110"=>DOUT45M<="00000110";DOUT45B<="01100110"; WHEN"001111"=>DOUT45M<="00000110";DOUT45B<="01101101"; WHEN"010000"=>DOUT45M<="00000110";DOUT45B<="01111101"; WHEN"010001"=>DOUT45M<="00000110";DOUT45B<="00000111"; WHEN"010010"=>DOUT45M<="00000110";DOUT45B<="01111111"; WHEN"010011"=>DOUT45M<="00000110";DOUT45B<="01101111"; WHEN"010100"=>DOUT45M<="01011011";DOUT45B<="00111111"; WHEN"010101"=>DOUT45M<="01011011";DOUT45B<="00000110"; WHEN"010110"=>DOUT45M<="01011011";DOUT45B<="01011011"; WHEN"010111"=>DOUT45M<="01011011";DOUT45B<="01001111"; WHEN"011000"=>DOUT45M<="01011011";DOUT45B<="01100110"; WHEN"011001"=>DOUT45M<="01011011";DOUT45B<="01101101"; WHEN"011010"=>DOUT45M<="01011011";DOUT45B<="01111101"; WHEN"011011"=>DOUT45M<="01011011";DOUT45B<="00000111"; WHEN"011100"=>DOUT45M<="01011011";DOUT45B<="01111111"; WHEN"011101"=>DOUT45M<="01011011";DOUT45B<="01101111"; WHEN"011110"=>DOUT45M<="01001111";DOUT45B<="00111111"; WHEN"011111"=>DOUT45M<="01001111";DOUT45B<="00000110"; WHEN"100000"=>DOUT45M<="01001111";DOUT45B<="01011011"; WHEN"100001"=>DOUT45M<="01001111";DOUT45B<="01001111"; WHEN"100010"=>DOUT45M<="01001111";DOUT45B<="01100110"; WHEN"100011"=>DOUT45M<="01001111";DOUT45B<="01101101"; WHEN"100100"=>DOUT45M<="01001111";DOUT45B<="01111101"; WHEN"100101"=>DOUT45M<="01001111";DOUT45B<="00000111"; WHEN"100110"=>DOUT45M<="01001111";DOUT45B<="01111111"; WHEN"100111"=>DOUT45M<="01001111";DOUT45B<="01101111"; WHEN"101000"=>DOUT45M<="01100110";DOUT45B<="00111111"; WHEN"101001"=>DOUT45M<="01100110";DOUT45B<="00000110"; WHEN"101010"=>DOUT45M<="01100110";DOUT45B<="01011011"; WHEN"101011"=>DOUT45M<="01100110";DOUT45B<="01001111"; WHEN"101100"=>DOUT45M<="01100110";DOUT45B<="01100110"; WHEN OTHERS=>DOUT45M<="00000000";DOUT45B<="00000000"; END CASE; END PROCESS; END ARCHITECTURE ART; 3.3 显示控制器的设计 根据从主控制器检测的到的路况,从而使不同路况显示不同时间,根据下面源程序生成如图3-3所示显示器模块元件图,当主干道绿灯支干道红灯时,显示器45s计时,主干道黄灯支干道红灯时,显示器5s计时,当主干道红灯支干道绿灯时,显示器25s计时,当主干道红灯支干道黄灯时,显示器5s计时 图3-3 显示器模块元件图 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY XSKZ IS PORT(EN45,EN25,EN05M,EN05B:IN STD_LOGIC; AIN45M,AIN45B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); AIN25M,AIN25B,AIN05:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUTM,DOUTB:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY XSKZ; ARCHITECTURE ART OF XSKZ IS BEGIN PROCESS(EN45,EN25,EN05M,EN05B)IS BEGIN IF EN45='1'THEN DOUTM<=AIN45M(7 DOWNTO 0);DOUTB<=AIN45B(7 DOWNTO 0); ELSIF EN05M='1'THEN DOUTM<=AIN05(7 DOWNTO 0);DOUTB<=AIN05(7 DOWNTO 0); ELSIF EN25='1'THEN DOUTM<=AIN25M(7 DOWNTO 0);DOUTB<=AIN25B(7 DOWNTO 0); ELSIF EN05B='1'THEN DOUTM<=AIN05(7 DOWNTO 0);DOUTB<=AIN05(7 DOWNTO 0); END IF; END PROCESS; END ARCHITECTURE ART; 3.4 顶层文件原理图 图 3-4 顶层文件原理图 根据设计要求及生成的各模块元件图绘制成如图3-4所示的顶层文件原理图 4 系统仿真 图4-1主控制器仿真图 由图可以看出,当SB、SM、为高电平时,主干道由黄灯转向红灯,支干道由红灯转向绿灯,符合设计基本要求 图4-2 全局仿真 由图可以看出,当主干道由绿转黄时,支干道亮红灯,支干道由绿转黄时,主干道亮红灯。 5 硬件调试与结果分析 主干道在前45s,无论s是否有信号,都不改变状态,到达45s且s有信号,状态改变,主干道黄灯支干道红灯5s后转为主干道红灯支干道绿灯。再经25s状态改变,主干道红灯支干道黄灯5s后转为主干道绿灯乡村道红灯,继续等待。 图5-1 主干道亮绿灯,支干道两红灯,数码管开始45s计时 图5-2 主干道亮黄灯,支干道两红灯,数码管5s计时 图5-3 主干道亮红灯,支干道亮绿灯,数码管25s计时 6 设计总结 EDA设计我感觉程序调试、试验软件、硬件熟悉最重要。在编完各模块程序之后,编译查错最初有三十几个错误,有输入错误、语法错误。一遍一遍的变异查错,直到没有错误。必须注意工程名和实体名一致,不然一般会出错。在没有错误之后可以进行波型仿真。若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。 并且,在本次课程设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际。有的时候,理论上是正确的东西放到现实中去,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。 参考文献 [1] 柴诚敬,刘国维,李阿娜,《化工原理课程设计》,天津,天津科学技术出版社,1994年 [2] 边肇祺,《模式识别(第二版)》,北京,清华大学出版社,1988年 [3] 李永忠,《几种小波变换的图像处理技术》,西北民族学院学报(自然科学版),2001年 [4] 褚振勇,《FPGA设计与应用》,西安,西安电子科技大学出版社,2003 [5] 夏宇闻,《Verilog数字系统设计教程》,北京,北京航空航天大学出版社,2008年 [6] 夏宇闻,《复杂数字电路与系统的Verilog HDL设计技术》,北京,清华大学出版社,1998年
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服