交通灯设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA 实现交通灯控制系统的设计
一、实验目的与要求
掌握用FPGA 可编程逻辑器件实现交通灯控制系统的基本功能的设计方法。 熟悉交通灯控制系统的ASM 图和状态转换图的设计方法。
二、实验原理
1、设计要求
设计一个十字路口主干道和支干道的交通灯控制系统,其示意图如图1-1所示。
主干道
支干道
主干道
支干道
(a) 交通灯干道示意图 (b) 交通灯控制框图
图1-1 交通灯控制示意图
其功能要求如下:(1)支干道两边安装传感器S ,要求优先保证主干道的畅通。主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮的时间不得少于60秒。(2)主干道无车,支干道有车时,则主干道红灯亮、支干道绿灯亮。但支干道绿灯亮的时间不得超过30秒。(3)主干道或支干道绿灯变红灯时,黄灯先亮5秒钟。
2、系统组成框图
根据上述功能要求,设计的交通灯控制系统组成框图如图1-2所示。其中定时器向控制器发出定时信号T L (主干道绿灯亮60秒)、Ts(支干道绿灯亮30秒)和T Y (黄灯亮5秒),如果定时时间到,则控制器向定时器发出状态转换信号S T ,定时器清零,准备重新计数。译码电路在控制器的控制下,改变红、绿、黄交通灯的显示。
时钟
1-2 交通灯控制系统组成框图
3、画ASM图
设HG、HY、HR分别表示主干道绿灯、黄灯、红灯;FG、FY、FR分别表示支干道绿灯、黄灯、红灯。T L为主干道绿灯亮的最短时间,不少于60秒;T S为支干道绿灯亮的最长时间,不多于30秒。T Y为主干道或支干道黄灯亮的时间为5秒。定时器分别产生60秒、30秒、5秒三个定时时间,向控制器发出定时时间已到信号,控制器根据定时器及传感器的信号,决定是否进行状态转换。如果肯定,则控制器发出状态转换信号S T,定时器开始清零,准备重新计时。
设交通灯控制器的控制过程分为四个阶段,对应的输出有四种状态,分别用S0、S1、S2和S3表示:
S0状态:主干道绿灯亮支干道红灯亮,此时若支干道有车等待通过,而且主干道绿灯已亮足规定的时间间隔T L,控制器发出状态转换信号S T,输出从状态S0转换到S1。
S1状态:主干道黄灯亮,支干道红灯亮,进入此状态,黄灯亮足规定的时间间隔T Y时,控制器发出状态转换信号S T,输出从状态S1转换到S2。
S2状态:支干道绿灯亮,主干道红灯亮,若此时支干道继续有车,则继续保持此状态,但支干道绿灯亮的时间不得超过T S时间间隔,否则控制器发出状态转换信号S T,使输出转换到S3状态。
S3状态:支干道黄灯亮,主干道红灯亮,此时状态与S1状态持续的时间间隔相同,均为T Y,时间到时,控制器发出S T信号,输出从状态S3回到S0状态。
对上述S0、S1、S2和S3四种状态按照格雷码进行编码分别为00、01、11和10,由此得到交通灯控制系统的ASM图如图1-3所示。设系统的初始状态为主干道绿灯亮、支干道红灯亮,用S0状态框表示。当S0状态持续时间T L大于等于60秒,并且支干道有车等待通过,传感器S=1时,此时满足判断框中的T L·S=1条件,系统控制器发出状态转换信号S T,由条件输出框表示,同时系统从状态S0转到主干道黄灯亮、支干道红灯亮的S1状态。依此类推得出1-3所示的ASM的图。
1-3 交通灯控制器ASM 图
4、设计交通灯控制器的各功能模块电路
(1)设计控制器
T Y
T S
L ⋅
图1-4 交通灯控制器状态转换图
根据图1-3所示交通灯控制系统的ASM 图,得出系统状态图如图1-4所示。ASM 图中的状态框与状态图中的状态相对应,判断框中的条件是状态转换的输入条件,条件输出框与控制器状态转换的输出相对应。状态图是描述状态之间的转换,例如在S 0状态,如果条件T L .S=1时,系统状态转移到S 1,同时输出状态转换信号S T 。如果T L ·S = 0,则系统保持在S 0状态。
(2)设计定时器
定时器由与系统秒脉冲同步的计数器构成,时钟脉冲上升沿到来时,在控制信号S T 作
用下,计数器从零开始计数,并向控制器提供模M5、M30和M60信号,即T Y、T S和T L 定时时间信号。
当系统处于S0状态,为满足主干道绿灯亮、支干道红灯亮的定时时间T L≥60秒,当二进制计数器从0计数到59时,要将M60的输出端反馈到计数器的使能端EN,使它计到59时停止计数,并保持在M=60的状态直到支干道有车要通过时,才转换到S1状态。
要求计数器在状态转换信号S T作用下,首先清零,然后开始计数。定时器框图如图1-5
S
M5
图1-5 定时器框图
计数器具有高电平有效使能端EN,低电平有效同步清零端CLR和进位输出端C O。控制器发出的S T信号是高电平有效,所以经反相后接至计数器清零端,当计数到Q5 Q4Q3Q2Q1Q0=111011,即M=60时,C o=1,将其反相后接入使能端EN,就可以保持在M=60状态。
定时器也可以采用可预置计数初始值的递减计数器实现,当计数器从初始值59减到0时停止计数,具体实现方法请读者自己思考。
(3) 设计译码器
系统的输出是在Q1Q0驱动下的六个信号灯,各状态与信号灯的关系如表1-1示
表1-1 信号灯与控制器状态编码表
三、实验内容与步骤
全部程序由学生设计,实验步骤如下:
1、设计交通灯控制系统模块程序(参考程序见附录1)。
2、仿真实验:在quartusII9.0开发环境下,对交通灯信号控制系统的程序进行仿真实
验(设计输入-编译设计项目-仿真验证)。
3、分配可编程逻辑器件芯片的引脚,如表1-2示(参考程序)。
表1-2 交通灯控制系统引脚分配(参考程序)
注:(1)引脚49~59:译码器输入,与实验八定义相同。
(2)拨码开关S1-4向上为“0”,表示支干道无车;拨码开关S1-4向下为“1”表示支干道有车。
4、下载程序:将计算机并口与FPGA下载部分的DB25接口连接,开启数字部分的电源开关S4,运行quartusII9.0的下载程序,下载完成后主干道绿灯亮,从“00”开始计数。
5、功能测试:按照表1-2进行操作。
表1-2 交通灯控制系统功能测试
四、设计性实验报告要求
1、简述交通灯信号控制系统的工作原理。
2、描述你设计的交通灯信号控制系统的程序设计思路与ASM流程图工作原理。
3、描述各个程序模块的功能,编写各个电路模块的程序,将编写的源程序作为文件
附录。
4、将仿真的波形作为文件附录。
5、参考表1-2 所示的交通灯控制系统,列出功能测试表。
6、分析电路装调中出现的故障及解决的措施。
7、实验心得体会(实验中出现的问题及解决的措施,对动手能力的培养,教学建议等。)