交通灯信号控制器设计 - 图文

更新时间:2024-03-02 00:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

上海海事大学本科生毕业设计(论文)

交通灯信号控制器设计

学 院: 信息工程学院 专 业: 班 级: 姓 名: 指导教师:

完成日期: 2010通信工程 年6月1日

1

上海海事大学本科生毕业设计(论文)

引 言 ................................................................................................................. 错误!未定义书签。 一 绪 论 ........................................................................................................... 错误!未定义书签。

(一) 课题背景及意义 .......................................................................... 错误!未定义书签。 (二)课题任务要求 ................................................................................ 错误!未定义书签。 二 FPGA技术及开发工具介绍 ....................................................................................................... 2

(一) FPGA芯片 .................................................................................................................... 2 (二)VHDL语言简介 ............................................................................ 错误!未定义书签。 (三) MAX+PLUS II软件 ....................................................................... 错误!未定义书签。 三 基于VHDL交通灯控制器设计和仿真 ..................................................................................... 7

(一) 设计思想介绍 ................................................................................................................. 7 (二)系统各功能模块的实现 ................................................................................................... 8 (三)系统综合设计与仿真 ..................................................................................................... 10 (四) 软件调试过程中遇到的问题 ....................................................................................... 11 四 系统调试与实现 .......................................................................................................................... 12

(一)GW48-CK系统概述 ...................................................................................................... 12 (二) GW48-CK系统工作原理 ............................................................................................ 13 (三)实验电路及管脚定义 ..................................................................................................... 14 (四) 实验箱上验证时遇到的一些问题 ............................................................................... 16 (五) 交通灯信号控制硬件测试 ........................................................................................... 16 五 毕业设计总结 .............................................................................................................................. 20 结束语 ................................................................................................................................................ 21 参考文献 ............................................................................................................................................ 21

摘 要

自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。本设计主要在 MAX+plusⅡ环境下运用VHDL进行交通灯信号控制设计,并在GW48-CK型开发实验箱上的FPGA器件EPF10K10LC84-4芯片上进行硬件模拟实现。

2

上海海事大学本科生毕业设计(论文)

关键词:智能化, 交通灯,VHDL,MAX+plusⅡ

Abstract

Since the inception of traffic lights, the internal of the circuit control systems have been continuously improved ,and start variety of design,which make the traffic lights more intelligent . The design mainly using VHDL for traffic signal control design in the MAX + plus Ⅱ

environment, and Conduct Hardware Simulation in the device EPF10K10LC84-4 chip of FPGA in GW48-CK-type development box

Keyword: Intelligent Traffic lights VHDL MAX + plus Ⅱ

3

上海海事大学本科生毕业设计(论文)

引 言

随着电子设计自动化(EDA)的发展,电子系统的设计技术和设计工具发生了深刻的变化。利用硬件描述语言对数字系统的硬件电路进行描述是EDA的关键技术之一。VHDL (Very High Speed Integrated Circuit Hardware Description Language)语言是目前主流的硬件描述语言,它具有很强的电路描述和建模能力,且有与具体硬件电路无关和与设计平台无关的特性,在语言易读性和层次化结构设计方面表现出强大的生命力和应用潜力。

在城市车流量日益增加的今天,交通信号控制器扮演着越来越重要的角色。目前交通信号控制器可采用MCU、PLC和PLD等多种形式进行控制。其中采用MCU进行控制的特点是系统可塑性较强,控制模式灵活多样,但系统的组成除单片机芯片外还需要扩展较多的外围电路;采用PLC进行控制的特点是编程较方便,容易扩展输入输出通道,但系统硬件成本较高;采用PLD器件进行控制的特点是控制简单灵活,仅需要配置简单的外围电路即可实现特定的功能,这对于简化交通信号控制器的设计、普及交通信号控制器的应用将起到积极的推动作用。

文中采用VHDL语言,运用计数器设计方法对交通信号控制器进行设计,并且利用EDA开发工具MAX+PLUS II对代码分别进行全程编译和仿真,最后在FPGA器件上进行下载验证

一 绪 论

4

上海海事大学本科生毕业设计(论文)

本设计系统是基于VHDL的模拟交通灯控制系统,具有一定的现实意义。本课题的目的是以VHDL为基础,通过可编程逻辑器件CPLD/FPGA 的EPF10K10LC84-4,LED数码管显示和LED灯完成十字路口的工作状态模拟,并且通过按键有效的监视控制主,支干道是否有车辆通过,由监控结果自动调节主,支干道的放行时间,等待时间和状态转换时间。

