基于EDA技术智能交通信号灯设计
基于EDA的交通信号灯电路的设计与仿真

基于EDA的交通信号灯电路的设计与仿真传统的交通信号灯控制电路的设计是基于中、小规模集成电路,电路元件多、焊接复杂、故障率高、可靠性低,而且控制系统的功能扩展及调试都需要硬件电路的支持,为日常维护和管理增加了难度。
目前很多城市的交通信号灯还是应用传统的电路设计,一旦交通信号灯出现故障,不能及时维修和处理,势必会造成道路的交通混乱。
通过技术的改进,采用基于EDA技术的交通信号灯控制电路弥补了传统设计中的缺点,通过VHDL语言编写系统控制程序,利用软件控制整个系统的硬件电路,还可以利用EDA集成开发环境对交通信号灯的设计进行仿真,验证设计结果是否实现。
改进后的交通信号灯电路组成元器件少,可靠性高,操作简单,实现可扩展功能。
1 交通信号灯控制电路1.1 交通信号灯工作原理基于FPGA的交通信号灯控制电路主要用于甲乙两条车道汇合点形成的十字交叉路口,甲乙两车道各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。
两组红绿灯分别对两个方向上的交通运行状态进行管理,红灯亮表示该道路禁止通行,黄灯表示停车,绿灯表示可以通行;倒计时显示器是用来显示允许通行或禁止通行的时间,以倒计时方式显示交通灯闪亮持续时间。
为每个灯的闪亮状态设置一个初始值,指示灯状态改变后,开始按照初始值倒计时,倒计时归零后,灯的状态将会改变至下一个状态。
交通灯两车道的指示灯闪亮状态是相关的,每个方向的灯闪亮状态影响着另一个方向的指示灯闪亮状态,这样才能够协调两个方向的车流。
甲乙两车道交通灯工作状态如表1所示,其中“1”代表点亮,“0”代表熄灭。
当甲车道绿灯亮时,乙车道对应红灯亮,由绿灯转换红灯的过渡阶段黄灯亮。
同理,乙车道绿灯亮时,甲车道的交通灯也遵循此规则。
当出现特殊情况时,各方向均亮红灯,倒计时停止,特殊运行状态结束后,控制器恢复原来状态,继续运行。
1.2 交通信号灯电路结构根据交叉路口交通灯工作原理,图1为交通信号灯控制电路的原理图。
EDA实验课程大作业报告:设计制作一个用于十字路口的交通灯控制器

