论文题目:EDA交通灯课程设计院系:数学与计算机科学学院专业:数学与应用数学班级:08级数应(2)班姓名:王健(34)全晓静(19)梁慧()马晓燕()边海媛()二○一一年十二月十号1一,初始条件:设计一个具有四种信号灯的交通灯控制器。设计要求是:由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。信号灯变换次序为:主支干道交替允许通行,主干道每次放行40S,亮5S红灯让行驶中的车辆有时间停到禁行线外,左拐放行15秒,亮5S红灯;支干道放行30S,亮5S黄灯,左拐放行15秒,亮5S红灯……。各计时电路为倒计时显示。目录2一.方案分析与对比································21.1方案分析······································21.2方案对比······································2二.整体设计论述··································3三.单元模块设计与仿真····························63.1时钟分频模块·································63.2交通灯控制及计时模块··························73.3扫描显示译码模块······························93.4顶层文件的编写·······························10四.硬件实验方案及实验结果·······················134.1硬件实验方案·································134.2实验结果·····································15收获和体会···································15一.方案分析与对比§1.1方案分析通过分析可以知道,所要设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。能够做到主、支干道的红绿灯闪亮的时间不完全相同,在绿灯跳变红灯的过程中能够用黄灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。可以利用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。§1.2方案对比实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制3器和单片机等方案来实现。若用单片机方案来实现的话,模型可以由电源电路、单片机主控电路、无线收发控制电路和显示电路四部分组成。在电源电路中,需要用到+5V的直流稳压电源,无线收发控制电路和显示电路应由编码芯片和数据发射模块两部分组成,主控电路的主要元件为AT89C51。硬件设计完成后还要利用计算机软件经行软件部分的设计才能够实现相应的功能。虽然利用单片机系统设计的交通灯控制器相对来说较稳定,能够完成较多功能的实现,但这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统设计与调试的困难。相反,使用基于FPGA的设计方法具有周期短,设计灵活,易于修改等明显的的优点。而且,随着FPGA器件、设计语言和电子设计自动化工具的发展和改进,越来越多的电子系统采用FPGA来设计。未来,使用FPGA器件设计的产品将出现在各个领域里。因此,此次的交通信号灯控制器的设计将采用基于FPGA的设计方案来实现所要求的功能。二.整体设计论述根据设计要求和系统所具有的功能,并参考相关的文献资料,经行方案设计,可以画出如下图所示的交通信号灯控制器的系统框图。1kHZ1kHZ1HZ支干道车辆检测时钟分频模块CLK交通灯控制及计时模块CAR41kHZ数码管及LED信号系统的状态图如下所示CAR='0'CAR='1'c=1001111CAR='0'c=1001111CAR='1'LED显示数码管位码数码管段码S0S1S45c=0101100c=1001010c=0110001S0:支干道没有车辆行驶,支干道绿灯,支干道红灯S1:支干道有车辆行驶,支干道绿灯,支干道红灯S2:主干道黄灯,支干道绿灯S3:主干道红灯,支干道绿灯S4:主干道红灯,支干道黄灯根据以上设计思路,可以得到如下的顶层文件原理图顶层文件的实体图:S3S26三.单元模块设计与仿真§3.1时钟分频模块系统的动态扫描需要1HZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将1kHZ的脉冲信号进行分频,产生1S的方波,作为系统时钟计时信号。其实体模块如下:将ENDTIME改为5SCLK采用系统的1KHZ的时钟脉冲仿真波形如下:7可以看到能够得到1s的时钟脉冲§3.2交通灯控制及计时模块控制模块根据外部输入信号和计时模块产生的输出信号,产生系统的状态机,控制其他部分协调工作。计时模块用来设定主干道和支干道计时器的初值,并为扫描显示译码模块提供倒计时时间。控制及计时模块采用状态机进行设计,可以定义出5种状态,分别为S0:主干道绿灯,支干道红灯且没有车辆行驶;S1:主干道绿灯,支干道红灯或支干道有车辆驶入;S2:主干道黄灯,支干道红灯;S3:主干道红灯,支干道绿灯;S4:主干道红灯,支干道黄灯。利用CASE语句定义状态的转换方式及时间的变换方式,达到主干道绿灯亮45秒,支干道绿灯亮25秒,黄灯亮5秒的设计要求。其实体模块如下:CAR为支干道车辆检测开关在支干道有车的情况下,模块可以进行减计时8CLK1S为1S的时钟脉冲TIME1H、TIME1L、TIME2H、TIME2L分别为主干道时钟高位、主干道时钟低位、支干道时钟高位、支干道时钟低位LED为LED灯发光情况,分别为主干道绿灯、主干道黄灯、主干道红灯、支干道绿灯、主干道黄灯、主干道红灯Count的总的系统时间,用来改变系统的状态仿真波形如下:通过仿真可以看到:当主干道绿灯,支干道红灯时,主干道倒计时高位置数0100,低位置数0101;支干道高位置数0101,低位置数0000;当主干道黄灯,支干道红灯时,主干道黄灯倒计时置数0101;支干道继续刚才的减计数;当主干道红灯,支干道绿灯时,主干道倒计时高位置数0011,低位置数0000;支干道高位置数0010,低位置数0101;当主干道红灯,支干道黄灯时,支干道黄灯倒计时置数0101;主干道继续刚才的减计数。9在S4状态结束后,自动跳回到S0状态,继续判断支干道是否有车行驶,若有车行驶,则跳转到S1状态,给高、低位置数,继续进行减计时。系统根据COUNT的变化自动在各状态下跳变,当count为45时,跳变到S2状态;当count为50时,跳变到S3状态;当count为75时,跳变到S4状态;当count为80时,若支干道没有车跳变到S0状态,有车则跳变到S1状态。§3.3扫描显示译码模块扫描显示译码模块可以根据控制信号,驱动交通信号灯以及倒计时数码管的显示,其中数码管的显示采用动态扫描显示。其实体模块如下:CLK为1KHZ的系统时钟脉冲CLK1S为1S时钟脉冲CAR为支干道车辆检测开关SEL为数码管位码扫描SEG为数码管段码TIME1H、TIME1L、TIME2H、TIME2L为数码管计时的时间,由控制及计时模块为其赋值仿真波形如下:10通过仿真可以看到:给CLK一个时钟脉冲,数码管的位码随CLK时钟的变化而进行扫描,由于CLK的频率较高,人的眼睛会有短暂的视觉停留,所以会看到4个数码管都在显示时间。§3.4顶层文件的编写将以上各个单元模块仿真成功后,再进行顶层文件的编写。将各个单元模块的变量赋值给顶层文件,从而将各个单元模块连接起来,统一调配。得到顶层文件的实体模块:CLK为1KHZ系统时钟脉冲CAR为支干道车辆行驶情况,高电平为有车行驶,低电平为无车行驶LED为交通灯发光情况SEL为数码管位码扫描11SEG为数码管段码仿真波形如下:12仿真后可以得到最终的结果:开始时,支干道没有车辆行驶。主干道处于常通行状态,支干道处于禁止状态;当支干道有车来时,主干道亮绿灯,经行45秒倒计时,支干道亮红灯,经行50秒倒计时;主干道45秒倒计时结束后跳变到黄灯,进行5秒倒计时,支干道继续亮红灯,进行倒计时;主干道5秒倒计时结束后跳变到红灯,经行30秒倒计时,支干道跳变到绿灯,进行25秒倒计时;支干道25秒倒计时结束后跳变到黄灯,进行5秒倒计时,主干道继续亮红灯,进行倒计时;支干道5秒倒计时结束后,判断支干道是否有车,若有车跳变到S1状态,没有车跳变到S0状态四.硬件实验方案及实验结果将程序进行编译后,就可以把管脚绑定后把程序下载到实验板上进行调试了。§4.1硬件实验方案管脚绑定如下所示TOLocationI/OBank1CLKPIN_15232CARPIN_16033SEG[0]PIN_17534SEG[1]PIN_17635SEG[2]PIN_17736SEG[3]PIN_17837SEG[4]PIN_17938SEG[5]PIN_18039SEG[6]PIN_111310SEL[0]PIN_3111SEL[1]PIN_4112SEL[2]PIN_5113LED[0]PIN_170314LED[1]PIN_173315LED[2]PIN_174316LED[3]PIN_165317LED[4]PIN_166318LED[5]PIN_1673注:CLK绑定时钟1KHZCAR绑定DK4LED[0]绑定LED6;--支干道红灯LED[1]绑定LED7;--支干道黄灯LED[2]绑定LED8;--支干道绿灯LED[3]绑定LED1;--主干道红灯LED[4]绑定LED2;--主干道黄灯LED[5]绑定LED3;--主干道绿灯SEL[0]绑定LI0;SEL[1]绑定LI1;SEL[2]绑定LI2。SEG[0]绑定G8;SEG[1]绑定F8;SEG[2]绑定E8;SEG[3]绑定D8;SEG[4]绑定C8;SEG[5]绑定B8;SEG[6]绑定A8;将管脚按上图绑定后就可以下载到实验板上进行调试了14§4.2实验结果将程序下载到实验板后,CAR置于低电平后,可以看到LED灯的显示情况为主干道亮绿灯,支干道亮红灯,主干道数码管显示45秒,支干道数码管显示50秒。但支干道有车时,把CAR置于高电平,可以看到主、支干道的数码管开始倒计时;主干道倒计时结束后再进行5秒倒计时,并且交通灯变为黄灯;当主干道倒计时结束后,主干道数码管显示30,支干道数码管显示25,主干道变为红灯,支干道变为绿灯,继续进行倒计时;支干道倒计时结束后再经行5秒倒计时,交通灯变为黄灯;支干道倒计时结束后再回到初始状态。从实验板上可以看出硬件测试下的效果达到了设计的要求,能够实现交通信号灯控制器的基本功能。但是,由于实验板的系统时钟不稳定,导致数码管的扫描有时会出现闪动的现象,在更换了实验板后可以看出,数码管的扫描基本稳定,在视觉上不会出现闪动的情况。或者可以将系统的时钟频率改为2KHZ,更改分频模块后再进行编译下载,这样可以加快数码管扫描的速度,从而达到消除视觉上闪动的现象。9参考文献《电子技术课程设计》历雅萍、易映萍编《电子技术课程设计指导》彭介华主编高等教育出版社《电子线路设计、实验、测试》谢自美主编华中理工出版社。《数字电子技术基础》康华光主编高等教育出版社《电子技术基础课程设计》孙梅生等编著高等教育出版社