基于fpga的交通灯控制

2024-08-02

基于fpga的交通灯控制(共7篇)

基于fpga的交通灯控制 篇1

编号:

EDA技术

实训(论文)说明书

题 目: 交通灯控制电路的设计 院(系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师:

2013年月日

桂林电子科技大学实训说明书用纸

摘要

EDA工具对于电子设计人员来说极其重要,它可以在电子设计的各个阶段、层次进行计算机模拟验证,确保设计的准确性,可缩短设计周期,降低设计成本。交通灯可以实现十字路口红绿灯的自动控制。基于FPGA的交通灯设计系统具有可靠性强、实时快速擦写、运算速度高、故障率低、电路简单,且体积小的特点。本设计采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。关键词:交通灯、EDA、FPGA

桂林电子科技大学实训说明书用纸

Abstract EDA tools for electronic design personnel is very important, it can be in the electronic design of each stage, levels of computer simulation verification, to ensure the accuracy of the design, can shorten the design cycle, reduce design cost.The traffic light can realize intersection traffic light automatic control.Based on the FPGA of traffic light design system has the reliability, real-time fast operation speed is high, integration.it, low failure rate, circuit is simple, and the characteristics of small volume.This design USES is Altera company CycloneII series of EP2C5T144 chip as the core minimum system, it can be convenient to the actual traffic lights embedded application system, can complete the simple logic control, data acquisition, signal processing, mathematical calculations, etc;Use QuartusII software as a development platform, Using the top-down design idea of system modular design and comprehensive, and through the waveform simulation and hardware realization two ways to realize and verify the function of the traffic lights.Key words: traffic lights;EDA;FPGA

桂林电子科技大学实训说明书用纸

引言

“EDA技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。本设计实训是配合“EDA技术”课堂教学的一个重要的实践教学环节,在本课程设计指导书中列举了一些常用的小型设计系统,旨在起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。

1设计任务与要求

1.1本综合设计实训任务的内容和要求

① 用EDA实训仪上的4只八段数码管分别显示道路东西和南北通行和禁止的倒计时时间。

② 能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒。

③ 交通灯用红、绿、黄三种发光二极管(LED)显示控制的结果。④ 红、绿、黄灯显示的次序应符合实际交通道路控制的要求。系统概述及设计原理

2.1 系统的主要功能

交通灯控制电路是用于城市交通疏导的管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯。交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。设计一个十字路口交通控制器,方向分为东南西北四个方向。东西方向的红绿灯状态一样,南北方向的红绿灯状态一样。每个方向上,有四盏灯,分别是左转灯、红灯、绿灯和黄灯。左拐灯亮表示左转车辆可以通行;红灯亮表示左转和直行车辆禁行;绿灯亮表示直行车辆和右转的车辆可以通行;黄灯亮表示左转和直行的车辆即将禁行。

本论文简要介绍了FPGA器件的特点和设计意义,以QuartusII软件为开发平台,通过VHDL硬件描述语言以及原理图的输入方式来设计交通灯。交通灯控制器用于自动控制十字路口交通灯和计时器。

系统的主要功能模块方框图如图2-1所示

桂林电子科技大学实训说明书用纸

图2-1 系统主要功能模块

2.2交通灯的设计原理

交通灯控制电路的原理框图如图1.3所示。其中,clkgen是分频器,将EDA实训仪主板提供的20MHz的主频经20000000分频后,得到电路所需的1Hz(秒)时钟。Cnt10de(两个)是十进制减法计数器,产生道路东西和南北通行和禁止的倒计时时间。Contr是控制电路,控制整个系统的工作。控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。

图2-2 交通灯控制电路的原理图 系统各个模块的的设计与仿真

3.1 分频器模块的设计

由于采用的FPGA芯片的时钟频率是50MHz,需要将其分频为1Hz。该模块即是实现50M的分频,将频率变为1Hz的脉冲波,从而得到周期为1s的脉冲波。如果要真正的实现分频50M,在仿真结果图中是很难观察的,甚至是没有办法验证的,故在仿真过程中,将分频的倍数变小,变为20分频,这样从图中可容易的得到并验证对时钟输入信号的20分频,如图3-1所示,Reset是复位信号,CLK_50MHz是输入时钟频率,CLK_1Hz是

桂林电子科技大学实训说明书用纸

输出时钟频率,从图中可以看出,输出频率CLK_1Hz确实是输入时钟频率CLK_50MHz的20分频。

图3-1 分频器仿真图

3.2 状态控制模块的设计

状态控制模块根据输入CLK_1Hz的脉冲信号输出不同的STATUS值,下游的模块依据STATUS的值来确定红绿灯的状态;于此同时对倒计时信号赋初值。在状态控制模块仿真图中,输入信号CLK是一个频率为1Hz的时钟脉冲信号,RESET是复位信号;输出信号STATUS是状态转换信号,控制着下游交通信号灯显示模块的显示情况;LOAD_EW、LOAD_SN是东西、南北方向倒计时开始控制信号,DJS_EW、DJS_SN是东西、南北方向倒计时间信号。其仿真结果图如图3-2所示,由图可得,STATUS共有000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6)共6个状态,80s为红灯和左转灯的倒计时间,45s为绿灯的倒计时间,5s是黄灯的倒计时间,和状态转换表的状态一致。

图3-2 状态控制模块仿真图

3.3 交通灯信号灯显示模块的设计

交通信号灯显示模块根据输入的STATUS信号,输出对应的红绿黄灯信号,并直接驱动交通信号灯的亮灭。在交通灯信号灯显示模块程序仿真结果图中,STATUS为输入信号,而它依赖于状态控制模块产生的信号STATUS信号,一种六种状态,依次为000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6);EW_LRGY(8位)是东西方向上交通信号灯的状态,SN_LRGY(8位)是南北方向上交通信号灯的状态,依次为左转、红、绿、黄,对应着EW_LRGY、SN_LRGY的前四位,‘1’表示点亮,‘0’表示熄灭,后四位均为0,表示四个灯的阴极接负极。例如,在STATUS为001时,对应的是东西方向红灯亮,南北方向绿灯亮,仿真结果符合预期,完全正确。其仿真图如3-3所示:

图3-3 信号灯显示模块仿真图

桂林电子科技大学实训说明书用纸

3.4东西方向倒计时模块设计

东西方向倒计时模块用来接收状态控制模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。在该模块仿真图中,CLK为1Hz的输入信号,LOAD_EW为计数器的装载信号,当其为高电平时,将输入信号DJS_EW_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3-4所示,由图可得,该模块首先将80秒的倒计时信号装载进去,并进行减一操作。

图3-4 东西方向倒计时仿真图

3.5 南北方向倒计时模块设计

南北方向倒计时模块用来接收状态控制模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。在该模块仿真图中,CLK为1Hz的输入信号,LOAD_SN为计数器的装载信号,当其为高电平时,将输入信号DJS_SN_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3-5所示,由图可得,该模块将45秒的倒计时信号装载进去,并进行减一操作。

图3-5南北方向倒计时仿真图

3.6 译码模块设计

译码模块程序用来将输入的两位倒计时数值,分解成两个整形数值,以此供后面的译码显示模块译码显示。在译码程序TO_8421_BCD模块仿真图中,DJS_EW_OUT,DJS_SN_OUT为上一倒计时模块的输出信号,其范围在0~80,所有倒计时的范围都包含其内;DJS_EW_OUT_SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW为输出信号,其范围为0~9,代表了各个方向的倒计时的十位和个位,且数码管所有显示数字的范围均在其内。例如图中DJS_EW_OUT的值不断变化,相应的依次将其分解为十位(DJS_EW_OUT_SW)和个位(DJS_EW_OUT_GW),并依次递减,仿真结果符合预期,完全正确。仿真结果如图3-6所示:

桂林电子科技大学实训说明书用纸

图3-6 译码仿真结果图

3.7 译码显示模块设计

译码显示模块将上一模块译码模块输出的四个一位数译码成相对应的七位数码管段码,完成倒计时的译码和显示。在译码显示模块仿真图中,DJS_ EW_OUT_ SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW是四位的输入信号,也是上一模块TO_8421_BCD的输出信号,它们的范围为数字0~9,DJS_EW_ OUT_SW1,DJS_ EW_ OUT_GW1,DJS_SN_OUT_SW1,DJS_SN_OUT_GW1对应的是相应的七位数码管显示段码的值。图中输出信号的值随着输入信号的变化而相应的变化,例如DJS_EW_OUT_SW为7,DJS_EW_OUT_GW为5时,DJS_EW_OUT_SW1为00000111(a、b、c、d、e、f、g依次对应着1110000,最高位的0表示是数码管的类型是共阴的),表示数码管显示7,DJS_EW_OUT_GW1为01101101,表示数码管显示5。仿真完全正确,符合预期。其仿真结果如图3-7所示:

图3-7 译码显示模块仿真图

