Dec.2007
基于EDA的交通灯控制器设计
●刘和生,刘明启
(新余高等专科学校, 江西 新余 338000)
摘 要:EDA技术是在先进的计算机工作平台上开发出来的一整套电子系统设计的软硬件工具,并提供了先进的电子
系统设计方法,开发人员可以通过自己的电子系统设计来定制其芯片内部的电路功能,使之成为设计者自己的专用集成电路。介绍一种基于EDA技术,用ASM图法设计的交通灯控制器。关键词:EDA;ASM图法;交通灯控制器中图分类号:TP27 文献标识码:A 文章编号:1008-6765(2007)06-0075-03
EDA技术是现代电子信息工程领域的一门新技术,它是在先进的计算机工作平台上开发出来的一整套电子系统设计
的软硬件工具,并提供了先进的电子系统设计方法。当今的EDA技术更多的是指芯片内的电子系统设计自动化,即片上系统(SOC)设计。也就是说,开发人员完全可以通过自己的电子系统设计来制定其芯片内部的电路功能,使之成为设计者自己的专用集成电路(ASIC)芯片,可以将设计过程中的许
多细节问题抛开,而将注意力集中在系统的总体开发上,实现了真正意义上的电子设计自动化。
算法状态图(ASM图)是一种描述数字系统控制算法的编程图。有了描述某个数字系统的ASM图,就很容易写出相应的VHDC设计文本,再通过下载到CPLD器件,就可实现数字系统的功能。ASM图中有三种基本符号,状态栏、判断框和条件输出框。
图1交通灯示意图 图2交通灯系统框图
1设计要求 假设交通灯信号控制器用于主干道m与支道f的交叉路口,如图(1)所示,两个路口都配有传感器以检测有无车辆通行。应优先保证主干道的畅通,即当支道无车时,总处于“主
干道绿灯,支道红灯”状态。当支道、主道都有车时,则轮流切
换通行。且只有在支道有车辆要穿行主干道时,才切向“主干道红灯,支道绿灯”,但一旦支道无车辆时,交通灯又立即回到“主干道绿灯,支道红灯”状态。若主干道始终无车、而支道
收稿日期:2007-08-24
第一作者简介:刘和生(1973-),男,江西新余人,讲师。
— 75—
第6期新 余 高 专 学 报 2007(第12卷)
又始终有车时,则保持“主干道红灯,支道绿灯”,但此时同样:一旦支道无车辆时,交通灯又立即回到“主干道绿灯,支道红灯”。此外,主干道和支道每次通行的时间为20s,而在两个状态交换过程出现的“主黄、支红”和“主红、支黄”状态,持续时间都为4s。根据控制要求,可把交通灯控制系统分解为
处理器(包含定时器及译码器)和控制器两大部分,原理框图如图(2)所示。2交通灯控制器
控制器的ASM图如图(3)所示。
图3交通灯交通灯控制系ASM图
variableS:integerrange0to19; //变量S为秒定
时器3交通灯控制器的VHDL文本
variablenclr,en:bit; //nclr低电平清零端、en高电根据图(3)所示ASM,即可编写出交通灯控制器的VHDL
平计数使能端文本如下。由VHDL文本生成的顶层元件符号及信号接口如
begin图(4)所示。
)then //若clk上升沿到if(clk′eventandclk=′1′
ifnclr=′0′thenS:=0; //同步清零elsifen=′0′thenS:=S; //由en=′0′停止计数elseS:=S+1; //否则加计数endif;
casestateiswhenA=〉Rm〈=′0′;Ym〈=′0′;Gm〈=′1′; //A状态:主干道绿灯亮
rf〈=′1′;yf〈=′0′;gf〈=′0′; //A状态:支道红灯亮if(sens_fandsens_m)=′1′the //若两个道都有车
ifS=19then //若又采到“19s标志位”信号
图4顶层元件及信号接口 state〈=B;nclr:=′0′;en:=′0′; //则为B状态、且
——————JTDKZ.vhd——————-清零、停止计数libraryieee;else //否则useieee.std_logic_1164.allstate〈=A;nclr:=′1′;en:=′1′; //继续A状态计entityJTDKZis数port(clk,Sens_m,sens_f:instd_logic;endif;Rm,Ym,Gm,rf,yf,gf:outstd_logic);elsif(sens_fand(notSens_m))=′1′then //若只有支道有EndJTDKZ;车architecturearcofJTDKZisstate〈=B;nclr:=′0′;en:=′0′; //则为B状态、且清零、
typestate_typeis(A,B,C,D);停止计数signalstate:state_type;else //否则beginstate〈=A;nclr:=′1′;en:=′1′; //继续A状态计数
cnt:process(clk)//定时器cnt进程endif;— 76—
2007(第12卷) 刘和生,刘明启:基于EDA的交通灯控制器设计 第6期
whenD=〉Rm〈=′1′;Ym〈=′0′;Gm〈=′0′; //D状态:
whenB=〉Rm〈=′0′;Ym〈=′1′;Gm〈=′0′; //B状态:主黄主红
rf〈=′1′;yf〈=′0′;gf〈=′0′; //B状态:支红rf〈=′0′;yf〈=′1′;gf〈=′0′; //D状态:支黄ifS=3then //若采到3s标志位信号ifS=3then //若又采到“3s标志位”信号state〈=C;nclr:=′0′;en:=′0′; //则为C状态、且清零、 state〈=A;nclr:=′0′;en:=′0′; //则为A状态、且清停止计数零、停止计数
else //否则else //否则state〈=B;nclr:=′1′;en:=′1′; //继续B状态计state〈=D;nclr:=′1′;en:=′1′; //继续D状态计数数endif;endif;whenC=〉Rm〈=′1′;Ym〈=′0′;Gm〈=′0′; //C状态:主红endcase;rf〈=′0′;yf〈=′0′;gf〈=′1′; //C状态:支绿endif;if(sens_fandSens_m)=′1′then //若两个道都有车endprocesscnt;ifS=19then //若又采到“19s标志位”信号endarc; state〈=D;nclr:=′0′;en:=′0′; //则为D状态、且清下载后,此硬件的功能合乎预定的要求。零、停止计数
else //否则参考文献:state〈=C;nclr:=′1′;en:=′1′; //继续C状态计[1]吴亦锋.可编程序控制器原理与应用速成[M].福州:福数建科学技术出版社,2005.
endif;[2]邓元庆.数字电路与逻辑设计[M].北京:电子工业出版elsifsens_f=′0′then //若支道无车社,2004.state〈=D;nclr:=′0′;en:=′0′; //则为D状态、且[3]尹常永.EDA技术与数字系统设计[M].西安:西安电子清零、停止计数科技大学出版社,2004.
else //否则state〈=C;nclr:=′1′;en:=′1′; //继续C状态计(责任编校:任 华)数
endif;
DesignoftrafficlightcontrollersbasedonEDA
LIUHe-sheng,LIUMing-qi
(XinyuCollege, Xinyu 338000 China)
Abstract:EDAisakindsoftandhardtooldesignedwiththeelectricsystemintheadvancedcomputerworkingplatform.Itofferstheadvanceddesignmethodoftheelectricsystem.Thedeveloperscandesigntheinternalcircuitfunctionsofchipsthroughtheirownelec2tricsystemsothattheybecomethedesigners’ownspecialintegratedcircuits.ThispaperintroducestrafficlightcontrollersbasedonEDAanddesignedbyASMdiagrammethod.Key words:EDA;ASMdiagrammethod;trafficlightcontrollers
— 77—
因篇幅问题不能全部显示,请点此查看更多更全内容