logo资料库

交通灯控制器fpga.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
基于 VHDL 语言的交通灯控制器设计
1 引言
2 具体设计应用
3  结束语
参考文献
基于 VHDL 语言的交通灯控制器设计 尹逊增 (大庆师范学院 物理与电气信息工程系 大庆 163712) 摘要:本文通过交通灯控制器的设计,阐明了利用 V HDL 硬件描述语言进行 CPL D/ FPGA 开发的一般 思路和方法。作出了针对现代公路要求,采用语言描述实现交通灯控制器功能的一种新的尝试, 并对其普通 功能作了 进一步完善。 关键词:VHDL ; FPGA/CPL D ; ASM 图;EDA 作者简介:尹逊增(1987-),男 1 引言 ( Very High Integrated Circuit 自 987 年 VHDL HardwareDescription Language) 即超高速集成电路硬件描述语言 ,被定为 IEEE 标准( IEEE - 1076) 以 来 ,V HDL 已被工业界广泛认可 ,并取得了巨大成功 ,成为数字系统设计和存档的重要工 具 ,极大的提高了数字系统的设计水平和效率 [1] 。而八十年代中期诞生的复杂可编程逻辑 器件(CPLD)和现场可编程逻辑门阵列( FPGA) 以其大大提高了处理速度 ,可重复编程 ,功 能灵活 ,降低了初始设计费用等优点 ,使得它的应用越来越广泛 ,特别是在产品生产前期 和小批量生产中由于成本比使用专用集成电路(ASIC) 便宜 ,因而有着非常广泛的市场潜力 [2] 。本设计正是基于 V HDL 语言全文本输入进行底层 CPLD 开发。 STD - 2 具体设计应用 以前普通的交通灯控制器只能根据事先给定时间进行通道的通禁控制 ,但由于如今车 辆的迅速增多 ,给城市交通增加了严重的负担 ,而交通灯在其中正扮演着越来越重要的角 色。 因此 ,要求寻找一种可以随时针对通道上车辆的密集度来控制和调节此通道的通禁时间 , 以期达到自动控制的目的 ,从而减少不合理的堵车现象的发生。下面的设计中我们融入了这 种思想 ,并将针对 V HDL 语言描述作具体介绍。V HDL 语言是一种全方位的硬件描述语言 , 包括系统行为级、寄存器传输级和逻辑门级多个设计层次 ,支持结构描述、数据流描述以及 行为描述三种描述形式的混和描述 ,可完成自顶向下的电路设计过程 [3] 。 2.1 交通灯控制器功能描述 通过两组交通灯来模拟控制东西、南北两条通道上的车辆通行 ,所有功能在实验操作平 台上进行模拟通过 ,其主要功能如下: (1) 根据要求显示模拟十字路口东西、南北两个方向的红灯、黄灯、绿灯的指示状态;用两 组红、黄、绿三色 L ED 作为两个方向的红、黄、绿灯。红灯表示禁止通行 ,黄灯表示停止 通行 ,绿灯表示允许通行。整个流程分为四个状态 ,状态一为南北禁止、东西通行 ,状态二 为南北禁止、东西停止 ,状态三为南北通行、东西禁止 ,状态四为南北通行、东西停止。
(2) 在 L ED 指示的同时 ,实现正常的倒计时功能;用两组数码管作为东西和南北方向的倒 计时显示 ,显示时间分别为南北红灯 21 秒、黄灯 5 秒、绿灯 14 秒 ,东西红灯 14 秒、 黄灯 5 秒、绿灯 19 秒(各时间可根据需要进行修改) 。实际操作中显示部分采用六位七段 数码管和六选一多路选择分时显示相结合实现。 (3) 控制实现两种特殊状态并用交通灯加以显示;特殊状态采用外部按键输入方式 ,主要用 于应付紧急状况。特殊状态一 ,当外部输入 RESET 置高时有效 ,此时为南北红灯、东西绿 灯(当然也可以设置成其它状态) ,并始终保持到 RESET 置低时解除。特殊状态二 ,当外部 输入 RESET0 置高时有效 ,此时南北东西两路均为红灯 ,同样须保持到 RESET0 置低时解 除。在为此二状态时 ,计数部分停止计数 ,并显示停止符号 ,状态解除后继续原来计数。另 外需说明的 ,当两外部输入同时置高时 ,即两特殊状态条件同时满足产生竞争 ,状态二的 优先级别较状态一的要高 ,所以显示状态二 ,此时 RESET 无效。 (4) 根据模拟车辆计数来自动调节两通道某一状态的时间;考虑到实际中 ,可在交通道路两 旁安装红外线探头 ,对通过的单行车辆进行扫描产生脉冲计数。因此本设计中采用两个外部 时钟输入作为脉冲计数信号 ,来模拟进行计数 ,而且可随时改变两时钟的频率来模拟两通 道的车流量(某一时间段通过某一定点的车辆数) 。具体实现是状态一、三开始的同时 ,对 两模拟输入脉冲进行计数 ,当状态一、三将要结束时 ,对两计数值进行比较 ,若通行道上的 车流量大于禁止道上的车流量 ,则将此状态延续一段时间 ,再进入下一状态 ,中间所需延 时的时间可视情况而定。反之 ,则直接进入下一状态。 (5) 扩展 24 小时实时数字钟显示。通过外部输入 SWITCH 实现计数和数字钟的切换 , 当 SWITCH 置高时 ,显示数字钟 ,置低时 ,显示倒计数。这样在处理特殊状态时 ,可以在显示 屏上灵活显示。 2.2 系统的算法设计 十字路口交通灯控制器是一个控制类型的数字系统 ,其数据处理单元较简单 ,以下按功能 要求给出交通灯控制器工作流程图(如图一所示) ,同时也可看作系统控制器的 ASM 图。 图一 交通灯控制器工作流程图
2. 3 交通灯控制器的设计方案交通灯控制器整体结构框图如图二所示 ,虚框内为控制芯 片。各模块电路功能如下: (1) 从电路框图可以看到由减计数器、控制器组成了最基本的电路 ,其中计数器 1 到 6 经过 多路选择器以 BCD 码输出的形式通过译码器与外部数码管相连;控制器控制各信号灯的状 态以及计数器的置数、清零 ,通过 SWITCH 外部开关进行计数显示和时钟显示的切换。 (2) 基准频率分频器可以分出标准的 1HZ 频率的信号 ,用于减计数器的时钟信号以及控制 器内触发器的时钟信号。 (3) 多路选择器是六选一的数据选择器 ,用于数据的选择输出。 (4) 置数器通过控制器的控制对减计数器进行预置。 2. 4 系统设计输入 本设计采用硬件描述语言输入 ,其 V HDL 整体源文件描述程序从略 ,主要将如何尝试用 V HDL 语言实现交通灯状态转换的智能控制作一下介绍。以下为总体的进程设定 ,其中穿插比 较两通道车流量 ,用比较结果来控制交通灯状态的转变 ,具体分析如下:“s0”,“s1”,“s2”, “s3”分别表示事先设定的四种状态 ,“c1”,“c2”,“c3”,“c2”分别为这四种状态的 计数开始标志 ,“w1”,“w2”,“w3”,“w2”分别为这四种状态的计数结束标志 ,其中状 态二和状态四共用一段进程。 begin process(clk1) - 整体的控制脉冲 - - begin if reset = ’1’then state < elsif (clk1’event and clk1 =‘1’) = s0 ; then case state is when s0 = > if w1 =‘1’then c2 < - =‘0’;c3 < - 当状态一计数完毕后开始进行比较 =‘0’; if nb > dx then state < end if ; %%比较两通道的车流量 if nb < dx and w2 =‘1’then state < = s1 ;end if ; = s1 ; else c2 < =‘1’; “nb”表示南北车流量 ,“dx”表示东西车流量 ,当南北车流量大于东西车流量时 ,状态
转换顺序不变 ,顺序执行状态二 ,否则 ,开始执行延时程序(5 秒) ,结束后再按顺序执行。 else c1 < end if ; =‘1’; 此间亦可进行定性的比较两通道的车流量 ,中间量的概念就比较模糊 ,谁大谁小 ,大多少 , 都应该在程序中体现出来。可以引入“大一点”,“大很多”,这种模糊控制中常用的概念。 when s1 = > c1 < =‘0’;c3 < =‘0’; if w2 =‘1’then state < = s2 ; else c2 < =‘1’; end if ; when s2 = =‘0’; > =‘0’;c2 < c1 < if w3 =‘1’then if nb < dx then state < end if ; if nb > dx and w2 =‘1’then state < end if ; - 此间道理同上 - - = s3 ; = s3 ; else c2 < =‘1’; =‘1’; else c3 < end if ; > c1 < when s3 = if w2 =‘1’then state < =‘1’; =‘0’;c3 < = s0 ; =‘0’; else c2 < end if ; end case ; end if ; - clk3 ,clk4 ,分别为南北 ,东西的计数脉冲 and nb < 50 then nb < = nb + 1 ; else nb < = 0 ; - - end process; process(clk3 ,clk4) begin if clk3’event and clk3 =‘1’then if end if ; - end if ; if clk4’event and clk4 =‘1’then if (c1 = ’1’or c3 = ’1’) (c1 =‘1’or c3 =‘1’) - 通过红外线扫描脉冲计数 and dx < 50 then dx < = dx + 1 ; else dx < = 0 ; end if ;%%同上 end if ; end process; 采用语言描述的优点是效率较高 ,结果也较容易仿真 ,信号观察也较方便 ,在不同的 设计输入库之间转换非常便利。但得注意语言输入必须依赖综合器 ,只有性能很好的综合器 才能把语言综合成优化的电路。对于大量规范的、易于语言描述的、易于综合的、速率较低 的电路 ,才采用这种输入方式。综上 ,本设计采用语言描述的设计输入方式。 2. 5 编译和下载 设计校验完成后 ,软件开发系统自动编译处理 ,成功后生成目标文件(. sof 文件) ,其底 层图如图三所示 ,通过 ByteBlaster 电缆直接配置于 FL EX10 K10 芯片中 ,在实验操作平 台 PCB 板上验证所有预期功能 ,根据现象对程序进行修改 ,以至准确实现所有功能为止。
3 结束语 本设计采用 VHDL 硬件描述语言文本输入方式 ,在确立总体预期实现功能的前提下 , 分层次进行描述 ,其中所用到的数据均可依现场情况而设置 ,修改方便灵活。特殊状态可自 行修改和添加 ,但总的前提是保持状态二(南北东西均为红灯) 的优先级最高。须注意的 是 ,功能四的两模拟频率不能太高 ,否则将无法实现。事实上这也与实际情况相符 ,因为考 虑到道路行使中车速受限因素存在。并且 ,程序中还规定了两计数器的计数范围 ,与实际结 合。整体而言 ,本设计所耗资源较少 ,仅为 52 % ,提供了较大的添加范围。另外 ,设计中 还有有待完善的地方 ,如机内参数(主要指状态之间相互转换的间隔时间) 的修改 ,并不能 让任何人都能进行此项操作。因此 ,可利用数显密码锁 ,来有效防止机内参数被无关人员随 意修改 ,为系统安全提供保障。 数字化时代的到来给人们的生活带来了极大的改变 ,有理由相信随着数字化的深入 , 交通灯控制器的功能将日趋完善。而且 ,V HDL 语言对 EDA 产生的影响也是深远的 ,它缩 短了电子产品的设计周期 ,为设计者提供了方便。 参考文献 [ 1 ] 蒋璇 ,臧春华. 数字系统设计与 PLD 应用技术. 北京:电子工业出版社 ,2001 [ 2 ] 王小军. VHDL 简明教程. 北京:清华大学出版社 ,1997 [ 3 ] 林明权. VHDL 数字控制系统设计范例. 北京:电子工业出版社 , 2003
分享到:
收藏