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; BEGIN PROCESS (clk) BEGIN
IF reset=1' THEN state<=s0;
ELSE (clk'EVENT 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 '0 G2<=1' WHEN state=s0 ELSE '0 END 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 IS BEGIN
PROCESS (clk)
VARIABLE cnt:INTEGER RANGE 30 DOWN TO 0 BEGIN
IF(clk'EVENT 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 IF END behave:
编译器将顶层图形输入文件和第二层次功能块VHDL输入文件相结合并编译,即可产生交通管理器的目标文件.
(5) 仿真图形
三. 结束语
通过设计实例,在
Alter Quartus II环境下,用VHDL语言和原理图实现交通
管理器的复杂电路.根据VHDL的语法规则,对系统的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,利用波形仿真工具,可在短时间内设计出高效、稳定、符合设计要求的电路.这种设计方法使设计人员摆脱了 电路细节的束缚,效率高、可靠性好、成本低,具有传统逻辑设计方法所无法比拟的优越性.
参考文献
[1]易 铭.PLC控制的交通信号灯控制系统的设计[J].工业控制计算机,2003,16(12):43-45.
[2] 林 涛.基于VHDL语言的交通信号控制器的设计与实现[J].交通与计算机,2006(4):72-75.
[3] 杜玉远.基于CPLD的智能交通信号灯控制器.电子世界, 2004(2): 30-31 [4] 刘焕成,刘智勇.多单片机系统及分组式交通信号灯控制器.电子技术, 2003(8): 15-19
[5] 王正勇;基于FPGA的交通信号控制器的设计[J];电子测量技术,2008.31(10):188-190
[6] 施先旺,刘婷婷,李国良;采用有限状态机实现控制指令的可靠检测火箭推进[J],2011(5);63-68
[7] 唐俊英:韩会山,陈 丽.EDA技术应用实例教程[M].北京电子工业出版社.2008. [8] 李忠波,袁宏; 电子设计与访真技术[M]北京机械工业出版社2004.
[9] 林建华,基于VHDL语言的交通灯管理系统的设计[J],仪器仪表用户,2011.