基于FPGA的交通灯控制系统

2025-05-20 版权声明 我要投稿

基于FPGA的交通灯控制系统(推荐12篇)

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

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

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

参考文献

基于FPGA的交通灯控制系统 篇2

1 系统设计要求

所设计的交通信号灯控制电路,主要适用于在两条干道汇合点形成的十字交叉路口,路口设计两组红绿灯分别对两个方向上的交通运行状态进行管理。交通灯的持续闪亮时间由键盘输入控制。灯亮时序如图1所示,当B方向的红灯亮时,A方向对应绿灯亮,由绿灯转换成红灯的过渡阶段黄灯亮即方向红灯亮的时间等于A方向绿灯和黄灯亮的时间之和。同理,当A方向的红灯变亮时,B方向的交通灯也遵循此规则。各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间。当出现特殊情况时,各方向上均亮红灯,倒计时停止。特殊运行状态结束后,控制器恢复原来的状态,继续运行。

2 系统整体设计

整个系统设计如图2所示,该系统主要由计数模块、控制模块、分频模块、分位模块以及显示电路构成。其中分频模块主要将系统输入的基准时钟信号转换为1 Hz的激励信号,驱动计数模块和控制模块工作。控制模块根据计数器的计数情况对交通灯的亮灭及持续时间进行控制,并通过分位电路将灯亮时间以倒计时的形式通过数码管显示出来。图中Reset是复位信号,高电平有效可以实现对计数器的异步清零为保持信号,当Hold为“1”,计数器暂停计数,表示出现特殊情况,各方向车辆都处于禁行状态。

3 主要功能模块设计及仿真

3.1 计数模块设计

计数模块主要实现累加循环计数,计数的最大值由键盘输入控制,输出的计数值为控制模块的灯控提供参考,计数器的主程序设计如下:

计数模块的仿真如图3所示,从图中可以看出,在时钟的驱动下,计数值不断自加,当计数值countnum等于键盘输入值32(key=32)时,计数返回到0,开始下一轮计数。当Hold检测到特殊情况时置`1',使计数器暂停计数。

3.2 控制器模块的仿真设计

在控制器模块中,红、绿、黄三盏灯工作的总时间由键盘输入,各交通灯时间分配规则如下:红灯时间占总时间的1/2,绿灯时间占3/8,黄灯时间占1/8,本设计中键盘输入值为32(key=32),正常情况下红灯亮16 s,绿灯亮12 s,黄灯亮4 s。

控制器仿真情况如图4所示,当hold为低电平,计数值countnum<12时,greenA输出高电平,A东西方向绿灯亮起车辆通行,此时与之相对应的redB输出高电平,B方向红灯亮起车辆禁行。A方向显示交通灯闪烁持续时间的数码管numA从12开始递减,同时B方向显示交通灯闪烁持续时间的数码管numB从16开始递减。当1216,redA输出高电平,A方向红灯亮起车辆禁行,numA从数值16开始倒计时,此时greenB输出高电平,B方向绿灯亮起车辆通行,numB从数值12开始递减。当16

3.3 分位模块设计

分位模块的设计主要是将灯亮时间分为十位和个位,通过两个相应的数码管分别显示出来。本设计中灯亮时间最长不超过40 s(numin<40),numA,numB分别表示十位、个位上的数字,分位模块程序设计的流程图如图5所示。

分位模块的仿真如图6所示,numin的数值大小可以通过numA,numB的组合以十进制数值显示,从而实现了分位功能。

4 系统的硬件设计及调试

本系统的主要逻辑设计由一片EP1K30TC144-3芯片完成,编写的VHDL源程序在Altera公司的逻辑综合工具Max+PlusⅡ下经过编译和功能仿真测试后,针对下载芯片进行管脚配置,下载到EP1K30TC144-3芯片中,进行相应的硬件调试,调试结果与软件仿真的结果相吻合,验证了设计完成了预定功能。

5 结语

本文利用硬件描述语言VHDL编程,借助Altera公司的Max+PlusⅡ软件环境下进行了编译及仿真测试,通过FPGA芯片实现了一个实用的交通信号灯控制系统设计由于采用了技术不但大大缩短了开发研制周期,提高了设计效率,而且使系统具有设计灵活实现简单性能稳定的特点。

参考文献

[1]张明.VHDL实用教程[M].成都:电子科技大学出版社,1999.

[2]谭会生,张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社,2001.

[3]潘松,王国栋.VHDL实用教程[M].西安:西安电子科技大学出版社,2000.

[4]张顺兴.数字电路与系统设计[M].南京:东南大学出版社,2004.

[5]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社,2002.

[6]蒋璇,臧春华.数字系统设计与PLD应用技术[M].北京:电子工业出版社,2006.

[7]王永华.现代电气控制及PLC技术[M].北京:北京航空航天大学出版社,2005.

[8]王成勇.智能交通灯控制系统[J].广东技术师范学院学报,2006(4):92-94.

[9]张海英,余臻,陈燕萍.模糊控制在智能交通灯监控系统中的应用[J].计算机技术与发展,2008,18(3):181-183.

基于FPGA的交通灯控制系统 篇3

关键词:电能质量;同步采样;DDS;FPG

中图分类号:TM933.4 文献标识码:A 文章编号:1007-9416(2012)07-0094-01

随着人们对电能质量要求的日益提高,如何保证电能质量就成为一个热门话题。电能作为现代社会中最为重要的二次能源,应用越来越广泛,其应用程度已经成为一个国家发展水平的主要标志之一。随着大量的电力电子装置及非线性负荷注入电网,使得各种各样的电能质量问题日益严重。电能质量问题不仅对电力系统本身的安全和稳定性造成严重威胁,也对系统中的用户造成危害,因此研制一种电能质量的实时监测装置具有十分重要的意义。

一、设计方案

系统结构见图1,FPGA主要实现AD芯片的模式配置、DDS模块、同步采样模块等结构性模块。NIOSⅡ对频率、采样率调节等计算模块进行控制。模拟信号转换电路主要提供AD采集需要的2.5V交流电压和信号。通过对基波频率的测量计算出频率控制字,来控制DDS模块输出的频率,从而调节A/D芯片的采样时钟完成同步采样。同步采样模块,主要完成对AD数据的读取,并通过光纤数据传输模块传输到上位机,上位机对数据分析计算,波形和参数由摸式液晶屏显示。

图1中,主控制芯片采用EP3C25672以Nios II为控制核心,同时添加DDS(直接数字频率合成)模块、A/D转换控制模块、模拟信号转换模块、串行通信高速UART模块等,实现了采样的高度集成。

数据采集、数据倒位序处理、FFT变换、数据取模运算、本人就如何处理前面4个过程进行说明,所使用的数据是使用软件仿真生成可用数据进行测试。

(一) AD采集

测试代码如下:#define PI (3.1415926);#define PI2 (2*PI)

Complex SinTab[64],VialCode1[64];//定义复数数组,complex定义在FFT.H中。

PIdot = PI2/8; // 确定一个周期内产生8个点的数据

for(i1=0;i1<64;i1++) //产生正弦信号数据

{SineValue[i1] = 2.3+0.283*cos(PIdot*(i1%8)); //使用cos函数模拟生成每周期8个采集点的数据源。

VialCode[i1] = SineValue[i1]/0.00122;//假设AD的分辨率为1.22mV,将上面产生的模拟信号,编码成AD采集到的数据。即通常从AD读出来的就是这个数据,产生的波形}

{VialCode[i1]=sqrt(VialCode1[i1].real*VialCode1[i1].real+VialCode1[i1].img*VialCode1[i1].img );//波形图中办取了第0和第9点的数据。}

如AD采集频率为400Hz,则频率的分辩率为:400/64=6.25HZ。如果要看50Hz的信号,则50/6.25=8,即交流分量的第八个点上。

(二)数据处理

在使用FFT处理数据时,有两个参数:采集频率、采集点数是很重要的。对于AD所采集到的数据,无论是单极性数据,还是双极性数据,均可以直接进行FFT运算,结果都会是一样的。我们应用FFT的典型应用就是利用STM32F103C8T6所设计的一个12通道50Hz交流电流信号采集的终端设备。

二、数据传输模块及上位机系统

数据采集并处理之后,就要进行传送。由于电能质量数据一般是现场采集同步传输,不仅数据量大而且传输距离相对较远,而采用光纤传输不仅速度快而且抗干扰能力强,所以本系统的数据传输部分主要采用光纤以UART通信模式传输到上位机,上位机系统采用工业型采集主板,采用Labview软件根据采样数据计算各项参数。上位机软件设计完成了应用LabwindowsCVI上位机分析处理平台编写的HMI显示操作界面,并开发了串口接收程序模块、数据分析程序模块和数据显示程序模块。 利用搭建的电能质量硬件电路,结合上位机进行了一系列测试,包括频率值和畸变率值的测量、信号调理单元、数据通讯和数据压缩功能的测试。结果表明,测试值都在国家标准的误差范围内,证明该电能质量监测装置具备一定的可用性。

DDS(Direct Digatal Synthesizer)直接数字合成器,是从相位的概念出发直接合成所需波形的一种频率合成技术。通常一个DDS模块由相位累加器、加法器、波形存储ROM和DA构成;但是本设计中只需要产生方波即可,所以去掉了DA转换器,其原理如下图所示:

三、实验结果与总结

该平台对标准的三相电实验运行监测,三相电压曲线如图所示。该图为Labview根据光纤上传的数据产生的三相电压曲线,说明该平台符合设计要求。

本文给出的基于FPGA的同步采样平台,有效改善了电能质量中谐波计算所需的同步采样问题,极大的提高了电能质量分析平台的性能具有一定的推广价值。

参考文献:

[1]江川,杨洪耕.基于并行数据处理结构的电能质量在线监测[J].继电器,2005,33(5):47-55.

[2]金燕,葛远香,梁玲飞,方迎联.基于SOPC的电能质量在线监测仪的设计[J].浙江工业大学学报,2008,36(6):664-667.

[3]韦向敏,赵春宇.基于异步采样的在线电能质量监测仪[J].电力系统及其自动化,2011,33(3):23-25.

基于单片机的交通灯控制系统设计 篇4

摘要:十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制嚣,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮。倒计时剩5秒时黄灯闪烁警示;车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。

关键词:单片机;交通灯

单片机技术的发展对社会进步产生了巨大的影响。今天,单片机及其应用技术的发展速度、深度及其广度,在国防、科学研究、政治经济、教育文化等方面几乎无所不及。将之用于交通灯控制系统设计,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1、单片机涵义

一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入,输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就际=缸单片(单芯片)机,单片机即微控制器(Microniroller μC)有一些单片机中除了上述部份外,还集成了其它部份如AID,DIA,定时计数器,RTC,各种串行接口等。

2、MSC-51芯片简介

2.1 MSC-51结构

8051是MCS-51系列单片机的典型产品,8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时,计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

2.2 8255芯片简介

8255可编程并行接口芯片有三个输入输出端口,即A口、B口和c口,对应于引脚PAT—PA0、PB7-PB0和PC7-PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。c口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。

8255有两种控制命令字;一个是方式选择控制字;另一个是c口按位置位/复位控制字。

2.3 74LS373简介

SN74LS373。SN74LS374常用的8d锁存器。常用作地址锁存和I/0输出,可以用74he373代换,74H373是高速CMOS器件,功能与74LS373相同,两者可以互换。74LS373内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚c或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,741Ls373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。

3、系统硬件

3.1 交通管理的方案论证 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行。绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两千道的公共停车时问。设东西道比南北道的车流量。

3.2 系统硬件设计

选用设备8031单片机一片选用设备:8031弹片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个。开关键盘、连线若干。

4、控制器的软件设计

4.1 每秒钟的设定

延时方法可以有两种:一种是利用NCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。

4.2 计数器硬件延时

4.2.1 初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为c和计数初值设定为TC。

4.2.2 1秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使TO定时5O毫秒,这样每当TO到50毫秒时cPu就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,cPu先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。

4.3 计数器软件延时

MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

4.4 时间及信号灯的显示

4.4.1 8051并行口的扩展

8051虽然有4个8位I/0端口,但真正能提供借用的只有Pl口。因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8031通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/0端口,显然8031的端口是不够,需要扩展。

扩展的方法有两种:(1)借用外部RAM地址来扩展I/0端口;(2)采用I/0接口新片来扩充。我们用8255并行接口信片来扩展I/0端口。

4.4.2 8255与8051的连接

用8051的PO口的pO.7连接8255的片选信号,我们用8031的地址采用全译码方式,当pO.7:0时片选有效,其他无效,pO.1用于选择8255端口。

5、结 论

本系统就是充分利用了8051和8255芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/0接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的Pl口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。

参考文献:

[1]张毅刚,新编MCS-51单片机应用系统设计[M]哈尔滨:哈尔滨工业大学出版社,2006

[2]王义军,单片机原理及应用习题与实验指导书[M],北京:中国电力出版社,2006

基于FPGA的交通灯控制系统 篇5

基于PLC控制的十字路口交通灯信号系统

根据十字路口交通灯的控制要求,采用PLC设计实现正常交通的时序控制.通过传感器完成对交通异常状况的.智能判别及处理.在系统的设计中,主要使用了PLC可编程序控制器和传感器相结合的一种智能控制方法,使用压轴式传感器采集车辆脉冲.用PLC高速计数嚣对脉冲进行计数.根据取得的数据运用一定的智能控制原则自动调节红绿灯的时间长度.最大限度地减少车辆滞留现象,较好地解决了车流量不均衡、不稳定问题.理论结果表明.该系统设计方案可以达到预期目标.

作 者:金秀慧 JIN Xiu-hui  作者单位:德州学院机电工程系,山东,德州,253023 刊 名:农业装备与车辆工程 英文刊名:AGRICULTURAL EQUIPMENT & VEHICLE ENGINEERING 年,卷(期): “”(5) 分类号:U491.5+1 关键词:可缟程控制器   交通灯   智能控制系统  

基于FPGA的交通灯控制系统 篇6

提出了一种基于模糊逻辑的交叉口信号控制算法,并通过对相位顺序进行优化,获得了更好的控制效果.与传统的.信号模糊控制算法相比,该算法具有相位组合灵活、延误时间小等优点,能够有效解决交通流不平衡的问题,更适应城市交叉口实时变化的交通状况.仿真研究表明:该控制算法能够大大减少车辆延误时间,是进行城市智能交通控制的一种实用且行之有效的方法.

作 者:臧利林 贾磊 林忠琴 ZANG Li-lin JIA Lei LIN Zhong-qin 作者单位:臧利林,贾磊,ZANG Li-lin,JIA Lei(山东大学,控制科学与工程学院,山东,济南,250061)

林忠琴,LIN Zhong-qin(济南市公安局交警支队,山东,济南,250100)

基于FPGA的交通灯控制系统 篇7

关键词:小波变换,目标检测,图像去噪,Mallat算法,DA算法,交通流速度-密度关系

1 引言

公路上的交通流数据通常是以10~25秒间隔采集并传递到管理中心的, 为了分析交通流速度-密度关系等数据, 采用近年来迅速发展的基于小波变换的通过对交通流数据的频率特性进行详细分析的数据处理方法能够使交通量统计更加高效准确。该结论对小波变换在将来的广泛应用具有指导意义。

提升小波变换不仅具有传统小波多分辨率的优点, 并且简化了运算及易于硬件实现, 在数字图像编码中得到广泛的应用, 其中的5/3小波变换可以实现无损或有损的图像压缩。FPGA器件具有集成度高、使用灵活的特点, 越来越广泛地用于信号处理领域。本文采用基于流水线加法运算及桶状移位操作, 在Altera公司的AP EX20KE系列器件上实现快速小波变换的设计。

2 小波变换的算法

2.1 Mallat算法

Mallat将计算机视觉领域内的多分辨率思想引入到小波分析中, 提出了著名的快速小波算法—Mallat算法, 使小波分析理论得到广泛的应用.Mallat算法如下:

式中, h, g为分析滤波器, 实现低通滤波和高通滤波功能;h, g为综合滤波器, 实现信号的重构.Daubechies和Sweldens在Mallat算法的基础上创建了提升算法, 被誉为第二代小波变换.与Mallat算法相比, 提升算法不依赖于傅立叶变换, 降低了计算量和复杂程度, 其运算效率提高了1倍.由于具有整数变换及耗费存贮单元资源少的特点, 提升算法能够通过硬件方式实现.以下是离散信号小波重构的Mallat算法结构图 (如图1) :

2.2 DA算法

DA算法, 即分布式算法实现。分布式算法作为一项数字信号处理算法, 广泛地应用在计算乘积和之中。与传统的乘积和结构相比, 具有并行处理的高效性特点。公式如下图所示:

采用分布式算法实现的FIR滤波器在FPGA中的工作速度只与输入数据的宽度B有关, 与滤波器的阶数N无关, 阶数只影响F PGA资源的使用量。

3 提升算法的FPGA实现方法

3.1 硬件实现方法

考虑到计算量和复杂程度, 最后决定采用提升小波变换实现交通量数据处理。提升小波变换中的主要计算是加、减运算, 而除法运算是除以2和除以4, 在硬件中可通过“右移”操作实现快速运算, , 因此采用FPGA实现提升小波算法是可行的。目前FPGA的容量已达到百万门级, 可以实现复杂的系统级设计, 并且由于FPGA厂商提供了功能强大的开发软件, 降低了开发周期和费用。

3.2 精度的设置

信号处理系统若用浮点运算实现的话, 虽有精度保证, 但硬件复杂度和成本都太高。而小波变换目前更多的应用于图像、声音等数字信号处理领域, 而这些信号本身就多为整数 (图像一般用位数较低的整数表示) , 因此用定点实现是比较合适的。因此, 下面分析考虑有限字长带来的精度问题。

对于小波变换的计算过程而言, 最终数据结果的精度取决于输入数据、滤波器系数以及中间变换结果的精度。因此, 本系统具体的精度设置如下:

(1) 滤波器系数。实验表明:当滤波器系数的位数取16bits时, 其精度己经足够。因此, 本系统设置滤波器系数的位宽为16bits (其中包括符号位) 。

另外, 考虑到常用的一些小波函数对应的变换滤波器系数的绝对值均偏小, 不适合采用FPGA设计, 故在设计之前先对滤波器系数放大, 考虑到实际小波滤波器系数的大小, 将各系数分别左移13位 (乘以213=8192) , 然后四舍五入, 转换为整数参与FPGA运算。

(2) 中间变换结果的精度。由于输入数据位宽为16bits, 而如上也对小波滤波器系数左移了13bits, 在系统的最后必定要右移13位, 以得到正确的结果输出, 因此, 设置中间变换结果的精度为16+13=29bits, 以防止溢出现象的发生。

4 结语

在系统验证方面, 将MATLAB小波变换工具箱中的相关函数进行小波正、反变换的结果与实际仿真结果比较, 二者误差可以满足一般应用系统要求, 并对误差来源作了详细分析。

参考文献

[1]刘文耀著.小波图像编码与专用VLSI设计.电子工业出版社.

[2]李媛著.小波变换及其工程应用.北京邮电大学出版社.

[3]张琳, 李小平著.基于小波变换的车辆识别系统研究.中国电力出版社.

[4]姜三平著.基于小波变换的图像降噪.国防工业出版社.

[5]于大卫, 董辉.基于FPGA的高速FIR数字滤波器设计.空间电子技术.

基于FPGA的交通灯控制系统 篇8

关键词:FPGA 视频监控;并行处理;VGA显示

中图分类号: TN4 文献标识码: A 文章编号: 1673-1069(2016)17-156-2

1 视频监控系统设计

本视频监控系统主要由图像采集终端,视频转换接口,VGA显示终端组成,传感器OV5620采集到现实景物后,将生成的RAW数据流由ITU 数据输出端口发送给视频转换接口。视频转换接口将ITU 数据输入端口送来的RAW数据流转换成 RGB 数据流发送,通过VGA端口发送给显示终端显示。OV5620输出图像的最大分辨率为2592 ×1944。

2 系统硬件设计

硬件电路主要包括CMOS摄像头传感器,数据采集模块,SDRAM存储模块,VGA视频输出接口模块。

在现实景物的采集与显示过程中,视频转换接口功能的实现通过以下步骤来完成:

①对采集到的RAW数据流进行转换。视频转换接口收到的是像素的RAW值,因此需要将每个像素的色彩值由RAW空间转换到 RGB空间,然后再对RGB进行数据平均,输出RGB数据,实现色彩空间的转换。②将转换后的每个像素的RGB值写入存储器中。由于视频的转换接口和VGA接口的视频数据流工作的时钟域是不同的,需要SDRAM来作为缓存,存储一帧图像的数据,以供VGA显示器显示。③从存储器中读出像素的RGB值,并将其转换成VGA模拟信号值。由于FPGA 内部没有D/A转换单元,因此不能通过 FPGA 来直接产生模拟信号,还需要另外添加专门的图像 D/A芯片(ADV7123)来完成模拟信号的产生。系统工作时,FPGA 将从SDRAM 存储器中读出的 RGB值送至图像DA芯片进行数模转换变成模拟信号值VGA接口直接输出,系统就能将图像在VGA显示器上直接显示。

3 系统软件设计

3.1 摄像头采集图像模块程序设计

摄像头的采集过程和VGA的显示恰好是个相反的过程,VGA的显示是由FPGA产生行列时序,供给D/A转换器,产生驱动VGA显示器的模拟信号。而摄像头的采集图像是摄像头自动产生行列信号,用FPGA进行采集就行。在对摄像头进行采集之前,需要用SCCB协议给摄像头进行配置,SCCB协议兼容I2C协议,前者写数据和I2C是一样的,就是读数据的时序不一样。本设计中因为只对摄像头进行配置,只用到了SCCB的写协议。

3.2 图像转换模块程序设计

摄像头数据采集模块采集到RAW数据,需要转化为RGB格式的数据,才能够驱动摄像头。10位的RAW数据经过空间转换把10位的采集数据转换为10位的RGB数据,然后数据进入第二个模块,对空间转换的10位RGB数据进行数据平均得到R[9..0],G[9..0],B[9..0],然后RGB数据经过SDRAM进行缓存。采用行缓冲+流水线的处理方式,将前一级抓取到的行数据(bayer color pattern),实时转换成标准的30位RGB数据并进行适当的下采样,以便于后继的图像处理及显示。

3.3 SDRAM程序设计

SDRAM在此系统里,充当的是图像缓存的作用,摄像头将数据采集进来,将图像存储到SDRAM中,然后VGA控制模块从SDRAM读出并显示在VGA显示器上。核心的代码如下:

Sdram_Control_4Portu8(//HOST Side

.REF_CLK (CLOCK_50),

.RESET_N (1'b1),

.CLK_100OUT (CLOCK_100),

//FIFO Write Side 1

.WR1_DATA ({tCMOS_R,tCMOS_G,tCMOS_B}),

.WR1 (tCMOS_DVAL),

.WR1_ADDR (0),

.WR1_MAX_ADDR (1280*960),

.WR1_LENGTH (9'h100),

.WR1_LOAD (wSYNC),

.WR1_CLK (CMOS_PIXCLK),

//FIFO Read Side 1

.RD1_DATA ({Image_Read_R,Image_Read_G,Image_Read_B}),

.RD1 (VGA_Read_Req),

.RD1_ADDR (0),

.RD1_MAX_ADDR (1280*960),

.RD1_LENGTH (9'h100),

.RD1_LOAD (!DLY_RST_0),

.RD1_CLK (VGA_CTRL_CLK),

//SDRAM Side

.SA (SDR0_ADDR),

.BA (SDR0_BA),

.CS_N (SDR0_CS_N),

.RAS_N (SDR0_RAS_N),

.CAS_N (SDR0_CAS_N),

.WE_N (SDR0_WE_N),

.DQ (SDR0_DQ),

.DQM (SDR0_DQM)

,.SDR_CLK (SDR_CLK)

);

assignSDR0_CLK=SDR_CLK;

wireVGA_Read_Req,VGA_VS;

wire[9:0]Image_Read_R;

wire[9:0]Image_Read_G;

wire[9:0]Image_Read_B;

assignGPIO0[27]=VGA_CTRL_CLK;

assignGPIO0[28]=VGA_VS;

4 系统测试及结果

VGA控制模块负责从SDRAM读取图像数据(RGB),然后驱动D\A转换器ADV7123在VGA显示器上显示对VGA模块进行仿真。

5 总结

本文从系统设计,到各个模块的软硬件进行了详细的设计,经反复调试仿真,最终在FPGA平台上进行实现,充分发挥了FPGA技术的并行处理技术,经测试达到了实时有效监控的要求。

参 考 文 献

[1] 潘松,黄继业,陈龙编著.ENA技术与VerilogHDL[M].清华大学出版社,2009.

[2] 潘松,黄继业.EDA技术实用教程[M].第三版.科学出版社,2008.

[3] 夏宇闻编著.Verilog数字系统设计教程(第2版)[M].北京航空航天大学出版社,2010.

[4] 刘韬,楼兴华编著.FPGA数字电子系统设计与开发实例导航[M].人民邮电出版社,2005.

[5] 闻见明编著.FPGA芯片在视频通信实时处理中的应用[J].警察技术,1994(3)10-11.

基于FPGA的简易数字频率计 篇9

物电

电工电子中心2009年5月绘制

2008.6.10 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

简易数字频率计设计

一.任务解析

通过对选择题的分析,认为该简易数字频率计应该能达到以下要求: 1. 准确测出所给的方波信号的频率(1HZ以上的信号)。2. 在显示环节上,应能实现高位清零功能。3. 另外还有一个总的清零按键。

二.方案论证

本实验中所做的频率计的原理图如上图所示。即在一个1HZ时钟信号的控制下,在每个时钟的上升沿将计数器的数据送到缓冲器中保存起来,再送数码管中显示出来。

第2页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

在本实验中,用到过几中不同的方案,主要是在1HZ时钟信号的选择和计数器清零环节上:

1. 在实验设计过程中,考滤到两种1HZ时钟信号其波形如下图所

对于上术的两种波形,可以调整各项参数来产生两种1HZ时钟信号。最后通过实验的验证发现第二种波形对于控制缓冲器获得数据和控制计数器清零更易实现。并且,用第二种波形做为时钟信号,可以在很短的高电平时间内对计数器清零,在低电平时间内让计数器计数,从面提高测量的精度。而用第一种波形则不易实现这个过程。

2.在计数器的清零过程中,也有两个方案,分别是能通过缓冲器反回一个清零信号,另一个是在时钟的控制下进行清零。最终通过实验发现,用时钟进行清零更易实现。因为如果用缓冲器反回一个清零信号,有一个清零信号归位问题,即当缓冲器反回一个低电平清零信号时,计数器实现清零,但不好控制让缓器冲的清零信号又回到高电平,否则计数器就一直处于清零状态面不能正常计数了。

三.实验步骤

通过上分析后,实验分为以下几步:

1.1HZ时钟信号的产生(产生该信号的模块如下):

module ones(clk,clkout);input clk;output clkout;parameter parameter N=24000000;n=24;

第3页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

reg [n:0]cnt;reg clkout;

always @(posedge clk)begin if(cnt==N)else end endmodule begin cnt=0;

clkout=1;clkout=0;end

end begin cnt=cnt+1;最终产生的信号的波形:

2. 计数模块。其主要公能是在每个被测信号的上升沿自动加一,并且有一个清零信号的输入端,在1HZ时钟信号的高电平时间里进行清零。模块如下:

module count_99999999(sign,clr,b0,b1,b2,b3,b4,b5,b6,b7);input sign,clr;output [3:0]b0,b1,b2,b3,b4,b5,b6,b7;reg [3:0]b0,b1,b2,b3,b4,b5,b6,b7;always @(posedge sign or posedge clr)

if(clr)begin b0=0;b1=0;b2=0;b3=0;b4=0;b5=0;b6=0;b7=0;end else begin if(b0<9)b0=b0+1;else begin b0=0;if(b1<9)

第4页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

b1=b1+1;else begin b1=0;if(b2<9)b2=b2+1;else begin

b2=0;

if(b3<9)

b3=b3+1;

else begin

b3=0;

if(b4<9)

b4=b4+1;

else begin

b4=0;

if(b5<9)

b5=b5+1;

else begin

b5=0;

if(b6<9)

b6=b6+1;

else begin

b6=0;

if(b7<9)

b7=b7+1;

else b7=0;

第5页,共11页

湖北师范学院电工电子实验教学省级示范中心电子版实验报告

end

end

end

end

end

end end

end endmodule 如果要访真该模块,要设定较长的访真时间,故在此不进行软件访真,只在实验箱上进行实验。

3. 数据缓冲模块。在每个秒级门控信号的上升沿接收计数器的数据,并送到驱动八个数码管的显示模块里。

module fre_count(clk,clr,b0,b1,b2,b3,b4,b5,b6,b7,a0,a1,a2,a3,a4,a5,a6,a7);input clk,clr;input [3:0]b0,b1,b2,b3,b4,b5,b6,b7;output [3:0]a0,a1,a2,a3,a4,a5,a6,a7;reg clro;reg [3:0]a0,a1,a2,a3,a4,a5,a6,a7;always @(posedge clk or negedge clr)//clk应该为1HZ的信号// begin if(!clr)

begin

a0<=0;a1<=0;a2<=0;a3<=0;a4<=0;a5<=0;a6<=0;a7<=0;end else

第6页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

end begin a0<=b0;a1<=b1;a2<=b2;a3<=b3;a4<=b4;a5<=b5;a6<=b6;a7<=b7;end endmodule 在此模块中用了到了<=阻塞赋值的方式。

4.编写控制高位清零的模块,利用在扫描模块中控制SEL的值来实现高位清零。即先从高位开始判断,当只有个位有数据时,SEL只能等于0,当只有个位和十位有数据时,SEL要小于1,依此类推,实现高位清零功能。module scan(clk,a1,a2,a3,a4,a5,a6,a7,sel);input clk;input [3:0]a1,a2,a3,a4,a5,a6,a7;output [2:0]sel;reg [2:0]sel;always @(posedge clk)if({a1,a2,a3,a4,a5,a6,a7}==0000000)sel=0;else if({a2,a3,a4,a5,a6,a7}==000000)if(sel<1)sel=sel+1;else sel=0;else if({a3,a4,a5,a6,a7}==00000)if(sel<2)sel=sel+1;else sel=0;else if({a4,a5,a6,a7}==0000)if(sel<3)sel=sel+1;

第7页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

else sel=0;else if({a5,a6,a7}==000)if(sel<4)sel=sel+1;else sel=0;else if({a6,a7}==00)if(sel<5)sel=sel+1;else sel=0;else if({a7}==0)if(sel<6)sel=sel+1;else sel=0;else sel=sel+1;endmodule 5.上述三个模块为本次实验的主要模块。除此,还用到了,译码,数据选择器模块。相应的模块代码省略。

6.所有模块都写完后,就是写顶层文件。

module top(clk,clr,sig_in,a,b,c,d,e,f,g,dp,sel);input clk,clr,sig_in;output [2:0]sel;output a,b,c,d,e,f,g,dp;

wire clk1,clk2,clk3;wire [2:0]sel_sign;wire [3:0] QA,QB,QC,QD,QE,QF,QG,QH;wire [3:0] b0_o,b1_o,b2_o,b3_o,b4_o,b5_o,b6_o,b7_o;wire [3:0] org_data;

第8页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

assign sel=sel_sign;assign clk3=clk;

fre_count frequence(.clk(clk2),.clr(clr),.b0(b0_o),.b1(b1_o),.b2(b2_o),.b3(b3_o),.b4(b4_o),.b5(b5_o),.b6(b6_o),.b7(b7_o),.a0(QA),.a1(QB),count_99999999 mycounter(.sign(sig_in),.clr(clk2),.b0(b0_o),.b1(b1_o),.a2(QC),.a3(QD),.a4(QE),.a5(QF),.a6(QG),.a7(QH));.b2(b2_o),.b3(b3_o),.b4(b4_o),.b5(b5_o),.b6(b6_o),.b7(b7_o));

clk_div clksource(.clk(clk3),.clko1(clk1));

ones ones_con(.clk(clk3),.clkout(clk2));scan myscan(.clk(clk1),.a1(QB),.a2(QC),.a3(QD),.a4(QE),.a5(QF),.a6(QG),.a7(QF),.sel(sel_sign));mux81 mymux81(.sel(sel_sign),.a(QA),.b(QB),.c(QC),.d(QD),.e(QE),.f(QF),.g(QG),.h(QH),.out(org_data));

第9页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

decode3_8 decode(.org(org_data),.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),.g(g),.dp(dp));

endmodule

7. 写完了全部代码后,就是器件选择,分配引脚,下载程序,最后在实验箱上进行实验。

在实验的验证过程中,用到了DDS函数信号发生器,从其TTL输出端输出各种不同频率的方波信号,接入接简易频率计的被测信号输入端,在八个数码管上显示出相应的测量结果。

四.结果分析

在上述实验过程中,我们选取了若干组不同的TTL输出进行测量,发现当被测信号的频率不小于1HZ时,简易频率计可以精确的测出被测信号的频率。但是,当被测信号小于1HZ时,显示的测量结果在0和1之间跳动,不稳定。分析简易频率计的结构可知,在如下图所示波形关系中,当被测信号的频率小于1HZ时,在秒级门控信号的一个周期内,计数器要么能计数一次,要么计数零次,因而不能准确的测出被测信号的频率。

五.经验总结

1.本实验中的频率计由于其在结构上存在缺限,因而在测量小于1HZ的信号时,会有较大的误码差,在测量频率大于1HZ信号时,也可能存1HZ误差,其原因在于如果在一个秒级门控信号的周期内,被测信号的上升沿的个数正好

第10页,共11页 湖北师范学院电工电子实验教学省级示范中心电子版实验报告

和其周数相同,则测量结果是准确的,如果上升沿的个数比周期数多一,则测量结果比实际值大一。

2.提高测量精度的另一个关键地方在所产生的秒级门控信号的精度。只有所产生的秒级门控信号的低电平时间长度为严格的一秒时,测量结果才会更精确。由于实验箱上所使用的晶振不是严格等于24MHZ,因而可用示波器测出晶振的准确频率后,再在parameter

N=24000000;语句中改变N的值。也可以在实验中逐渐调整N的值,直到测量结果最精确为止。最终我们的实验中,N的值取的是24000351。

3.对于高位清零功能的加入,正是仪器设计人性化的一个体现。如果没有这个功能,再未显示数据的数码管也一直处于工作状态,一则是对资源的乱费,二则是会减少器件的使用寿命。

基于FPGA的交通灯控制系统 篇10

介绍了一种基于多台分布式服务器结构的软件无线电测控系统,系统采用可编程门阵列(field programmable gate array,FPGA)对前端中频信号进行协处理,采用对FPGA远程动态配置,使得系统具有高度软件化的.结构,采用PCI-E总线进行数据采集和网络实时数据交换,提高数据传输效率;分析了软件化测控的特点,并对FPGA协处理采用的相关技术进行了详细讨论;最后对系统进行了构建,并从处理实时性方面分析了系统的可行性.

作 者:史学书 刘东华 王元钦 马宏 SHI Xueshu LIU Donghua WANG Yuanqin MA Hong 作者单位:史学书,马宏,SHI Xueshu,MA Hong(装备指挥技术学院光电装备系,北京,101416)

刘东华,LIU Donghua(61226部队)

王元钦,WANG Yuanqin(装备指挥技术学院科研部,北京,101416)

基于FPGA的交通灯控制系统 篇11

关键词:常规PID控制器 恒温箱

中图分类号:TP273文献标识码:A文章编号:1674-098X(2011)02(b)-0121-02

1 模糊自适应PID控制原理及结构

模糊自适应PID控制基本原理:以误差e和误差变化作为输入,运行中不断检测e和,并利用模糊规则进行模糊推理,查询模糊矩阵表调整参数,满足不同时刻的e和对PID参数自整定的要求,利用模糊规则在线修改PID参数,以使被控对象具有良好的静态、动态性能。模糊自适应PID控制系统结构如图1所示。常规PID控制器作为一种线性控制器,其离散的控制规律为:

对于系统被控过程中不同的|e|和||,PID参数、、的自整定原则如下:(1)误差|e|较大时,为加快系统的响应速度,使系统具有快速跟踪性能,应取较大和较小。同时,为了防止积分饱和。避免系统超调过大,应限制或使其为零。(2)误差|e|和||中等时,为使系统超调较小,应取较小,适当和,特别是的取值对系统响应影响较大(一般取值较小)。(3)误差|e|较小时,为使系统具有较好稳态性能,应取较大和。同时,为避免系统在平衡点附近出现振荡,应取合适的值。||较大时,取较小;||较小时,取较大。

考虑到上述原则,在该设计中,模糊控制器采用2输入,3输出的结构。以误差e和误差变化作为输入,经量化和模糊化处理后,查询模糊控制规则表,得到模糊输出量、、,再经解模糊和量化因子输出精确量,并将该输出量与传统PID相结合输出系统的控制量。输人语言变量e和以及输出语言变量、、的模糊集论域均设为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},取相应论域上的语言值为{NB,NM,NS,ZO,PS,PM,PB}。考虑到对论域的覆盖程度及灵敏度,鲁棒性和稳定性等原则,各模糊子集隶属度函数均采用三角形隶属函数。

模糊规则采用“if e is A andis B thenis C andis D andis E”的方式,控制器参数模糊推理过程采取Mam-dani直接推理法,“与”运算采用极小运算,“或”运算采用极大运算,模糊蕴含运算采用极小运算,模糊规则综合采用极大运算,去模糊化采用重心法且其计算公式为:

(2)

根据PID参数调整原则,输出量、、一轮决策将最多涉及147条推理规则。

2 恒温箱温度控制系统硬件电路设计

温度控制目前大多采用以单片机或CPU为核心的控制系统,这些以软件控制和运算的系统相比于硬件系统速度要慢、实时性差且可靠性低。FPGA作为一种新型的数字逻辑器件,具有集成度高、可重复编程、逻辑实现能力强、设计灵活等特点,使用其内部逻辑模块单元实现所需功能,各个模块并行运行,与传统的基于CPU并行计算不同,FPGA内部结构真正实现并行计算,而不是宏观上并行微观上分时运算,这使得系统运算速度快、实时性强。

该设计采用Altera公司的Cyclone系列FPGA器件EP1C12为核心控制器来测量与控制恒温箱内温度。通过键盘向FPGA输入设定温度,现场温度参数由热电偶传感器转换成电动势信号,经A/D转换和滤波后,将实时的数字测量值送入FPGA。FPGA将比较温度的设定值与测量值,经模糊自适应PID控制算法运算处理后,输出相应控制信号,确保恒温箱内温度变化范围始终保持在设定值的误差范围内。系统的液晶显示用于实时显示控制系统的当前温度值、温度变化曲线、参数配制等信息;键盘用于设定控制系统的初始定值及初始参数信息;Flash,SDRAM,C等用于实现存储空间的扩展。图2为系统整体硬件结构框图。

此外,在FPGA中还集成有Altera公司提供的NIOS II软核处理器,FPGA一方面通过内部的双口RAM与其内部的硬件逻辑控制模块进行通讯,获取控制模块的状态信息并配置其参数;另一方面监控显示模块和键盘模块。FPGA内部逻辑示意图如图3所示。模糊自适应PID控制模块是整个控制系统的核心,可实现模糊参数自整定PID控制算法。为便于实现计算机的实时控制,采用离线计算,在线查表方式。如有需要,只需重新修改控制算法模块,并重新配置FPGA,就可实现控制算法升级。

3 嵌入式软件设计

基于NIOS软核CPU的嵌入式软件设计采用C语言编写完成,该嵌入式软件设计主要实现人机交互和模糊自适应PID控制模块监控两部分功能。温度控制系统上电启动后,首先初始化系统,然后模糊自适应PID控制模块读双口RAM1获得控制器的初始参数信息,并进行控制运算,根据运算所得结果在显示屏上显示当前温度控制系统的参量及温度变化曲线等当前状态信息,同时将这些实时控制参数及状态信息写入双口RAM2保存,NIOS软核处理器再由RAM2中读取数据,获得模糊自适应PID控制模块的当前状态信息。若由键盘重新输入新的温度设定值,则当系统读取到该值时,自动查询模糊控制规则表修改双口RAM1中的配置参数值,重新代入模糊自适应PID控制模块进行运算,并将新的参数值及系统实时状态信息写入双口RAM2保存且反馈给NIOS软核;若无键盘输入,则系统状态保持不变。

4 实际运行结果及存在问题

对于具有大惯性、大滞后等特点的温度控制系统,基于FPGA的温度模糊自适应PID控制器可取得良好的控制效果且自适应能力强。但在控制器的应用过程中仍存在一些问题,如模糊规则和隶属函数的优化、系统抗干扰性能的增强等。因此,仍需进一步完善和修改该控制系统。

5 结语

该设计基于高密度的可编程逻辑器件FPGA,在传统PID控制器的基础上利用模糊控制的优点控制恒温箱的温度。结果表明,该控制系统具有良好的动、静态性能和鲁棒性能,对参数时变具有很好的适应能力,实时计算量小,调校方便,且具有良好的升级性能和灵活性。市場应用前景较好。

基于FPGA的交通灯控制系统 篇12

FPGA有6个组成部分:可编程I/O、基本可编程逻辑单元、嵌入式块RAM、步线资源、底层嵌入功能单元、内嵌专用硬核。

FPGA的结构灵活, 其逻辑单元、可编程内部连线和I/O单元都可以由用户编程, 可以实现任何逻辑功能, 满足各种设计需求。其速度快, 功耗低, 通用性强, 特别适用于复杂系统的设计。使用FPGA还可以实现动态配置、在线系统重构及硬件软化、软件硬化等功能。

我们采用的是XCS40PQ208, 该XCS40PQ208是一个自包含的1, 048, 576位, 非易失性静态RAM, 可以灵活地为的32k×32×16的64K或128K×8。用4个内置的32k×8静态存储器, 4个非易失性控制IC和4个锂电池, 这种非易失性内存包含了所有必要的控制电路及锂能源来源, 以维持超过10年的数据在断电情况下的完整性。采用了流行的XCS40PQ208 JEDEC标准72位的SIMM连接方式, 无需额外的电路。

1 在发射机的自动化系统中的应用

此主板的开发, 主要特点为:由于其逻辑编程的灵活性以及现场编程的特点, 很容易推广应用到其它不同类型的控制与调谐系统, 所有硬件相同, 只是内部逻辑不同, 硬件上通用性强。因此分别在发射机的电控逻辑系统、保护逻辑系统、自动调谐逻辑系统中得以应用, 效果很好。

2 现重点介绍它在自动调谐系统中的应用实例

(1) 频率控制系统 (见控制框图的右半部分) :该电路是通过锁存器来控制激励器, 使其工作在自动调谐装置指定的频率上;电平控制电路是采用DS1267双数字电位器芯片构成两路8位串接的数字电位器, 输入+5V基准电压, 在接地的数字电位器的中心抽头上得到1路0V~2.5V的模拟信号去控制激励器的输出电平大小。

PTS-040激励器的电路组成:高频运放电路、频率控制电路、电平控制电路、频率检测电路、面板操作/指示电路、串行通信电路、模拟量输入/输出电路。其中的频率控制电路、频率检测电路、面板操作/指示、电平控制电路、输入/输出电路均在XC5204大规模逻辑电路内部, 由逻辑设计完成。串行通信电路、模拟量输入/输出、面板操作中断等操作均由MAG103单片机的具体编程完成。激励器高频放大电路是采用MAX公司器件设计完成, 其工作带宽可达30MHz以上。

(2) 电机控制及驱动系统 (见控制框图的左半部分) :步进电机选型根据负载转动惯量的大小来选择合适的步进电机, 使其“最大静转矩”和“定位转矩”足以克服负载因转动而产生的转动惯量。

步进电机的驱动:步进电机是一种作为控制用的特种电机, 它的旋转是以固定的角度 (称为“步距角”) 一步一步运行的, 其特点是没有积累误差 (精度为100%) , 所以广泛用于各种开环控制。步进电机的运行要有一个电子装置 (步进电机驱动器) 进行驱动, 它是把控制系统发出的脉冲信号转换为步进电机的角位移。或者说:控制系统每发一个脉冲信号, 通过驱动器就使步进电机旋转一步距角。所以步进电机的转速与脉冲信号的频率成正比, 即控制步进脉冲信号的频率可以对电机精确调速;控制步进脉冲的个数, 可以对电机精确定位 (图1) 。

升降速曲线设计:步进电机启动时, 必须有升速、降速过程, 故升降速的设计至关重要。如果设计不合适, 将引起步进电机的堵转、失步、升降速过程慢等问题。升速过程由突跳频率加升速曲线组成, 理想的升速曲线为指数曲线。根据负载的情况来选择不同的突跳频率和不同的指数曲线, 一条理想的曲线要经过多次“试机”才行。实际应用中突跳频率不宜过大, 指数曲线在软件编程中比较麻烦, 一般事先算好存储在ROM内, 工作过程直接选用。

CP脉冲设计:CP脉冲的设计主要要求其要有一定的脉冲宽度 (一般不小于5uS) , 脉冲序列的均匀度以及高低电平方式 (要求为负脉冲方式) 。电机换向时, 一定要在电机降速停止后再换向。换向信号一定要在前一个方向的最后一个CP脉冲结束后, 以及下一个方向的第一个CP脉冲发出前给出。

(3) 其在自动调谐系统数字化改造中实现如下功能: (1) 能自动检测激励器送出的高频信号与换频要求频率是否相等, 用以判断更换的工作频率是否有效; (2) 可直接进行“更换频率”操作, 在3MHz~30MHz范围内可提供更换的频率数为27×1000=27, 000个。并根据更换的工作频率在频率数据库中自动查找该频率对应的8个调谐元件预置位置, 直接控制8个调谐元件的实际位置自动跟踪到所要求的预置位置上; (3) 可直接进行“更换频道”操作, 目前装置可供预置的频道数为99个; (4) 可根据选择的工作频率自动实现频道设置和调谐元件位置自动跟踪的调谐方式; (5) 直接采集前级鉴相器、末级鉴相器以及末级鉴阻器的数据自动实现高前级回路电容、高末级调谐电容、高末级调载电容的细调控制; (6) 具有计算机通信接口与远程监控系统连接, 可实现远程自动控制。

3 结语

此主板系统的开发, 在电控逻辑小盒、保护逻辑小盒、自动调谐小盒中应用效果很好, 对发射机的系统完善、设备维护、安全播出方面发挥了极其重要的作用。

摘要:在发射机的整机控制中, 原控制系统采用了较为原始的继电器或基本与或非门集成电路组成的逻辑电路, 因其电路复杂, 故障率高, 维护困难等缺点对安全播出造成较大的影响。后经自台技术人员的攻关, 采用了FPGA技术, 对整个控制系统进行了全面改造, 其外围电路简洁、免维护、故障率几乎为零等优点, 通过几年的运行, 取得了良好的效果。

关键词:FPGA技术,自动化控制系统

参考文献

[1]FPGA设计与应用.

上一篇:企业制度文化行为文化下一篇:学生宿舍管理人员工作总结