(一) 课题背景及意义

随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

和谐的城市交通具有很重要的现实意义。城市交通是城市经济生活的命脉,是衡量一个城市文明进步的标志,对于城市经济的发展和人们说水平的提高起着十分重要的作用。作为城市交通网的主要组成部分,交叉口是道路通行能力的瓶颈和交通堵塞及事故的多发地。城市的交通堵塞,大部分由于交叉口的通行能力不足或没有充分利用造成的,这导致车流中断,事故增多,延误严重。对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。

(二)课题任务要求

1.运用VHDL实现对十字路口交通灯信号控制编程,在MAX+PLUS II环境编译,仿真,综合,并在GW48-CK型开发实验箱上实现硬件验证。

5

上海海事大学本科生毕业设计(论文)

2. 主干道和支道交叉路口的信号灯控制:优先保证主干道的畅通 。平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆通行要穿行主干道时,才将交通灯切向“主干道红灯支道绿灯” 此外,每次通行时间不得短于30S,状态交换过程出现的状态持续时间都为4S

二 FPGA技术及开发工具介绍

(一) FPGA芯片

1. FPGA的结构特点

尽管FPGA和CPLD与其他类型的PLD的结构各有其特点和长处,但概括起来,它们是由三大部分组成的:二维的可配置逻辑功能模块(Configurable Logic Blocks, CLB),构成了PLD器件的逻辑组成核心;输入输出模块(Input/Output Blocks, IOB),连接逻辑块的互连资源;可编程内部互连资源(Programmable Interconnection, PI),由各种长度的连线线段组成,其中也有一些可编程的连接开关,用于逻辑快之间、逻辑快与输入/输出块之间的连接。 2.FPGA的优点

FPGA芯片是特殊的ASIC芯片,除了具有ASIC的特点之外,还具有以下几个优点: (1)随着超大规模集成电路VLSI(Very Large Scale IC)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管。FPGA芯片的规模也越来越大,其单片逻辑门数已经达到上百万门,所能实现的功能也越来越强,同时还可以实现系统集成。

(2)FPGA芯片在出厂前100%都做过测试,不需要设计人员承担投片风险和费用。设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以,FPGA投入资金少,节省了许多潜在的花费。

(3)用户可以反复的编程、擦除、使用,或者在外围电路部动的情况下,用不同软件就可以实现不同的功能;因此,用FPGA试制样片,能以最快的速度占领市场。FPGA软件包中有各种输入工具、仿真工具、版图设计工具及编程器等全线产品,使电路设计人员在很短的时间内就可以完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路中有少量改动时,更能显示出FPGA的优势。电路设计人员使用FPGA进行电路设计时,不需要具备专门的IC深层次的知识。FPGA软件易学易用,可以使设计人员集中精力进行电路设计,快速将产品推向市场。

3.FPGA的分类和使用

在FPGA开发软件中完成设计以后,软件会产生一个最终的编程文件(如:.pof)。如何

6

上海海事大学本科生毕业设计(论文)

将编程文件烧到FPGA芯片上呢?

(1)SRAM Base

SRAM Base的FPGA本身就像一个SRAM,在开机后其必须经过一个称为Configuration(配置)的过程。Configuration可将设计加载到电路板上的FPGA中,其方式一般通过各家厂商提供的特殊Download cable(下载电缆),或是在FPGA旁边加块PROM的方式实现。但在关机后,FPGA的内容消失,直到下次重新开机Configuration后,FPGA才能恢复正常的功能,Altera、Xilinx、Lucent等公司都采用这种方式,也是现在用的最多一种方式。

由于LUT (Look-up table) 主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。

(2)Anti-Fuse

Anti-Fuse(反熔丝)的FPGA本身则像一个fuse-array,将设计载入FPGA的过程一般称为刻录,因为它是将FPGA内的fuse熔断,因此在执行这个动作以后,FPGA的功能就固定了,即使掉电后重起其功能仍然存在。对于这种FPGA,就不需要外加专用的配置芯片。但是这种方式的FPGA只能写一次,所以危险性很大,初期的开发过程比较麻烦,费用也比较高。但反熔丝技术也有许多优点:布线能力更强,系统速度更快,功耗更低,同时抗辐射能力强,可耐高低温,可以加密,所以它在一些有特殊要求的领域中运用更多,如军事及航空航天。

