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 ,定时器开始清零,准备重新计时。
设交通灯控制器的控制过程分为四个阶段,对应的输出有四种状态,分别用S 0、 S 1、 S 2
和S 3表示:
S 0状态:主干道绿灯亮支干道红灯亮,此时若支干道有车等待通过,而且主干道绿灯已亮足规定的时间间隔T L ,控制器发出状态转换信号S T ,输出从状态S 0转换到S 1。 S 1状态:主干道黄灯亮,支干道红灯亮,进入此状态,黄灯亮足规定的时间间隔T Y 时,控制器发出状态转换信号S T ,输出从状态S 1转换到S 2。
S 2状态:支干道绿灯亮,主干道红灯亮,若此时支干道继续有车,则继续保持此状态,但支干道绿灯亮的时间不得超过T S 时间间隔,否则控制器发出状态转换信号S T ,使输出转换到S 3状态。
S 3状态:支干道黄灯亮,主干道红灯亮,此时状态与S 1状态持续的时间间隔相同,均为T Y ,时间到时,控制器发出S T 信号,输出从状态S 3回到S 0状态。
对上述S 0、S 1、S 2和S 3四种状态按照格雷码进行编码分别为00、01、11和10,由此得到交通灯控制系统的ASM 图如图1-3所示。设系统的初始状态为主干道绿灯亮、支干道红灯亮,用S 0状态框表示。当S 0状态持续时间T L 大于等于60秒,并且支干道有车等待通过,传感器S=1时,此时满足判断框中的T L ·S =1条件,系统控制器发出状态转换信号S T ,由条件输出框表示,同时系统从状态S 0转到主干道黄灯亮、支干道红灯亮的S 1状态。依此类推得出1-3所示的ASM 的图。
1-3 交通灯控制器ASM 图
4、设计交通灯控制器的各功能模块电路
(1)设计控制器
T L ⋅S
T Y
图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 定时时间信号。
当系统处于S 0状态,为满足主干道绿灯亮、支干道红灯亮的定时时间T L ≥60秒,当二进制计数器从0计数到59时,要将M60的输出端反馈到计数器的使能端EN ,使它计到59时停止计数,并保持在M=60的状态直到支干道有车要通过时,才转换到S 1状态。 要求计数器在状态转换信号S T 作用下,首先清零,然后开始计数。定时器框图如图1-5
S M5
图1-5 定时器框图
计数器具有高电平有效使能端EN ,低电平有效同步清零端CLR 和进位输出端C O 。控制器发出的S T 信号是高电平有效,所以经反相后接至计数器清零端,当计数到Q 5 Q 4Q 3Q 2Q 1Q 0=111011,即M=60时,C o =1,将其反相后接入使能端EN ,就可以保持在M=60状态。
定时器也可以采用可预置计数初始值的递减计数器实现,当计数器从初始值59减到0时停止计数,具体实现方法请读者自己思考。
(3) 设计译码器
系统的输出是在Q 1Q 0驱动下的六个信号灯,各状态与信号灯的关系如表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、实验心得体会(实验中出现的问题及解决的措施,对动手能力的培养,教学建议等。)
预备知识 实验设备电路板结构
一、实验设备电路板的布局图
图1 实验设备电路板布局图
《ZH-1电子线路综合设计实验教学系统》实验设备电路板的布局图如图1所示。它由红外数据传输部分、高频发射-接收部分(含LC 振荡与调频、高频功放、FM 接收、频率合成)、FPGA 数字电路部分以及自主设计电路的实验面包板部分所组成。本实验设备自带稳压电源,接通设备箱外部右边的三相交流电源插座(内带0.5A 保险丝),开启电源开关,交流电源指示灯亮,内部直流稳压电源开始工作。实验电路板上共有4个电源开关,其中红外部分的电源开关是S3,FPGA 数字电路部分的电源开关是S4,频率合成部分的电源开关是S1,LC 振荡与调频、高频功放和FM 接收这三个电路板共用一个电源开关S2。以上电源接通10分钟以后才能做实验。自主设计电路的实验面包板部分的电源可以由外接的稳压电源引入,也可以由FM 接收部分的电源接线柱提供的直流电压(+5V 、+12V 、-12V 和GND )引入。注意这些电压之间不能短路!!以免将本设备的电源损坏!!
二、各实验电路板部分的信号测试端定义
1、红外部分的信号测试端定义 TJ100 37KHz 编码调制信号端
TJ101 红外信号接收端(TTL 电平输出)
TJ104 红外调制信号端
JP100短路子 单片机89S51的P31与红外发射部分的连接端。如果发射单片机的信号,将JP100的短路子短接。如果发射自己设计的电路信号就断开JP100,信号由TJ104引入。
J100(20芯插座) 单片机89S51的P2和P3与外部的I/O接口 DB25插座 89S51系列单片机的程序下载接口
S101 滑动开关,向上拨下载程序;向下拨运行程序。
TP-WDOG2 89S51系列单片机的程序下载接口,此接口电路必须自行设计。
2、LC 振荡与调频部分的信号测试端定义
TJ400 LC 振荡电路的输出端(5.35MHz 正弦波信号) TJ401 模拟调制信号(1KHz )输入端 TJ402 数字调制信号(TTL )输入端
J5短路子 调频信号的输出与功放部分的输入连接端。
3、频率合成部分的信号测试端定义
TJ300 MC145151的4脚输出的直流信号 TJ301 频率合成信号的输出端
TJ303 频率合成信号转变为TTL 电平后经1024分频信号的输出端 UD300 八组拨码开关(SW8最高位,SW1最低位)
J300 频率合成器外部信号输入端(拨码开关UD300的1-8全向下拨)。
4、功放部分的信号测试端定义 TJ500 丙类功放的输出端 TJ501 射随器的输出端 TJ502 丙类功放的输入端
TJ503 射随器的输入端,自行设计LC 振荡调频电路时,J5短路子开路, 振
荡调频电路由此端接入。
J6短路子 功放部分输出与FM 接收部分输入连接端,无线传输时短路子开路。
5、FM 接收部分的信号测试端定义 TJ600 MC3361输入信号测试端 TJ601 解调信号经放大后的输出端 TJ602 解调信号经整形后的TTL 输出端
TJ603 解调信号经功放后的输出端(调节电阻R605,可衰减输入信号。)
6、FPGA 数字部分的信号端定义
DB25插座 FPGA 程序下载接口, 与计算机的并口直接相连 EPF10K10LC84-4的资源分配 见附录1
7、电源接线柱 +5V 接线柱 +12V 接线柱 -12V 接线柱 GND 接线柱
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 ,定时器开始清零,准备重新计时。
设交通灯控制器的控制过程分为四个阶段,对应的输出有四种状态,分别用S 0、 S 1、 S 2
和S 3表示:
S 0状态:主干道绿灯亮支干道红灯亮,此时若支干道有车等待通过,而且主干道绿灯已亮足规定的时间间隔T L ,控制器发出状态转换信号S T ,输出从状态S 0转换到S 1。 S 1状态:主干道黄灯亮,支干道红灯亮,进入此状态,黄灯亮足规定的时间间隔T Y 时,控制器发出状态转换信号S T ,输出从状态S 1转换到S 2。
S 2状态:支干道绿灯亮,主干道红灯亮,若此时支干道继续有车,则继续保持此状态,但支干道绿灯亮的时间不得超过T S 时间间隔,否则控制器发出状态转换信号S T ,使输出转换到S 3状态。
S 3状态:支干道黄灯亮,主干道红灯亮,此时状态与S 1状态持续的时间间隔相同,均为T Y ,时间到时,控制器发出S T 信号,输出从状态S 3回到S 0状态。
对上述S 0、S 1、S 2和S 3四种状态按照格雷码进行编码分别为00、01、11和10,由此得到交通灯控制系统的ASM 图如图1-3所示。设系统的初始状态为主干道绿灯亮、支干道红灯亮,用S 0状态框表示。当S 0状态持续时间T L 大于等于60秒,并且支干道有车等待通过,传感器S=1时,此时满足判断框中的T L ·S =1条件,系统控制器发出状态转换信号S T ,由条件输出框表示,同时系统从状态S 0转到主干道黄灯亮、支干道红灯亮的S 1状态。依此类推得出1-3所示的ASM 的图。
1-3 交通灯控制器ASM 图
4、设计交通灯控制器的各功能模块电路
(1)设计控制器
T L ⋅S
T Y
图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 定时时间信号。
当系统处于S 0状态,为满足主干道绿灯亮、支干道红灯亮的定时时间T L ≥60秒,当二进制计数器从0计数到59时,要将M60的输出端反馈到计数器的使能端EN ,使它计到59时停止计数,并保持在M=60的状态直到支干道有车要通过时,才转换到S 1状态。 要求计数器在状态转换信号S T 作用下,首先清零,然后开始计数。定时器框图如图1-5
S M5
图1-5 定时器框图
计数器具有高电平有效使能端EN ,低电平有效同步清零端CLR 和进位输出端C O 。控制器发出的S T 信号是高电平有效,所以经反相后接至计数器清零端,当计数到Q 5 Q 4Q 3Q 2Q 1Q 0=111011,即M=60时,C o =1,将其反相后接入使能端EN ,就可以保持在M=60状态。
定时器也可以采用可预置计数初始值的递减计数器实现,当计数器从初始值59减到0时停止计数,具体实现方法请读者自己思考。
(3) 设计译码器
系统的输出是在Q 1Q 0驱动下的六个信号灯,各状态与信号灯的关系如表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、实验心得体会(实验中出现的问题及解决的措施,对动手能力的培养,教学建议等。)
预备知识 实验设备电路板结构
一、实验设备电路板的布局图
图1 实验设备电路板布局图
《ZH-1电子线路综合设计实验教学系统》实验设备电路板的布局图如图1所示。它由红外数据传输部分、高频发射-接收部分(含LC 振荡与调频、高频功放、FM 接收、频率合成)、FPGA 数字电路部分以及自主设计电路的实验面包板部分所组成。本实验设备自带稳压电源,接通设备箱外部右边的三相交流电源插座(内带0.5A 保险丝),开启电源开关,交流电源指示灯亮,内部直流稳压电源开始工作。实验电路板上共有4个电源开关,其中红外部分的电源开关是S3,FPGA 数字电路部分的电源开关是S4,频率合成部分的电源开关是S1,LC 振荡与调频、高频功放和FM 接收这三个电路板共用一个电源开关S2。以上电源接通10分钟以后才能做实验。自主设计电路的实验面包板部分的电源可以由外接的稳压电源引入,也可以由FM 接收部分的电源接线柱提供的直流电压(+5V 、+12V 、-12V 和GND )引入。注意这些电压之间不能短路!!以免将本设备的电源损坏!!
二、各实验电路板部分的信号测试端定义
1、红外部分的信号测试端定义 TJ100 37KHz 编码调制信号端
TJ101 红外信号接收端(TTL 电平输出)
TJ104 红外调制信号端
JP100短路子 单片机89S51的P31与红外发射部分的连接端。如果发射单片机的信号,将JP100的短路子短接。如果发射自己设计的电路信号就断开JP100,信号由TJ104引入。
J100(20芯插座) 单片机89S51的P2和P3与外部的I/O接口 DB25插座 89S51系列单片机的程序下载接口
S101 滑动开关,向上拨下载程序;向下拨运行程序。
TP-WDOG2 89S51系列单片机的程序下载接口,此接口电路必须自行设计。
2、LC 振荡与调频部分的信号测试端定义
TJ400 LC 振荡电路的输出端(5.35MHz 正弦波信号) TJ401 模拟调制信号(1KHz )输入端 TJ402 数字调制信号(TTL )输入端
J5短路子 调频信号的输出与功放部分的输入连接端。
3、频率合成部分的信号测试端定义
TJ300 MC145151的4脚输出的直流信号 TJ301 频率合成信号的输出端
TJ303 频率合成信号转变为TTL 电平后经1024分频信号的输出端 UD300 八组拨码开关(SW8最高位,SW1最低位)
J300 频率合成器外部信号输入端(拨码开关UD300的1-8全向下拨)。
4、功放部分的信号测试端定义 TJ500 丙类功放的输出端 TJ501 射随器的输出端 TJ502 丙类功放的输入端
TJ503 射随器的输入端,自行设计LC 振荡调频电路时,J5短路子开路, 振
荡调频电路由此端接入。
J6短路子 功放部分输出与FM 接收部分输入连接端,无线传输时短路子开路。
5、FM 接收部分的信号测试端定义 TJ600 MC3361输入信号测试端 TJ601 解调信号经放大后的输出端 TJ602 解调信号经整形后的TTL 输出端
TJ603 解调信号经功放后的输出端(调节电阻R605,可衰减输入信号。)
6、FPGA 数字部分的信号端定义
DB25插座 FPGA 程序下载接口, 与计算机的并口直接相连 EPF10K10LC84-4的资源分配 见附录1
7、电源接线柱 +5V 接线柱 +12V 接线柱 -12V 接线柱 GND 接线柱