完整版FPGA控制的交通灯毕业课程设计.docx
- 文档编号:11166749
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:22
- 大小:268.20KB
完整版FPGA控制的交通灯毕业课程设计.docx
《完整版FPGA控制的交通灯毕业课程设计.docx》由会员分享,可在线阅读,更多相关《完整版FPGA控制的交通灯毕业课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
完整版FPGA控制的交通灯毕业课程设计
山东理工大学
毕业设计(论文)
题目:
学院:
专业:
学生姓名:
指导教师:
毕业设计(论文)时间:
二ОО六年月日~月日共周
摘要
设计一个十字路口两道路的交通灯控制器,两道路交替通行,每次通行时间可设定20秒。
该十字路口交通灯控制电路能使南北、东西各四个灯(红、黄、绿、左转),四个灯能够按顺序依次亮灭。
而且要求绿灯亮转红灯亮或者转左转灯亮之前要先转黄灯亮5秒,左转灯亮转红灯亮之前也要先转黄灯亮5秒,红灯亮可以直接转绿灯或左转灯亮,四种灯的点亮时间能够以倒计时的形式显示出来。
关键词:
交通灯左转倒计时
Abstract
Electronicexcitedstateisoneofthecommonformsinwhichatoms,moleculesandionsexistinthenature.Studyonthecharactersanddynamicsbehaviorsofthemolecularexcitedstates,suchasenergylevels,lifetimes,predissociationandauto-ionization,aswellasontheirelectronicstructures,isnotonlyasignificanttopicrelatedtochemicalreactionsandchemicaldynamics,butalsooneofthefrontiersinthefieldofatomicandmolecularphysics.
Inpresentdissertation,experimentalstudiesofthepredissociatedRydbergstatesofCaClbyusingtheresonanceenhancedmultiphotonionization(REMPI)andion-dipdetectionspectroscopywerecarriedout.Fivecore-penetratingRydbergstatesofCaClintheintermediateeffectiveprinciplequantumnumberregion,n*=5~7,wereobservedforthefirsttime.TheoreticalanalysisconfirmedthepredissociationmechanismwhichsupposedtheseRydbergstateswereledbyaninteractionwitha2+continuumstate.Apotentialenergycurveofthis2+continuumstateintheenergyregionof45000~47500cm-1wasfittedbasedontheobservedpredissociationlinewidths.SomeRydberglevelswithanomalouslysmallrotationalconstantswerealsoobserved.Theymightbethefragmentsofthecore-nonpenetratingRydbergstates.Alltheseresultsproviderichinformationforunderstandingthemechanismofdissociationofmoleculeswithonthefacilitatedoptical-opticaldoubleresonance(PFOODR)methodisalsomade.AdoublyexcitedvalencestateofNa2,13g-state,whichconsistsintheunique3g-stateaswellastheuniquepuretwo-electronexcitationstatebelowtheionizationthreshold,wasfirstobservedandcharacterized.Anumberofv=0~57vibrationlevelsweredeterminedandassigned.Thelevelscovermorethan99%ofthepotentialwelldepthofthestate.Noevidentautoionizationwasfoundrelatedtothelevelsbelongingtothe13g-stateabovetheionizationthreshold,implyingthedistinctcharacterofthedoublyexcitedvalencestatefromtheRydbergstates.Theobservationofthisstateisofgreatimportanceforexpoundingquantumchemistry.
目录
摘要I
1FPGACPLD概述1
2系统分析与总体方案3
2.1系统分析3
2.2设计的总体方案4
3硬件电路设计5
3.1分频器设计5
3.2状态控制电路设计5
3.3计数器设计6
3.4译码显示电路设计7
4实验程序设计8
4.1实体定义8
4.2译码显示9
4.3状态转换10
4.4显示器片选:
12
5程序仿真与分析13
5.1仿真结果13
5.2仿真结果分析13
6元器件清单15
7心得体会16
参考文献18
附录19
1FPGACPLD概述
随着世界范围内城市化和机动化进程的加快,城市交通越来越成为一个全球化的问题。
城市交通基础设施供给滞后于高速机动化增长需求,道路堵塞日趋加重,交通事故频繁,环境污染加剧等问题普遍存在。
目前,全国大中城市普遍存在着道路拥挤、车辆堵塞、交通秩序混乱的现象,交通事故频发,这给人民的生命财产安全带来了极大的损失。
如何解决城市交通问题已成为全社会关注的焦点和大众的迫切呼声。
探究城市交通发展中存在问题的原因,无论是从宏观上还是从微观上分析,其根本原因在于城市交通系统的管理机制不适应。
城市交通控制系(UTC,UrbanTrafficControlSystem)是现代城市智能交通系统(IDJ,Intelligenttransportsystem)的组成之一,主要用于城市道路交通的控制与管理。
城市平交路口实现交通信号控制是城市交通管理现代化的基本标志之一,是提高交通管理效能的重要技术手段。
路口信号控制器是控制交叉路口交通信号的设备,它是交通信号控制的重要组成部分。
各种交通控制方案,最终都要由路口信号控制器来实现。
为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。
伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。
利用EDA技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。
FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,他们是在PAL,GAL等逻辑器件的基础上发展起来的。
同以往的PAL,GAL相比较FPGACPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。
这样的FPGACPLD上就是一个子系统部件。
这种芯片收到世界范围内电子工程设计人员的广泛关注和普遍欢迎。
比较典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,他们开发较早,占用了较大的PLD市场。
FPGACPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外,还具有以下几个优点:
随着VLSI(超大集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGACPLD芯片的规模也越来越大,其单片逻辑门数已达上百万门,它所实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC。
FPGACPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担芯片风险和费用,设计人员只需在自己的实验室就可以通过相关的软硬件环境来完成芯片的最终功能设计。
所以,FPGACPLD的资金投入就少,减少了潜在的花费。
用户可以反复的编程,擦除,使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。
FPGACPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入,编译,优化,仿真,直至最后芯片的制作。
当电路有少量的改动,更能显示FPGACPLD的优势。
在线可编程技术(ISP)使得使用FPGACPLD的产品可以做到远程升级。
2系统分析与总体方案
2.1系统分析
通过分析可以知道,所要设计的十字路口交通灯控制电路要能够使南北、东西各四个灯(红、黄、绿、左转),四个灯能够按顺序依次亮灭。
而且要求绿灯亮转红灯亮或者转左转灯亮之前要先转黄灯亮5秒,左转灯亮转红灯亮之前也要先转黄灯亮5秒,红灯亮可以直接转绿灯或左转灯亮(四种灯的循环顺序如图2.1所示)。
还要求四种灯的点亮时间能够以倒计时的形式显示出来。
可以用VHDL语言合理设计系统功能,使红黄绿左转灯的转换有一个准确的时间间隔和转换顺序。
图2.1四种灯的循环顺序
使用基于FPGA的方法具有周期短、使用灵活、易于修改等明显的优点。
而且,随着FPGA器件,设计语言和电子设计自动化工具的发展和改进,越来越多的电子系统采用FPGA来设计。
未来使用FPGA器件设计的产品将出现在各个领域。
因此此次的交通灯控制器将基于FPGA的设计方案来实现所需要的功能。
2.2设计的总体方案
根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图3.1所示:
图2.2系统的框图
3硬件电路设计
3.1分频器设计
分频器实现的是将高频时钟信号转换成低频时钟信号,用于触发控制器、计数器和扫描显示电路。
具体实物模块如图:
图3.1分频器模块
3.2状态控制电路设计
状态控制器的作用是根据计数器的计数值控制各方向上发光二极管的亮、灭,当计时时间到达,状态控制器就响应,自动跳转到下一个状态。
此外,当检测到特殊情况(EMI=‘1’)发生时,无条件点亮红灯的二极管(急救灯按下EMI='1',则东西南北都亮红灯,在这种状态下原来的状态必须保持,即东西南北方向定时时间保持不变。
急救灯未按下或者按下后恢复,则继续计时(计时通过计数器ct),同时恢复东西南北原来灯的状态)。
具体实物模块如图:
图3.2控制电路模块
3.3计数器设计
这里需要的计数器的计数范围为0-80。
计到80后,下一个时钟沿回复到0,开始下一轮计数。
此外,当检测到特殊情况(EMI=‘1’)发生是,计数器暂停计数,而系统复位信号RESET则使计数器异步清零。
图3.3计数器模块
3.4译码显示电路设计
根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的显示器,使显示器输出当前状态下的数码管亮、灭指令,其中数码管的显示采用动态扫描显示。
具体实物模块如图:
图3.4译码显示电路模块
4实验程序设计
一个完整的VHDL语言程序通常包括实体(Entity)、构造体、配置、包集合(Package)和库(Library)5个部分组成。
下面结合实际的程序来加以说明。
4.1实体定义
libraryIEEE;
useIEEE.std_logic_1164.all;
entitytraffic_lightis
port(clk:
instd_logic;--时钟频率为250KHz.
start:
instd_logic;--交通灯控制:
'1'开,'0'关.
EMI:
instd_logic;--急救灯控制,'1'所有红灯亮.
ew_rled:
outstd_logic;--东西红灯控制,'0'开,'1'关.
ew_gled:
outstd_logic;--东西绿灯控制,'0'开,'1'关.
ew_yled:
outstd_logic;--东西黄灯控制,'0'开,'1'关.
ew_turnled:
outstd_logic;--东西左转灯控制,'0'开,'1'关
sn_rled:
outstd_logic;--南北红灯控制,'0'开,'1'关
sn_gled:
outstd_logic;--南北绿灯控制,'0'开,'1'关
sn_yled:
outstd_logic;--南北黄灯控制,'0'开,'1'关
sn_turnled:
outstd_logic;--南北左转灯控制,'0'开,'1'关
L:
outstd_logic_vector(2downto0);--显示器选取
dled:
outstd_logic_vector(7downto0));--显示器数据输出
endtraffic_light;
4.2译码显示
architecturecontroloftraffic_lightis
TYPEeastweIS(ew_red,ew_green,ew_yellow0,ew_yellow1,ew_turnl);
TYPEsouthnorthIS(sn_red,sn_green,sn_yellow0,sn_yellow1,sn_turnl);
signalew_state:
eastwest;
signalsn_state:
southnorth;
begin
process(clk)
functiondisplay(s:
integerrange0to9)returnstd_logic_vectoris
variableresult:
std_logic_vector(7downto0);
begincasesis
when0=>result:
=X"FC";--0
when1=>result:
=X"60";--1
when2=>result:
=X"DA";--2
when3=>result:
=X"F2";--3
when4=>result:
=X"66";--4
when5=>result:
=X"B6";--5
when6=>result:
=X"BE";--6
when7=>result:
=X"E0";--7
when8=>result:
=X"FE";--8
when9=>result:
=X"F6";--9
whenothers=>null;
endcase;
returnresult;
enddisplay;
4.3状态转换
variablecnt:
integerrange0to7;
variablect:
integerrange0to5;
variableew_secondH,sn_secondH:
integerrange0to8;
variableew_secondL,sn_secondL:
integerrange0to9;
begin
ifstart='0'then–初始化
dled<=X"00";
ew_state<=ew_red;
sn_state<=sn_green;
ew_secondH:
=8;ew_secondL:
=0;
sn_secondH:
=5;sn_secondL:
=0;
ew_rled<='0';ew_gled<='1';ew_yled<='1';ew_turnled<='1';
sn_rled<='1';sn_gled<='0';sn_yled<='1';sn_turnled<='1';
elsifclk'eventandclk='1'then--clkrisingedgedetection
cnt:
=cnt+1;
ifEMI='1'then
ew_rled<='0';ew_gled<='1';ew_yled<='1';ew_turnled<='1';
sn_rled<='0';sn_gled<='1';sn_yled<='1';sn_turnled<='1';
elsect:
=ct+1;
caseew_stateis
whenew_red=>ew_rled<='0';ew_gled<='1';ew_yled<='1';ew_turnled<='1';--东西向红灯
whenew_green=>ew_rled<='1';ew_gled<='0';ew_yled<='1';ew_turnled<='1';--东西向绿灯
whenew_yellow0=>ew_rled<='1';ew_gled<='1';ew_yled<='0';ew_turnled<='1';--东西向黄灯
whenew_yellow1=>ew_rled<='1';ew_gled<='1';ew_yled<='0';ew_turnled<='1';--东西向黄灯
whenew_turnl=>ew_turnled<='0';ew_rled<='1';ew_gled<='1';ew_yled<='1';--东西向左转灯
whenothers=>ew_rled<='0';ew_gled<='1';ew_yled<='1';ew_turnled<='1';--东西向红灯
endcase;
casesn_stateis
whensn_red=>sn_rled<='0';sn_gled<='1';sn_yled<='1';sn_turnled<='1';--南北向红灯
whensn_green=>sn_rled<='1';sn_gled<='0';sn_yled<='1';sn_turnled<='1';--南北向绿灯
whensn_yellow0=>sn_rled<='1';sn_gled<='1';sn_yled<='0';sn_turnled<='1';--南北向黄灯
whensn_yellow1=>sn_rled<='1';sn_gled<='1';sn_yled<='0';sn_turnled<='1';--南北向黄灯
whensn_turnl=>sn_turnled<='0';sn_rled<='1';sn_gled<='1';sn_yled<='1';--南北向左转灯
whenothers=>sn_rled<='0';sn_gled<='1';sn_yled<='1';sn_turnled<='1';--南北向红灯
endcase;endif;
ifct=5then
ct:
=0;
ifew_secondH=0andew_secondL=0then–状态结束
caseew_stateis–东西向当前状态
whenew_red=>ew_state<=ew_green;ew_secondH:
=5;ew_secondL:
=0;--下一状态的绿灯
whenew_green=>ew_state<=ew_yellow0;ew_secondH:
=0;ew_secondL:
=5;--下一状态的黄灯
whenew_yellow0=>ew_state<=ew_turnl;ew_secondH:
=2;ew_secondL:
=0;--下一状态的左转灯
whenew_turnl=>ew_state<=ew_yellow1;ew_secondH:
=0;ew_secondL:
=5;--下一状态的黄灯
whenew_yellow1=>ew_state<=ew_red;ew_secondH:
=8;ew_secondL:
=0;--下一状态的红灯
whenothers=>ew_state<=ew_red;ew_secondH:
=8;ew_secondL:
=0;--下一状态的红灯
endcase;
elsifew_secondL=0then
ew_secondL:
=9;
ew_secondH:
=ew_secondH-1;
else
ew_secondL:
=ew_s_secondL-1;
endif;
ifsn_secondH=0andsn_secondL=0then–状态结束
casesn_stateis–南北向当前状态
whensn_red=>sn_state<=sn_green;sn_secondH:
=5;sn_secondL:
=0;--下一状态的绿灯
whensn_green=>sn_state<=sn_yellow0;sn_secondH:
=0;sn_secondL:
=5;--下一状态的黄灯
whensn_yellow0=>sn_state<=sn_turnl;sn_secondH:
=2;sn_secondL:
=0;--下一状态的左转灯
whensn_turnl=>sn_state<=sn_yellow1;sn_secondH:
=0;sn_secondL:
=5;--下一状态的黄灯
whensn_yellow1=>sn_state<=sn_red;sn_secondH:
=8;sn_secondL:
=0;--下一状态的红灯
whenothers=>sn_state<=sn_red;sn_secondH:
=8;sn_secondL:
=0;--下一状态的红灯
endcase;
elsifsn_secondL=0then
sn_secondL:
=9;
sn_secondH:
=sn_secondH-1;
else
sn_secondL:
=sn_secondL-1;
endif;endif;
4.4显示器片选
casecntis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 FPGA 控制 交通灯 毕业 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)