(二)VHDL语言简介

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为ANSI/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为ANSI/IEEE的ANSI/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。

VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。

1. VHDL的优点:

7

上海海事大学本科生毕业设计(论文)

当前ASIC制造商都自己开发了HDL语言,但是都不通用,只有美国国防部开发的VHDL语言成为了IEEE. STD_1076标准,并在全世界得到了承认。该语言集成了各种HDL语言的优点,使数字系统设计更加简单和容易。其具体优点如下: (1) VHDL 语言功能强大 , 设计方式多样

VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时, 它还具有多层次的电路设计描述功能。此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现, 这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力

VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力

VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关

采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用

VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计 , 而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块, 将这些模块存放在库中 , 就可以在以后的设计中进行复用 (6)VHDL的使用非常灵活

VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。

8

上海海事大学本科生毕业设计(论文)

2. VHDL设计电路主要的工作过程 (1)编辑

用文本编辑器输入设计的源文件(为了提高输入效率,可用某些专用编辑器)。 (2)编译

用编译工具将文本文件编译成代码文件,并检查语法错误。 (3)功能仿真(前仿真)

在编译前进行逻辑功能验证,此时的仿真没有延时,对于初步的功能检测非常方便。 (4)综合

将设计的源文件用自动综合工具由语言转换为实际的电路图(门电路级网表),但此时还没有在芯片中形成真正的电路,就好像是把设计者脑海中的电路画成了原理图。 (5)布局、布线

用已生成的网表文件,再根据CPLD(或FPGA)器件的容量和结构,用自动布局布线工具进行电路设计。首先根据网表文件内容和器件结构确定逻辑门的位置,然后再根据网表提供的门连接关系,把各个门的输入输出连接起来,类似于设计PCB(印刷电路板)时的布局布线工作。最后生成一个供器件编程(或配置)的文件,同时还会在设计项目中增加一些时序信息,以便于后仿真。 (6)后仿真(时序仿真)

这是与实际器件工作情况基本相同的仿真,用来确定设计在经过布局、布线之后,是否仍能满足设计要求。如果设计的电路时延满足要求,则可以进行器件编程(或配置)。

(三) MAX+PLUS II软件

Max+plusⅡ是世界上最大可编程逻辑器件的供应商之一Altera公司推出的一款

FPGA/CPLD开发平台。它具有多种原理图输入和文本输入(采用硬件语言)两种输入手段,如原理图输入和文本输入(采用硬件语言)。具备编辑,编译,仿真,综合,下载等功能。用户可以在此软件中完成从源代码输入到最后烧制到芯片的全部开发工作。虽然此软件支持的VHDL语句比专业的仿真和综合工具要少,但是由于它的简单易用和All-in-one(全部功能都集成在一个软件中)特征,在国内高等院校教学中得到广泛的应用。

1. MAX+PLUS II电路设计流程: (1) 设计输入

MAX + plus Ⅱ支持多种设计输入方式,如原理图输入、波形输入、文本输入和它们

9

上海海事大学本科生毕业设计(论文)

的混合输入。本文采用的事VHDL文本输入。

(2)设计处理

设计输入完后,用MAX + plus Ⅱ的编译器编译、查错、修改直到设计输入正确,同时将对输入文件进行逻辑简化、优化,最后生成一个编程文件。 这是设计的核心环节。

(3)设计检查

MAX + plus Ⅱ为设计者提供完善的检查方法设计仿真和定时分析。其目的是检验电路的逻辑功能是否正确,同时测试目标器件在最差情况下的时延。这一查错过程对于检验组合逻辑电路的竞争冒险和时序逻辑电路的时序、时延等至关重要。

(4) 器件编程

当电路设计、校验之后,MAX+plus Ⅱ的Programmer 将编译器所生成的编译文件下载到具体的CPLD 器件中,即实现目标器件的物理编程 。

结构流程图如下所示:

1.图像输入2.AHDL3.VHDL 4.Verilog HDL输入设计编译 1.Functional SNF Extractor2.Timing SNF Extractor仿真1.功能仿真2.时序仿真引脚图编辑分配目标器件引脚重编译软件按用户意图进行引脚分配及布线下载/配置将编译生成的下载或配置文件烧录进指定放入器件图2.1 用MAX+plus II 进行电路10 设计的基本流程结构图

上海海事大学本科生毕业设计(论文)

三 基于VHDL交通灯控制器设计和仿真

