VHDL交通灯课程设计_第1页
VHDL交通灯课程设计_第2页
VHDL交通灯课程设计_第3页
VHDL交通灯课程设计_第4页
VHDL交通灯课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

沈阳理工大学课程设计专用纸 0 目录 引言 0 1 系统的设计要求 1 2 系统分析 1 2 1 系统构成 1 2 2 系统实现过程 2 3 具体模块设计 2 3 1 消抖模块 2 3 2 交通灯模块 2 3 3 交通灯时长设置模块 3 3 8 整体结构电路图 4 4 程序设计 4 4 1 消抖模块源代码 4 4 2 交通灯时长设置模块 5 4 3 交通灯模块 6 4 4 顶层文件源代码 9 5 运行结果与分析 11 6 结束语 12 参考文献 13 精品文档 1欢迎下载 引言引言 不同的城市存在着不同的城市问题 但其中有一个共同的问题就是城市交通 在交叉路口如何解决混合交通流中的相互影响 就是解决问题的关键所在 随 着我国经济的稳步发展 人民生活水平的日渐提高 越来越多的汽车进入寻常 百姓的家庭 再加上政府大力地发展公交 出租车行业 道路上的车辆越来越 多 使得城市的交通成为了一个主要的问题 严重的拥堵现象 逐渐恶化的城 市环境 都给广大市民带来了许多困扰 要解决这些问题不仅要求道路越来越 宽阔 而且更需要有新的交通管理模式出台 实现路口交通灯系统的控制方法很多 可以用标准逻辑器件 可编程序控 制器 PLC 单片机等方案来实现 但是这些控制方法的功能修改及调试都需要 硬件电路的支持 在一定程度上增加了功能修改及系统调试的困难 交通系统 未来的发展趋势就是要提高通行能力 加强环境保护 开展智能化运输和环保 专项技术的研究 并且要做到以人为本 重点开展交通安全技术的研究 在这 个过程中要确定经济合理的目标 促进新材料的广泛应用和开发 精品文档 2欢迎下载 EDA 技术是用于电子产品设计中比较先进的技术 可以代替设计者完成电 子系统设计中的大部分工作 而且可以直接从程序中修改错误及系统功能而不 需要硬件电路的支持 既缩短了研发周期 又大大节约了成本 受到了电子工 程师的青睐 1 1 系统的设计要求系统的设计要求 为了满足步行街的要求 此交通灯须具备以下功能 1 正常情况下保证主干道的畅通 2 当步行街道上的行人要穿过主干道时 通过设置的按钮来发出请求 3 当有人按下此按钮时 主干道变为黄灯 设置计数器时间为 X 秒 4 X 秒过后 主干道变为红灯 计数器继续计时 计时时间为 Y 秒 在 Y 秒 内若有人再次按按钮 计数器不重新计时 5 步行街绿灯闪烁时间为 Y1 秒 Y Y1 秒后主干道变为绿灯 车辆通行 且咬保证车辆通行一定时间 Z 秒 在此时间内 行人按按钮无效 Z 秒 精品文档 3欢迎下载 过后 若有人再按下按钮 又出现 3 中的状态 计数器的计时时间长短 X Y Z 可以任意设定 2 2 系统分析系统分析 2 12 1 系统构成系统构成 行人按下红灯按钮 设置人行道绿灯时长 设置马路红灯后按键的无效时间 交通灯模块 状态机模块计数器模块 控制模块 设置交通灯时长模块 消抖模块 消抖模块 消抖模块 精品文档 4欢迎下载 步行街自助式交通灯控制器控制器分为 3 个模块 消抖模块 交通灯模块 交通灯时长设置模块 2 22 2 系统实现过程系统实现过程 最初状态是人行道红灯 马路绿灯 当有行人按下按钮时 马路的红灯变 为黄灯 持续一个时钟周期的时间 然后马路的黄灯变为绿灯 此时人行道的 红灯也变为绿灯 然后持续 HUMAN TIME 个时钟的周期的时间 然后人行灯的绿 灯变为闪烁的绿灯 持续 2 个时钟的周期的时间 然后人行道的闪烁的绿灯变 为红灯 此时马路的红灯也变为绿灯 然后在 VEHICLE TIME 个时钟周期内人行 道为红灯 马路为绿灯状态保持不变且行人按键无效 状态如下 主干道信号灯 步行街信 号灯 状态 R 红 G 绿 Y 黄 R 红 G 绿 主干道步行街道 S001010 通行禁行 S100110 车停靠禁行 S210001 禁行通行 S31000 禁行 通行 绿灯 闪烁 S401010 通行禁行 精品文档 5欢迎下载 3 3 具体模块设计具体模块设计 3 13 1 消抖模块消抖模块 消抖模块 DITHER 如图 2 所示 使用硬件消抖原理 3 23 2 交通灯模块交通灯模块 交通灯模块 LIGHT 如图 3 所示 根据输入 GHUMAN TIME GHUMAN CLKT 和 GVEHICLE TIME 的值 进行减计数 然后根据值判断状态机的状态 3 33 3 交通灯时长设置模块交通灯时长设置模块 交通灯时长设置模块 COUNTER 如图 4 所示 根据设置按键人按键设置人行道 绿灯时长和按键屏蔽时长 图 2 DITHER 模块 图 3 LIGHT 模块 精品文档 6欢迎下载 图 4 COUNTER 模块 3 83 8 整体结构电路图整体结构电路图 图 5 整体结构电路图 4 4 程序设计程序设计 4 14 1 消抖模块源代码消抖模块源代码 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL 精品文档 7欢迎下载 ENTITY DITHER IS PORT UPIN IN STD LOGIC DOWNIN IN STD LOGIC KEYOUT OUT STD LOGIC END DITHER ARCHITECTURE BEHAVE OF DITHER IS SIGNAL OUT1 STD LOGIC SIGNAL OUT2 STD LOGIC BEGIN OUT1 NOT OUT2 AND UPIN OUT2 NOT OUT1 AND DOWNIN KEYOUT OUT1 END BEHAVE 4 24 2 交通灯时长设置模块交通灯时长设置模块 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY COUNT IS PORT CLK IN STD LOGIC 精品文档 8欢迎下载 CLEAR IN STD LOGIC CLKADD IN STD LOGIC CLKSUB IN STD LOGIC PRE SET IN STD LOGIC HUMAN SET IN STD LOGIC RST IN STD LOGIC GHUMAN TIME OUT INTEGER RANGE 31 DOWNTO 0 GHUMAN CLKT OUT INTEGER RANGE 31 DOWNTO 0 GVEHICLE TIME OUT INTEGER RANGE 31 DOWNTO 0 END COUNT ARCHITECTURE BEHAVE OF COUNT IS SIGNAL HUMAN TIME INTEGER RANGE 31 DOWNTO 0 SIGNAL VEHICLE TIME INTEGER RANGE 31 DOWNTO 0 SIGNAL SSTATE STD LOGIC VECTOR 3 DOWNTO 0 SIGNAL SCLK STD LOGIC SIGNAL DSCLK STD LOGIC BEGIN SSTATE 0000 WHEN PRE SET 0 ELSE HUMAN SET SCLK CLKADD OR CLKSUB OR CLEAR 精品文档 9欢迎下载 PROCESS CLK BEGIN IF CLK EVENT AND CLK 1 THEN DSCLK SCLK END IF END PROCESS PROCESS RST CLEAR DSCLK BEGIN IF RST 1 THEN VEHICLE TIME VEHICLE TIME VEHICLE TIME VEHICLE TIME VEHICLE TIME VEHICLE TIME VEHICLE TIME VEHICLE TIME VEHICLE TIME END CASE 精品文档 10欢迎下载 END IF END PROCESS PROCESS CLEAR DSCLK BEGIN IF RST 1 THEN HUMAN TIME HUMAN TIME HUMAN TIME HUMAN TIME HUMAN TIME HUMAN TIME HUMAN TIME HUMAN TIME HUMAN TIME END CASE END IF END PROCESS PROCESS PRE SET RST 精品文档 11欢迎下载 BEGIN IF RST 1 THEN GHUMAN TIME 5 GHUMAN CLKT 7 GVEHICLE TIME 15 ELSIF PRE SET EVENT AND PRE SET 0 THEN GHUMAN TIME HUMAN TIME 1 GHUMAN CLKT HUMAN TIME 3 GVEHICLE TIME HUMAN TIME VEHICLE TIME 3 END IF END PROCESS END BEHAVE 4 34 3 交通灯模块交通灯模块 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY LIGHT IS PORT SRED OUT STD LOGIC 精品文档 12欢迎下载 ERED OUT STD LOGIC SGREEN OUT STD LOGIC EYELLOW OUT STD LOGIC EGREEN OUT STD LOGIC GT SET IN STD LOGIC GHUMAN TIME IN INTEGER RANGE 31 DOWNTO 0 GHUMAN CLKT IN INTEGER RANGE 31 DOWNTO 0 GVEHICLE TIME IN INTEGER RANGE 31 DOWNTO 0 REQUEST IN STD LOGIC CLK IN STD LOGIC RST IN STD LOGIC END LIGHT ARCHITECTURE BEHAVE OF LIGHT IS TYPE IN STATES IS ST0 ST1 ST2 ST3 ST4 SIGNAL CURRENT STATE IN STATES SIGNAL NEXT STATE IN STATES SIGNAL START STD LOGIC SIGNAL SIG INTEGER RANGE 31 DOWNTO 0 BEGIN PROCESS CURRENT STATE RST 精品文档 13欢迎下载 BEGIN IF RST 1 OR CURRENT STATE ST0 THEN START 0 ELSE START 1 END IF END PROCESS A PROCESS START CLK RST BEGIN IF RST 1 THEN SIG 0 ELSIF CLK EVENT AND CLK 1 THEN IF START 1 THEN IF SIG GVEHICLE TIME THEN SIG 0 ELSE SIG SIG 1 END IF ELSE SIG 0 精品文档 14欢迎下载 END IF END IF END PROCESS A PROCESS RST CLK BEGIN IF RST 1 THEN CURRENT STATE ST0 ELSIF CLK EVENT AND CLK 1 THEN CURRENT STATE ERED 0 EGREEN 1 EYELLOW 0 SRED 1 SGREEN 0 IF REQUEST 1 AND GT SET 0 THEN NEXT STATE ST1 ELSE 精品文档 15欢迎下载 NEXT STATE ERED 0 EGREEN 0 EYELLOW 1 SRED 1 SGREEN 0 IF SIG 1 THEN NEXT STATE ST2 ELSE NEXT STATE ERED 1 EGREEN 0 EYELLOW 0 SRED 0 SGREEN 1 IF SIG GHUMAN TIME THEN NEXT STATE ST3 ELSE NEXT STATE ERED 1 EGREEN 0 EYELLOW 0 SRED 0 SGREEN NOT CLK IF SIG GHUMAN CLKT THEN NEXT STATE ST4 ELSE NEXT STATE ERED 0 EGREEN 1 EYELLOW 0 SRED 1 SGREEN 0 IF SIG GHUMAN CLKT THEN NEXT STATE ST0 ELSE NEXT STATE ERED 0 EGREEN 1 EYELLOW 0 SRED 1 SGREEN 0 NEXT STATE ST3 END CASE END PROCESS END BEHAVE 4 44 4 顶层文件源代码顶层文件源代码 Library ieee Use ieee std logic 1164 all Use ieee std logic unsigned all Entity TrafficLight is Port clk in std logic 精品文档 17欢迎下载 clear in std logic rclear in std logic clkADD in std logic rclkADD in std logic clkSUB in std logic rclkSUB in std logic pre set in std logic human set in std logic rst in std logic request in std logic rrequest in std logic clk ls in std logic sred sgreen out std logic ered eyellow egreen out std logic End Architecture behave of TrafficLight is Component DITHER is PORT UPIN IN STD LOGIC DOWNIN IN STD LOGIC KEYOUT OUT STD LOGIC End component 精品文档 18欢迎下载 Component COUNT is PORT CLK IN STD LOGIC CLEAR IN STD LOGIC CLKADD IN STD LOGIC CLKSUB IN STD LOGIC PRE SET IN STD LOGIC HUMAN SET IN STD LOGIC RST IN STD LOGIC GHUMAN TIME OUT INTEGER RANGE 31 DOWNTO 0 GHUMAN CLKT OUT INTEGER RANGE 31 DOWNTO 0 GVEHICLE TIME OUT INTEGER RANGE 31 DOWNTO 0 End component Component LIGHT is PORT SRED OUT STD LOGIC ERED OUT STD LOGIC SGREEN OUT STD LOGIC EYELLOW OUT STD LOGIC EGREEN OUT STD LOGIC GT SET IN STD LOGIC GHUMAN TIME IN INTEGER RANGE 31 DOWNTO 0 GHUMAN CLKT IN INTEGER RANGE 31 DOWNTO 0 精品文档 19欢迎下载 GVEHICLE TIME IN INTEGER RANGE 31 DOWNTO 0 REQUEST IN STD LOGIC CLK IN STD LOGIC RST IN STD LOGIC End component Signal TEMP GHUMAN TIME INTEGER RANGE 31 DOWNTO 0 Signal TEMP GHUMAN CLKT INTEGER RANGE 31 DOWNTO 0 Signal TEMP GVEHICLE TIME INTEGER RANGE 31 DOWNTO 0 Signal TEMP CLEAR TEMP CLKADD TEMP CLKSUB TEMP REQUEST std logic Begin U1 DITHER port map clear rclear TEMP CLEAR U2 DITHER port map clkADD rclkADD TEMP CLKADD U3 DITHER port map clkSUB rclkSUB TEMP CLKSUB U4 DITHER port map request rrequest TEMP REQUEST U5 COUNT port map CLK TEMP CLEAR TEMP CLKADD TEMP CLKSUB PRE SET HUMAN SET RST TEMP G HUMAN TIME TEMP GHUMAN CLKT TEMP GVEHICLE TIME U6 LIGHT port map SRED ERED SGREEN EYELLOW EGREEN PRE SET TEMP GHUMAN TIME TEMP GHUMA N CLKT TEMP GVEHICLE TIME TEMP REQUEST CLK LS RST End behave 精品文档 20欢迎下载 5 5 运行结果与分析运行结果与分析 1 消抖模块仿真波形图 图 6 消抖模块仿真波形图 按键弹起为高电平 按下为低电平 当按键按下时 UPIN 变为低电 DOWNIN 变为高电平 并产生抖动 输出的 KEYOUT 信号消除抖动 2 交通灯模块仿真波形图 图 7 交通灯模块仿真波形图 给 CLK 一个时钟信号 在某一时刻开始赋给 RST 一个高电平 所有值恢复 默认 再给 REQUEST 赋值一个高电平 然后状态机开始工作 EYELLOW 马路的 黄灯 变为高电平 持续一个时钟周期的时间 然后 EGREEN 马路的绿灯 变为 高电平 此时 SGREEN 人行道的绿灯 变为高电平 然后持续 HUMAN TIME 个时 精品文档 21欢迎下载 钟的周期的时间 然后 SGREEN 人行灯的绿灯 变为 N 持续 2 个时钟的周期的 时间 然后 SRED 人行道的红灯 变为高电平 此时 ERED 马路的绿灯 变为高电 平 然后在 VEHIC

温馨提示

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

评论

0/150

提交评论