




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号成绩评语现代数字系统设计课程论文题目基于FPGA的(带有紧急情况处理的交通灯控制器的设计作者班级院别信息与通信工程专业电子信息工程完成时间 2011年5月12日目录1 概述 (21.1 交通灯控制器的简介 (21.2论文主要完成的工作 (22 系统硬件设计 (22.1系统设计方案 (22.2 主控模块 (32.3 显示模块 (43 系统软件设计 (53.1 软件整体设计 (53.2 控制模块 (63.3 显示模块 (84 系统测试与总结 (94.1 系统测试结果 (94.2本次设计的心得体会 (9参考文献 (10附录 (111. 控制模块源程序 (112. 显示模块源程序 (131 概述1
2、.1 交通灯控制器的简介如今是个现代化的社会,交通灯在日常生活中起着至关重要的作用。交通灯是城市交通监管系统的做要组成部分,为管理交通工具和行人的动向,保障道路安全通畅的一类固定不动的必不可少的工具。在今天,交通灯控制器安装在各个路口上,它成为疏通交通最常见最有效的手段。基于FPGA的交通灯设计方法具有设计的灵活性,易于修改,设计周期短等纵多优点。随着设计语言、电子设计自动化和FPGA期间的不断发展,基于FPGA 期间的不断完善和发展。在不远的将来。由FPGA设计的产品将越来越普遍。而此次交通灯控制器的设计采用基于Verilog HDL语言和FPGA的方法来实现所要求的功能。1.2论文主要完成
3、的工作设计一个交通灯控制器,模拟现实生活中的交通灯,并能对紧急情况作出处理。对系统进行模块划分、定义各模块的具体功能。再用Verilog HDL语言编写程序实现各个模块应有的功能。创建顶层文件,搭建电路,下载到FPGA芯片中。调试并观察结果。详细介绍本次设计过程中所涉及的硬件、软件原理及各个模块的设计方式。深刻体会设计过程中所思,所想,所学。撰写心得体会。2 系统硬件设计2.1系统设计方案利用状态机来实现对交通灯的控制,对十字路口的红、绿、黄和左拐灯进行控制,并通过数码管进行显示倒计时。系统方案图如下图(1所示:图(1交通灯控制2.顶层原理框图如图(2所示:图(2顶层原理系统图2.2 主控模块
4、FPGA ,即现场可编程门阵列,它是在GAL 、PAL 、CPLD 灯可编程期间的基础上发展的产物。它是作为专门继承领域中的一种半定制电路而出现的,既解决了顶置电路的不足,又克服了原有可编程逻辑门电路数有限的缺点。FPGA 采用了逻辑单元阵列LCA 这样一个新概念,内部包括可配置模块CLB 、输出输入模块IOB R1Y G1R2LG2L2A 方向B 方向 红绿灯显示控制模块 倒计时译码器 译码显示和内部连线三个部分。FPGA的基本特点有:1.采用FPGA设计ASIC电路,用户不需要投片生产就可以得到合适的芯片。2.FPGA可做其它全定制或半定制ASIC电路的中试样片。3.FPGA内部有I/O引
5、脚。4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5.FPGA采用高速CHMOS工艺,功耗低,可与CMOS、TTL 兼容。可以说,FPGA芯片是小批量系统提高集成度、可靠性的最佳选择。ACEX 系列是当今Altera CPLD 中应用前景最好的器件系列之一1,2,该系列的FPGA 由逻辑阵列块LAB(Logic array block、嵌入式阵列块EAB (embedded array block、快速互联以及IO 单元构成,每个逻辑阵列块包含8 个逻辑单元LE(logic element和一个局部互联。每个逻辑单元则由一个4 输入查找表(LUT、一个可编程触发器
6、、快速进位链、级连链组成,多个LAB 和多个EAB 则可通过快速通道互相连接3。EAB 是ACEX 系列器件在结构设计上的一个重要部件,他是输入端口和输出端口都带有触发器的一种灵活的RAM 块,其主要功能是实现一些规模不太大的 FIFO、ROM、RAM 和双端口RAM 等。2.3 显示模块发光二极管,它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P 区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中
7、电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。由镓(Ga与砷(AS、磷(P的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示;按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳
8、极(COM的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管可以采用动态方式也可以采用静态方式驱动。3 系统软件设计3.1 软件整体设计顶层文件图下图(3所示: 图(3交通灯顶层文件图3.2 控制模块1.状态机:用两个进程分别控制两个方向的交通灯。引入有限状态机控制
9、交通灯的状态转化,即绿灯-黄灯-左拐灯-红灯。复位时红灯亮。2.倒计时:用两个减法计数器实现倒计时,当某个剩余时间减到0则切换状态。各个状态交通灯保持的时间分配:A向红、黄、绿、左拐灯分别为50S,5S,40S,15S, A向红、黄、绿、左拐灯分别为65S,5S,30S,15S。3.紧急情况:当有救护车或者其它一些情况时,救护车或特定车辆需优先通过十字路口,此时交通等的状态为:A,B方向都为红灯亮,并且剩余时间为20s.交通灯状态机及倒计时模块如下图(4所示:CLK 同步时钟1HZ 用于准确及时EN 使能信号EMERGE 紧急信号有车辆需优先通过十字路口LAMPA 03分别控制A方向的左拐、绿
10、、黄和红灯LAMPB 03分别控制B方向的左拐、绿、黄和红灯ACOUNT 用于A方向的时间显示,驱动两个数码管BCOUNT 用于B方向的时间显示 图(4交通灯控制模块图图(5交通灯控制模块PFD 图开始是否使能?设定定时时间和 方式有无紧急情况?A,B 方向都红灯亮起计时时间到30SA 方向绿灯亮40S ,接着黄灯亮5S ,再接着左拐灯亮15,然后黄灯亮5S ,同时B 方向一直是红灯亮65SB 方向绿灯亮30S ,接着黄灯亮5S ,再接着左拐灯亮15,然后黄灯亮5S ,同时B 方向一直是红灯亮55S结束回到初态,A ,B 方向都红灯亮,都显示为00有是否无是否3.3 显示模块7位数码管采用动态
11、扫描显示,经位选信号译码后选择一位数码管,段暄信号为A、B、C、D、E、F、G。位选扫描模块图如下图(6所示:CLK 时钟信号 1KHz 用于控制后面的译码显示模块使用动态扫描方式显示SEL 选择信号 图(6位选扫描模块图段选扫描模块图如下图(7所示:ACOUNT 用于A方向的时间显示BCOUNT 用于B方向的时间显示SEL 位选信号OUT 输出信号用来控制数码管所显示的字符 图(7段选扫描模块图显示译码模块图如下图(8所示:OUT 控制数码管所显示的字符A,B,C,D,E,F,G 驱动八段数码管显示 图(8显示译码模块图4 系统测试与总结4.1 系统测试结果由于交通灯这个设计仿真的结果不是很
12、一目了然,再就是本人对仿真软件的了解不够,不能消除毛刺,影响观瞻。所以我就没有吧实验仿真图截下来,我在设计过程中,也通过仿真验证了实验结果的正确性。为了得到确定的结果,我把该顶层文件所组成的原理图文件下载到FPGA芯片和正确搭建电路后,就可以观察到交通等预期的结果了。复位时红灯全亮,复位后相应灯亮的次序和相应的剩余时间都十分准确。刚启动时,A方向绿灯亮40S,接着黄灯亮5S,再接着左拐灯亮15,然后黄灯亮5S,同时B方向一直是红灯亮65S。再是,B方向绿灯亮30S,接着黄灯亮5S,再接着左拐灯亮15,然后黄灯亮5S,同时B方向一直是红灯亮55S。之后就一直重复以上行为。完全模拟了现实生活中的十
13、字路口的交通灯。扩展的功能情况为:不论何时,只要有紧急情况出现时,交通灯A,B方向都是红灯亮起,并且倒计时20S。使其能正常通过十字路口。20S过后交通灯回到正常状态。4.2本次设计的心得体会通过一个学期EDA的学习,我学到了很多东西。一直以来,我对各种变成都有浓厚的兴趣。而此次EDA的课程不仅要求学习者有一定的编程能力,还需要有一定的硬件实验的动手能力。EDA课程吸引我最大的地方在于,它不仅可以仿真,而且还可以下载到FPGA芯片中看到实实在在的效果。当看到自己的学习成果的那一刻的满足感最能激励我的学习热情。跟着老师认真学习了一学期的EDA课程,我真的受益匪浅。老师幽默的,认真负责的实践性强的
14、教学工作,不仅使我编程能力有了一定的提高,实践动手能力有了很大的提升。我学会了怎样有效地调试电路,准确分析问题所在,得到正确的解决方法。在此次设计过程中,我认真编写了所有模块的程序,经调试无误后,创建顶层原理图文件。再下载到FPGA中并正确搭建电路。本来我所设计的交通灯控制器是没有紧急情况处理功能的,但我觉得一个成熟的交通灯控制器应该要有此项功能。因此为了更好的达到设计目的。我修改了控制模块的程序,添加了此项功能。在文档的编写过程中,我学会了独立摸索,不断进步,精益求精。我认真思考,怎样才能把文档写得更加规范,更加符合设计要求。我不断地添加新内容,如绘制顶层原理图,最主要模块的即控制模块的程序
15、流程图,使自己的设计思路更加容易被理解。当然在这门课程的学习和设计过程中,我也发现了自己的一些不足。例如,对仿真软件的学习不够,我虽然做了仿真,但是效果不理想,有很多毛刺,还有一段时间的延时。我会在将来的学习过程中加以改正。EDA的设计是很灵活的,如果你要想增加一些功能或者是修改须实现的功能,只需要修改相关的源程序或原理图即可。随着设计语言、电子设计自动化和FPGA期间的不断发展,基于FPGA期间的不断完善和发展。我相信,在不远的将来。由FPGA设计的产品将越来越普遍。本课程虽然结束了,但是这种使用的技能将仍然存在我的学习,工作生活中。我相信,这是一种很实用的技能。我以后还会不断强化这种技能。
16、希望可以基于FPGA设计出更多更实用的东西。参考文献1王金明数字系统设计与Verilog HDl(第四版电子工业出版社 2011年1月2湖南理工学院实验室专业实验辅导教材 2010年10月附录1. 控制模块源程序/* 信号定义CLK 同步时钟EN 使能信号LAMPA 03分别控制A方向的左拐、绿、黄和红灯LAMPB 03分别控制B方向的左拐、绿、黄和红灯ACOUNT 用于A方向的时间显示,驱动两个数码管BCOUNT 用于B方向的时间显示 */module traffic( CLK, EN, LAMPA,EMERGE, LAMPB, ACOUNT, BCOUNT ; output7:0 ACOU
17、NT, BCOUNT;output3:0 LAMPA, LAMPB;input CLK, EN,EMERGE;/EMERGE信号模拟紧急情况,如有救护车要通过十字路口reg3:0 LAMPA, LAMPB;reg7:0 numa, numb; / 剩余时间reg tempa, tempb; / 切换状态reg2:0 counta, countb; / 状态量reg7:0 ared, ayellow, agreen, aleft, / 保持时间bred, byellow, bgreen, bleft;assign ACOUNT = numa;assign BCOUNT = numb;/* 设置灯
18、的计数初值 */always ( EN beginif( !EN beginared = 8h55; ayellow = 8h5;agreen = 8h40; aleft = 8h15;bred = 8h65; byellow = 8h5;bgreen = 8h30; bleft = 8h15;endend/* 控制A方向灯*/ always ( posedge CLK beginif( EN / 正常情况if(EMERGE/紧急情况counta =5;else /无紧急情况的正常运行状态beginif( !tempa / 切换状态begintempa = 1;case( counta / 控
19、制亮灯的顺序0: begin numa=agreen; LAMPA=2; counta=1; end1: begin numa=ayellow; LAMPA=4; counta=2; end2: begin numa=aleft; LAMPA=1; counta=3; end3: begin numa=ayellow; LAMPA=4; counta=4; end4: begin numa=ared; LAMPA=8; counta=0; end5: begin LAMPA = 8;numa=8h20;counta=0; end / 紧急情况时,A,B向都红灯亮,并且持续时间都为20s,时间到
20、转为正常情况default: LAMPA 1 if( numa3:0 = 0 beginnuma3:0 = 4b1001;numa7:4 = numa7:4 - 1;endelse numa3:0 = numa3:0 - 1;if( numa = 2 tempa = 0;endendelse / 返回初态beginLAMPA = 4b1000; counta = 0; tempa = 0;endend/* 控制B方向的灯 */ always ( posedge CLK beginif( EN if(EMERGE/紧急情况countb=5;else /无紧急情况的正常运行状态beginif( !
21、tempb begintempb = 1;case( countb / 控制亮灯的顺序0: begin numb=bred; LAMPB=8; countb=1; end1: begin numb=bgreen; LAMPB=2; countb=2; end2: begin numb=byellow; LAMPB=4; countb=3; end3: begin numb=bleft; LAMPB=1; countb=4; end4: begin numb=byellow; LAMPB=4; countb=0; end5: begin LAMPB = 8;numb=8h20;countb=0;
22、 end /紧急情况时, A,B方向都红灯亮,并且持续时间都为20s,时间到转为正常情况default: LAMPA 1 if( numb3:0 = 0 beginnumb3:0 = 4b1001;numb7:4 = numb7:4 - 1;endelse numb3:0 = numb3:0 - 1;if( numb = 2 tempb = 0;endendelsebeginLAMPB = 4b1000; countb = 0; tempb = 0;endendendmodule2. 显示模块源程序(1位选扫描模块源程序:/*四进制计数器*/module count4(clk, out;input clk;output1:0 out;reg1:0 out;always (posedge clk beginif(out = 3 out = 0;elseout = out + 1;endY
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力:核心文件解读
- 考虑摩擦的平衡问题-习题讲解
- 2025年中西医结合临床疗效观察答案及解析
- 2025年体检科常见疾病筛查与健康指导考试卷答案及解析
- 2025年眼科常见眼病诊断与处理技能测评答案及解析
- 2025年全科护理实践技能模拟测试卷答案及解析
- 2025年社区医学社区医学服务模式探讨与健康促进知识检测试卷答案及解析
- 国资央企新质生产力发展动态
- 2025年妇产科产前护理护理干预常见操作考核模拟试卷答案及解析
- 2025年皮肤科常见病例诊断与护理模拟试题答案及解析
- (课件)肝性脑病
- 肿瘤的介入治疗课件最新版
- 基坑土石方开挖安全专项施工方案
- 中小学心理健康教育指导纲要考试试题及答案
- 社会统计学-全套课件
- 物流公司道路运输许可证申请资料范文
- 分公司总经理管理手册
- 六年级上册英语试题Unit1 I go to school at 8:00. 阶段训练一-人教精通版-(无答案 )
- (完整版)湘教版地理必修一知识点总结
- [中天]香港置地北郡商业施工策划(共172页)
- 销售人员技能或能力分级定义表一
评论
0/150
提交评论