(一) 设计思想介绍

欲设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器, 具体要求如下:

1.主,支干道各设一个黄,绿,红指示灯,两个显示数码管。 2.支干道没有车辆通过时,主干道处于常允许通行状态。

3.当主干道无车辆通行而支干道有车辆通行时,主干道状态灯由“红—绿—黄”周期显示,支干道状态灯由“绿—黄—红”周期显示。

4.当主、支道均有车时,主干道状态灯由“绿—黄—红”周期显示,支干道状态灯由“红—绿—黄”周期显示。

5.主,支干道允许通行(绿灯)时间均为35S,禁止通行(红灯)时间均为39S,每次由亮绿灯到亮红灯的转换过程中,要亮4S的黄灯作为过渡,并进行减计时显示。整个结构原理图3.1如下所示:

Reset

holdmrbr计数器计数值控制器红,黄,绿发光二极管倒计时数字Clock(1hz)分位器七段数码管图3.1 基于VHDL交通灯信号控制设计结构原理图

11

上海海事大学本科生毕业设计(论文)

(二)系统各功能模块的实现

1.计数器模块:

主要对clock时钟的每一上升沿计数,即实现秒计数。除此之外,还实现了对整个交通灯的状态控制。

模块功能实现主要程序部分见附录1

2.控制器模块:

实现对整个交通灯的功能控制,包括监控主干道,支干道是否有普通车辆或特殊车辆通过;红,黄,绿灯状态转变以及持续时间倒计时控制。

图3.3 控制器模块图形文件 图3.2 计数器模块图形文件

模块功能实现主要程序部分见附录2.

3.分位器器模块:

实现对红,黄,绿灯状态持续时间的分位作用,让两个数码管能分别显示十位,个位。

12

上海海事大学本科生毕业设计(论文)

模块功能实现主要程序部分见附录3.

(三)系统综合设计与仿真

1.交通灯控制器顶层文件原理图3.5如下所示:

13

图3.4 控制器模块图形文件

上海海事大学本科生毕业设计(论文)

图3.5 顶层文件原理图

2. MAX+PLUS II中的仿真如图3.6所示:

Clock:时钟输入;

14

图3.6 交通灯信号控制仿真波形

上海海事大学本科生毕业设计(论文)

Hold:特殊车辆监控键。高电平时表示有特殊车辆通过,此时,主干道,支干道全变为红灯状态且计数停止,变为低电平后计数恢复正常。

Mr: 主干道车量监控键,高电平时表示有车连通过,反之则表示无。 Br: 支干道监控键,高电平时表示有车连通过,反之则表示无。 Reset:数码管计数复位键,高电平时所有计数恢复到初始状态。 R,G,Y,R1,G1,Y1分别表示主,支干道的红,绿,黄灯。

(四) 软件调试过程中遇到的问题

由于大学期间应用到VHDL的编程的设计较少,因此对VHDL没有过系统的学习,实践经验就更少,以致在学习实践过程中碰到了不少问题,但随着学习的逐渐深入,不断的练习实践,这些问题也逐步解决了。

1. 程序编译过程中遇到的问题

(1)首次编译成功一个程序后,紧接着编译第二个程序,提示框显示编译成功,可是在做顶层文件原理图仿真时,一直提示有错误。后来经过仔细检查才发现,原来我编译第二个程序时,没有把工作文件设我当前文件。

(2)编译文件时,跳出“type in waveform element must be “std_logic_vector”” 错误提示框。后来经过不断查阅相关书籍,终于发现了问题所在:VHDL语言是一种强类型语言,对每个常数,变量,信号等的数据类型都有一个要求,只有相同数据类型的量,才能相互传递。我所编写的程序数据输出类型是std_logic_vector(),而信号声明的数据类型为Integer,在数据传递过程中,我没有经过任何转变,直接将信号值赋予输出变量,所以出现

了以上错误提示框。在所有数据类型更改为一致后,这个问题也就迎刃而解了。

2.程序仿真仿真中遇到的问题

将编译成功的文件进行波形仿真后,发现输出信号的波形为一条直线,就是说没有信号输出。点击“放大镜”或者用鼠标拖动波形图下方滚动条,还是没有波形变化。后来才发现原来我设置的“End time”太小了,以至于不能显示完整的波形。解决方案:在波形文件下,点击软件“EDIT”下拉菜单,选择“End time…”,将其时间设的大些;同时也可以在波形文件下,选择菜单“Option”下拉菜单,点击“Grid size”将时钟周期设置小些。

