资源描述:
《基于vhdl的交通灯控制器设计60382》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《现代电子技术》2007年第3期总第242期þ电子技术应用ü基于VHDL的交通灯控制器设计翟殿棠,方敏,厉光伟(济南大学控制科学与工程学院山东济南250022)摘要:传统的交通灯控制器多数由单片机或PLC实现,本文介绍基于EDA技术设计交通灯控制器的一种方案。EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,这在电子设计领域已得到设计者的广泛采用。给出了交通灯控制器的VHDL源程序和仿真结果。仿真结果表明该系统的设计方案正确。展示了VHDL语言的强大功能和优秀特性。关键词:交通灯控制器;电子设计自动化;硬件描述语言;可编程器件中图分类号:TN702文献标识码:
2、B文章编号:1004373X(2007)0318702DesignofTrafficLightControllerBasedonVHDLZHAIDiantang,FANGMin,LIGuangwei(SchoolofControlScienceandEngineering,JinanUniversity,Ji′nan,250022,China)Abstract:TrafficlightcontrollerisusuallydevelopedbymicroprocessororPLC.Thispaperintroducesthedesignoftrafficlightcontroller
3、baseonEDA,oneimportantcharacteristicoftheEDAisthatthedesigndocumentsshouldbecompletedbytheHDL,anditiswidelyusedbyelectronicdesignernow.TheVHDLsourceprogrammerandsimulatingresultsoftrafficlightcontrolleraregiven.Thesimulatingresultsshowthatthedesignmethodiscorrect,itshowsthepowerfulfunctionandexc
4、el2lentcharacteroftheVHDL.Keywords:trafficlightcontroller;EDA;HDL;PLD应用VHDL语言设计数字系统,大部分设计工作可为32768kHz,经分频器分频得1Hz的信号,1Hz信号在计算机上完成,从而缩短系统开发时间,提高工作效率。用做信号控制器的计数脉冲,用VHDL设计组成交通灯下面介绍基于VHDL设计交通灯控制器的一种方案,并控制器的分频器、信号控制器两个模块,在QuartusⅡ开给出源程序和仿真结果。发平台上,分别编译两个模块的VHDL程序,然后用原理图输入法形成图1所示的总体框图。1系统功能与要求交通灯控制器控制两个
5、主干道交叉路口的交通,路口车辆多,直行信号、左转弯信号分开显示,a,b两个主干道的通行时间相等,其中指示直行的绿灯亮30s,指示左转弯的绿灯亮12s,绿灯变至红灯时,黄灯亮3s,以便于车辆能停在停车线内,红灯信号的最后3s相应的黄灯也同时亮,以便提示驾驶人员准备起步。在两个主干道路口都配备传感器用来检测有无车辆通行。当两个主干道都有车辆时,自动处于主干道a绿灯,主干道b红灯的状态,然后轮流切换通行。当主干道a无车辆时,自动处于主干道b绿灯,主干道a红灯的状态;反之亦然,以提高通行效率。图1交通灯控器制总体框图其中信号控制器的VHDL程序如下:2设计与仿真libraryieee;usei
6、eee.stdlogic1164.all;根据交通灯控制器的功能与要求,将其总体电路分为entitytraffic3isport(clk,Sa,Sb,en1:inbit;分频器、信号控制器两个模块。外部脉冲振荡器的频率选aR,aY,aG,aLR,aLY,aLG,bR,bY,bG,bLR,bLY,bLG,aPR,aPG,bPR,bPG:outbit);endtraffic3;收稿日期:20060706architectureaoftraffic3is187智能交通翟殿棠等:基于VHDL的交通灯控制器设计typestatetypeis(a,b,c,d,e,f,g,h);aLR<=′1′;a
7、LY<=′0′;aLG<=′0′;signalstate:statetype;bR<=′0′;bY<=′0′;bG<=′1′;beginbLR<=′1′;bLY<=′0′;bLG<=′0′;cnt:process(clk)aPR<=′1′;aPG<=′0′;bPR<=′0′;bPG<=′1′;variables:integerrange0to25;if(Sb)=′1′thenvariableclr,en:bit;ifs>=24thenstate