基于VHDL语言红绿灯的设计与实现.doc_第1页
基于VHDL语言红绿灯的设计与实现.doc_第2页
基于VHDL语言红绿灯的设计与实现.doc_第3页
基于VHDL语言红绿灯的设计与实现.doc_第4页
基于VHDL语言红绿灯的设计与实现.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南技术学院毕业设计论文作者 学号 1# 系部 #院 专业 电子信息工程技术 题目 基于VHDL语言红绿灯的设计与实现 指导教师 EE 评阅教师 完成时间: 2010 年 3 月 30 日 基于VHDL语言红绿灯的设计与实现摘要:传统的交通灯控制系统多数由单片机或PLC实现,此次是基于EDA技术设计交通灯系统的一种方案。EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。这就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Max Plus对应用程序进行了仿真,并给出了相应的仿真结果。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。交通灯控制系统通常要实现自动控制和手动控制其红绿灯的变化,基于FPGA设计的交通灯控制系统电路简单、可靠性好。本系统可控制2个路口的红、黄、绿三盏灯让其按特定的规律进行变化。利用Quartus 对设计结果进行仿真,发现系统工作性能良好。据此设计而成的硬件电路,也实现了控制要求。关键词:交通灯 FPGA Quarus自动控制 人工控制 VHDLTitle : Based on VHDL Language Design and Implementation of traffic lights Abstract: Traditional signal control system most from the microcontroller or PLC, this is based on EDA technical design traffic signal system of a programme. EDA A significant feature is the use of hardware Description Language (HDL) to complete the system design documents, applications VHDL digital circuits experimental reduce the digital system design difficulty in electronic design has been designers are widely adopted. This is for traffic lights controller design, based on VHDL language of traffic lights system hardware to achieve. Through the system structure, the level of the design of the various modules of VHDL procedures, and to use Max PlusII application for a simulation, and to a corresponding simulation results. The circuit Optimization design, you can use smaller programmable logic chips, thereby reducing system costs. signal control system is generally to realize Automatic control and manual control the traffic lights, based on FPGA design of traffic signal system of control circuit simple and reliability. The system to control a road junctions in the red, yellow, green 3 lamp. As a specific law changes. Using Quartus II in the design results in simulation, find that the system performance. The design of hardware circuits, and realize the control. keywords: Traffic light system; FPGA; Quartus ; Automatic control; Manual control; VHDL目录第一章 引言6第二章 系统整体设计62.1 设计任务要求62.2 总体设计:62.2.1 输入部分62.2.2 输出部分62.3 分块设计:72.4 总体流程图92.5 总体结构框图10第三章 系统关键模块的实现123.1 Emergency模块123.2 Debounce模块123.3 Frequency1模块133.4 StatusSelect模块143.5 TimeSelect模块153.6 Display模块163.7 信号灯控制模块163.8 分块电路和总体电路的设计(含关键源程序或电路图)11第四章 功能说明204.1 实现功能:204.2 编译结果214.3 仿真波形214.4 故障及问题分析23总结和结论23致谢23所用元器件及测试仪表清单24参考文献24第一章 引言在现代城市中,随着人口和汽车的急剧增长,市区交通日益拥挤,要是没有红绿灯作为指挥工具,恐怕川流不息的汽车就会由于混乱而造成严重阻塞。因此,交通灯是交管部门管理城市交通的重要工具之一。 随着电子与计算机技术的迅速发展,电子电路的分析与设计方法发生了重大的变化。电子设计自动化技术已成为设计现代电子系统必不可少的工具和手段。在电子技术领域里,为了便于储存,分析和传输,常将模拟信号编码,即把它转换为数字信号,利用数字逻辑这一强有力的工具来分析和设计复杂的数字电路或数字系统,为信号的储存,分析和传输创造了硬件环境。本次设计中以VHDL语言的发展过程和发展方向为背景,介绍了以VHDL设计红绿灯的原理与实现流程以及仿真结果。VHDL语言极大地缩短了专用芯片的开发周期,降低开发成本,加快了产品更新换代的速度,提高产品的市场竞争力。大大缩小电路板面积和整机体积,提高产品可靠性,增强产品功能,实现技术保密。与此同时使我进一步了解Quartus II仿真软件的使用,更加掌握CPLD技术的应用。从而在整体上了解一个简单电子产品的设计和制作工程。通过本课题的设计,我们掌握了电子产品的设计方法,熟悉了protel99se的使用,熟练绘制电原理图、印制板布线图以及电路板的装配、焊接、调试。熟悉了万用表、示波器等常用仪器的使用方法。提高了自己分析问题和解决问题的能力。第二章 系统整体设计2.1 设计任务要求:控制器部分的状态转移图和流程图;交通灯控制器:用于十字路口的交通灯控制器。实验要求: 东西方向各有一组红,黄,绿灯用于指挥交通,红,黄,绿的持续时间分别为25s,5s,20s 。 当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,正常工作。 两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。 选做:增加左、右转弯显示控制功能; 选做:其它自拟功能。2.2 总体设计:2.2.1 输入部分CLK时钟频率输入,可由实验板上直接提供,为准确确定时间长度,选择High挡的1MHz高平信号。紧急状态按键KEY,当按一下键,表示紧急情况发生,两个方向均为红灯亮,计时停止并不断闪烁,蜂鸣器蜂鸣;当再次按下键时,信号灯和计时器恢复原来状态,正常工作。2.2.2 输出部分东西方向和南北方向各使用4个LED显示,红黄绿各代表红黄绿灯,绿灯和另一个红灯同时亮时为左转时间。东西方向和南北方向计时均为2位数,共需要4个LED七段数码管显示。由于为共阴极控制,输出一个catn信号控制选择数码管显示,num_out信号输出显示的内容。增加一个voice输出,控制紧急状态下的蜂鸣器。总体设计图,如下Clk r1Key y1 g1 t1Key r2 y2 g2 t2 voice num_out(0-6) catn(0-5)CLK按键数码管显示输出数码管共阴极控制东西向交通灯南北向交通灯蜂鸣器Main2.3分块设计:在VHDL设计中,采用自顶向下的设计思路。顶层模块中,根据硬件设计,设置如下端口:外部时钟信号:Clk紧急状态按键:Key东西方向状态灯:r1,y1,g1,t1南北方向状态灯:r2,y2,g2,t2蜂鸣器控制:voice数码管显示信号:num_out数码管共阴极控制:catn在底层中,把不同功能分模块设计。分别Emergency模块, Frequency1模块StatusSelect模块,Debounce模块,TimeSelect模块,Display模块和信号灯控制模块。2.4 总体流程图2.5 总体结构框图clk rshow gConrolA ytimehtimelclk rshow gConrolB ytimehtimel StatusSelectclk voice selTimeSelectsel catntimeh1timel1 timeouttimeh2timel2Displaynum_innum_outFrequency1clkclk_outDebouncekeykey_outEmergencyBTN_inBTN_outClkBTN7SegVoice第三章 系统关键模块的实现3.1 Emergency模块Emergency模块:紧急情况控制信号是采用按键的输入方式,当按键按下时候,由Emergency模块接收按键信息并输出信号给其它模块。输入端口:BTN_in接收按键信息输出端口:BTN_out输出紧急信号library ieee;use ieee.std_logic_1164.all;entity Emergency is port(BTN_in:in std_logic;-接收按键信息BTN_out:out std_logic-输出紧急信号);end Emergency;architecture Emergency_arc of Emergency isbeginprocess(BTN_in)variable temp: std_logic;beginif BTN_inevent and BTN_in=1 thentemp:= not temp;-当有紧急信号时,输出信号切换end if;BTN_out=temp;end process;end;3.2 Debounce模块Debounce模块,由于紧急控制采用BTN按键,其产生时刻和持续时间的长短是随机不定的,且存在因开关簧片反弹引起的电平抖动现象,因此必须安排一个消抖和同步化电路模块,以保证系统能捕捉到输入脉冲。输入端口:key按键信息,clk时钟信号输出端口:key_out消抖后信号library ieee;use ieee.std_logic_1164.all;entity Debounce isport(key,clk: in std_logic;-按键信息key_out: out std_logic-时钟信号 );end Debounce;architecture Debounce_arc of Debounce issignal temp1,temp2: std_logic;beginprocess(key,clk)beginif clkevent and clk=0 then-与时钟信号同步,并且temp2=temp1;-与存储先前值temp1=key;end if;end process;key_out=temp1 and (not temp2) and clk;-消抖输出end;3.3 Frequency1模块Frequency1模块,由于外部时钟信号clk的频率为1MHz,而实际需要的内部计时时钟频率为1Hz,需要一个分频电路。输入端口:clk外部时钟信号输出端口:clk_out分频后信号library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Frequency1 isport(clk:in std_logic;-外部时钟信号clk_out:out std_logic-分频后信号);end Frequency1;architecture Frequency1_arc of Frequency1 isbeginprocess(clk)variable temp:integer range 0 to 999999;beginif(clkevent and clk=1)thenif(temp=999999)then-分频计数temp:=0;clk_out=0;elsetemp:=temp+1;clk_out-非紧急状态voicetemptemptemptemptemp-紧急状态voicetemptemptemptemptemp=000;end case;elsetemp=111;end if;end case;end if;seltime_out=timeh1; catntime_out=timel1; catntime_out=timeh2; catntime_out=timel2; catntime_out=0000; catnnum_outnum_outnum_outnum_outnum_outnum_outnum_outnum_outnum_outnum_outnum_out-非紧急状态case temp_color iswhen yellow=-黄灯tempr:=0;tempg:=0;tempy:=1;tempt:=0;case reset is-计时部分when 0 =-归零temp_h:=0000;temp_l:=0100;reset:=1;when others =-计时case temp_l iswhen 0000=temp_l:=1001;temp_h:=temp_h-1;when 0001=case temp_h iswhen 0000 =temp_h:=0000;temp_l:=0000;reset:=0;temp_color:=red;when others =temp_l:=0000;end case;when others=temp_l:=temp_l-1; end case;end case;when green=-绿灯tempr:=0;tempg:=1;tempy:=0;tempt:=0;case reset is-计时部分when 0 =-归零temp_h:=0000;temp_l:=1001;reset:=1;when others =-计时case temp_l iswhen 0000=temp_l:=1001;temp_h:=temp_h-1;when 0001=case temp_h iswhen 0000 =temp_h:=0000;temp_l:=0000;reset:=0;temp_color:=turn;when others =temp_l:=0000;end case;when others=temp_l:=temp_l-1; end case;end case;when red=-红灯tempr:=1;tempg:=0;tempy:=0;tempt:=0;case reset is-计时部分when 0 =-归零temp_h:=0010;temp_l:=0100;reset:=1;when others =-计时case temp_l iswhen 0000=temp_l:=1001;temp_h:=temp_h-1;when 0001=case temp_h iswhen 0000 =temp_h:=0000;temp_l:=0000;reset:=0;temp_color:=green;when others =temp_l:=0000;end case;when others=temp_l:=temp_l-1; end case;end case;when turn=-转弯tempr:=0;tempg:=1;tempy:=0;tempt:=1;case reset is-计时部分when 0 =-归零temp_h:=0000;temp_l:=1001;reset:=1;when others =-计时case temp_l iswhen 0000=temp_l:=1001;temp_h:=temp_h-1;when 0001=case temp_h iswhen 0000 =temp_h:=0000;temp_l:=0000;reset:=0;temp_color:=yellow;when others =temp_l:=0000;end case;when others=temp_l:=temp_l-1; end case;end case;end case;when others=-紧急状态tempr:=1;tempg:=0;tempy:=0;tempt:=0;end case;end if;timeh=temp_h;timel=temp_l;r=tempr;g=tempg;y=tempy;t=tempt;end process;end ;3.8 分块电路和总体电路的设计(含关键源程序或电路图)第四章 功能说明4.1 实现功能:南北和东西方向各有一组绿,转弯,红,黄灯,各自的持续时间分别为10s,10s,25s,5s;当有特殊情况时,两个方向均为红灯,计时暂停,闪烁并伴有蜂鸣声。当特殊情况结束后,控制器恢复原来状态,继续正常工作。用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的剩余时间。当绿灯和另一红灯同时亮时,允许左拐。4.2 编译结果4.3 仿真波形波形方针时,为方便观察,将分频器改为10分频 。通过观察,r1,y1,g1,t1,r2,y2,g2,t2可看出为循环显示,一方向为红灯时,另一方向显示绿灯、转弯灯、黄灯。放大后可看到倒计时显示的变化,以及共阴极控制的选择当按下KEY键,key信号产生脉冲,进入紧急状态,只有两盏红灯亮,同时蜂鸣器产生蜂鸣信号,当再次按下KEY键,紧急状态解除放大后,可看出计时暂停,并且数码管共阴极选择会在全1信号和选择信号间交替,产生闪烁效果。4.4 故障及问题分析开始时,选用了低频CLK信号,无法准确控制时间长短,经老师指点换用了高频信号,同时修改了分频电路以准确分频。对程序的选择分支认识不清楚,case语句嵌套不正确,编译后系统宏单元超出,修改嵌套关系后,宏单元大幅下降。紧急状态下的闪烁设计不成功,后经老师指点,改用计时控制状态选择。所用元器件及测试仪表清单 稳压电源 万用表 示波器 计算机 实验板一块 Quartus II 4.1 Syplify8.1总结和结论通过综合实验的思考和设计,对一个项目的整体设计有了进一步认识。当看到要求后,应该对项目进行分功能和模块的设计,自顶向下,完成顶层的设计后,再编写功能模块。模块化设计便于修改和查错。通过程序的编写,加深了对VHDL语言的了解,提高了编程能力。同时,锻炼了独立发现问题解决问题的能力,提高了个人素质。致谢在论文完成之际,我由衷地感谢师的指导和关心。这一年来,老师对我的学习和研究非常严格,并给予了悉心的指导,使我受益匪浅。对我的学习提出了很多宝贵的意见,使我的学习有了目标和方向,并得以不断提高,而且这些课题的研究成果也成为了本论文的主要素材。同时,老师渊博的学识、严谨的治学态度也令我十分敬佩,是我以后学习和工作的榜样。参考文献1 数字系统设计与VHDL(第二版) (美)Jr., Charles H. Roth Lizy K. John 电子工业出版社2 VHDL设计实例与仿真/可编程逻辑器件实用开发技术丛书.第1版3童诗白主编.模拟电子技术基础.第2版.北京:高等教育出版社,1988.4张凤言编著.电子电路基础.第2版.北京:高等教育出版社,1992.5Proteus网站:http:/www.labceter.co.uk/6keil网站: /袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论