四 系统调试与实现

(一)GW48-CK系统概述

15

上海海事大学本科生毕业设计(论文)

1.含Multi-task Reconfiguration电路结构(多功能重配置结构,本公司设备特有)。该电路结构由CPLD和单片机联合控制,能仅通过一个键,完成纯电子切换(有的产品只能通过许多机械开关手动切换)的方式选择12种不同的实验系统硬件电路连接结构,大大提高了实验系统的连线灵活性,但又不影响系统的工作速度(手工插线方式虽然灵活,但严重影响系统速度和电磁兼容性能,不适合高速FPGA/SOPC等电子系统实验设计)。

2.6大FPGA/CPLD公司下载功能和自动识别功能,即能对不同公司的FPGA/CPLD都可进行实验开发(此亦为本公司EDA产品特有的功能),如Altera、Xilinx、Lattice、Vantis、Atmel等;

3.FPGA/CPLD万能接插口;智能译码模块; 4.1Hz—50MHz标准时钟源; 数字频率计; 5.含VGA、UART、PS/2、FPGA/单片机等接口; 6.符合一般教学大纲的A/D和D/A;311构成的A/D; 7.±12、5、3.3、2.5V混合电压源; 8.良好电磁兼容性的SX8200-J高速高密主板; 9.用于信号发生器实验的有源滤波;

10.除所有常规数字系统设计及验证性实验外,还包括许多设计与创新型实验项目,如VGA口、PS/2、硬件RS232、FPGA对PC机通信、FPGA/CPLD开发、电子设计竞赛培训与开发等40余种典型EDA实验项目,

11.可以配不同规模的适配板,FPGA、CPLD、或模拟EDA(ispPAC)

(二) GW48-CK系统工作原理

GW48-CK系统结构原理图4.1如下所示:

16

上海海事大学本科生毕业设计(论文)

1.BL1:实验或开发所需的各类基本信号发生模块。其中包括最多至8通道的单次脉冲信号发生器、高低电平信号发生器、BCD码或16进制码(8421码)信号发生器。所有这些信号的发生主要由BL6主控单元产生,并受控于系统板上的8个控制键。

2.BL5:CPLD/FPGA输出信息显示模块,其中包括直通非译码显示、BCD七段译码显示、16进制全码七段译码显示、两组8位发光管显示、16进制输入信号显示指示、声响信号指示等。同样,所有这些显示形式及形式的变换皆由BL6转换和独立控制。

3.在BL6的监控程序中安排了多达12种形式各异的信息矢量分布,即“电路重构软配置”。由此可见,虽然GW48系统从硬件结构上看,是一个完全固定下来的实验系统,但其功能结构却等同于12套实验接口迥异的实验系统(参见第二节)。

4.BL3:此模块主要是由一目标芯片适配座以及上面的CPLD/FPGA 目标芯片和编程下载电路构成。通过更换目标板,就能对多种目标芯片进行实验。

5.BL6使GW48系统的应用结构灵活多变,实际应用中,该模块自动读取BL7的选择信息,以确定信息矢量分布。实验前,可根据实验类型,以及所需的CPLD/FPGA 目标芯片的I/O接口位置,从14张实验电路结构图中找到相适应的实验系统功能结构,并将该图的编号键入BL7,系统即刻进入了所需要的接口和实验模式。

(三)实验电路及管脚定义

图4.1 GW48-CK系统结构原理图

1.实验电路结构图:

本次交通灯设计使用的是GW48—CK型EDA实验开发系统中的模式五,其电路结构图4.2如下:

17

上海海事大学本科生毕业设计(论文)

设计过程中所使用元器件: Mr由键4控制, Br由键3控制, Hold由键2控制, Reset由键1控制,

D6,D7,D8,分别用以显示主干道红,黄,绿灯;D3,D2,D1分别用以显示支干道绿,黄,红灯。

数码管8,7分别显示主干道倒计时的十位和个位,数码管2,1分别显示支干道倒计时的十位和个位。

2. 管脚定义:

设计所使用的芯片为EPF10K10LC84-4,由实际所选模式五电路结构图中所用元器件,管脚锁定文件如表4.3所示:

图4.2电路结构图

I/O标识 mr br hold reset R 引脚名称 PIO3 PIO2 PIO1 PIO0 PIO15 18

