基于fpga的智能交通灯设计附vhdl语言程序

基于fpga的智能交通灯设计附vhdl语言程序

ID:11880154

大小:4.89 MB

页数:26页

时间:2018-07-14

基于fpga的智能交通灯设计附vhdl语言程序_第1页
基于fpga的智能交通灯设计附vhdl语言程序_第2页
基于fpga的智能交通灯设计附vhdl语言程序_第3页
基于fpga的智能交通灯设计附vhdl语言程序_第4页
基于fpga的智能交通灯设计附vhdl语言程序_第5页
资源描述:

《基于fpga的智能交通灯设计附vhdl语言程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、目录第一章设计原理11.1使用VHDL语言实现对FPGA器件的编程11.2使用的设计工具11.2.1硬件部分11.2.2软件部分11.3软件框图11.4红绿灯拓展模块2第二章程序设计及分析32.1分频器器件的设计32.2数码管显示驱动器件的设计32.3顶层器件设计42.3.1按键消抖42.3.2数码管扫描显示52.3.324小时时钟52.3.4改变时间设定62.3.5交通灯主控程序7第三章使用说明及实验结果83.1使用说明83.2实验结果9第四章结论与体会12附录程序源码13第一章设计原理1.1使用VHDL语言实现对FPGA器件的编程FPGA(Field-Pr

2、ogrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。对于目前的FPGA器件,可以使用硬件描述语言(Verilog或VHDL)完成电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。

3、1.2使用的设计工具1.2.1硬件部分Cycloneii是一款FPGA器件,于2004年由Altera公司推出。CycloneIIFPGA的成本比第一代Cyclone器件低30%,逻辑容量大了三倍多,同时具有丰富的I/O引脚。实验板采用EP2C5T144C8芯片并配有SDRAM芯片,时钟频率为50MHz。同时,实验板包含4个数码管以及5个按键,同时将丰富的I/O口用排针进行了引出。从系统资源以及运行速度的方面考虑,均足以完成智能交通灯的设计。1.2.2软件部分QuartusII是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、Verilog

4、HDL以及AHDL(AlteraHardware支持DescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。具有设计灵活、支持广泛、易于修改、独立于器件的设计或工艺等优秀的特性。十分适合于对FPGA器件进行编程。1.3软件框图25本系统包含一个顶层以及两个子器件(分频器以及数码管显示驱动)。分频器将系统时钟分为1000Hz,1Hz等待信号供顶层程序使用。顶层包含了整个系统关键性控制逻辑,在接收到分频器时钟信号以及按

5、键信号后,由不同的进程进行处理,同时不同的进程间通过标志位信号进行通信。处理完成的信息将传递给LED直接输出红绿灯信号或数码管驱动器件进行进一步的处理后输出给数码管进行显示。图1.11.4红绿灯拓展模块为了达到更好的人机交互效果,本系统将红绿灯在电路板上通过不同的颜色的LED进行实物化。模块原理图如下:图1.225PCB设计如下:图1.3第二章程序设计及分析2.1分频器器件的设计本系统将分频器单独设置为一个器件,目的是便于对时间倍率进行修改以及方便调用。具体思路如下:(以1ms为周期的输出信号为例)图2.12.2数码管显示驱动器件的设计实验板的数码管为共阳连接

6、,含有4个位选信号以及8个段选信号,通过控制位选及段选可以实现数码管的显示。25该子器件的输入信号为0-15的整数,输出为显示16进制相应字符的段选信号。程序主体采用case语句,对输入信号进行选择并相应的输出。图2.22.3顶层器件设计2.3.1按键消抖本系统对于按键采取了消抖的处理办法,可以有效的增加稳定性。消抖的实现原理基于计数器,当检测到有按键按下则开始计数,当计数达到设定值时给出按键按下的信号并执行相应功能,其中key5实现模式选择,其余按键实现对时间设定的更改。图2.3252.3.2数码管扫描显示实验板采用了四个共阳的数码管,若需要让每个数码管都显

7、示不一样的内容,则需要对数码管进行扫描显示。本系统采用1000Hz的频率对数码管进行扫描显示,实际效果可以稳定的显示而不会出现闪烁的现象。程序设计方面采用了两个process,分别对数码管位选进行扫描以及输入段选信号图2.4图2.52.3.324小时时钟为了实现白天与夜间的模式切换效果,需要加入24小时制的时钟。本系统对于时钟的实现依然基于计数器。具体流程如下:对分频器输出的分钟信号进行检测,当检测到上升沿时执行计数,当达到该位最大值时执行进位与清零。25图2.62.3.4改变时间设定本程序实现了对行人通行时间,汽车通行时间以及夜间时间段的设定。设定方式为由按

8、键实现加减。主要代码已经内嵌于按键消抖

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。