Title of Report
Subtitle
By Your Name
1
Title of Report
Your Name
Your Class
Date
摘要和关键词
摘 要
:
交通灯控制系统通常要实现自动控制和手动控制其红绿灯的变化,基于 FPGA 设
计的交通灯控制系统电路简单、可靠性好。本系统可控制 2 个路口的红、黄、绿
三盏灯.让其按特定的规律进行变化。利用 Quartus Ⅱ对设计结果进行仿真,
发现系统工作性能良好。据此设计而成的硬件电路,也实现了控制要求。
关键词
:
交通灯 FPGA QuarusⅡ自动控制 人工控制
Abstract:
The traffic light control system usually must realize the automatic control
and the hand control. The traffic light control system based on FPGA is
simple and reliable. This system can control red, yellow and green lamps
of two intersections,making the change according to the specific rule.
Using the Quartus Ⅱ simulate the result of design,discovering
performance of this system is good. The hardware electric circuit based
on this design can be able to realize the request.
Key words:
Traffic light system; FPGA; Quartus Ⅱ; Automatic control; Manual control
设计任务要求
控制器部分的状态转移图和流程图;交通灯控制器:用于十字路口的交通灯控制
器。实验要求:
2
1. 东西方向各有一组红,黄,绿灯用于指挥交通,红,黄,绿的持续时间分别为
25s,5s,20s 。
2. 当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结
束后,控制器恢复原来状态,正常工作。
3. 两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。
4. 选做:增加左、右转弯显示控制功能;
5. 选做:其它自拟功能。
设计思路
1
.总体设计:
由设计任务要求可知,输入部分有:
1) CLK 时钟频率输入,可由实验板上直接提供,为准确确定时间长度,选
择 High 挡的 1MHz 高平信号。
2) 紧急状态按键 KEY,当按一下键,表示紧急情况发生,两个方向均为红
灯亮,计时停止并不断闪烁,蜂鸣器蜂鸣;当再次按下键时,信号灯和计时
器恢复原来状态,正常工作。
输出部分有:
1) 东西方向和南北方向各使用 4 个 LED 显示,红黄绿各代表红黄绿灯,绿
灯和另一个红灯同时亮时为左转时间。
2) 东西方向和南北方向计时均为 2 位数,共需要 4 个 LED 七段数码管显
示。由于为共阴极控制,输出一个 catn 信号控制选择数码管显示,
num_out 信号输出显示的内容。
3) 增加一个 voice 输出,控制紧急状态下的蜂鸣器。
总体设计图,如下
3
2
.分块设计:
1) 在 VHDL 设计中,采用自顶向下的设计思路。
顶层模块中,根据硬件设计,设置如下端口:
外部时钟信号:Clk
紧急状态按键:Key
东西方向状态灯:r1,y1,g1,t1
南北方向状态灯:r2,y2,g2,t2
蜂鸣器控制:voice
数码管显示信号:num_out
数码管共阴极控制:catn
2) 在底层中,把不同功能分模块设计。
Emergency 模块:紧急情况控制信号是采用按键的输入方式,当按键
按下时候,由 Emergency 模块接收按键信息并输出信号给其它模块。
输入端口:BTN_in 接收按键信息
输出端口:BTN_out 输出紧急信号
Clk r1
Key y1
g1
t1
Key
r2
y2
g2
t2
voice
num_out(0-6)
catn(0-5)
CLK
按键
数码管显示输出
数码管共阴极控制
东西向
交通灯
南北向
交通灯
蜂鸣器
Main
4
Debounce 模块,由于紧急控制采用 BTN 按键,其产生时刻和持续时间
的长短是随机不定的,且存在因开关簧片反弹引起的电平抖动现象,因
此必须安排一个消抖和同步化电路模块,以保证系统能捕捉到输入脉
冲。
输入端口:key 按键信息,clk 时钟信号
输出端口:key_out 消抖后信号
Frequency1 模块,由于外部时钟信号 clk 的频率为 1MHz,而实际需
要的内部计时时钟频率为 1Hz,需要一个分频电路。
输入端口:clk 外部时钟信号
输出端口:clk_out 分频后信号
StatusSelect 模块,由于共需要显示 4 个数字,需要循环点亮 7 位数码
管,该模块通过输入的时钟信号,循环输出 4 个选择信号。当紧急状态
信号到来,改变显示状态,通过计数部分,实现闪烁,并输出蜂鸣信
号。
输入端口:clk 时钟信号,show 紧急显示
输出端口:sel 选择信号,voice 蜂鸣信号
TimeSelect 模块,接收状态选择信号以及交通灯剩余时间信号,根据
状态选择信号,选择剩余时间的位数输出给译码模块,并选择阴极控制
显示位置。
输入接口:sel 状态选择信号,
timeh1 timel1 timeh2 timel2 剩余时间
输出接口:catn 共阴极控制,time_out 数字输出
Display 模块,接收数字信号,进行 7 位数码管显示译码输出。
输入接口:num_in 输入信号
输出接口:num_out 译码输出
信号灯控制模块,东西方向 ControlA,南北方向 ControlB。自定义一
个 Type 类型,包括 green,yellow,red,turn 状态,接收到分频后的信
号,通过 case 语句,进行状态选择,在每个状态下分别计时,当计时