引脚号 8 7 6 5 25 上海海事大学本科生毕业设计(论文) Y G R1 Y1 G1 zhuganH[3..0] zhuganL[3..0] zhidaoH[3..0] zhidaoL[3..0]

PIO14 PIO13 PIO8 PIO9 PIO10 PIO47- PIO44 PIO43- PIO40 PIO23- PIO20 PIO19-PIO16 图4.3管脚锁定文件表

24 23 17 18 19 79,78,73,72 71,70,67,66 38,37,36,35 30,29,28,27 (四) 实验箱上验证时遇到的一些问题

1.程序的功能仿真和时序仿真编译都已经已经通过了,在进行程序下载烧制前,硬件设置中选择byteblaster(mv)时,parallel port及其他几个口都是灰色,点击ok,就弹出“can't find programming hardware”对话框。在经过仔细检查排错后,终于发现我所使用的win XP 由于系统自保护机制,需要安装下载电缆的驱动程序。安装下载驱动后,一切工作正常。

(五) 交通灯信号控制硬件测试

1.GW48-CK型EDA实验箱所用输入输出元件如4.4所示:

19

上海海事大学本科生毕业设计(论文)

2.硬件测试结果:

(1)当支干道没有车辆时(主干道可有车辆通过或者没有车辆通过),此时,一直处于主干道绿灯,支干道红灯状态,硬件结果如下所示:

图4.4 GW48-CK型EDA实验箱所

用输入输出元件示意图

(2)当支干道有车辆通过且主干道没有车辆通过时,主干道为红灯,支干道为绿灯。此时,主干道数码管进行39S的倒计时计数,然后主干道变为绿灯,数码管进行35S的倒计时

20

图4.5.支干道没有车辆通过时

上海海事大学本科生毕业设计(论文)

计数,接着主干道变为黄灯,主干道数码管进行4S的倒计时计数,之后再转为39S的红灯状态,依次循环;支干道数码管首先进行35S的绿灯倒计时计数,然后是4S的黄灯倒计时计数,接着是39S的红灯倒计时计数,之后变为绿灯,依此循环。具体状态结构如图4.6所示:

支干道绿-----35S黄--4S主干道红---------39S绿---35S黄-4S红----------39S支干道有车且主干道没车辆通过时的状态示意图图4.6支道有车而主干道没车的状态结构图

硬件实物结果图4.7所示(按下复位键1,数码管计数恢复至状态初始值):

(3)当支干道和主干道均有车辆通过时,主干道为绿灯,支干道为红灯。此时,支干道数码管进行39S的倒计时计数,然后支干道变为绿灯,数码管进行35S的倒计时计数,接着

21

图4.7 支干道有车通过而主干道没车辆通过时

上海海事大学本科生毕业设计(论文)

支干道变为黄灯,支干道数码管进行4S的倒计时计数,之后再转为39S的红灯状态,依次循环;主干道数码管首先进行35S的绿灯倒计时计数,然后是4S的黄灯倒计时计数,接着是39S的红灯倒计时计数,之后变为绿灯,依此循环。具体结构图如4.8所示:

硬件实物结果图4.9所示(按下复位键1,数码管计数恢复至状态初始值):

支干道红---------39S绿---35S黄-4S主干道绿-----35S黄--4S红----------39S图4.8主干道与支干道均有车辆通过时的状态结构特 主干道和支干道均有车辆通过时的状态示意图

图4.9 主干道和支干道均有车

辆通过时

22

上海海事大学本科生毕业设计(论文)

(4)在任何状态下,当监控到有特殊紧急车辆通过时。主干道与支干道均为红灯,并且数码管停止计数,特殊紧急车辆通过后,系统恢复原来状态,数码管计数也恢复正常计数。硬件实物结果如4.10所示:

图4.10 有特殊紧急车辆通过时

五 毕业设计总结

23

上海海事大学本科生毕业设计(论文)

通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。

毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一份综和性作业,从老师的角度来说,指导做毕业设计是老师对学生所做的最后一次执手训练。其次,毕业设计的指导是老师检验其教学效果,改进教学方法,提高教学质量的绝好机会。

毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。 总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

在此要感谢我们的指导黄老师对我悉心的指导,感谢老师们给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。

结束语

利用MAX+plus II软件平台具有的强大仿真和应用系统功能,以及在FPGA进行数字系统

设计时所具有的灵活方便,周期短的特点。采用VHDL硬件描述语言完成交通灯系统功能设计,