交通灯控制器设计一.系统功能设计要求设计制作一个用于十字路口的交通灯控制器,要求如下:(1)南北和东西方向各有一组红、绿、黄灯来指挥交通,持续时间分别为25S,20S,和5S。
(2)当有特殊情况(如消防车、救护车等)时,两个方向均为红灯亮,计时停止。
(3)当特殊情况结束后,控制器恢复原来状态,继续正常运行。
(4)用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。
二.设计原理1.交通灯控制器的状态转换根据题目要求将将红绿灯的状态转换列成如下表:2.设计方案1)由于交通灯需要使用2位7段LED数码管指示通行剩余时间,故采用LED动态扫描方式显示当前时间。
频率设定CLK1k对应的频率为50MHZ。
2)控制模块是交通灯的核心,主要控制交通灯按工作顺序自动变换,同时控制倒计时模块工作,每当倒计时回零时,控制模块接收到一个计时信号,从而控制交通灯进入下一个工作状态。
3)每个方向有一组2位倒计时器模块,用以显示该方向交通灯剩余的点亮时间。
4)显示模块由两部分组成,一是由七段数码管组成的倒计时显示器,每个方向两个七段数码管;二是由发光二极管代替的交通灯,每个方向3个发光二极管。
三.变量符号说明其中,CLK1K为系统时钟信号输入端,SN为禁止通行信号输入通行信号输入端,light0为东西红灯信号输出端,light1为东西黄灯信号输出端,light2为东西绿灯信号输出端,light3为南北红灯信号输出端,light4为南北黄灯信号输出端,light5为南北绿灯信号输出端,led1、led2、led3、led4为数码管地址选择信号输出端。
四.代码说明library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Hongld ISport (clk1k,SN:in std_logic; --SN紧急情况led1, led2, led3, led4 :out std_logic_vector (6 downto 0);--显示管显示时间用light:out std_logic_vector (5 downto 0)); --红绿黄灯end Hongld;architecture traffic1 of Hongld ISsignal S:std_logic_vector (1 downto 0); --状态signal DXT:std_logic_vector(7 downto 0):=X"01"; --东西方向时间signal NBX:std_logic_vector(7 downto 0):=X"01"; --南北方向时间signal ART,AGT,AYT,BRT,BGT,BYT: std_logic_vector(7 downto 0); --红绿黄灯信号signal temp: integer range 0 to 49999999; --产生1s计数器时计数signal clk: std_logic;beginART<="00100101";AGT<="00100000";AYT<="00000100";BRT<="00100101";BGT<="00100000";BYT<="00000100";process(clk1k) -- 选频率为50MHZ beginif (clk1k'event and clk1k='1') thenif temp=49999999 thentemp<=0;clk<='1';elsetemp<=temp+1;clk<='0';end if;end if;end process;process(clk,DXT,NBX) --状态转换进程beginif clk'event and clk ='1' thenif(DXT ="00000001")OR (NBX = "00000001") then S<=S+1;else S<=S;end if; --状态转换结束end if;end process;process (clk,SN,S) --倒计时模块beginif SN = '1' then DXT<=DXT; NBX<=NBX;elseif clk'event and clk='1' thenif (DXT="0000000") OR (NBX="00000000") thencase S ISwhen "00"=>DXT<=ART; NBX<=BGT; --南北红灯、东西绿灯when "01"=>NBX<=BYT; --南北红灯、东西黄灯when "10"=>DXT<=AGT; NBX<=BRT; --南北绿灯、东西红灯when "11"=>DXT<=AYT; --南北黄灯、东西红灯when others=>NULL;end case;end if;if DXT/="00000000" thenif DXT(3 downto 0)= "0000" thenDXT(3 downto 0)<="1001";DXT(7 downto 4)<=DXT(7 downto 4)-1;else DXT(3 downto 0)<=DXT(3 downto 0)-1;DXT(7 downto 4)<=DXT(7 downto 4);end if;end if;if NBX/="00000000" thenif NBX(3 downto 0)="0000" thenNBX(3 downto 0)<="1001";NBX(7 downto 4)<=NBX(7 downto 4)-1;else NBX(3 downto 0)<=NBX(3 downto 0)-1;NBX(7 downto 4)<=NBX(7 downto 4);end if;end if;end if;end if;end process; --倒计时模块结束process(DXT,NBX,S,SN) --显示模块begincase NBX(3 downto 0) iswhen "0000"=>led1<="1000000";when "0010"=>led1<="0100100"; when "0011"=>led1<="0110000"; when "0100"=>led1<="0011001"; when "0101"=>led1<="0010010"; when "0110"=>led1<="0000010"; when "0111"=>led1<="1111000"; when "1000"=>led1<="0000000"; when "1001"=>led1<="0010000"; when others=>led1<="1111111"; end case;case NBX(7 downto 4) iswhen "0000"=>led2<="1000000"; when "0001"=>led2<="1111001"; when "0010"=>led2<="0100100"; when "0011"=>led2<="0110000"; when "0100"=>led2<="0011001"; when "0101"=>led2<="0010010"; when "0110"=>led2<="0000010"; when "0111"=>led2<="1111000"; when "1000"=>led2<="0000000"; when "1001"=>led2<="0010000"; when others=>led2<="1111111"; end case;case DXT(3 downto 0) iswhen "0000"=>led3<="1000000"; when "0001"=>led3<="1111001"; when "0010"=>led3<="0100100"; when "0011"=>led3<="0110000"; when "0100"=>led3<="0011001"; when "0101"=>led3<="0010010"; when "0110"=>led3<="0000010"; when "0111"=>led3<="1111000"; when "1000"=>led3<="0000000"; when "1001"=>led3<="0010000"; when others=>led3<="1111111"; end case;case DXT(7 downto 4) iswhen "0000"=>led4<="1000000"; when "0001"=>led4<="1111001"; when "0010"=>led4<="0100100";when "0100"=>led4<="0011001";when "0101"=>led4<="0010010";when "0110"=>led4<="0000010";when "0111"=>led4<="1111000";when "1000"=>led4<="0000000";when "1001"=>led4<="0010000";when others=>led4<="1111111";end case;if SN ='1' then light<="001001";elsecase S ISwhen "00"=>light<="010001";when "01"=> light <="100001";when "10"=> light <="001010";when "11"=> light <="001100";when others=>NULL;end case;end if;end process;end traffic1;五.仿真波形图仿真时序波形图。
EDA课程设计-交通信号灯

EDA技术课程设计报告交通灯控制器一、设计功能:实现高速公路与乡间小路的交叉路口红绿灯的控制二、具体功能要求:1、只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。
2、当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间。
(注:这段时间定义为20秒时间)3、高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定时间内保持高速公路绿灯。
(注:这段时间定义为60秒时间)4、原理框图如下:A B C D高速交通灯绿(60秒)黄(5秒)红(20秒)红(5秒)小道交通灯红红绿黄三、参考设计方案:图2 交通信号灯控制器的原理框图采用VHDL语言输入的方式实现交通信号灯控制器图3 交通信号灯控制器程序原理框图该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。
进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。
计数器驱动脉冲如图所示:四、编写相应源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED. ALL;ENTITY CONTRALZ ISPORT(CLK:IN STD_LOGIC;RA,GA,YA:OUT STD_LOGIC;TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CONTRALZ;ARCHITECTURE BHV OF CONTRALZ ISTYPE RG IS (GREEN,RED,YELLOW2);BEGINPROCESS(CLK)VARIABLE A:STD_LOGIC;VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE STATE:RG;BEGINIF CLK'EVENT AND CLK='1'THEN CASE STATE ISWHEN GREEN=>IF A='0'THEN TH:="0101";TL:="1001";A:='1';GA<='1';RA<='0';YA<='0';ELSE IFNOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSETH:="0000";TL:="0000";A:='0';STATE:=RED;END IF;END IF;WHEN RED=>IF A='0'THEN TH:="0001";TL:="1001";A:='1';RA<='1';YA<='0';GA<='0';ELSE IFNOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSETL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';RA<='0';GA<='0';STATE:=YELLOW2;END IF;END IF;WHEN YELLOW2=>IF A='0'THEN TH:="0000";TL:="0101";A:='1';YA<='1';GA<='0';RA<='0';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="0101";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";GA<='0';RA<='0';YA<='0';A:='0';STATE:=RED;END IF;END IF;END CASE;END IF; TIMEAH<=TH;TIMEAL<=TL;END PROCESS;END BHV;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CONTRALX ISPORT(CLK:IN STD_LOGIC;RB,GB,YB,CHU:OUT STD_LOGIC;TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CONTRALX;ARCHITECTURE BHV OF CONTRALX ISTYPE RGY IS(RED,YELLOW1,GREEN,YELLOW2);BEGIN PROCESS(CLK)VARIABLE A:STD_LOGIC;VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE STATE:RGY;BEGIN IF CLK'EVENT AND CLK='1'THEN CASE STATE ISWHEN YELLOW1=>IF A='0'THEN TH:="0000";TL:="0100";A:='1';YB<='1';GB<='0';RB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=GREEN;END IF;END IF;WHEN GREEN=>IF A='0'THEN TH:="0001";TL:="1001";A:='1';GB<='1';RB<='0';YB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=YELLOW2;END IF;END IF;WHEN RED=>IF A='0'THEN TH:="0101";TL:="0100";A:='1';RB<='1';YB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=YELLOW1;END IF;END IF;WHEN YELLOW2=>IF A='0'THEN TH:="0000";TL:="0100";A:='1';YB<='1';GB<='0';RB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';CHU<='0';STATE:=RED;END IF;END IF;END CASE;END IF;TIMEAH<=TH;TIMEAL<=TL;END PROCESS;END BHV;五、对源程序进行编译及仿真1、对程序进行编译,结果如下图:2、用waveform对程序进行波形仿真,结果如下图:六、设计思路在听完课程设计指导课前,我们对交通灯的程序设计思路基本上可以称得上是一片茫然,在听完课后虽然有个大致的思路,但还是不知道具体要怎么实施,于是我们开始去图书馆寻找参考书。
EDA交通灯课程设计

EDA 交通灯课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握交通灯系统的原理与设计流程。
2. 学生能够运用所学知识,设计并实现一个具备基本功能的交通灯控制系统。
3. 学生了解交通灯控制系统在实际应用中的重要性,理解不同颜色灯亮灭的时间间隔及其意义。
技能目标:1. 学生能够运用EDA软件进行电路设计,完成交通灯控制系统的原理图与PCB布线图绘制。
2. 学生能够通过编程实现对交通灯控制系统的仿真与调试,解决简单问题。
3. 学生能够运用团队协作、沟通技巧,共同完成课程设计任务,提高实践操作能力。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发创新意识和探索精神。
2. 学生通过实践操作,培养动手能力、问题解决能力和自主学习能力。
3. 学生认识到遵守交通规则的重要性,增强社会责任感和安全意识。
课程性质:本课程设计为实践性课程,注重培养学生的动手能力和团队协作能力。
学生特点:初三学生,具有一定电子基础知识,好奇心强,喜欢动手实践。
教学要求:结合学生特点,课程设计应注重理论与实践相结合,鼓励学生自主探究和团队协作,提高学生的综合能力。
通过分解课程目标为具体学习成果,使学生在完成课程设计的过程中达到预期目标。
二、教学内容1. 电子设计自动化(EDA)基本原理介绍:包括EDA的概念、发展历程、应用领域。
2. 交通灯控制系统原理:讲解交通灯的工作原理、控制逻辑、信号灯颜色时间设置。
3. EDA软件操作:学习并掌握EDA软件的使用,如原理图绘制、PCB布线图设计。
4. 交通灯控制系统设计:根据实际需求,设计具备基本功能的交通灯控制系统。
- 知识点:数字电路、逻辑门、时序逻辑、微控制器应用。
- 教材章节:第四章 电子设计自动化,第三节 数字电路设计。
5. 编程与仿真:学习编程实现对交通灯控制系统的仿真与调试。
- 知识点:基础编程知识、仿真软件使用。
- 教材章节:第五章 嵌入式系统设计,第一节 嵌入式编程基础。
eda交通控制灯课程设计

eda 交通控制灯课程设计一、课程目标知识目标:1. 学生能够理解并掌握交通控制灯(红绿灯)的基本原理和工作机制。
2. 学生能够描述EDA(电子设计自动化)工具在交通控制灯设计中的应用。
3. 学生能够解释交通控制灯系统中涉及的基础电子元件及其功能。
技能目标:1. 学生能够运用EDA软件完成交通控制灯电路图的绘制。
2. 学生能够通过编程实现对交通控制灯系统的简单控制逻辑。
3. 学生能够运用团队协作和问题解决技能,设计和优化交通控制灯系统。
情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发创新意识和探索精神。
2. 增强学生的环保意识和交通安全意识,认识到交通控制灯在现代社会中的重要性。
3. 培养学生的团队协作意识,学会尊重他人意见,共同解决问题。
课程性质:本课程结合了电子技术与实际应用,注重理论与实践相结合,以项目为导向,提升学生的综合技能。
学生特点:假设学生为初中年级,具有一定的电子元件知识基础,对新技术的学习充满好奇,具备基本的计算机操作能力。
教学要求:课程需注重实践性,通过互动式教学和团队协作,使学生在动手实践中理解和掌握知识,提高问题解决能力。
同时,强调安全意识和责任感,培养符合社会主义核心价值观的技能人才。
二、教学内容1. 交通控制灯基础知识:- 红绿灯工作原理介绍- 交通控制灯系统的组成与功能- 交通控制灯在交通安全中的作用2. EDA工具的应用:- EDA软件的认识与基本操作- 交通控制灯电路图的绘制方法- 电路仿真与调试技巧3. 交通控制灯电路设计与制作:- 基本电子元件的选择与应用- 交通控制灯控制逻辑的编写与实现- 电路板设计与焊接技巧4. 项目实践与优化:- 团队协作设计与制作交通控制灯系统- 控制逻辑优化与功能拓展- 作品展示与评价教学内容安排与进度:第一课时:交通控制灯基础知识学习第二课时:EDA软件的认识与基本操作第三课时:交通控制灯电路图绘制与仿真第四课时:电路设计与制作第五课时:项目实践与优化第六课时:作品展示与评价教材章节关联:教学内容与教材中“电子技术应用”章节相关,涉及电子元件、电路设计、EDA工具应用等方面的知识。
EDA实验交通灯设计报告

EDA原理及应用实验报告题目:交通灯控制器专业:电子信息工程班级:姓名:学号:一、设计题目:交通灯控制器二、设计目标:1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2、红、绿、黄发光二极管作信号灯。
3、主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。
5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。
三、设计原理:(含系统总的原理图)由两个分频器模块,三个计数器模块及它的选择器,一个扫描数码管模块,和一个红绿灯控制模块连接而成。
RTL状态图四、设计内容:(含状态转换图、软件流程图、说明文字等,每单独模块的图标和VHDL程序;最后为总体程序框图)分频器1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT(CLK:IN STD_LOGIC;--D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FOUT:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)V ARIABLE CNT8:INTEGER RANGE 48000000 DOWNTO 0;BEGINIF CLK'EVENT AND CLK='1' THENIF CNT8=24000000 THENCNT8:=0;FULL<='1';ELSE CNT8:=CNT8+1;FULL<='0';END IF;END IF;END PROCESS P_REG;P_DIV:PROCESS(FULL)V ARIABLE CNT2:STD_LOGIC;BEGINIF FULL'EVENT AND FULL='1' THENCNT2:=NOT CNT2;IF CNT2='1' THEN FOUT<='1';ELSE FOUT<='0';END IF;END IF;END PROCESS P_DIV;END;说明:采用的是48M时钟输入,作为后面的时钟信号。
EDA课程设计-交通灯-图文

EDA课程设计-交通灯-图文交通信号灯控制电路设计一、概述城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。
目前,大部分无控制交叉口都存在高峰小时车流混乱、车速缓慢、延误情况严重、事故多发、通行能力和服务水平低下等问题。
特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。
因此,做好基于EDA技术平台的交叉口信号控制设计是缓解交通阻塞、提高城市道路交叉口车辆通行效率的有效方法。
交通信号控制的目的是为城市道路交叉口(或交通网络)提供安全可靠和有效的交通流,通常最为常用的原则是车辆在交叉口的通过量最大或车辆在交叉口的延误最小。
交通信号灯控制电路是显示主干道和支干道交替放行时间并用试验箱左上角的彩灯来红黄绿支红代替信号灯的一种实际电路。
设计一个基于FPGA的红绿灯交通信号控制器。
假设某个十干黄绿道字路口是由一条主干道和一条次干道汇合而成,在每个方向设置红绿黄三种信号灯,红灯亮禁止通行,绿灯亮允许通行。
黄灯亮允许行驶中车辆有时间停靠到禁止线以外。
第-1-页共18页二、方案设计与论证在硬件时钟电路的基础上,采用分频器,输出一个1S的时钟信号,在时钟信号的控制下,实现主干道和支干道红绿灯交替显示。
红绿灯交通灯控制器层次设计:EDA技术的基本设计方法有电路级设计方法和系统级设计方法。
电路级设计方法已经不能适应新的形势,本系统采用的是系统级层次设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片FPGA芯片实现,首先用VHDL语言编写各个功能模块程序,最后通过综合器和适配器生成最终的目标器件,然后用顶层原理图将各功能模块连接起来。
下面给出各模块的VHDL设计过程和仿真结果。
1、系统时序发生电路clk_gen的VHDL设计在红绿灯交通信号控制系统中,大多数的情况是通过自动控制的方式指挥交通的。
因此,为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
基于EDA技术的交通灯控制器设计

基于EDA技术的交通灯控制器设计
目前,人们的出行几乎无处不遇到交通灯的存在,随着汽车出行的重要性日益凸显,对交通灯的控制也需要更具灵活性和智能性。
EDA技术在交通灯控制方面前景明朗。
通过EDA技术以达到更加准确可靠的交通灯控控制,有效地提高交通灯的控制效率。
核心原理是将传统模糊控制和多层次精细控制结合起来,以便对交通灯状态进行多层次智能控制。
传统模糊控制有效解决实时交通状态变化响应性过快或过慢的问题,而多层次精细控制通过智能分析实时信息,使得交通控制更加准确可靠。
EDA技术在交通灯控制中应用,其核心技术就是实时数据的采集、存储、和处理。
可通过对街路、红绿灯等交通相关信息实时监控,从而调整交通流量及交通灯循环,有效提升交通灯的控制效能。
此外,EDA技术还可以应用在交通灯的可靠性上,例如可以进行故障诊断,实现交通灯的远程管理维护。
EDA技术应用于交通灯的控制,既可以让其变得灵活高效,又可以有效提升交通灯的可靠性和安全性,大大减少交通拥堵以及不必要的交通事故。
同时,基于EDA的交通灯控制器设计能够让其更加智能便捷,可在全国范围内带来更多的便利。
基于EDAD的交通灯的设计

成绩指导教师:《EDA技术与实验》课程设计题目:基于EDA的智能交通灯控制器的设计姓名:陈小凡院系:电子信息工程系专业:通信工程班级:通信10学号: 010808244指导教师:2012年12 月基于EDA的智能交通灯控制器的设计陈小凡摘要:交通灯的智能化控制管理在当今的社会是必不可少的。
为此,将基于EDA技术和有限状态机来设计一套十字路口的智能交通灯控制系统。
整个系统由Verilog语言描述,利用东西和南北方向的绿、黄、红三种交通灯的状态控制来实现交通灯的智能控制,并由Max+plusⅡ软件进行仿真。
关键词:EDA;Verilog;交通灯;Max+plusⅡ软件;智能控制引言随着城市的发展,汽车数量的增加,交通管制变得越来越重要,特别是在十字路口处,交通灯已成为交通管制必不可少的重要工具。
传统的实现路口交通灯系统的控制方法有很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。
但近年来EDA(ElectronicDesignAutomation)技术的出现,可以替代设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能,基本上不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,所以出现了用EDA来设计交通灯控制的方案。
[1]本文将于EDA技术的基础上进行设计来实现交通灯的智能控制。
一设计原理本设计是基于DEA技术和有限状态机的工作原理(指输出取决于过去输入部分和当前输入部分的时序逻辑电路。
也就是说除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器)。
[2]在南北方向和东西方向个设置三颗交通灯(红、绿和黄)的亮灭来实现十字路口的交通的智能控制。
即当脉冲clock的上升沿到来时,东西方向的红灯(red1)亮,南北方向就亮绿灯(green2),让南北方向的车辆通行,在无复位时(reset!=1),clock 的上升沿时,让东西方向的黄灯(yellow1)亮,也就是绿灯向红的的转换过渡阶段;之后便是red2亮,green2亮,即让东西方向的车辆通行,并通过不同的输入se1和se2来控制状态的转换。
基于EDA技术交通信号灯设计

1 EDA技术及VHDL语言介绍1.1 概述EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。
综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。
综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。
也就是说,综合器是软件描述与硬件实现的一座桥梁。
综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD 相映射的网表文件。
适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。
适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。
硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。
HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。
设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。
目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。
基于EDA技术的交通灯控制系统设计

HEBEINONGJI摘要:本文基于EDA技术,采用VHDL硬件语言,利用EPM240T100C5芯片,设计了一个交通信号灯控制器,其通过计数器来实现十字路口信号灯的转变,并可在数码管上显示计时时间。
关键词:EDA;交通信号灯;数码管;VHDL基于EDA技术的交通灯控制系统设计河北农业大学机电工程学院李波杨梦迪王新鑫引言目前大多数交通灯控制系统是基于单片机的控制设计的,而随着当今电子科学技术的发展,传统的自下而上设计方法不再适应于趋势的发展,本文在此提出一种基于EDA技术的交通灯控制系统来实现对十字路口交通灯的控制O1系统设计要求本文设计的交通信号控制器控制的十字路口是由主、支干道汇合而成,其中每个入口处设置红、绿、黄三色信号灯。
如图1所示。
图1十字路口为方便说明,在此规定十字路口的通行规则如下,主、支干道交替通行,主干道每次放行45秒,支干道每次放行25秒,且由绿灯到红灯时有3秒的黄灯作为过渡。
程序设计时要有45秒、25秒计时显示电路。
2系统设计方案本文使用VHDL语言设计交通信号灯控制器,利用VHDL 语言进程语句并行执行的特点,将程序分为交通信号灯的亮灭、数码管的显示电路两个单独的模块进行设计,即本文以EPM240T100C5芯片作为核心,通过程序控制实现计数器计数状态的跳转,借助数码管显示秒数的跳转,借助二极管显示信号灯的亮灭,如图2所示。
图2系统设计3系统各部分设计3.1数码管显示电路的设计本文提到的数码管采用共阳极的七段数码管,共使用4个数码管,其中两个用于主干道描述跳转的显示,另外两个用于支作者简介:李波,男,1996年出生,河北邯郸人,本科,研究方向:电子信息工程。
干道秒数跳转的显示。
对于数码管的控制,将每个干道两个数码管的1-7引脚连接起来,然后使用EPM240T100C5芯片通过对阳极的选通实现每个数码管的亮灭,并通过动态扫描对数码管控制,使人眼可看到数码管的显示。
有关数码管的显示,根据系统设计要求,主干道秒数跳转从45进制到3进制再到25进制,支干道则从45进制到25进制再到3进制。
eda交通灯控制器设计

EDA交通灯控制器设计1. 简介交通灯控制器是城市交通系统中常见的设备之一,用于控制交叉路口的交通信号灯。
其中,EDA(Electronic Design Automation)技术在交通灯控制器的设计和开发中起到了重要的作用。
本文将介绍如何使用EDA技术设计一个高效可靠的交通灯控制器。
2. EDA技术在交通灯控制器设计中的应用EDA技术是通过计算机辅助设计软件来简化和自动化电子系统设计的过程。
在交通灯控制器设计中,EDA技术可以帮助工程师完成诸如原理图设计、电路仿真、PCB布局、逻辑综合等任务,大大提高了设计的效率和准确性。
2.1 原理图设计在交通灯控制器的设计中,首先需要进行原理图设计。
EDA软件可以提供丰富的元件库和易于使用的画图工具,使得工程师能够快速地绘制出交通灯控制器的原理图。
通过原理图设计,可以清晰地表示出交通灯控制器的各个部分之间的连接和信号流动关系。
2.2 电路仿真完成原理图设计之后,可以利用EDA软件进行电路仿真。
通过建立适当的电路模型和设置合适的仿真参数,可以验证交通灯控制器的设计是否符合预期。
电路仿真可以帮助工程师检测潜在的问题和优化设计,在实际制造之前发现并解决可能存在的故障。
2.3 PCB布局PCB(Printed Circuit Board)布局是将原理图设计转化为实际电路板的过程。
EDA软件可以根据原理图自动生成PCB布局,将各个元件的位置和连接关系准确地布置在电路板上。
通过使用EDA技术进行PCB布局,可以确保交通灯控制器的电路连接正确可靠,并且满足电磁兼容性和散热要求。
2.4 逻辑综合与优化在交通灯控制器的设计中,逻辑综合是将高级描述语言代码转化为低级逻辑网表的过程。
EDA软件可以根据设计人员提供的代码进行逻辑综合,并进行逻辑优化。
通过逻辑综合与优化,可以减少电路的延迟、功耗、面积等方面的问题,提高交通灯控制器的性能和效率。
3. EDA交通灯控制器设计流程3.1 设计需求分析在开始设计交通灯控制器之前,需要进行设计需求分析。
基于EDA技术设计交通灯系统

目录摘要 (I)Abstract .................................................. I I 第1章前言 (1)1.1 研究目的和意义 (1)1.2 国内外研究现状 (1)1.3 研究内容和方法 (1)第2章 EDA技术的介绍 (3)2.1 EDA技术 (3)2.2 VHDL (4)2.3 MAX+PLUSⅡ (6)2.4 CPLD (7)第3章交通灯控制系统方案验证 (9)3.1 交通系统的发展趋势 (9)3.2 设计方案及论证 (90)3.3 具体设计以及模块划分 (112)3.4 工作原理 (123)3.5 交通灯工作示意图 (123)第4章系统设计 (145)4.1 顶层电路设计 (145)4.2 CLK时钟秒脉冲发生电路 (155)4.3 交通灯主控模块 (166)4.4 定时单元以及显示控制、译码电路 (17)4.5 手动自动控制信号 (23)第5章仿真分析 (245)第6章总结与建议 (28)致谢 (29)参考文献 (290)附录 (301)摘要城市道路交通拥堵是现代城市迫切需要解决的问题,因而城市道路交通控制技术已成为当前控制领域和交通工程领域的研究热点和难点之一。
本文介绍的是基于EDA技术设计交通灯系统的一种方案。
它直接采用CPLD芯片开发,采用了层次化的设计方法,给出了各个模块的VHDL程序,利用了Max+PlusⅡ对应用程序进行了仿真,并给出了相应的仿真结果。
本交通灯控制器用红、黄、绿灯分别表示停车、等待、行进,用蓝色灯表示左拐,同时用数码管指示当前状态(红、黄、绿灯)剩余时间。
关键字:交通灯控制器,EDA,CPLD,VHDL,Max+PlusⅡAbstractThe congestion of urban traffic has become all urgent social problem,Intelligent control technique for urban roadway traffic is an important topic in control domain and traffic engineering domain. This paper introduces a scheme of the design of traffic signal systems based on EDA technology. It directly uses CPLD chip development, using a hierarchical design method, gives each module VHDL procedures, using the Max+Plus II on application for the simulation, and gives the simulation results. The traffic light controller with red, yellow, Green said parking, waiting, moving, with blue lights that turn left, at the same time, digital tube to indicate the current state ( red, yellow, green) remaining time.Key words: traffic light , EDA,CPLD,VHDL,Max+PlusⅡ第1章前言1.1研究目的和意义以往单一模式的定时控制已不能满足客观需要,所以我们要求寻找一种可以随时针对通道上车辆的密集程度来控制和调节主支干道的通禁时间,从而减少不合理的堵车现象的发生。
EDA课程设计交通灯

实验报告设计题目:交通信号控制器班级:学号:姓名:指导老师:设计时间:2023年4月交通信号控制器的VHDL设计一、设计任务:模拟十字路口交通信号灯的工作过程,运用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
规定:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
支干道主干道图1 路口交通管理示意图表1 交通信号灯的4种状态二、设计目的:设计交通灯控制系统重要是为了实现城市十字交叉路口红绿灯的控制。
通过对QuartusII软件使用方法与技巧的学习,掌握VHDL程序设计的实现,熟悉可编程逻辑器件的使用。
同时加深对交通灯控制系统的了解与应用。
三、设计方案:图2 交通信号灯控制器的原理框图信号灯输出图3 交通信号灯控制器程序原理框图四、程序清单和说明:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRAFFIC ISPORT (CLK: IN STD_LOGIC;LED7S1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管高位显示数字LED7S2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管低位显示数字LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0));--各交通灯显示END ENTITY;ARCHITECTURE ONE OF TRAFFIC ISTYPE STATES IS( STA, STB, STC, STE);--定义状态变量SIGNAL ST0:STATES;SIGNAL ST1:STATES;SIGNAL FULL: STD_LOGIC;SIGNAL FOUT: STD_LOGIC;时钟输出信号(秒频)SIGNAL TIME: STD_LOGIC_VECTOR(6 DOWNTO 0);时间计数值SIGNAL TIME_LEFT: STD_LOGIC_VECTOR(6 DOWNTO 0);显示时间剩余值SIGNAL T_HIGH:STD_LOGIC_VECTOR(1 DOWNTO 0);高位显示SIGNAL T_LOW:STD_LOGIC_VECTOR(6 DOWNTO 0);低位显示BEGINPROCESS(CLK) --秒脉冲产生进程(分频作用)V ARIABLE CNT8: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLK'EVENT AND CLK='1' THENIF CNT8="11111111" THENCNT8:="00000000"; --当CNT8计数计满时,给计数器CNT8预置数FULL<='1'; --同时使溢出标志信号FULL输出为高电平ELSE CNT8:=CNT8+1; --否则继续作加1计数FULL<='0'; --且输出溢出标志信号FULL为低电平END IF;END IF;END PROCESS;PROCESS(FULL)V ARIABLE CNT2: STD_LOGIC;BEGINIF FULL'EVENT AND FULL='1'THENCNT2:=NOT CNT2;IF CNT2='1' THEN FOUT<='1'; ELSE FOUT<='0';END IF;END IF;END PROCESS;--FOUT输出是时钟信号PROCESS(FOUT) --计数模块。
基于EDA的交通灯控制器课程设计

基于EDA的交通灯控制设计一、设计背景和设计方案1)设计背景设计一个由一条支干道和一条主干道的汇合点形成的十字交叉路口的交通灯控制器,主要要求如下:1.主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。
2.主干道处于常允许状态,两支干道有车来才允许通行。
3.当主、支干道有车时,两者交替通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯转换过程中,要亮5s黄灯作为过渡,并进行减计时显示。
2)设计方案2.1背景分析(一)、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:1.主干道绿灯,支干道红灯;2.主干道绿灯,支干道黄灯;3.主干道红灯,支干道绿灯;4.主干道黄灯,支干道绿灯。
(二)、支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。
在红绿灯交替时亮5s黄灯。
2.2方案及思路(一)分模块设计1、红、绿、黄灯控制模块,模块名JTDKZ;2、倒计时传输、控制模块XSKZ;3、倒计时45s——CNT45s;4、倒计时25s——CNT25s;5、倒计时5s——CNT05s。
6、输入、输出。
(二)模块设计思路1、JTDKZ——根据交通灯显示有4种状态,可以采用CASE语句设置选择4种状态。
设置3个输入:CLK(时钟脉冲)、SB(支干道传感器)、SM(主干道传感器)。
2、XSKZ——根据需要交通灯显示的不同数倒计时据设置4个输入使能信号:EN45(45s 倒计时使能信号)、EN25(25s倒计时使能信号)、EN05(5s倒计时使能信号);再设置5个倒计时计数数据输入信号将此时倒计时数据输出:AIN45M、AIN45B、AIN25M、AIN25B、AIN05;2个输出信号使数码管显示正在倒计时的时间。
3、CNT45S——根据倒计时计数的要求设置3个输入信号:CLK(计数脉冲)、EN45(计数使能)、SB(支干道传感器信号);2个输出DOUT45M、DOUT45B,分别用于主、支干道显示。
基于EDA的交通灯课程设计资料

