-根据VHDL的交通信号灯设计.doc
.-基于VHDL的交通信号灯设计曾辉,物理与电子信息工程学院摘 要:针对交通信号灯控制器的设计问题,采用层次化的设计方法,应用VHDL语言编制了可变多相位交通信号灯控制器的程序,并利用Quartus进行了仿真。仿真结果表明:该系统可分别实现2、3、4相位交通信号灯控制,并且各相位的灯时分配能方便地通过设定输入进行调节,增强了系统的灵活性和适用范围。关键字:交通信号灯,VHDL,设计, 多相位Design and simulation of traffic signal lamp circuit based on VHDLZengHui,College of Physics and Electronic InformationAbstract:To the design problem of traffic light controller ,the program of controller with VHDL is given and simulated by MAXPLUS by using bierarchical design means. The simulation results show that the system could realize two phase. Three phase and four phase traffic light control, and light time of each phase could be changed by setting input value ,the adaptability of the system can be increased by changing the phase ang light time of traffic light ,I tab,6 figs 10 refs.Key words: traffic light,VHDL,design, multi phase引 言:随着城市的不断发展,城市交通的需求量快速加大,交通信号灯的数量急速加大,目前很多城市的交通信号灯还是应用传统的电路设计一旦交通信号灯出现故障不能及时维修和处理势必会造成道路的交通混乱. 传统的交通信号灯控制电路的设计是基于中小规模集成电路电路元件多焊接复杂故障率高可靠性低而且控制系统的功能扩展及调试都需要硬件电路的支持为日常维护和管理增加了难度. 为了更好地实现交通畅通不断优化交通信号灯的智能化管理通过采用EDA技术对交通信号灯控制电路进行改进,应用VHDL语言实现电路的设计和仿真消除了传统交通信号灯控制电路的弊端使交通信号灯控制电路的性能更稳定调试和维护更便捷。 VHDL语言全称是超高速集成电路硬件描述语言"( Very High Speed Integrated Circuit Hardware Description Language) , 1982年被研发出来以。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言,并公布了VHDL的IEEE- 1076版(87版)0 1993年IEEE对VHDL进行修订,从更高的抽象层次和系统描述能力上扩展了VHDL的内容,公布了新的VHDL版木,即IEEE标准的1076-1993版木(93版)。VHDL语言描述能力强,覆盖了逻辑设计的诸多领域和层次,大大简化了硬件设计任务,提高设计的可靠性。基于VHDL语言的设计方法得到了广泛的应用,VHDL语言己成为硬件描述语言的工业标准。一 交通信号灯的要求以及时间设计 自动化的交通信号灯是由交通信号控制器控制其红绿灯周期变化的。尽管目前交通信号灯由定时控制向协调控制发展,多时段多方案的交通信号控制器在城市的主要交叉路口逐步取代单方案的控制器,但是从实际应用情况看,目前城市道路平面交叉口的交通控制仍以定周期控制为主。根据交通规则,每次绿灯换红灯前,黄灯先亮较短时间河在2-4s内设定久设双向4 -8车道,十字路口交通灯通行顺序为:首先主干道东西向左拐绿灯亮,左拐放行时间为22s,同时允许东西右转,南北向右转,当左拐倒计时到3s时,左拐绿灯闪烁,然后黄灯值亮2s后,左拐红灯亮,左转状态时东西南北行人均红灯禁止通行;接着主干道东西直行和右行绿灯亮,放行时间较长,允许通行时间为50s、在倒计时到3s时,绿灯每间隔0. 5 s闪烁,提醒司机将要禁止通行,然后黄灯亮的时间值为2、以便已通过控制线,但尚未走出十字路口的车辆通过,后面的司机看到黄灯及时降低速度或刹车等待,同时,在东西直行状态东西向行人绿灯通行.然后通行状态切换到支干道,通行规律与过程同主干道,只是次干道左拐时间12、直行时间30 s主次道交替通行,周而复始.通行规律和状态转换如图。 图1 车道交通灯控制时序图二 控制器VHDL的设计和实现(1) 采用层次化的设计方法系统由晶体振荡电路、限状态机、倒计时显示电路灯组等组成,如图2所示.分频电路、定时电路、有交通灯控制信号及交通根据系统状态转换的要求。图2 系统组成图 主控制器是系统的核心,由它产生主、支干道的信号灯控制信号,各个信号灯的控制信号在时序上应满足图1所示的交通信号灯的时序要求,并产生倒计时计数器的使能信号。主、支干道灯时减法计数器在使能信号的控制下,分别完成红、绿灯时段剩余时间的倒计时,其输出信号送译码显示电路。层次化的设计方法,关键在于依据系统的要求,对各层次的功能进行合理划分,以便利用VHDL语言进行程序设计。针对本设计的具体要求,将设计划分为两个层次较为合理,即顶层模块和功能单元模块。对于顶层设计模块,输入信号有1 MHz的基准时钟脉冲、相位设定值、主支干道绿灯时间、左转绿灯时间、黄灯时间等设定值及复位信号。输出信号包括各个方向的绿灯、黄灯、红灯控制信号,倒计时计数器的十位、个位的8421 BCD码信号。对于功能单元模块,按其功能分为4个单元,即分频单元、主控制器单元、主、支干道灯时倒计时单元。层次化设计的结构如图3所示。 根据系统状态转换的要求,时钟电路产生32 768 Hz的信号,经215 H z和216Hz分频得到周期O.5s和1s的标准信号.32 768 H z还用于倒计时显示电路的刷新,计时电路根据交通信号灯每个状态需要持续的时间,预先设置相应计数器的初值,递减计数,在减到0前,状态机维持原状态,并产生11位的信号用于控制交通灯.当完成相应的定时后,使其转换到下一个状态,红黄绿信号灯也作相应的改变.限于篇幅略去倒计时及译码显示单元和LED信号灯组的驱动部分. 图3 交通信号灯状态转换图(2) 交通管理器的设计本设计采用层次描述方式,也采用原理图输入和文本输入混合方式建立描述文件。 图4 交通管理器工作流程 图 5 交通管理器顶层图形文件 (3) 控制器的逻辑描述控制器是整个交通管理器的核心部件,控制三个定时器相互配合工作,保证交通安全畅通无阻运行的关键所在.它的逻辑描述如下: LIBRARY IEEE;USE IEEE. STD_ LOGIC_ 1164. ALL;ENTITY traffic _ control IS PORT( clk:IN STD_ LOGIC; c1,c2,c3:OUT STD_ LOGIC; 一各定时计数器的使能信号w1,w2,w3:IN STD_ LOGIC; 一各定时计数器的工作信号 R1,R2:OUT STD_ LOGIC; 一两个方向的红灯信号Y1,Y2:OUT STD_ LOGIC; 一两个方向的黄灯信号G1,G2:OUT STD_ LOGIC; 一两个方向的绿灯信号 reset:IN STD_ LOGIC); 一复位信号END traffic_ control;ARCHITECTURE behave OF traffic control IS TYPE state_space IS ( s0,s1,s2,s3 ); SIGNAL state:state_space;BEGINPROCESS (clk)BEGIN IF reset=1 THEN state<=s0; ELSE (clkEVENT AND clk=1)THEN CASE state IS WHEN s0=>IF w1=1 THEN state<=s1; END IF; WHEN s1=>IF w2=1 THEN state<=s2; END IF; WHEN s2=>IF w3=1 THEN state<=s3; END IF; WHEN s3=>IF w2=1 THEN state<=s0; END IF; END CASE; END IF;END PROCESS; c1<=1 WHEN state=s0 ELSE 0 c2<=1 WHEN state=s1 0 R state=s3 ELSE 0 c3<=1 WHEN state=s2 ELSE 0 R1<=1 WHEN state=s1 OR state=s0 ELSE 0 Y1<=1 WHEN state=s3 ELSE 0 G1<=1 WHEN state=s2 ELSE 0 R2<=1 WHEN state=s2 OR state=s3 ELSE 0 Y2<=1 WHEN state=s1 ELSE 0G2<=1 WHEN state=s0 ELSE 0END behave: (4) 定时器的逻辑描述 在交通管理器中有三个定时器,每个定时器定时各不相同,但就其逻辑描述而言,是完全相同的,下面以30秒定时计数器的逻辑描述为例作以说明.LIBRARY IEEE;USE IEEE. STD_ LOGIC_ 1164. ALL;ENTITY count 30 IS PORT( clk:IN STD_ LOGIC; enable:IN STD_ LOGIC; c:OUT STD_ LOGIC);END count 30;ARCHITECTURE behave OF count 30 ISBEGIN PROCESS (clk) VARIABLE cnt:INTEGER RANGE 30 DOWN TO 0 BEGIN IF(clkEVENT AND clk=1)THEN IF enable=1 AND cnt<30 THEN cent:=cent+1; ELSE cent:=0: END IF;END IF;IF cent=30 THEN c<=1;ELSE c<=0; END IFEND behave: 编译器将顶层图形输入文件和第二层次功能块VHDL输入文件相结合并编译,即可产生交通管理器的目标文件. (5) 仿真图形 三 结束语 通过设计实例,在Alter Quartus II环境下,用VHDL语言和原理图实现交通管理器的复杂电路.根据VHDL的语法规则,对系统的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,利用波形仿真工具,可在短时间内设计出高效、稳定、符合设计要求的电路.这种设计方法使设计人员摆脱了电路细节的束缚,效率高、可靠性好、成本低,具有传统逻辑设计方法所无法比拟的优越性. 参考文献 1易铭.控制的交通信号灯控制系统的设计.工业控制计算机,2003,16(12):43-45. 2 林涛.基于语言的交通信号控制器的设计与实现.交通与计算机,2006(4):72-75. 3 杜玉远.基于CPLD的智能交通信号灯控制器.电子世界, 2004(2): 30-314 刘焕成,刘智勇.多单片机系统及分组式交通信号灯控制器.电子技术, 2003(8): 15-195 王正勇;基于FPGA的交通信号控制器的设计J;电子测量技术,2008.31(10):188-1906 施先旺,刘婷婷,李国良;采用有限状态机实现控制指令的可靠检测火箭推进J,2011(5);63-687 唐俊英:韩会山,陈 丽.EDA技术应用实例教程M.北京电子工业出版社.2008.8 李忠波,袁宏; 电子设计与访真技术M北京机械工业出版社2004.9 林建华,基于VHDL语言的交通灯管理系统的设计J,仪器仪表用户,2011.