3.8 顶层文件模块设计

顶层设计采用VHDL语言描述方式实现,并在工程文件仿真过后通过工具菜单自动生成原理图文件,从而是设计原理更加清晰明朗。

在顶层设计VHDL描述中,共包含7个元件,分别是:

1、分频器模块,2、状态控制模块,3、交通信号灯显示模块,4、东西方向倒计时模块设计,5、南北方向倒计时模块设计,6、译码模块设计,7、译码显示模块设计。这7个模块经过程序设计、编译仿真,结果均能够达到设计要求。最后在顶层设计中,通过元件例化语句将这7个模块连接起来,生成顶层文件。在顶层设计中,RESET是复位信号,输入的时钟频率CLK是50MHz,经过分频50M的分频器后,变为频率为1Hz的时钟信号,周期为1s,用此时钟信号来控制整个系统的步调,与现实生活中交通灯的步调保持一致。EW_LRGY、SN_LRGY分别为东西和南北方向上交通信号灯的状态,EW_DJS_DISPLAY、SN_DJS_DISPLAY为东西

桂林电子科技大学实训说明书用纸

和南北方向红绿灯倒计时间。另外,所有的数码管和二极管均为共阴极显示。例如,在EW_LRGY为01000000(即东西方向红灯亮)、SN_LRGY为10000000(即南北方向左转灯亮)时,EW_DJS_DISPLAY的前八位表示倒计时的十位,后八位表示倒计时的个位;图中EW_DJS_DISPLAY的前八位都是00000111表示7,后八位01111101表示6,后八位01101101表示5,后八位01100110表示4;SN_DJS_DISPLAY的前八位是01001111表示3,后八位01011011表示2,后八位00000110表示1,后八位00111111表示0,以上表明红绿灯和倒计时时间显示符合预期。仿真结果如图3-8所示:

图3-8 顶层文件波形仿真图 实训心得体会

本次EDA技术实训的交通灯采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。为期两周的实训,我利用网络和图书馆的有效资源,搜集并下载了大量的关于用FPGA做交通灯设计的资料;然后精心阅读,在老师的指导督促下,并和周围同学进行有效学习和沟通,最终确定了自己的设计方案;最后按照既定的设计方案,通过努力有步骤的实现了交通灯的设计。

通过此次实训设计,让我加深了FPGA的理解,更加熟练了VHDL语言,同时,我深深体会到了通过FPGA设计数字电路的方便、简洁的特点,这让我相信未来数字电路的应用必将更加广泛。另外,我还体会到:从事开发设计工作,一定要保持个勤奋、踏实、严谨的工作态度,这样才能更好的完成工作。最后,我觉得在交通灯控制系统设计中还可以增加一些实用功能,如:

1、针对弱视或色盲人群进行声音提示;

2、在遇到突发状况时,可以将红绿灯改为紧急模式控制;

3、当有119、120等特种车辆通过时,系统可转为特种车放行,其他车辆禁行。

但是这次实训我也发现自己的很多不足之处。在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢靠,所掌握的编程语句还不够,很多程序都看不懂,我希望自己的这些不足之处能在今后的工作和学习中得到改善。而且,通过这次实训,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!

桂林电子科技大学实训说明书用纸

还有光有知识是不行的,还得有能力、有技术,单干也是不行的,要适当寻求合作,那样才能更好实现我们的价值。在实训中及社会上,我们都要懂得虚心地向别人学习,即使你觉得自己很厉害,但总有一些东西你是不懂的,所以不懂要多向别人请教,这样才能更好地提高自己的水平和能力,全面发展自己。

桂林电子科技大学实训说明书用纸

谢 辞

在这短短的两周EDA实训中,在这期间同学们都在努力学习,认真做自己各自的实训。在此我要特别感谢各位指导老师们对我的指导,还有各位同学对我的帮助,尤其感谢老师在百忙之中抽出时间为我们讲解设计原理,同时,还要感谢和我一起努力的各位同学,在他们对我的帮助很我自己的努力下,我才能顺利地完成这次实训。

这次实训我受匪颇多,但这多是得益于老师无微不至的关心和细心的教导。在实训中,让我学到了不少知识,给了我一次复习学过的知识的机会,巩固了基础知识。也多亏同学们的无私的帮助和支持,在我无助的时候还是他们伸出他们的友爱之手,帮我渡过难关,在此我也真心的多谢他们默默的帮助。最后再次对老师们说声:谢谢!

桂林电子科技大学实训说明书用纸

参考文献

[1] 潘松,黄继业.EDA技术实用教程(第三版).北京:科学出版社,2010.1 [2] 刘江海,涂传威,陈玮.EDA技术课程设计.武汉:华中科技大学出版社,2009.5 [3] 夏路易.基于EDA的电子技术课程设计.北京:电子工业出版社,2009.1 [4] 王金明,周顺.数字系统设计与VHDL.北京:电子工业出版社,2010.5 [5] 邹彦,庄严,邹宁.EDA技术与数字系统设计.北京:电子工业出版社,2007.4 [6] 林明权,马维旻.VHDL数字控制系统设计范例.北京:电子工业出版社,2003.1

基于fpga的交通灯控制 篇2

文中采用硬件描述语言VHDL设计了一种新型十字路口交通灯控制系统,其主控系统是Altera公司Cyclone系列FPGA芯片EP1C6Q240C8[4]。该系统利用环形线圈感应车辆,通过无线发射/接收模块把信号传输到核心控制芯片进行处理,实时输出相应的红绿灯控制信号,从而动态调节各方向的通行时间,实现十字路口的车辆通行效率的最大化[5]。

1 系统结构简介

系统基本框图如图1所示,它分为车流量检测部分、交通信号控制部分和信号显示部分。在车流量检测部分,通过环形线圈传感器采集车辆信号,通过A/D转换器、信号放大电路和无线发射/接收模块,将采集到的信号转化为数字信号传输到交通控制部分,经过FPGA控制芯片的分析和处理,输出实时的红绿灯控制信号,并将控制信号显示在相应的红绿灯上,从而优化十字路口各车道的车辆通行效率[6]。

如图2所示,在十字路口的直行道和左转道口安装环形线圈感应该车道是否有车辆停留[7],人行道通行与否由相邻直行道红绿灯状况确定,若绿灯,则人行道为通行状态,反之亦然;右转方向信号灯状态由相关人行道信号灯状态决定,若人行道为通行状态,则右转方向为红灯,反之,则为绿灯。

2 传统交通控制系统状态分析

当前大部分十字路口的交通控制系统模式,都是根据道路交通状况,事先设定好的红、绿、黄色信号灯时间,来控制整个交通岔路口的车辆通行。目前最普遍的交通控制系统信号灯变化的基本模式如图3所示[8]。

根据此模式下信号灯相位的基本要求,设定直行方向绿色信号灯时间为24 s,左转、右转方向绿色信号灯时间为6 s,黄色信号灯时间统一为3 s。其自动运行状态如表1所示。

从状态转换表可以看出,以a道路直行方向信号灯状态S1为出发点,3种颜色信号灯不断循环,显示时间为S1+S2+S3=72 s,即为交通控制系统的一个周期时间。通过计算,可得a道路直行方向绿灯时间概率为24/72=33.33%,左转、右转方向绿灯时间概率为6/72=8.33%,b道路状态与a道路相同。无论十字路口车流量状况如何,传统模式下的各个路口和方向的车辆通行概率保持不变。

3 智能交通控制系统仿真

智能交通控制系统相对于传统的交通控制系统,最大的创新点在于,实现了车辆通行相对方向不同步的信号控制,它会根据车流量的变化及时调整交通信号控制策略,最大限度提高了十字路口车流量的通行效率。整个控制电路包括了两个控制模块:直行方向控制模块与左转方向控制模块,右转方向和行人通行时间由直行方向控制模块概括。控制程序运行时,两个模块交替运行,进行循环控制。直行4个方向与左转4个方向的信号相位分别一致。例如,a方向具体相位如图4所示。aa方向具体相位如图5所示。

控制电路以1 Hz时钟脉冲作为系统时钟,它包含了8路输入信号和48路输出信号[9],具体信号分布如表2所示。

系统主要适应十字路口车流量不均衡的状态,设定十字路口车流量状况为a车道、b车道车流量大,c车道、d车道车流量小,如图6所示。利用EDA软件Quartus II 7.2,通过硬件描述语言VHDL进行模拟设计和仿真[9],可得此状态下智能交通控制系统的仿真结果,如图7所示。

统计图7中100 s内a车道、b车道3种车辆通行方向的车辆通行时间,可得a车道、b车道直行方向车辆通行平均概率为(50+40)/200=45%,a车道、b车道左转、右转方向车辆通行平均概率为(46+18+50+57)/400=42.75%。