于EDA的简易交通灯控制原理及程序代码简易交通灯项目是近年来课程设计的热门课题,也是困扰诸多电子信息及通信工程专业同学们的难点。
通常指导教师不会提供方案电路原理图,也不会告诉同学们该如何如何去做。
如今网上有很多相关电路图,用各种74系列芯片以及LED和七段数码管组成的,电路结构复杂,纠错性差,极可能连接之后无法得到理想的结果。
随着EDA技术的发展,复杂的门电路可以利用VHDL语言描述并实现。
今天我们来一起分析并设计相应的程序代码。
1,课题要求:设计一交通灯控制电路,要求有四个状态:A,主干路绿灯30秒,支路红灯30秒,主干路通车,支路等待;B,主干路黄灯闪烁5秒,支路红灯5秒,两路同时等待;C,主干路红灯20秒,支路绿灯20秒,支路通车,主干路等待。
D,主干路红灯5秒,支路黄灯闪烁5秒,同时等待。
最后这四个状态形成一个大循环,周而复始。
2,建模分析。
输入:1S的计时脉冲。
输出:主干路和支路的红绿黄灯的状态,数码管计数显示。
(输出8位BCD 码,高四位为十位,第四位为各位)整个过程为一个大循环,共30+5+20+5=60秒,即0~59S,共60个状态。
3,代码原理:我们引用两个进程,一个计数,一个由计数相应的执行对应的状态输4,代码:建立JTD.VHD输入如下代码注意:CLK锁定在PIN93管脚,为脉冲输入。
LAMP 向量共有6位,对应的LED如下例如 LAMP <="0 1 0 1 0 0";主红主绿主黄支红支绿支黄CODE向量共8位,为两组BCD码,应由CD4511芯片解码后驱动七段数码管。
例如 CODE<="00100101"表示的是 2 5代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED;ENTITY JTD ISPORT( CLK : IN STD_LOGIC;LAMP : OUT STD_LOGIC_VECTOR(5 DOWNTO 0 );CODE : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END;ARCHITECTURE one OF JTD ISSIGNAL ST : INTEGER RANGE 0 TO 60;BEGINP_A:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THEN IF ST<60 THEN ST<=ST+1; ELSE ST <='0' ;END IF;END IF;END PROCESS;P_B : PROCESS(ST)BEGINCASE ST ISWHEN 0 =>LAMP<="010100";CODE<="00000000";WHEN 1 =>LAMP<="010100";CODE<="00000001";WHEN 2 =>LAMP<="010100";CODE<="00000010";WHEN 3 =>LAMP<="010100";CODE<="00000011";WHEN 4 =>LAMP<="010100";CODE<="00000100";WHEN 5 =>LAMP<="010100";CODE<="00000101";WHEN 6 =>LAMP<="010100";CODE<="00000110";WHEN 7 =>LAMP<="010100";CODE<="00000111";WHEN 8=>LAMP<="010100";CODE<="00001000";WHEN 9=>LAMP<="010100";CODE<="00001001";WHEN 10 =>LAMP<="010100";CODE<="00010000";WHEN 11 =>LAMP<="010100";CODE<="00010001";WHEN 12 =>LAMP<="010100";CODE<="00010010";WHEN 13 =>LAMP<="010100";CODE<="00010011";WHEN 14 =>LAMP<="010100";CODE<="00010100";WHEN 15 =>LAMP<="010100";CODE<="00010101";WHEN 17 =>LAMP<="010100";CODE<="00010111"; WHEN 18 =>LAMP<="010100";CODE<="00011000"; WHEN 19 =>LAMP<="010100";CODE<="00011001"; WHEN 20 =>LAMP<="010100";CODE<="00100000"; WHEN 21 =>LAMP<="010100";CODE<="00100001"; WHEN 22 =>LAMP<="010100";CODE<="00100010"; WHEN 23 =>LAMP<="010100";CODE<="00100011"; WHEN 24 =>LAMP<="010100";CODE<="00100100"; WHEN 25 =>LAMP<="010100";CODE<="00100101"; WHEN 26 =>LAMP<="010100";CODE<="00100110"; WHEN 27 =>LAMP<="010100";CODE<="00100111"; WHEN 28 =>LAMP<="010100";CODE<="00101000"; WHEN 29 =>LAMP<="010100";CODE<="00101001"; WHEN 30 =>LAMP<="001100";CODE<="00000000"; WHEN 31 =>LAMP<="001100";CODE<="00000001"; WHEN 32 =>LAMP<="001100";CODE<="00000010"; WHEN 33 =>LAMP<="001100";CODE<="00000011"; WHEN 34 =>LAMP<="001100";CODE<="00000100"; WHEN 35 =>LAMP<="100010";CODE<="00000000"; WHEN 36 =>LAMP<="100010";CODE<="00000001"; WHEN 37 =>LAMP<="100010";CODE<="00000010"; WHEN 38 =>LAMP<="100010";CODE<="00000011"; WHEN 39 =>LAMP<="100010";CODE<="00000100"; WHEN 40 =>LAMP<="100010";CODE<="00000101"; WHEN 41 =>LAMP<="100010";CODE<="00000110"; WHEN 42 =>LAMP<="100010";CODE<="00000111"; WHEN 43 =>LAMP<="100010";CODE<="00001000"; WHEN 44 =>LAMP<="100010";CODE<="00001001"; WHEN 45 =>LAMP<="100010";CODE<="00010000"; WHEN 46 =>LAMP<="100010";CODE<="00010001"; WHEN 47 =>LAMP<="100010";CODE<="00010010"; WHEN 48 =>LAMP<="100010";CODE<="00010011"; WHEN 49 =>LAMP<="100010";CODE<="00010100"; WHEN 50 =>LAMP<="100010";CODE<="00010101"; WHEN 51 =>LAMP<="100010";CODE<="00010110";WHEN 53 =>LAMP<="100010";CODE<="00011000"; WHEN 54 =>LAMP<="100010";CODE<="00011001"; WHEN 55 =>LAMP<="100001";CODE<="00000000"; WHEN 56 =>LAMP<="100001";CODE<="00000001"; WHEN 57 =>LAMP<="100001";CODE<="00000010"; WHEN 58 =>LAMP<="100001";CODE<="00000011"; WHEN 59 =>LAMP<="100001";CODE<="00000100"; WHEN OTHERS=>NULL;END CASE;END PROCESS;END one;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于EDA技术的智能交通信号灯的设计
摘要:基于eda技术,设计一个交通十字路口的智能控制系统。
控制系统由vhdl硬件语言编写,完成十字路口支路和干路上人行横道的红、绿、黄交通灯的运行控制,并且通过对相应路段的车数量检测,智能化地对绿灯的延时进行改变。
关键词:eda;vhdl语言;可编程逻辑器件;交通灯控制系统
引言:随着城市的日新月异,私人汽车数量的不断增加,交通灯的运行模式和管制变得越来越重要,智能数字化信息为基础建立起的数字化城市不断的发展。
随着数字电子技术的发展,当前数字系统的设计正向着速度快、容量大、体积小、重量轻的轨道上发展。
现代化城市交通作为城市发展的一个重要问题引起人们的注意,智能交通灯控制系统也是应用电子技术中较为经典的设计。
就目前而言尚存在一系列问题待解决,例如实际路口搭建的交通灯种类多、程序结构较复杂、数量较多等问题。
传统的电子设计方法电路应用元器件多、接线较复杂、故障率很高、系统维护不方便。
eda (electronic design automation)技术近年来不断发展,该技术不但可以大部分替代设计者完成设计中的工作,而且可以从程序中直接修改系统功能及错误,大大的缩短了研发周期,节约了成本。
本文采用eda技术,基于vhdl语言,利用可编程逻辑器件(fpga)器件通过quartusⅱ软件的功能仿真和调试,完成整个的系统设计。
表现出了eda 技术的优越性。
不仅使系统设计的产品集成化、小型化,而且最重要的是提高了系统的故障率,由于系统具有可编程的
优点,从而大大降低设计成本费用、缩短了开发周期、方便进行产品的维修以及系统的升级。
系统总体功能描述:交通灯控制系统是每个城市必须的基础设施,对人、车、路三者进行调控。
根据交通规则的规定,来设计完成东西方向和南北方向的显示时间功能和交通指示灯控制。
在一个有一条主干道和一条支干道的实际十字路口,每条干道的每个入口设置了一组两位数码管显示装置和一组绿、红、黄信号指示灯,分别用来显示直行、左右转弯、禁止通行的通行信息,确保车辆安全通行。
一、设计要求:
(1)具有进行系统初始化的功能,起初每个路口都显示红灯10秒(可根据实际情况进行调试),然后所有路口均闪亮黄灯5秒(可调),所有数码管熄灭指示灯,从而系统完成初始化并进入周期性的循环控制状态。
(2)具有规律且稳定的周期性循环指示状态,循环周期为140秒。
东西左转弯、南北方向禁行时为状态w0,状态时间为25s;东西左转弯、南北方向禁行时为状态w1,状态时间为5s;东西方向直行、南北方向禁行时为状态w2,状态时间为35s;东西方向直行、南北方向禁行时为状态w3,状态时间为5s;南北左转弯、东西方向禁行时为状态w4,状态时间为20s;南北左转弯、东西方向禁行时为状态w5,状态时间为5s;南北方向直行、东西方向禁行时为状态w6,状态时间为35s;南北方向直行、东西方向禁行时为
状态w7,状态时间为5s。
(3)交通灯控制系统能够实现秒表倒计时功能。
(4)遇见紧急状态时,具有实现特殊状态的紧急功能显示控制,即所有路口指示灯都显示红灯,直到人为的解除该状态,使之进入正常周期性循序工作。
(5)交通灯控制系统要有相应的抗干扰措施,来应对不同环境的影响,提高其可靠性。
二、硬件系统的总体设计各模块的功能
各模块功能如下:
(1)clk时钟模块。
clk信号发生模块采用分频计数器来发出准确的秒脉冲信号,为控制模块提供准确的时钟脉冲信号。
(2)交通灯控制模块。
交通灯控制模块用于控制干路、支路的交通灯状态和倒计时显示内容,来显示交通灯控制状态表中的数据,完成交通的布控。
(3)数据显示可控模块。
数据显示可控模块用于选择和控制时间的动态显示。
(4)译码管驱动模块。
译码管驱动模块用于驱动数码管进行倒计时输出显示。
(5)状态显示模块。
对交通灯的状态显示。
(6)倒计时显示模块。
显示保持交通灯目前的状态剩余时间。
三、系统设计
根据十字路口位置情况,该路口的东、西方向的交通灯的亮灭和
数码管显示的运行规律相同,南、北方向的交通灯亮灭和数码管显示的运的运行规律相同,因此,可以省去一半的输出控制线。
本文采用目前成熟先进的eda技术,基于vhdl 硬件描述语言,采用fpga芯片作为硬件电路,完全胜任本设计系统的需要。
芯片中内部主要由初始化电路、分频、求模取余、译码函数、计数状态译码、位选扫描等7 个模块组成,
其中,reset 为复位控制端,clk 时钟信号为12mhz , spec为特殊状态控制端,输出端口ns[8. . 0]为南北方向的两组红、黄、绿六个指示灯,we[8. . 0]为东西方向的两组组红、绿、黄六个指示灯,ns - led[ 6. . 0]为南北方向路口的数码管段码端,we - led[ 6. . 0]为控制东西路口的数码管段码端口,sel[ 1. . 0]为译码管的公共位选端。
四、程序设计
应用的fpga芯片中的信号处理功能,只需借助vhdl 硬件描述语言即可实现。
其中的七个不同模块分别由不同的进程(process)来完成。
分频模块主要功能是将12mhz的clk时钟信号分频成为500hz 和1hz不同的两种信号。
其中一个0.5khz的时钟信号用作系统的位选时钟,并生成系统扫描位选信号;另一个1hz 的clk时钟信号用于控制系统的计数处理。
系统的初始化电路功能主要是实现交通灯控制系统进入循环运行的工作状态,该电路主要实现15秒的初始化计数过程,完成初始化计数过程后系统便生成一个控制信号en (高电平有效),传送到后面的模为140的循环计数电路。
本设计利用quartusii集成的开发系统对系统的初始化电路及整个控制系统进行了功能仿真。
由图可知,复位端reset能控制初始化电路模块,其时间长度为15秒。
初始化任务完成以后,高电平有效的使能信号en便输出各循环系统。
当系统完成系统的初始化之后,主控循环计数电路模块便对1hz 时钟信号进行模为140 的循环计数,输出共140个十进制数为0,1,2 到139。
各个计数状态经主控模块进行译码之后,一部分转换为东西方向、南北方向的红、绿、黄共12个指示信号,另一部分转换为东西、南北方向的倒计时两位十进制数码显示。
之后将上面提到的的东西方向ns - d、南北方向的数码显示值we - d,并通过模为10逻辑运算即可得到相应方向显示数码的十进制数的十位数字字显示值,通过除十取余的逻辑运算即便可生成相应方向的数码管显示数码的个位数字。
最后将0,1,2到9这些数字传送至代码转换函数(function)。
即可转换为相应数字的段码值,进行倒计时的显示。
五、实物测试
本文利用北京r&c百科融创公司的eda实验箱,并设计了相应的高亮led 交通灯指示模拟电路板以及数码显示模拟电路板,通过扩展导线将eda实验箱与外部电路板进行连接,将程序下载到芯片ep1k10tc100 -3进行实物模拟调试。
经过仿真后,本系统达到了预期的设计要求,实现了对十字路口交通指示信号的智能运行控制。
六、结束语
本文用led交通灯指示模拟电路板以及数码管显示模拟电路板和eda技术、基于vhdl语言及fpga芯片。
系统功能完备,成本低,运行可靠。
并在编程过程中充分考虑并利用了时钟电路的计数状态所对应的信息,实现了十字路口(特别是人交通拥堵、交通灯种类较多、数量也多)的交通灯的运行控制。
系统仿真分析证明,本系统设计是成功的和符合实际的。
不过在本次设计中也意识到存在着一些不足,比如在人机交互方面增加一些控制模块,则可以实现管理者的手工调整交通灯的运行状态及系统的升级。
参考文献:
[1]罗勇,韩晓军.基于fpga的交通灯控制与实现[j].电子器件,2008,6:76-78.
[2]杨显富.基于eda技术的交通灯自适应控制系统[j].成都大学学报:自然科学版,2003,3:19-24.
[3]文畅.基于fpgapcpld和vhdl语言的交通灯控制系统设计[j].电脑知识与技术,2007,9:1605-1618.
[3]黄健,谭咏梅.基于cpld的交通控制系统设计,工业控制与应用,2010(8).
[4]徐大诏.基于vhdl语言有限状态机的交通灯控制系统设计,电脑知识与技术,2009(5).
[5]唐俊英,韩会山,刘晓利.eda技术应用实例教程,北京:电子工业出版社,2008.
[6]包明,赵明富,陈渝光.eda技术与数字系统设计[m]北京:北
京航空航天大学出版社,2002
[7]冯涛,王程.可编程逻辑器件开发技术—max+plus ii入门与提高[m]北京:人民邮电出版社,2002
[8]房德君.智能交通灯控制装置[j]山东工程学院学报,1998 ,12 (4):27~30
[9]李国丽.用pld芯片和ahdl语言进行交通灯控制器设计[j ]合肥工业大学学报(自然科学版),2002,25(4):545~548 [10]张文洁,叶紫.交通灯控制器设计:fpga/ cpld实现小型数字系统的应用分析[j]电子技术应用,2001,27(11):52~54
作者简介:
杨荣(1971年10月7日),男,汉族,安徽宿州人,工程硕士,就职于西安航空职业技术学院科研处,助理研究员,研究方向:教育教学管理及工程技术应用。