24

上海海事大学本科生毕业设计(论文)

并通过下载到GW48-CK型试验箱,实现了基于FPGA器件的EPF10K10LC84-4交通灯系统控制的硬件测试。

参考文献

[1] 黄任, VHDL入门解惑经典实例经验总结 北京航空航天大学出版社2005.01 [2] 邢建平,曾繁泰,VHDL程序设计教程 清华大学出版社 2005.11 [3] 潘松,王国栋. VHDL实用教程 电子科技大学出版社 2001.1 [4] 邹虹. 数字电路与逻辑设计 人民邮电出版社 2008.03 [5] 潘明,潘松. 数字电子技术基础 科学出版社 2008.10

[6]杨恒,卢飞成.FPGA/VHDL快速工程实践入门与提高.北京航空航天大学出版社出版,2003.4 [7]罗勇,韩晓军.基于FPGA的交通灯控制和实现 《电子器件》 2008年03期

[8]文畅.基于FPGA/CPLD和VHDL语言的交通灯控制系统设计 《电脑知识与技术》2007年第9期

附录:

1.计数器模块功能实现主要程序部分:

P1:process(clock,reset,hold) begin

if rising_edge(clock) then if reset='1' then countnum<=0; elsif hold='1' then countnum<=countnum; else

if countnum=77 then countnum<=0; else

25

上海海事大学本科生毕业设计(论文)

countnum<=countnum+1; end if; end if; end if; end process p1 ;

2.控制器功能实现主要程序部分:

P2: process(clock,mr,br,hold,countnum)

begin

IF hold='1' then R<='1'; R1<='1'; G<='0'; G1<='0'; Y<='0';

Y1<='0'; ELSIF rising_edge(Clock) THEN IF (not br)='1' THEN R<='0'; R1<='1'; G<='1'; G1<='0'; Y<='0'; Y1<='0'; NumA<=0;NumB<=0;

ELSIF (br and not mr)='1' THEN IF CountNum<=38 THEN NumA<=39-CountNum; R<='1'; G<='0';

26

上海海事大学本科生毕业设计(论文)

Y<='0';

ELSIF CountNum<=73 THEN NumA<=74-CountNum; R<='0'; G<='1'; Y<='0'; ELSE

NumA<=78-CountNum; R<='0'; G<='0'; Y<='1'; END IF;

IF CountNum<=34 THEN NumB<=35-CountNum; R1<='0'; G1<='1'; Y1<='0';

ELSIF CountNum<=38 THEN NumB<=39-CountNum; R1<='0'; G1<='0'; Y1<='1'; ELSE

NumB<=78-CountNum; R1<='1'; G1<='0'; Y1<='0';

END IF;

ELSE IF CountNum<=34 THEN NumA<=35-CountNum; R<='0';

27

上海海事大学本科生毕业设计(论文)

G<='1'; Y<='0';

ELSIF CountNum<=38 THEN NumA<=39-CountNum; R<='0'; G<='0'; Y<='1';

ELSE

NumA<=78-CountNum; R<='1'; G<='0'; Y<='0'; END IF;

IF CountNum<=38 THEN NumB<=39-CountNum; R1<='1'; G1<='0'; Y1<='0';

ELSIF CountNum<=73 THEN NumB<=74-CountNum; R1<='0'; G1<='1'; Y1<='0'; ELSE

NumB<=78-CountNum; R1<='0'; G1<='0'; Y1<='1'; END IF;

28

上海海事大学本科生毕业设计(论文)

END IF; END IF; END PROCESS p2;

3.分位器功能实现主要程序部分: p3:process(NumA) begin

if NumA>=30 then zhuganH<=3; zhuganL<=NumA-30; elsif NumA>=20 then zhuganH<=2; zhuganL<=NumA-20; elsif NumA>=10 then zhuganH<=1; zhuganL<=NumA-10; else

zhuganH<=0; zhuganL<=NumA; end if; end process p3;

p4:process(NumB) begin

if NumB>=30 then

29

上海海事大学本科生毕业设计(论文)

zhidaoH<=3; zhidaoL<=NumB-30; elsif NumB>=20 then zhidaoH<=2; zhidaoL<=NumB-20; elsif NumB>=10 then zhidaoH<=1; zhidaoL<=NumB-10;

else

zhidaoH<=0; zhidaoL<=NumB; end if; end process p4;

30

本文来源:https://www.bwwdw.com/article/uyda.html

Top