基于fpga的交通灯控制器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-2012学年度第二学期
电子技术基础课程设计交通灯控制器设计
院系:控制科学与工程系
专业:测控技术与仪器
班级:0901
姓名:
学号:
指导教师:
目录
一设计内容与要求 (3)
二、交通灯系统的设计过程 (3)
三、交通灯控制系统的结构 (3)
四、QUARTUSⅡ验证与仿真
4.1 运行模块仿真 (7)
4.2 设置模块仿真 (8)
五、管脚分配及下载 (9)
六、程序代码 (10)
七、心得体会 (14)
一、设计内容与要求
①设计一个十字路口交通信号灯的控制电路。要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。
②绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。要求主干道每次通行时间为Tx秒,支干道每次通行时间为Ty秒。每次变换运行车道前绿灯闪烁,持续时间为5秒。即车道要由X转换为Y时,X在通行时间只剩下5秒钟时,绿灯闪烁显示,Y仍为红灯。
③可以对X,Y车道上交通灯运行的时间进行重新设置,
20≦Tx≦99 ,10≦Ty≦39
④对器件进行在系统编程和实验验证。
⑤写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
二、交通灯系统的设计过程
2.1 经分析,系统的总体结构可以描述为下述的方框图:
2.2 交通灯控制器的控制过程分为四个阶段,对应的输出有四种状态,分别用S 0 (00), S 1 (01), S 2 (10)和S 3 (11)表示:
S0状态:主干道绿灯亮,支干道红灯亮,在主干道绿灯亮了(Tx-5)s 后,控制器发出状态转换信号St ,输出从状态S0转换到S1;
S1状态:主干道绿灯闪烁时间Tf (5S ),支干道红灯亮,进入此状态后,绿灯闪烁足够时间间隔Tx 时,控制器发出状态转换信号St ,输出从状态S1转换到状态 S2;
S2状态:主干道红灯亮,支干道绿灯亮,在支干道绿灯亮了(Ty-5)s 后,控制器发出状态转换信号St ,输出从状态S2转换到S3;
S3状态:主干道红灯亮,支干道绿灯闪烁5S ,进入此状态后,绿灯亮足够时间间隔Ty 时,控制器发出状态转换信号St ,输出从状态S3回到状态 S0;
由上述的状态描述可以得到如下的系统ASM 图及状态转换图:
以下是系统的状态转换图:
交通灯控制电路状态转换图
输入输出
现态状态转换条件次态状态转换标志
n Q
1
n
Q
0x
T
f
T y T1
1
+
n
Q1
+
n
Q
t
S
0 0 0 ××0 0 0
0 0 1 ××0 1 1
0 1 ×0 ×0 1 0
0 1 × 1 × 1 1 1
1 1 ××0 1 1 0
1 1 ×× 1 1 0 1
1 0 ×0 × 1 0 0
1 0 × 1 ×0 0 1
控制器真值表
三、交通灯控制系统的结构
此系统分为两个模块:设置模块和运行模块。运行模块负责交通灯的正常亮和灭,设置模块负责主干道和支干道的红绿灯闪亮时间的设置。
3.1 运行模块
运行模块系统输入输出的方框图如下:
系统的输入输出描述如下:
输入:
CLK:系统时钟,在这里为50MHz;
RESET:复位信号,低电平有效,有效时,TX,TY复位为初始值,这里分别默认为30S,16S;
SET_TYPE:设置类型信号,若为0,则设置的是主干道的绿灯时间TX;若为1,则设置的是支干道的绿灯时间TY;
UP_DOWN:设置方式信号,若为0,则为减设置;若为1,则为加设置;SET_ENABLE:设置使能信号,在它的每一个上升沿进行一次加或者减设置;输出:
H_NUM: 8位计数信号,显示主干道和支干道的时间;
H_LIGHT:两位主干道灯的显示信号,高位为红灯,低位为绿灯;为0表示灭,为1表示亮;
F_LIGHT:两位支干道灯的显示信号,高位为红灯,低位为绿灯;为0表示灭,为1表示亮;
TXY:时间设置显示信号,当设置的是主干道绿灯时显示主干道即时的TX;
当设置的是主干道绿灯时显示支干道即时的TY;
3.2 设置模块
设置模块系统输入输出的方框图如下:
系统的输入输出描述如下:
输入:
RESET:复位信号,低电平有效,有效时,TX,TY复位为初始值,这里分别默认为40S,16S;
SET_TYPE:设置类型信号,若为0,则设置的是主干道的绿灯时间TX;若为1,则设置的是支干道的绿灯时间TY;
UP_DOWN:设置方式信号,若为0,则为减设置;若为1,则为加设置;
SET_ENABLE:设置使能信号,在它的每一个上升沿进行一次加或者减设置;
输出:
TX: 8位时间信号,表示主干道设置后的绿灯亮的时间;
TY: 8位时间信号,表示支干道设置后的绿灯亮的时间;
注:若需要下载时,则考虑到数码管的显示问题,输出端口的说明有所不同,在这里的端口说明是仿真时的端口说明。
四、QUARTUSⅡ验证与仿真
4.1 运行模块仿真
输入信号仿真参数设置:CLK为秒脉冲信号,SET_TYPE、UP_DOWN、SET_ENABLE都为低电平,即在这里没有进行设置部分的仿真。
仿真结果如下图所示:
由上图仿真结果可以看出,主干道和支干道红绿灯亮、闪亮、灭均正常,计时由30-16-30s循环正常计时,设计目的得到验证。
4.2 设置模块仿真