比较传统模式下的交通控制系统和智能交通控制系统在十字路口车流量不均衡状态下的车辆通行概率,可以发现,道路直行方向的车辆通行概率从33.33%提升到了45%,道路左转、右转方向的车辆通行概率从8.33%提升到了42.75%。因此,在车流量不均衡的情况下,本智能交通控制系统相对传统模式下的交通控制系统,提高了十字路口的车辆通行效率,也满足了预期的设计要求。

4 硬件设计与测试

完成了智能交通控制系统的设计、编译、仿真后,将设计程序中输入、输出端口进行引脚绑定并下载到开发板上EP1C6Q240C8核心芯片中。制作外围电路如图8所示,并4路直行方向绿灯信号和4路左转方向绿灯信号接入到开发板上的8个数码管上,调整外围电路的输入电压,观察数码管状态。通过实际测试,8个数码管的显示结果正常,运行稳定、可靠,达到了设计要求。

5 结束语

利用EDA软件Quartus II 7.2,采用硬件描述语言VHDL进行编程,实现了智能交通控制系统的设计、仿真,并利用EP1C6Q240C8 FPGA芯片制作成控制系统进行测试,实现了对交通信号灯相对方向不同步的控制功能,可在实际应用中提高城市十字路口的车辆通行效率,缓解城市的交通压力。本设计具有设计效率高、成本低、可靠性强、维护容易及可扩展性强等优点,展现了EDA技术和FPGA器件在智能交通控制方面应用的优越性。

摘要:针对现实中越来越严重的城市交通拥堵现象,提出了一种城市十字路口交通信号灯控制与FPGA实现的新方法。解决了各车道车流量不均衡所造成的十字路口交通资源浪费问题,设计的智能交通控制系统利用对相向车道采用不同步的红绿灯信号控制方法,能够减少交通资源浪费,大幅提高十字路口的车辆通行效率。

关键词:FPGA,交通信号灯,智能控制,无线收/发模块

参考文献

[1]TU Xiaoku.The research of intelligent timing control systemfor urban traffic signal light[C].Ningbo Univ.of Technol.,Ningbo,China:2011 International Conference on ConsumerElectronics,Communications and Networks,CECNet,2011:5425-5428.

[2]THOMAS WINTERS.LITS:Lightweight intelligent trafficsimulator[C].Univ.of Central Arkansas,Conway,AR,USA:International Conference on Network-Based Informa-tion Systems,NBIS'09,2009:386-390.

[3]陈姚节,黄小童,张玉浩.基于CPLD的交通信号灯设计[J].教育教学论坛,2011(23):62-63.

[4]EL-MEDANY W M,HUSSAIN M R.FPGA-based ad-vanced real traffic light controller system design[C].Univ.of Bahrain,Sakhir:Intelligent Data Acquisition and AdvancedComputing Systems:4th IEEE Workshop on Technology andApplications,2007:100-105.

[5]王国海.基于MSP430F149的路口交通灯智能控制系统的研制[J].计算机应用与软件,2011,28(2):65-66,108.

[6]曹元军,周志成,徐伟,等.基于无线传感器网络的交通信号灯控制[J].计算机与信息技术,2007(4):105-106,110.

[7]王正勇.基于FPGA的交通信号控制器的设计[J].电子测量技术,2008,28(10):188-190.

[8]周春蕾.基于FPGA技术交通灯智能控制系统的研究[D].河北:河北科技大学,2010.

基于FPGA的DDR控制器设计 篇3

关键词 DDR SDRAM VerilogHDL FPGA

DDR SDRAM是Double Data Rate Synchronous Dynamic Random Access Memory(双倍速率随机存储器)的简称,它采用2.5V的工作电压,在核心时钟的上升沿和下降沿传输数据,具有比SDR(single data rate) SDRAM多一倍的传输速率的优点。FPGA(Field-Programmable Gate Array)是一种可编程器件,在FPGA上可以实现任意数字电路功能。在电子通讯领域,数据量越来越大,对存储器的需求也越来越大;FPGA具有并行性、可编程等优点,它的应用场合也越来越广,在FPGA板卡上嵌入SDRAM已经应用在很多系统中,因此研究在FPGA平台上来实现DDR读写控制的方法具有重要的实际意义。本文第1、2节介绍基于FPGA的DDR SDRAM控制器的设计过程,第3节主要讲述控制器的调试。FPGA为Altera公司的cycloneIII, DDR为Hynix公司的16Mx16的DDR。

1 DDR SDRAM 的基本操作

本文采用的DDR具有四个BANK(就是被分为四个块);15根地址总线(其中包括2根BANK地址线和13根行列地址线;BANK地址标为BA1~BA0,行列地址线标为A12~A0);16根数据总线(DQ15~DQ0);两根数据捕获探针(DQS,双向信号线);两根写掩码信号(DM1~DM0,可一直设置为0);一对相位相反的主控时钟线(CLK_P,CLK_N);一根时钟使能信号(CKE);四根命令信号线:CS_N(片选信号),RAS_N(行地址使能信号),CAS_N(列地址使能信号)和WE_N(写使能信号)。

1.1 DDR SDRAM的指令

DDR的指令与SDR的指令基本一致,主要由CS_N,RAS_N,CAS_N和WE_N四个信号控制,它们的真值表如表1所示。命令是在主时钟的上升沿捕获。

1.2 DDR常见读写延时参数

CL:CAS latency,列地址有效到读出数据的延时,是在读数据的时候的读命令到数据输出的时间长度,它由厂商确定,主要有2,2.5,3(时钟周期个数)三个数值,可以通过寄存器配置。

tRCD:RAS to CAS latency,行地址(ACT命令)有效到列地址有效的最小延时,芯片属性,不可配置。

tRAS:行有效(ACT命令)到预充电命令的最小时延。

tRP:预充电命令到行有效的最小时延。

1.3 DDR的读写时序

DDR的读写数据是在DQS信号下捕捉的,数据的位数决定了DQS的位数,一位DQS信号负责捕捉八位数据信号。写操作时,DQS在数据信号DQ的中心捕获数据;读操作时,DQS在数据信号的边沿捕获数据[1]。在数据读写之前,需要先进行行有效操作,即ACT命令,然后经过tRCD的时间,执行读或写操作命令。在读操作中,读命令后还要经过CL(CAS latency)时间才开始读取数据。

2 控制器的设计方案

实现DDR的控制,重点需要解决:时钟体系问题,状态转换与指令操作三个方面。本文设计的DDR控制器主要有三个模块,分别是状态转换控制模块,指令译码模块和时钟模块,如图1所示。控制器的用户控制信号有CMD(用户发送的指令)与ADDR(用户地址)、DATAIN(DDR的输入数据)和DATAOUT(DDR的输出数据)。时钟模块提供DDR主时钟和控制器系统内部的数据时钟(CLK_X2)。在使用时,用户首先发送一个CMD到状态转换模块进行状态转换,然后控制器返回一个CMDACK响应用户,在第二个时钟周期将这个命令状态标志输入到指令译码模块进行指令译码,控制指令信号,完成相应的操作。伴随着状态的转换,相应的地址信号也锁存进DDR。

REF_CLK与RESET_N是系统时钟和全局复位信号,除了这两个信号与前述的用户控制信号外,图1中剩下的接口信号就是DDR的接口信号了。

2.1 时钟设计

根据DDR的时序要求,本文一共采用了三个时钟,分别是DDR的一对反相时钟(DDR_CLK_P,DDR_CLK_N)和数据控制时钟(CLK_X2,由时钟模块产生)。根据DDR的要求,指令信号要在DDR_CLK_P的上升沿采样,所以采用其反相时钟信号DDR_CLK_N来同步命令逻辑,使DDR_CLK_P的上升沿恰好在命令的中心。根据DDR读写数据的要求,采用了一个DDR系统时钟频率两倍的数据时钟,用来处理读写数据。

DQS是双向信号,在读数据时由DDR本身产生,在写数据时需要控制器来产生。因为在DDR中DQS与其系统时钟保持一致,只不过是有个偏差范围,所以采用DDR_CLK_P的开关时钟作为DQS信号,写操作中产生DQS信号(数据位宽为16, DQS位宽则为2)的Verilog代码:

assign DQS = oe ? ({2{DDR_CLK}}) : 2'bzz; //oe是写使能信号

如图2,DQ是在CLK_X2时钟下产生的,正好在DQS的边沿锁存。在读数据时DQ与DQS是边沿对齐,如图3,数据时钟(CLK_X2)的上升沿正好在数据的中心。综合读写操作,发现图2、图3中的CLK_X2和DDR_CLK_P及DDR_CLK_N的相位关系正好满足DDR的读写时序,时序余量比较大,所以采用这种时钟系统数据的读写稳定性就比较高了。

2.2 DDR的状态控制

DDR的控制器主要有读、写、预充电、刷新、配置模式寄存器等操作。图4是各种操作的状态转化图,是指指令之间转换的可能操作。DDR在工作时主要分为两个阶段:上电初始化和读写过程。初始化很重要,主要完成时钟稳定与寄存器配置的过程,它是一些指令的顺序执行过程。本文采用的DDR是Hynix公司的产品,其初始化配置过程如下[1]:

1.上电,开启时钟,并且稳定最小200μs的时间;

2.时钟稳定后,执行空指令,并且CKE=1;

3.配置扩展模式寄存器(EMRS)来使能DLL(Delay Locked Loop,延时锁定环),等待200个周期后进行下一步操作;

4.配置模式寄存器(MRS)来重启DLL,将芯片设置到等待状态(设置A8=1来重启DLL);

5.对所有BANK进行预充电;

6.执行两次或更多自刷新命令;

7.执行一次模式寄存器配置命令,来初始化模式寄存器,设置读写操作的参数;

8.等待200个周期后,初始化完成。

其中第3,4步操作中的等待200个周期可以在第4步后等待,即需要200个周期来锁定DLL。寄存器配置等操作是通过地址线来配置参数的,即通过设置BANK地址(BA1~BA0)和行列地址(A12~A0)设置参数。第3步配置EMRS中,设置A12~A0各位为0,第4步配置MRS时,要设置A8=1,其他为0。第7步,在配置读写参数时, A2~A0决定突发长度,A3决定突发类型,A6~A4决定CAS延时,A7是测试模式,A8指示是否DLL重启,另外BA0决定配置哪个模式寄存器[1]。

不同厂家的DDR初始化过程不尽相同,其寄存器配置的参数可能也不同,为了提高控制器的通用性,可以在控制器外来配置初始化操作。

然后就是读写过程,因为DDR的地址线是有限的,读写的时候是采用时分复用技术来实现完全的寻址过程的。DDR的地址线有15根,其中2根是BANK地址(BA1~BA0),剩下的是行列地址(13根,A12~A0),其中行地址为A12~A0,列地址为A8~A0,行地址与列地址分时复用,这样等效寻址线就是24根(2+13+9),寻址空间正好是16M。在初始化完成以后就可以进行读写了,按照DDR的时序要求,先进行行锁定(ACT命令),然后经过tRCD的时间,再执行读/写操作,同时锁定列地址。图5、图6分别是在modelsim仿真中的读、写时序图,突发长度为8(一次读/写8个数据),CL为3,tRCD时间大约为3个时钟周期;在ACT命令周期(CS_N=0,RAS_N=0,CAS_N=1,WE_N=1),锁定行地址,也即将图中的SA=0000H赋给A12~A0地址线;经过tRCD时间执行读/写命令,注意在读写命令时,列地址SA=0425H,实际上此时的列地址是0025H,只不过此时读写方式是带预充电的读写方式(A10=1,加上A8~A0=0025H,所以整个SA=0425H)。在图5中,写命令后开始写数据,DQ中心恰好在DQS的边沿;在图6中,读命令后需要经过CL时间才开始读数据,DQ与DQS对齐,符合DDR的时序要求。对比图5和图6,发现同一个地址写入数据与读出数据相同,表明设计的时序正确性。

2.3 DDR的读写效率

DDR需要定时刷新指令与预充电指令,所以合理地处理这两个指令可以有效地提高读写的效率。刷新是周期性操作,预充电是在地址换行的时候需要执行的操作,所以提高效率的主要方法就是合理的安排预充电命令。读写操作有两种方式:一种是带预充电的读写,一种是普通的读写。在采用普通读写时需要在地址换行的时候用预充电命令来重新进行行使能。两种读写方式在指令上的区别就是:带预充电的读写命令在ACT命令(此时,地址输入为DDR的行地址)时,将A10置高;而普通读写不需要将A10置高。

DDR的数据突发模式只有2、4、8三种,每读写一次数据都要进行ACT到READ/WRITE的过程,这样耗费了很多控制周期,效率不高。DDR的读写有一个特性,就是读写中断:一个读或者写操作可以被另一个读或者写操作中断,在一组连续的读(写)操作中,可以只在开头执行一次ACT命令,后面的读(写)命令可以不用ACT命令。针对这个特点,本文采用了突发为2的DDR读写方式,每两个数据都要进行一次读(写)地址和指令控制,只要在第一组数据时执行一个ACT命令,后面的过程都是普通读或者写命令,它可以实现任意偶数个数据的读写。例如视频领域经常对一帧图像数据进行处理(如去隔行处理[2]),存储的时候也是连续地址存储,存储器就可以连续的处理大批量的数据,时钟效率是比较高的。

当然这种方案是在一个行地址中进行数据读写的有效方法,当数据地址随机且经常跨越一行地址时就需要执行预充电命令。如果还是采用普通读写方式的话,下一个读(写)地址随机,这样需要经常在行地址变化时执行预充电命令,就会导致读写的效率下降。例如在视频编码中,预测编码是去冗余的最有效方法,预测就需要图像帧区域搜索[3],这时在存储器中表现为数据地址的随机性。这种情况下可以采用带预充电的读写命令,这样每个指令中都会进行预充电,就不必担心在地址换行的时候发生错误了。但是,每个指令之间必须有一定的间隔(突发长度/2+tRP),例如采用突发为8的读写时,每个指令之间的间隔就要最少有4+tRP个周期,所以设置突发模式为8的时候效率比较高。

4 硬件调试

在硬件调试前,软件仿真是非常重要的,一般在仿真中时序吻合的情况下是可以实现既定功能要求的,在FPGA设计尤其是高速设计中,调试前的时序分析与时序收敛至关重要,只有满足了时序收敛,设计才具有稳定性。本文代码综合阶段,采用了FPGA常用方法提高了设计的速度,比如增加流水线级数与消除亚稳态的方式[4] ,使CLK_X2达到333M,DDR时钟167M,还有时序余量,满足时序要求。

ALTERA提供一个集成于QUARTUSII软件中的FPGA片上debug工具:SignaltapII,它可以捕获和显示实时信号,观察在系统设计中的硬件和软件之间的互相作用。它的原理就是设定采样周期,实时采样数据并存储到PFGA内RAM中,然后通过JTAG接口传送到QUARTUSII来显示[5]。正是因为SignaltapII的实时性,在调试时需要注意读写验证的方法。初始化的配置过程很难观察到,只能验证后面的读写过程。因为RAM的容量有限,一次捕捉到的数据也是有限的,在板级调试时,需要以循环的方式进行读写数据指令的执行,以便在逻辑分析仪中捕捉到数据。本文采用先将数据写入一段地址中,然后在相同的地址中读出来,并且比较相同地址写入数据与读出数据是否相同的方法来验证DDR控制器是否正常工作。为了保证读写的可靠性,循环的方式采用遍历所有地址范围的方法,观察结果发现写入与读出的数据是完全吻合的。

5 结束语

本文通过对DDR时序的分析,给出了一种DDR控制器的设计方案。并且针对不同的寻址方式,给出了不同的读写方法,提高了读写效率。最终,控制器在ALTERA公司的cycloneIII系列芯片上实现,在板卡上能够控制Hynix公司的DDR芯片稳定地读写数据。存储器工作频率达到167M,数据稳定可靠,读写效率较高。

参 考 文 献

[1] hynix 16Mx16 DDR handbook[Z] Hynix Semiconductor Inc.

[2] 余兆明,査日勇,黄磊,周海骄. 图像编码标准H.264技术. 北京:人民邮电出版社,2005

[3] 毕厚杰. 新一代视频压缩编码标准——H.264/AVC. 北京:人民邮电出版社,2005

[4] (美)Steve Kilts著. 高级FPGA设计结构、实现和优化. 孟宪元译. 北京:机械工业出版社,2009

[5] Quartus II Handbook Version 9.1 [Z] San Jose,Altera Corporation

Controller Design of DDR Based on FPGA

Wang Weiping,Zhang Zhengbing

(Electronic & Information College,Yangtze University,Jingzhou 434023,China)

Abstract Base on analysing of the basic operating characteristics of DDR SDRAM,and the DDR timing requirements,this article propose a controller based on VerilogHDL language implementations.And gives a different read and write programs to improve the efficiency of the clock in different application environment.The RTL of controller logic is implemented on FPGA board,simulated in the modelsim and hardware verification take use of the logic analyzer (signaltapII) in quartusII,to ensure that the memory’s read and write are efficiency and reliability.

基于fpga的交通灯控制 篇4

基于W S N 的智能交通灯控制系统设计 田 丰,杜富瑞

