网站大量收购独家精品文档,联系QQ:2885784924

第6章大型完六整系统设计实例-交通灯和频率计.ppt

第6章大型完六整系统设计实例-交通灯和频率计.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 第6章 大型完整系统设计实例 第一部分 交通灯信号控制器的设计    设计一个主干道和支干道十字路口的交通管理系统,并用VHDL进行描述。该交通管理系统的技术要求为:如果只有一个方向有车时,则保持该方向畅通;当两个方向都有车时, 主干道和支干道交替通行, 但主干道通行的时间要比支干道长一些。             系统设计 第一步:在明确技术要求的基础上,首先制定系统的设计方案。  第二步: 系统划分,得到系统结构图。 第三步:根据设计方案和系统结构图进行算法设计, 可以画出控制系统的ASM图。 第四步:设计输入,用VHDL对该系统进行描述。   根据技术要求,在主干道和支干道两个方向上都安装红、黄、绿三色信号灯;Ca和Cb分别是安装在主干道和支干道上的传感器,用于检测是否有车辆需要通过路口。在只有主干道有车时, 主干道亮绿灯, 支干道亮红灯;当只有支干道有车时,主干道亮红灯,支干道亮绿灯;当两个方向都有车时,则两个方向轮流亮绿灯和红灯,但主干道每次亮绿灯的时间不得少于60s,支干道每次亮绿灯的时间不得多于40s,在由绿灯转红灯之间要有10s的黄灯(公共停车时间)作为过渡。本系统最终采用可编程逻辑器件来实现。 第一步:在明确技术要求的基础上,首先制定系统的设计方案。 交通管理系统的结构图 第二步: 系统划分,得到系统结构图。  根据以上的设计方案, 可以画出系统的结构图。 本系统主要由控制器和受控制的定时器组成。定时器用来确定主干道、支干道通行时间以及公共停车时间;CNT是定时的值; LD是定时值的同步预置信号,高电平有效;ST是这个定时器的状态信号,当定时结束时,ST输出为1; Ca和Cb分别为主干道和支干道的传感器输出信号,高电平表示有车需要通过;clk是周期为秒的时钟信号;reset是异步复位信号,低电平有效,复位后的初始状态为主干道畅通;Ra、Ya、Ga和Rb、Yb、Gb分别为主干道和支干道的红、黄、绿灯的控制信号,高电平有效。 第三步:根据设计方案和系统结构图进行算法设计, 可以画出控制系统的ASM图。  ASM图很清楚地表明了该交通管理系统共有4个状态(S0、 S1、 S2和S3)以及各状态之间的转换关系。 当ST=1时, LD =1,CNT的值取决于当前的状态和Ca、Cb的值。 CNT的取值表 60 S3 10 Ca=1 S2 40 Ca=0 40 S1 10 Cb=1 60 Cb=0 S0 CNT Ca、Cb 状态 第四步:设计输入,用VHDL对该系统进行描述。 本设计采用分层次描述,以下为VHDL源文件。 --定时器模块(count.vhd):  LIBRARY IEEE;  USE IEEE.STD-LOGIC-1164.ALL;  USE IEEE.STD-LOGIC-UNSIGNED.ALL;  ENTITY counter IS PORT( reset ,clk ,LD : IN STD-LOGIC;  CNT : IN INTEGER RANGE 0 TO 63;  ST : OUT STD-LOGIC );  END ENTITY counter;  ARCHITECTURE arch OF counter IS SIGNAL Q : INTEGER RANGE 0 TO 63;  BEGIN PROCESS( reset, clk )- -定时器进程 BEGIN  IF( reset = ′0′ ) THEN Q = 60;  ELSIF( clk′EVENT AND clk = ′1′ ) THEN IF( LD = ′1′ ) THEN Q = CNT; ELSIF ( Q /= 0 ) THEN Q = Q-1; END IF;  END IF; END PROCESS;  PROCESS( reset ,clk ) -定时器ST的进程 BEGIN IF( reset = ′0′ ) THEN ST = ′0′;  ELSIF( clk′EVENT AND clk = ′1′ ) THEN

文档评论(0)

152****6235 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档