步行街道自助式交通灯控制器课件Word文档下载推荐.docx
- 文档编号:16776585
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:16
- 大小:134.21KB
步行街道自助式交通灯控制器课件Word文档下载推荐.docx
《步行街道自助式交通灯控制器课件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《步行街道自助式交通灯控制器课件Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
表1状态表
状态
主干道信号灯
步行街信号灯
主干道
步行街道
R(红)
G(绿)
Y(黄)
ST0
1
通行
禁行
ST1
车停靠
ST2
ST3
通行(绿灯闪烁)
ST4
通行(Z秒内)
2.1.2方案二
依照设计要求,系统采用自底向上的设计方法。
系统整体由交通灯控制模块、计数模块和分频模块三部分组成。
(1)交通灯控制模块
交通灯控制模块主要实现设计要求的五种状态之间的转换,所以采用状态机来设计。
五种状态如表1所示。
(2)计数模块
计数模块模块主要作用控制五种状态之间的转换时间,根据设计要求,设置步行街和主干道两个方向的交通灯时间。
(3)分频模块
由于较大的频率可能使各个状态之间的转换过快,无法更好的观察,所以采用分频模块,把高频率分成低频率,更好实现设计。
2.1.3最佳方案选择
方案一采用自顶向下设计方法,整个设计是从系统顶层开始的,结合模拟手段,可以从一开始就掌握所实现系统的性能状况,结合应用领域的具体要求,在此时就调整设计方案,进行性能优化或折衷取舍。
随着设计层次向下进行,系统性能参数将得到进一步的细化与确认,并随时可以根据需要加以调整,从而保证了设计结果的正确性,缩短了设计周期。
方案二采用自底向上的设计方法,设计从系统的底层开始,不过设计好后不易修改,而且还不易设计。
所以,我们采用方案一。
2.2总体框图
图1整体设计框图
3、选择器件
1.装有QuartusII软件的微型计算机。
计算机的硬件尽可能高,至少可以实现QuartusII软件的使用。
2.硬件实现的芯片为PFGA/CPLD,芯片管脚的数量要保证足够设计的程序所要使用的数量,并且使其所有管脚都有可分配的管脚,可以实现QuartusII上综合、适配的程序下载后可以顺利实现。
3.五个LED灯,用来显示交通灯,即:
行人方向红灯、行人方向绿灯和车辆方向红灯、车辆方向绿灯、车辆方向黄灯五个方向的亮灭。
4、功能模块
4.1去抖模块
这个模块的主要作用是消除按键在敲击时产生的抖动。
当UPIN为低电平,DOWNIN为高电平时,表示按键按下,KEYOUT有高电平输出;
当UPIN为高电平,DOWNIN为低电平时,表示按键弹起,KEYOUT有低电平输出。
4.1.1VHDL源程序(DITHER.VHD)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYDITHERIS
PORT(
UPIN:
INSTD_LOGIC;
DOWNIN:
KEYOUT:
OUTSTD_LOGIC
);
ENDDITHER;
ARCHITECTUREBEHAVEOFDITHERIS
SIGNALOUT1:
STD_LOGIC;
SIGNALOUT2:
BEGIN
OUT1<
=NOT(OUT2ANDUPIN);
OUT2<
=NOT(OUT1ANDDOWNIN);
KEYOUT<
=OUT1;
ENDBEHAVE;
4.1.2生成的模块
图2DITHER模块
4.1.3仿真图
图3去抖模块仿真图
仿真分析:
输入UPIN、DOWNIN都为低电平时,输出KEYOUT为高电平;
输入UPIN为高电平、DOWNIN为低电平时,输出KEYOUT为低电平;
输入UPIN为低电平、DOWNIN为高电平时,输出KEYOUT为高电平;
输入UPIN、DOWNIN都为高电平时,输出KEYOUT为低电平。
4.2分频器模块
这个模块的主要主要是转换频率,把高频率转换成低频率。
分频后的频率更能适应电路的要求,使电路可以更好的运行。
4.2.1VHDL源程序(DIV.VHD)
ENTITYDIVIS
PORT
(
CLK_IN:
DIV_OUT:
OUTSTD_LOGIC
);
ENDDIV;
ARCHITECTUREaOFDIVIS
SIGNALFRE_N:
INTEGERRANGE0TO10;
SIGNALCLK_TMP:
BEGIN
DIV_OUT<
=CLK_TMP;
PROCESS(CLK_IN)
IFFALLING_EDGE(CLK_IN)THEN
IFFRE_N<
=9THEN
FRE_N<
=0;
CLK_TMP<
=NOTCLK_TMP;
ELSE
FRE_N<
=FRE_N+1;
ENDIF;
ENDif;
ENDPROCESS;
ENDa;
4.2.2生成的模块
图4DIV模块
4.2.3仿真图
图5分频器模块仿真图
输入CLK_IN信号经过十二个周期后,输出DIV_OUT第一个上升沿来临,实现了分频的作用。
4.3设置计数器模块
这个模块的主要作用是设置并存储主干道方向和步行街道方向的时间长短。
此模块预置了有效信号,通过加计数和减计数加大和减小预知的信号,从而实现对行人通行时间、行人方向信号灯闪烁时间和车辆通行时间的控制。
4.3.1VHDL源程序(COUNT.VHD)
ENTITYCOUNTIS
CLK:
INSTD_LOGIC;
CLEAR:
CLKADD:
CLKSUB:
PRE_SET:
INSTD_LOGIC;
HUMAN_SET:
RST:
GHUMAN_TIME:
OUTINTEGERRANGE31DOWNTO0;
GHUMAN_CLKT:
GVEHICLE_TIME:
OUTINTEGERRANGE31DOWNTO0
ENDCOUNT;
ARCHITECTUREBEHAVEOFCOUNTIS
SIGNALHUMAN_TIME:
INTEGERRANGE31DOWNTO0;
SIGNALVEHICLE_TIME:
SIGNALSSTATE:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALSCLK:
STD_LOGIC;
SIGNALDSCLK:
SSTATE<
="
0000"
WHENPRE_SET='
0'
ELSE
HUMAN_SET&
CLEAR&
CLKADD&
CLKSUB;
SCLK<
=CLKADDORCLKSUBORCLEAR;
PROCESS(CLK)
IF(CLK'
EVENTANDCLK='
1'
)THEN
DSCLK<
=SCLK;
ENDIF;
ENDPROCESS;
PROCESS(RST,CLEAR,DSCLK)
IF(RST='
VEHICLE_TIME<
=8;
ELSIF(DSCLK'
EVENTANDDSCLK='
CASESSTATEIS
WHEN"
0100"
=>
VEHICLE_TIME<
0101"
0110"
0111"
0001"
=VEHICLE_TIME-1;
0010"
=VEHICLE_TIME+1;
WHENOTHERS=>
=VEHICLE_TIME;
ENDCASE;
PROCESS(CLEAR,DSCLK)
HUMAN_TIME<
=4;
1100"
HUMAN_TIME<
1101"
1110"
1111"
1001"
=HUMAN_TIME-1;
1010"
=HUMAN_TIME+1;
=HUMAN_TIME;
PROCESS(PRE_SET,RST)
GHUMAN_TIME<
=5;
GHUMAN_CLKT<
=7;
GVEHICLE_TIME<
=15;
ELSIF(PRE_SET'
EVENTANDPRE_SET='
=HUMAN_TIME+3;
=HUMAN_TIME+VEHICLE_TIME+3;
4.3.2生成的模块
图6COUNT模块
4.3.3仿真图
图7计数器模块仿真图
当PRE_SET下降沿时,GHUMAN_TIME、GHUMAN_CLKT、GVEHICLE_TIME三个数组输出信号发生跳转,三者关系符合GVEHICLE_TIME<
=HUMAN_TIME+VEHICLE_TIME+3。
可以看出,满足计数器的预定功能。
4.4交通灯控制模块
这个模块的主要作用是交通灯五种状态的实现。
此模块采用状态机来实现交通灯的五种状态,设置了行人方向和车辆方向的五个交通灯,即行人方向红灯、行人方向绿灯和车辆方向红灯、车辆方向绿灯、车辆方向黄灯。
并设置了请求信号输入,作为行人要通过主干道的按钮。
4.4.1VHDL源程序(LIGHT.VHD)
ENTITYLIGHTIS
SRED:
OUTSTD_LOGIC;
SGREEN:
ERED:
EGREEN:
EYELLOW:
OUTSTD_LOGIC;
GT_SET:
ININTEGERRANGE31DOWNTO0;
ININTEGERRANGE31DOWNTO0;
REQUEST:
CLK:
INSTD_LOGIC
ENDLIGHT;
ARCHITECTUREBEHAVEOFLIGHTIS
TYPEIN_STATESIS(ST0,ST1,ST2,ST3,ST4);
SIGNALCURRENT_STATE:
IN_STATES;
SIGNALNEXT_STATE:
SIGNALSTART:
SIGNALSIG:
PROCESS(CURRENT_STATE,RST)
ORCURRENT_STATE=ST0)THEN
START<
='
;
ELSESTART<
A:
PROCESS(START,CLK)
SIG<
ELSIF(CLK'
IF(START='
IF(SIG=GVEHICLE_TIME)THEN
ELSESIG<
=SIG+1;
ENDPROCESSA;
PROCESS(RST,CLK)
CURRENT_STATE<
=ST0;
=NEXT_STATE;
PROCESS(CLK,CURRENT_STATE)
CASECURRENT_STATEIS
WHENST0=>
ERED<
EGREEN<
EYELLOW<
SRED<
SGREEN<
IF(REQUEST='
ANDGT_SET='
NEXT_STATE<
=ST1;
ELSENEXT_STATE<
WHENST1=>
IF(SIG=1)THEN
=ST2;
WHENST2=>
IF(SIG=GHUMAN_TIME)THEN
=ST3;
WHENST3=>
=NOTCLK;
IF(SIG=GHUMAN_CLKT)THEN
=ST4;
WHENST4=>
SRED<
NEXT_STATE<
4.4.2生成的模块
图8LIGHT模块
4.4.3仿真图
图9交通灯控制模块的仿真图
从图上可以看出五个交通灯的变化情况,符合源程序赋予的各个状态的变化。
5、总体设计原理图
5.1整体组装设计原理图
图10整体组装设计原理图
5.2整体仿真图
图11系统整体仿真图
当RST为高电平时,五种灯(行人方向红灯、行人方向绿灯和车辆方向红灯、车辆方向绿灯、车辆方向黄灯)按照五种状态依次变换,每种状态之间的变换时间与计数模块的一致。
5.3管脚分布
图12系统整体管脚分布
参考文献
1.曹昕燕,周凤臣,聂春燕。
EDA技术实验和课程设计。
北京:
清华大学出版社,2006。
2.潘松,黄继业。
EDA技术实用教程(第三版)。
科学出版社,2006。
3.谭会生。
EDA技术综合应用实例和分析。
西安:
西安电子科技大学出版社,2004。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步行 街道 自助式 交通灯 控制器 课件