(沈阳航空工业学院计算机检测与控制研究室,辽宁沈阳 110136 摘要:针对多路口的交通信号灯控制问题,提出了基于无线传感器网络的两级组织结构,搭建了交通信

号灯控制平台。利用传感器节点收集的交通信息,结合模糊控制方法,实现了交通信号灯的无线智能控制。仿真结果表明,该控制器是有效的,其控制效果优于传统的控制方法。关键词:无线传感器网络;交通信号灯控制;模糊方法;鲁棒性

中图分类号:TP273+.5;TP18

文献标识码:A

文章编号:1000-8829(200912-0056-04 D esi gn of I n telli gen t Traff i c L i ght Con trol System Ba sed on W SN TI A N Feng,DU Fu 2rui(Computer Detecti on and Contr ol Laborat ory,Shenyang I nstitute of Aer onautical Engineering,Shenyang 110136,China Abstract:For multi 2juncti on traffic signal contr ol syste m ,t w o 2tier organizati onal structure based on wireless sens or net w orks(W S N is p r oposed,and a p latfor m f or traffic signal contr ol syste m with W S N is built.By using the collected inf or mati on about traffic and fuzzy contr ol method,the goal of intelligent contr ol for the traffic

lights is realized.The si m ulati on shows that the contr oller is realizable and better than the traditi onal contr ol methods.Key words:wireless sens or net w orks;traffic signal light contr ol;fuzzy method;r obustness

交通灯控制系统是一个典型的复杂大系统,具有时变、非线性、不易确定数学模型的特点。现有交通灯控制系统主要分为两类:定时控制和感应式控制。定时控制不能适应车流的动态变化,只适用于路面车流量较少的情况;感应式控制易受外界干扰,且在安装过程中,容易造成对道路的损坏。此外,这两种控制方式都只能单独地控制某一点,并不能实时、多点、联测、联动的控制。

无线传感器网络(W S N,wireless sens or net w orks 作为一种新兴的测控网络技术,融合了短程无线通信技术、微电子技术、嵌入式技术等。基于W S N 的交通灯控制系统具有控制精度高、响应速度快的优点。

模糊控制不需要建立精确的数学模型,它把人的感官认识和好的控制策略联系起来,具有很强的鲁棒性。

将模糊控制与无线传感器网络相结合,以W S N 传 感器节点收集的路面信息为输入,经模糊控制器处理, 得到作为输出的控制策略,对交通灯系统实施控制,可以实现交通灯控制系统的智能化、网络化。以下首先针对多路口交通灯控制系统,提出了两级W S N 组织结构,搭建了基于W S N 的交通信息收集和控制平台;然后介绍了多路口交通灯智能控制算法的设计,以及模糊控制器的设计;最后,进行了仿真实验。W S N 交通灯控制平台

在多路口交通信号灯控制系统中,信号灯的周期、绿信比和相位差是控制向量;到达交叉路口的车辆数和各交叉路口停车线前面排队的车辆数是状态向量。详细分

析表明,同时考虑信号灯的周期、绿信比和相位差的优化,将增大计算量,使问题的求解过程变得十分

复杂[1]。针对多路口交通灯控制系统,采用两级W S N 组织结构(见图1,第1级为控制级,负责调整各交叉路口的绿信比;第2级为协调级,负责协调干线各路口周期的确定和各路口之间的相位差。

图2为无线传感器网络交通灯控制系统模型图。路口的交通灯控制节点A1及其相邻路段内的路面检测节点B i(i =1,2,3,4,5和车载节点C j(j =1,2,3,4

图1 两级交通灯控制模型组成控制级。这些传感器器节点自组织成簇:交通灯控制节点作为簇首,路面检测节点和车载节点作为簇成员。簇首A1负责收集簇内路面检测节点的数据,进行数据融合,并与相邻簇首节点进行通信;簇成员节点负责路

面信息的收集。从簇首节点中,选取一个节点作为协调级,称此节点为汇聚节点。汇聚节点以多跳的方式与各簇首节点通信,收集各路口车流量信息 , 图2 无线传感器网络交通灯控制系统模型 进行智能处理,协调各路口工作。

针对交通控制系统中信息采集、策略制定、输出执 行的实际需求,引入3类W S N节点:信息收集节点、汇 聚节点和交通灯控制节点。传感器节点是构成W S N 的基本要素,具有采集环境信息、信息处理和无线通信 功能,它们既是数据包传输的发起者,也是数据包的转

发者[1]。信息收集节点负责路面车辆信息的收集,如 车速、交通流量比等,将此数据信息传递给交通灯控制 节点,经数据融合后传递给汇聚节点;汇聚节点根据设 定的目标(如通行量最大、平均候车时间最短等运用 智能控制方法计算出最佳方案,并输出给各路口交通 灯控制节点,控制车辆的通行与禁止,实现多路口的协 调控制。

信息收集节点由路面检测节点和车载节点两部分 构成。路面检测节点用于收集其检测范围内的车辆信 息,它按照一定的距离(一般为50~200m安装在道 路两侧的路灯上;车载节点被安装在每一辆汽车上,用 于收集车辆本身的数据信息(速度和坐标,并将该信 息发送给路面检测节点。路面检测节点按照一定周期 不断地广播消息,消息里面包含本身的I D和自己的坐 标信息。处于监听状态的车载节点接收检测节点发送 的消息。根据无线定位知识[2],车载节点只需收到3 个以上节点发送的消息,就可以计算出自己的坐标与 车速,并将坐标与速度消息传递给附近的路面检测节 点。路面检测节点在收到该消息后,计算出路面行驶 的车辆数、车辆所在车道和车辆与路口的距离,以多跳 通信的方式传递给路口的交通灯控制节点。由车速和 距离,交通灯控制节点就可以判断出车辆状态:①它 已经到达路口;②在路口信号灯换相之前到达路口;③ 不能按时到达路口。这样,可以方便地统计出干线路 口间行驶的车辆数QN以及各路口红灯方向排队车辆 数QR。多路口交通灯控制算法设计

文献[3,4]中指出,在交通控制系统中,各路口协 调周期,不能变换太频繁,否则,方案变换引起的交通 延误所带来的损失会大于新方案所带来的效益。设定 循环变量n=6,以6个周期为一个时间段,在此时间 段内,保持控制参数不变。2.1 算法设计

步骤1:汇聚节点根据以往的交通流量数据统计 出干线上各交叉口间的相位差ω i(i=1,2,3,…,n、统一使用的周期T、各个交叉口的绿信比,将此信息发

送给各路口簇首节点,并初始化循环变量n=0。步骤2:各交叉口簇首节点在给定的周期T下,依 据相位差ω i 依次开启干线各路口绿灯信号。在周期

时间末,簇首节点将周期内由W S N检测得到的路口间 行驶的车辆数QN和路口红灯方向排队车辆数QR送 给汇聚节点。汇聚节点用模糊控制规则以周期时间长 度为单位,调整路口之间相位差。

步骤3:令m=m+T,检验m>6T是否成立。若 成立,则到下一步;反之,则回到步骤2。步骤4:汇聚节点根据各路口簇首节点传递过来 的各路口间的交通流量和各交叉口的绿信比,预估下 一阶段的干线道路上各个交通流量比,计算下一阶段 的周期值。回到步骤2。2.2 各控制参数的具体实现 2.2.1 周期的确定

在交通信号控制系统中,为使各交叉口的交通信 号取得协调,各个交叉口的周期需要统一。方法是先

根据单个交叉口的配时方式,计算出各交叉口的周期, 然后从中选取最大周期,作为系统协调周期。周期确 定步骤如下: ①在给定时间段内,根据公式计算出路口j的第 m周期的交通流量比R j m;其计算公式为 R j m=∑n j=1 q j m i s j m i(1 式中,q j m i 为第j路口第m周期的第i相位车道的交通 量;s j m i 为饱和流量;n为相位个数。

②求出所有路口的交通流量比的最大值R j m MAX

R j m MAX =MAX{R j m ,j=1,2,3,…}(2

根据韦伯斯特最佳周期公式 C0= 1.5L+5 1-R j m MAX(3 计算出第m周期的最佳周期。式中,L为相位损失时间(车辆起制动、行人、自行车干扰,可由协调级模糊控制器的输出得到。

③在本段时间结束时刻,计算所有周期时间内周期的最大值为 C MAX=MAX{C m,m=1,2,3}(4 将此周期值作为下一个阶段信号控制的统一值送入协调单元保存起来,作为下一阶段内的周期。

2.2.2 相位差的确定

相位差是控制交叉路口间交通流的重要参数,设定一个好的相位差可以显著地降低车流的等待时间,实现车辆通行的“绿波带”效应。相位差计算公式为

ω=T

+L(5 式中,T 为本路口到下游路口的行驶时间,由无线传感器网络实时检测得到;而损失时间L由协调级模糊控制器输出得到。模糊控制器的设计

相位损失时间L与路口间车辆数目QN和路口的红灯方向停车线前面车辆排队长度QR有很大关系。路口间车辆数目多,红灯方向排队长度QR长,则车辆启制动所耗费时间就越多,相应的相位损失时间L越大;反之,则越少。

设计步骤如下:(1输入输出变量的确定及量化。

输入变量:本路口到下一路口的车辆数QN,路口红灯方向在停车线前排队车辆数QR。QN的论域为{0,1,2,3,4,5,6,7,8},变化范围为0~85,量化因子k1=8÷85=0.09,语言变量为{Z B,Z M,ZS,Z,PS};QR 的论域为{0,1,2,3,4,5,6,7,8},变化范围为0~48, 量化因子k 2 =8÷48=0.17,语言变量为{NB,Z}。

输出变量:路口相位损失时间为L。L的论域为{0,1,2,3,4,5,6,7,8},变化范围为0~60,比例因子k3=60÷8=7.5,语言变量为{NB,NS,Z,PS,P B}。

(2确定输入输出变量的隶属函数(见图3。

(3确定模糊控制规则。

根据专家经验,建立模糊控制规则表。表1中建立了10条控制规则。表1 模糊控制规则表 QR QN NB NM NS Z PS NB NB NS Z PS PS Z NB NS Z PS P B

(4解模糊。

解模糊的常用方法有以下几种:最大隶属度法、中位数法、加权平均法。由于加权平均法比中位数法的计算量要小,比最大隶属度法控制性能优越,因此,在本设计中选用加权平均法进行解模糊运算,得到精确控制量。其计算公式为

L = ∑n j =1 u j(e j e j ∑n j =1 u j(6 式中,e j(j =1,2,...,9为论域值;u j(e j(j =1,2,(9 为对应于e j 的隶属度。

根据公式(5,计算出路口间的相位差ω,对路口间的交通车流进行协调控制。4 仿真实验

设一条道路有3个路口组成,三路口间距离均为600m。其中,南北为次干道。每个路口的有4个交通流相位:东西直行,东西左转,南北直行,南北左转,如图4所示。路口车辆的到达服从泊松分布,车辆的离开服从负指数分布。干线饱和流量为3000辆/h,支线饱和交通流量为2000辆/h,左转、直行、右转车流比例为1∶2∶1。

图4 主干道三交叉路口示意图利用MAT LAB 6.5编写仿真程序,将基于W S N 的两级模糊控制算法,分别在400、600、1200、1400、2000、2300辆/h 6种不同的车流量情况下进行仿真,统计相应的车辆平均延误时间。为了作比较,在完全相同的条件下,对定时控制也进行了仿真,结果如表2所示。

表2 模糊控制与定时控制比较 车流量/辆・h-1 两级模糊控制 定时控制

提高程度/% 40025.126.5 5.260026.428.67.7120029.138.223.8140031.540.622.4200034.751.232.22300 36.7 56.6 35.2

由仿真结果可以看出,在车流量不大时,两种控制

方式的效果差异不大。但随着车流量的增大,模糊控制的优势是十分明显的。5 结束语

以上将无线传感器网络引入到交通信号灯的控制

中来,搭建了无线传感器网络交通信号灯控制平台,提出了针对多路口交通灯控制的两级无线传感器网络组织结构。利用无线传感器网络的低功耗、自组织、分布式计算的特点,实现快速精确的车辆信息收集,提高了系统的响应速度和控制效果,具有较强的实时性和鲁棒性。同时,结合模糊控制理论,设计了干线信号灯控制算法,实现了交通信号灯的无线智能控制。参考文献: [1] 徐建闽.交通管理与控制[M ].北京:人民交通出版社, 2007211.[2] Akyildiz I F,Su W ,Sankarasubra mania m Y,et al.A survey on sens or net w orks[J ].Communicati ons Magazine,2002,40(8:102-114.[3] W ann C D,L in M H.Data fusi on methods f or accuracy i m 2

p r ove ment in wireless l ocati on syste m s [A ].Pr oceedings of 2004I EEE W ireless Co mmunicati ons and Net w orking Con 2ference[C ].2004203:471-476.[4] 李晓红.城市干线交通信号协调优化控制及仿真[D ].大 连:大连理工大学,2007.[5] 严新平,吴超仲.智能运输系统———原理、方法及应用 [M ].武汉:武汉理工大学出版社,2006212:9-11.□

N I 推出LabV I E W 图形化软件教育版, 全力支持动手学习课程

2009年11月,美国国家仪器有限公司(简称N I 推出 LabV I E W 软件教育版,它是LabV I E W 图形化编程软件面向

高校的新产品。该版本软件的初衷是为了帮助教师实现基于科学、技术、工程和数学(STE M 学科项目的动手学习。

N I 与美国塔夫茨大学工程教育与外展服务中心(CEEO 一 起合作开发该产品,它是将工程集成到K 212教育的领导者。

N I 和塔夫茨大学CEEO 总裁和控制与机械电子教授Chris Rogers 博士共同合作,开发了该教育版软件,它可以有效帮

助高校教师使用工业、学术界工程师和科学家使用图形化系统设计技术,进而为工科学生提供动手实践经验。

LabV I E W 教育版软件可以帮助教师实现基于项目的动

手学习,并且将理论与实际世界的实例联系在一起。这一新版本软件能够与核心教育硬件平台无缝集成,例如LEG O M I N DST ORMS Educati on NXT、Vernier Sens or DAQ 以及TET 2R I X(Pitsco 开发的金属机器人构建系统,让教师能够轻松

地将机器人、测量和数据采集整合到课程中。软件的图形化拖放模式帮助学生学习主要的编程概念,并在获取专业世界中所使用的技术经验的同时,提高分析能力。新版本还包含可以在教室中使用的工具,包括数据查看器,能够图形化地显示传感器数据,虚拟示波器,以及其他让学生能够获得多种电子和机器工程技巧动手经验的虚拟仪器。此外,LabV IE W 教育版包括支持课程和教师活动,能够直接在

基于fpga的交通灯控制 篇5

摘要:介绍了一种基于ALTERA公司大规模可编程逻辑器件EPF10K10的多功能光栅尺处理品电路。叙述了该电路的主要电路――四倍频细分、辨向电路、计数电路、接口处理电路的设计原理,风时给出了详细的电路和仿真波形。

关键词:光栅尺 四倍频细分 辨向 EDA FPGA EPF10K10

1 光栅尺信号及电路设计要求

将光源、两块长光栅(动尺和定尺)、光电检测器件等组合在一起构成的光栅传感器通常称为光栅尺。光栅尺输出的是电信号,动尺移动一个栅距,输出电信号便变化一个周期,它是通过对信号变化周期的测量来测出动就与定就职相对位移。目前使用的光栅尺的输出信号一般有两种形式,一是相位角相差90o的2路方波信号,二是相位依次相差90o的4路正弦信号。这些信号的空间位置周期为W。本文针对输出方波信号的光栅尺进行了讨论,而对于输出正弦波信号的光栅尺,经过整形可变为方波信号输出。

输出方波的光栅尺有A相、B相和Z相三个电信号,A相信号为主信号,B相为副信号,两个信号周期相同,均为W,相位差90o。Z信号可以作为较准信号以消除累积误差。

图1给出了动尺移动时A、B信号的变化情况。在A信号的下降沿采集B信号,就可以判断出运动方向。图中前半部分为正向运动,A信号的上升沿及下降沿均比B信号超前1/4W,在A信号下降沿采集的B信号为“1”;后半部分为反向运动,A信号的上升沿及下降沿均比B信号滞后1/4W,在A信号下降沿采集到的B信号为“0”。根据采集到的运动信号方向和A信号变化的周期数用计数器进行曲计数(正向计数或逆向计数),就可以测算出总位移。

在上述信号处理、测量电路中,用到了触发器、计数器等多种数字集成电路,测量分辨率为光栅栅距W。目前,计量用光栅尺的刻线一般为每毫米50~250线,对应的栅距W为20~4μm ,在精密测量中往往不能满足要求,需要进行曲细分。如果同时考虑A、90o信号上升沿和下降沿的各种情况,就可以实现信号四细分,其主要电路有:细分辨向、计数和接口电路等。以上功能可以由通用数字集成电路来完成,但这种设计方法所用芯片多,结构复杂。当然也可以通过单片机以及一些外围芯片来完成,只是这种方法通用性差,编程复杂,而且增大了单片机的负担,使单片机响应其它事件的实时性变差。

随着大规模可编程逻辑器件(CPLD:复杂可编程逻辑器件;FPGA:现场可编程门阵列)的飞速发展,传统的电路设计方法已大为改观。许多传统的逻辑电路完全可以用可编程逻辑器件来代替,并且可提高系统的可靠性,减小PCB的面积,使产品小型化,还有利于保护知识产权。利用EDA(电子设计自动化)技术设计可编程逻辑器件已成为现代电子设计的一种必然趋势。本文所介绍电路的接口模块就是基于FPGA芯片完成的。

该电路设计有如下要求:利用FPGA芯片完成双路光栅尺信号处理(考虑到2维X-Y平台的应用场合)、四细分及辨向功能、24位可逆计数器、与微处理品器及各种单片机的并行接口电路(包括锁存、译码、清零电路等)。其对外接口信号如图2所示。

INA1、INB1、INA2、INB2分别为两路A、B信号。作为处理电路 输入信号,这2路信号经四细分、辨向后,可为两路24信可逆计数器提供计数脉冲和方向信号。接口电路包括锁存、译码、清零电路等,通过数据线D0~D7、地址线A0~A4、片选信号线CS来读写控制与外部微控制器接口。接口采用8位数据总线,计数值(48位,占6个读口)及清零命令等数据交换均通过不同口地址的读写完成。该模块的操作与其它智能接口器件(如8255、8253等)相类似。

2 FPGA器件的选择

根据设计要求和综合估算整个电路所需要的管脚和宏单元的个数,本设计选用EPF10K10。它是ALTERA公司FLEX10K系列产品之一,是一种嵌入式可编程逻辑器件。EPF10K10采用CMOS SRAM制靠工艺,使用权SRAM来存储编程数据,具有在系统可编程特性。具体的配置方式有被动型和主动型两种,其中被动型配置是在上电后由计算机通过编译后产生的后缀为SOF的文件利用专门的下载电缆配置芯片。而主动型配置是在上电后由专门的可编程配置芯片(如EPC1441)自动对EPF10K10芯片进行配置。EPF10K10具有高密度(可用逻辑门1万~25万;RAM;6114~4096位,512个宏单元)、高速度、低功耗等特点。芯片内含有专用进位链和级联链及快速通道,故其互连方式十分灵活。

3 电路设计

本电路采用Altera公司的Max -plus 开发平台进行设计。Max -plus 为Altera公司的专门开发平台,它包括设计输入、编译、仿真、器件编程等功能。该平台使用方便,允许用户用原理图、VHDL语言、波形图等多种输入方法进行设计。下面介绍系统主要电路的设计。

3.1 细分辨向电路

光栅尺信号的`细分与辨向是提高光栅尺测量精度的关键性一步。在笔者所参考的关于光栅辨向和细分电路的资料中,很多设计者都没有综合考虑辨向和细分的复杂性,而是把辨向和细分电路分开,辨向电路只对光栅尺的输出信号进行辨向,而不是对细分后的脉冲信号进行辨向,这样实现测量误差仍是光栅尺的栅距。在考虑辨向功能时,应对细分后的信号进行辨向设计,否则不能提高测量精度。

细分辨向电路的原理图如图3所示,光栅尺输出的相差为90 o的方波信号INA、INB经RC滤波和施密特整形后(芯片外处理)输出信号A、B,然

后经第一级D触发器后变为A’、B’信号,再经过第二级D触发器变为A”、B”信号。通过D触发器可以对信号进行整形,从而消除了输入信号中尖脉冲带来的影响,这样在后续倍频电路中不再使用权原始信号A、B,因此提高了系统的抗干扰性能。D触发器的时钟由外部有源晶振提供,其频率为1MHz,远高于A、B波形变化的频率,因而可以认为,D触发器的输出端Q能跟踪输入端D的变化。在四倍频辨向电路中,采用组合、时序逻辑实现A’、A”、B’、B”信号进行的逻辑组合。

当光栅尺正向运动时,从CLKADD信号端输出四倍频脉冲,而CLKSUBB端无信号输出。当光栅尺反向运动时,从CLKSUBB信号端输出四倍频脉冲,而CLKADD端无信号输出。CLKADD和CLKSUBB相与后作为可逆计数器的计数脉冲CLK,读出该计数器的值便可得出光栅移动的位置。CLKADD和CLKSUBB信号组成的RS触发器电路可产生ENADD,ENSUBB。ENADD可作为可逆计数器的方向信号。其仿真波形如图4所示。

3.2 计数电路

本系统中的24位计数器采用VHDL语言进行设计。输入信号定义为时钟CLK、方向信号fx =ENADD ,清零信号CLR(后面有介绍)。输出信号定义为24位的计数结果COUNT(23:0)。用VHDL语言来编写实现24位可逆计数器功能。其仿真信号如图5所示。

3.3 接口电路

接口电路用原理图法设计,电路包括以下部分:

(1)地址译码电路:输入信号为外部(微处理器、单片机等)的地址线A0~ A4、片选信号线CS、读写控制信号,通过逻辑门电路的连接构成组合逻辑,给每一个内部单元提供使能信号。

(2)锁存接口电路:由于内部各计数单元工作属于动态过程,因此外部微处理器(或单片机等)在读取数据时,应该先给其发出锁存信号然后再读取数据,以保证读出稳定的数据。锁存器输出设计为三态门输出,与外部数据线连接,三态门的使能信号由译码电路提供。

(3)清零电路:电路中设计了清零电路。清零脉冲是通过外部写命令(8位)内部进行译码的方式进行的,而不是使用一根信号线进行清零,这样可以有效地防止在只使用一根信号线时受干扰等原因而引起的误清零现象。

4 结束语

基于fpga的交通灯控制 篇6

当今社会,随着人们生活水平的提高,城市中车流量特别是私家车的数量呈现了一个急速上涨的阶段,导致城市交通出现了巨大的压力,十字路口交通灯信号成了管理交通网络的重要因素。提高十字路口的通行效率,对缓解城市交通堵塞有着极其巨大的现实意义[1,2]。而目前城市的交通灯控制,是根据一定时间段的各路口车流量的调查而分配出的相对比较合理的固定的红绿灯转化周期。但在特定的时间段,会出现某一方向车辆早已通行完,而另一方向车辆排队等绿灯的情况[3],会导致实际的十字路口交通效率极大的降低。

本文使用VHDL语言设计了一种新型的十字路口交通灯控制系统,其主控系统是Altera公司Cyclone系列FPGA芯片[4,5]。该系统利用压电传感器感应车辆,通过无线发射/接收装置把信号传输到FPGA芯片进行处理,实时输出相应的红绿灯控制信号,从而动态地调节各方向的通行时间,极大地提高了十字路口的车辆通行效率[6]。

1 系统设计方案

本系统的基本框架如图1所示。其中,传感器采集车辆信号,通过AD转换器、信号放大器、无线发射/接收装置,将采集到的信号转化为数字信号(高低电平)输入到FPGA控制芯片,经过FPGA控制芯片处理,将输出信号显示在相应的红绿灯上,从而控制各路口车辆通行[7]。

十字路口传感器位置如图2所示[8]。

在十字路口的直行道和左转道口安装压电传感器感应该通道是否有车辆停留[9],人行道通行与否由相邻直行道红绿灯状况确定,若绿灯,则人行道为通行状态,反之亦然;右行道状态由相关人行道状态决定,若人行道为通行状态,则右行道为红灯,反之,则为绿灯。

其中,直行道传感器a,b,c,d所对应的绿黄灯最长时间为绿灯24秒,3秒,红灯时间长短由其他相应传感器判定;左行道传感器aa,bb,cc,dd所对应的绿黄灯最长时间为绿灯5秒,2秒,红灯时间长短由其他相应传感器判定,具体检测顺序为:a→b→c→d→aa→bb→cc→dd→a。

2 交通灯控制电路

该系统核心控制FPGA芯片为Altera公司Cyclone系列EP1C6Q240C8芯片,配套芯片为EPCS4,一共具有185路I/O接口,26路外扩I/O,含2路全局时钟信号PLL。根据系统要求需要有8路输入,48路输出[10],具体分配如表1所示[11]。

各传感器之间基本的逻辑对应关系如表2所示[12]。

本系统相对于传统交通控制电路最大的创新点在于,实现了车道相对方向不同步的信号控制,根据车流量的变化及时调整交通信号控制策略,最大限度地提高了十字路口车流量的通行效率。整个控制电路选择1Hz时钟脉冲作为系统时钟,所有信号灯初始状态为红灯。其中,传感器a,b,c,d所对应信号灯通行状态一致,传感器aa,bb,cc,dd所对应信号灯通行状态一致。

以传感器a为例,当传感器a感应到信号(即有车辆通过),则相应信号灯转绿灯,并通过累加器计数;b,bb,cc,d传感器对应信号灯保持红灯状态。若传感器c感应到信号(即有车辆通过),则相应信号灯转绿灯,并通过累加器计数,传感器dd, aa对应信号灯保持红灯状态;当传感器c对应的累加器数值达到6,或者传感器c无信号,则相应信号灯转为黄色,2秒后变为红色;同时判断传感器dd状态,若有信号,则重复传感器c运行过程;否则判断传感器aa状态,若有信号,同样重复传感器c过程。c,dd,aa 3个通道通行结束后,3个累加器数值归零,并重新开始计算通行状态。当传感器a累加器数值达到24,或者传感器a无信号,a对应信号灯转为黄色,3秒后转为红色,并开始判断传感器b状态。以此类推,完成一个周期后,重新开始新的循环。每过120秒,所有车辆信号灯转为红灯,所有人行道转为通行状态,确保所有路口行人及时通行。 右行道车辆信号灯只与人行道上红绿灯信号相关联。传感器a所对应的车辆通行相位如图3所示,传感器b,c,d情况与a类似。

传感器aa,bb所对应的车辆通行相位如图4所示,传感器cc,dd情况与aa,bb类似。

3 实验仿真结果分析

将用VHDL语言编写的程序使用软件Quartus II 7.2进行编译、综合、仿真[14,15,16],结果如下。

在车流量极大(即所有道路随时都有车辆等待)的情况下,在设定直行道绿灯24秒,黄灯3秒;左转道绿灯6秒,黄灯3秒的条件下,仿真结果如图5所示。

而在类似的传统的十字路口[17,18],由于相对路口红绿灯信号相同,设定绿灯24秒,黄灯3秒,红灯27秒,两条道路信号灯状态交替循环,其仿真结果如图6所示。

统计十字路口300秒内累计通行时间,计算直行道、左转道、右转道,可得累计通行时间为1069秒。统计十字路口300秒内累计通行时间,计算直行道、左转道、右转道,可得累计通行时间为924秒。由此可见,在十字路口车流量极大的条件下,比较两者可得,本设计方法比传统设计方法通行效果略好。

在一条道路上车流量极大,而另一条道路上车流量极小的情况下,设ac道路车流量极大,bd道路上没有车流,同样设定绿灯24秒,黄灯3秒;左转道绿灯6秒,黄灯3秒的条件下,所得仿真结果如图7所示。

统计十字路口300秒内累计通行时间,计算直行道、左转道、右转道,可得累计通行时间为666秒。类似的传统方法的十字路口在此类状况下的累计通行时间,由图4可得统计结果,任意方向(南北方向或东西方向)的累计通行时间均为462秒。由此可见,在单车道车流量大的情况下,使用此设计方法所得的十字路口车辆通行效率要明显优于传统的红绿灯运行方法。

在只有一个方向上有车流的情况下,设十字路口a方向车流量极大,其他3个方向的车流量极小,同样设定绿灯24秒,黄灯3秒;左转道绿灯6秒,黄灯3秒的条件下,所得仿真结果如图8所示。

统计十字路口300秒内累计通行时间,计算直行道、左转道、右转道,可得累计通行时间为420秒。类似的传统方法的十字路口在此类状况下的累计通行时间,由图4可得统计结果,任意方向的累计通行时间均为231秒。由此可见,在车流辆不均衡的情况下,使用此设计方法所得的通行效率要远远优于传统的设计方法。

比较上述3种情况下的累计通行时间,如表3所示。

由表3可见,在极限状态(即四车道车流量极大的状态)下,本设计系统与传统模式相比,效率提升15.7%;但在车流量不均衡的状态下,本设计系统的通行效率远远优于传统模式,最高提升81.9%,不均衡的情况越明显,通行效率的提升越显著。

4 结 语

由此可见, 本文提出的基于FPGA的交通红绿灯设计方案适合各种状况的十字路口车辆控制,特别是在车流量不均衡的情况下,十字路口的通行效率最大可提高81.9%。将设计程序借助EDA软件Quartus II 7.2,下载到以EP1C6Q240C8为核心芯片的FPGA开发板中进行测试[19],观察开发板上信号灯变化情况,测试结果满足了设计需求。该方案的应用,会极大地缓解城市的交通压力。另外,本设计系统具有维护容易,可靠性高,扩展方便等特点,在一些特殊的路口,如三叉路口、五叉路口等,也适合本设计方法的使用,可以预防交通不畅,让有限的城市道路资源得到最大化的利用。

摘要:论述一种基于FPGA的交通红绿灯设计方案,可以有效解决城市中十字路口各方向车流量不均衡,特别是同一条道路相对方向车流量不均衡的问题。对相对方向采用不同步的红绿灯信号,减小了十字路口交通资源的浪费情况,实现对交通信号的智能控制,极大提高十字路口的车辆运行效率。

基于fpga的交通灯控制 篇7

关键词:PLC;组态王;交通灯;仿真控制

一、引言

组态软件又称为组态监控软件,随着工业的发展,组态软件得到了非常广泛的应用,已在电力、供水、化工、小区安防等诸多领域用作数据采集、监控及过程控制。组态软件的出现,为使用者大大地提高了便利,通过组态软件,能对控制系统进行实时监控,让使用者对系统运行状况了如指掌,特别是对系统出现紧急情况时,能及时采取措施,而这一切则是通过组态软件设计的人机界面达成的。

本文基于组态软件之一的组态王和三菱PLC编程软件,以交通灯控制系统为例,构建起系统仿真控制模型,并进行调试运行。

二、控制系统任务

随着城市化进程的加快,人们的生活水平日益提高,汽车数量也是与日俱增,这对城市的交通设施来说是一大考验,作为城市交通疏导的一大工具交通信号灯,显得尤为重要。采用PLC作为系统的控制器,是因为PLC有着可靠性高、抗干扰能力强、简单易学、维护方便等优点。

系统设计要求为:南北红灯亮并保持25秒,同时东西绿灯亮,保持20秒,20秒钟到了之后,东西绿灯闪亮3次(每周期1秒)后熄灭;继而东西黄灯亮并保持2秒,到2秒后,东西黄灯灭,东西红灯亮并保持30秒,同时南北红灯灭,南北绿灯亮25秒,25秒到了之后,南北绿灯闪亮3次(每周期1秒)后熄灭;继而南北黄灯亮并保持2秒,到2秒后,南北黄灯灭,南北红灯亮,同时东西红灯灭,东西绿灯亮,到此完成一个循环。该系统未涉及左转、右转灯设置。

三、系统设计

根据控制系统要求,建立I/O分配表如表1所示,组态王中数据库中变量必须与I/O一一对应起来,这样才能对这些I/O进行监控。

然后在组态王(KingView)6.51中,设计出交通灯控制系统的图形界面,如表1所示。

在三菱PLC编程软件GX Developer中编写好控制系统梯形图程序,在组态王数据词典中建立起与系统I/O一致的变量,这些变量的数据类型为I/O离散,其他的不需要与程序进行数据交换的变量,比如东西向汽车、南北向汽车等,这些变量类型为I/O实数。

进行组态王动画连接,将界面中各部分与数据词典中对应的变量连接起来。红、黄、绿灯由动画连接中填充属性变化得到,当条件成立时,填充对应的颜色。其中东西、南北向时间显示在PLC程序中由D10寄存器来控制,在组态王中要获得时间显示动画,则使用动画连接中的模拟值输出,将时间显示对应到变量中的D10寄存器即可。

接下来设计汽车、行人移动动画。分别将南北向汽车、南北向行人、东西向汽车、东西向行人变量的初始值和最大值进行设置。本系统中,统一设置初始值等于0和最大值等于1000,数值反应出来的是其移动的距离。在命令语言中编写如下程序:

if(\本站点东西时间显示>2&&\本站点东西红灯= =0&&\本站点东西汽车<700)

{\本站点东西汽车=\本站点东西汽车+50;}

else

{\本站点东西汽车=0;}

if(\本站点南北时间显示>2&&\本站点南北红灯= =0&&\本站点南北汽车<600)

{\本站点南北汽车=\本站点南北汽车+50;}

else

{\本站点南北汽车=0;}

if(\本站点东西时间显示>2&&\本站点东西红灯= =0&&\本站点行人东西相移动<700)

{\本站点行人东西相移动=\本站点行人东西相移动+10;}

else

{\本站点行人东西相移动=0;}

if(\本站点南北时间显示>2&&\本站点南北红灯= =0&&\本站点行人南北相移动<600)

{\本站点行人南北相移动=\本站点行人南北相移动+10;}

else

{\本站点行人南北相移动=0;}

通过命令语言来实现汽车、行人移动的动画,每执行一次该命令语言,汽车移动50,而行人移动10,数值的大小反映出来的是移动快慢的动画效果。

四、调试运行

由于是在无PLC硬件的条件下,进行模拟控制,但是三菱PLC仿真器并不能与组态王直接进行通讯,所以采用三菱OPC Server软件,作为仿真器和组态王之间数据交换的媒介。在OPC Server中建立好与I/O一致的数据名称。

系统设计好后,便进行调试运行,运行三菱PLC仿真器GX Simulator,将编写好的梯形图程序逻辑测试启动,开启OPC Server,然后运行组态王运行系统,系统运行良好,与控制要求相符,运行效果如图2所示。

五、结论

本文是在无PLC硬件条件下,基于组态王和三菱编程软件开发出的交通灯仿真控制系统,并且进行了仿真模拟控制实验,实验取得了较好的效果,为下一步进行实际硬件电路的设计作了铺垫。本文采用的这种方法可以让工程人员进行离线调试,同时还为开发PLC仿真实验平台提供了新的思路。

参考文献:

[1]姜新桥.可编程控制器应用基础[M].华中科技大学出版社,2009.

上一篇:2011服务三农及县域经济调研下一篇:中国十大独立B2C电子商务网站_京东居榜首