基于sopc交通灯的eda课程设计.docx
《基于sopc交通灯的eda课程设计.docx》由会员分享,可在线阅读,更多相关《基于sopc交通灯的eda课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
基于sopc交通灯的eda课程设计
信息工程学院
EDA课程设计报告书
题目:
十字路口交通灯的设计
专业:
电子信息科学与技术
班级:
学号:
学生姓名:
指导教师:
2012年5月12日
信息工程学院课程设计任务书
学生姓名
学号
成绩
设计题目
十字路口交通灯的设计
设
计
内
容
1.总体设计框图
2.系统功能说明
3.工作原理介绍
4.引脚说明
5.软件设计流程
设
计
要
求
1.东西方向红灯亮时,南北方向绿灯亮
2.东西方向红黄亮时,南北方向绿黄亮
3.东西方向红绿亮时,南北方向红灯亮
4.东西方向和南北方向的红灯亮的时间均为15s
5.东西方向和南北方向的黄灯亮5s,且在最后3s时,两个方向的黄灯每隔1s亮灭闪烁
6.当紧急情况到来时,东西和南北方向的红灯全亮,数码管停止计时,紧急情况过后,系统恢复正常
7.点阵上循环显示“交通灯”三个字,且每个字的显示时间为0.5s
参
考
资
料
2012年5月12日
学生姓名:
杨波学号:
030940910专业(班级):
电子信息科学与技术
课程设计题目:
十字路口交通灯的设计
成绩:
指导教师:
袁海林
2012年5月12日
信息工程系课程设计成绩评定表
摘要
随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者的协调,已成为交通管理部门需要解决的重要问题之一,城市的交通控制系统是用于城市交通数据监测、交通信号控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统的重要组成部分。
同时,生活水平的提高,汽车的普及化,给交通带来了更大的挑战,道路的负载加重,带来的是交通事故越来越多。
所以,如何采用合适的方法,最大限度的利用好交通灯的控制,缓解城市道路交通堵塞问题,降低交通事故发生率,成为人们共同关注的话题。
本设计采用FPGA技术,完成了一个简单实用的十字路口交通灯的控制系统。
关键字:
控制管理缓解
1主要技术指标和方案阐述
1.1主要技术指标
1.东西方向红灯亮时,南北方向绿灯亮
2.东西方向红黄亮时,南北方向绿黄亮
3.东西方向红绿亮时,南北方向红灯亮
4.东西方向和南北方向的红灯亮的时间均为15s
5.东西方向和南北方向的黄灯亮5s,且在最后3s时,两个方向的黄灯每隔1s亮灭闪烁
6.当紧急情况到来时,东西和南北方向的红灯全亮,数码管停止计时,紧急情况过后,系统恢复正常
7.点阵上循环显示“交通灯”三个字,且每个字的显示时间为0.5s
1.2方案阐述
系统采用现场可编程逻辑器件作为主控制器,外加按键模块、数码管显示模块、译码器模块、点阵显示模块和蜂鸣模块构成。
计时数据在数码管上显示出来,点阵上循环显示“交通灯”三个字。
蜂鸣器作为紧急情况使用。
系统的基本框图如下:
图1-1系统原理框图
1.3工作原理
系统开始时,南北方向和东西方向正常工作,两个方向的红、黄、绿三灯交替亮灭,当紧急情况到来,即按键S1按下时,两个方向的数码管停止计时,而且两个方向的红灯全部点亮,蜂鸣器响起,表明此时南北和东西方向行人和普通车辆严禁通行。
当紧急情况过后,系统恢复正常,按照紧急情况到来之前继续工作。
两个方向的时间显示用两位数码管显示。
2详细电路设计
2.1主控制器的设计
系统采用altera公司的cyconeIII系列芯片,封装为FBGA贴片式封装,速度等级3,引脚个数780个。
由于引脚个数较其他芯片多,因此,外部硬件资源比较多,而且性能很好,稳定,易于控制。
2.2紧急情况电路设计
本设计的紧急情况用按键来模拟,当按键按下时,紧急情况到来,按键释放后,紧急情况消失。
按键与主控制器连接图如下图所示:
图2-1按键与主控器连接图
按键只有逻辑电平“0”和“1”两种状态,当按下时,为逻辑电平0,当未按下时,为逻辑电平1。
本设计中只用到了其中的一个按键S1,当S1按下时,紧急情况到来,当S1未按下时,没有紧急情况发生。
2.3译码电路
译码电路为3-8译码器,它经常用在数码管的动态扫描中,输出端接数码管的8个位选,每次可以选中一个数码管,而输入端为000-111的8种组合,每一种组合对应一个输出,Y0-Y7对应输入的8种输出,即当输入为000时,Y0选通,依次类推。
由于8位一体的数码管不能够在同一时间全部显示,因此,要通过译码电路对8位数码管进行译码,一次只让一个数码管亮,通过人眼的视觉暂态效应,当扫描时间在人眼视觉效应之内时,看起来就像是几个数码管同时被点亮。
这样既能够节约端口资源,又能达到很好的效果。
译码器与主控制器的连接图如下图所示:
图2-23-8译码器与控制器的接口图
74LS138为一个3-8线译码器,低电平输出,其工作原理见下表格:
表2-174LS138译码表
输入
输出
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
L
L
L
L
H
H
H
H
H
H
H
L
L
H
H
L
H
H
H
H
H
H
L
H
L
H
H
L
H
H
H
H
H
L
H
H
H
H
H
L
H
H
H
H
H
L
L
H
H
H
H
L
H
H
H
H
L
H
H
H
H
H
H
L
H
H
H
H
L
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
L
从表中可以看出:
每输入一种组合,输出端只有一端响应,这样可以通过输入端的组合,选中想要选中的数码管,让其工作。
而74LS138的使能端已经接了有效电平,设计中不用再管使能端的电平。
2.4蜂鸣器模块
当输入信号的电平为高电平1时,蜂鸣器响起,当输入电平为低电平0时,蜂鸣器不响。
因此,当紧急情况到来时,让蜂鸣器的输入端的电平为高电平,那么蜂鸣器就会响起;紧急情况过后,让蜂鸣器的输入端电平为低电平时,蜂鸣器就不响。
2.5东西方向模块
东西方向包含红黄绿灯控制模块和计时模块。
2.5.1红黄绿灯控制模块
由于东西方向计时与灯的控制相同,设计中在此方向只用了三个灯,即红、黄、绿灯。
用到的是实验系统中第一、二、三个灯,即LED1、LED2、LED3,分别表示红、黄、绿三种颜色的灯。
LED灯与控制器的连接图如下图所示:
图2-3LED与控制器的连接图
2.5.2计时模块
设计中采用8段数码管显示,七段数码管是电子开发过程中常用的输出显示设备。
可以显示数字0-9,东西方向用的是第一、二个数码管,计时时间为红灯15s,黄灯5s,绿灯15s。
在实验系统中使用的是两个四位一体、共阴极型七段数码管。
其单个静态数码管如下图4-1所示。
图4-1静态七段数码管
由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。
反之则不亮。
四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。
工作原理都相同,八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,共8根段选引脚,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭,共8根位选引脚,总共16根引脚。
共阴极数码管显示0-9字符数据如下表:
表2-2数码管字符显示表
输入段选
显示字符
a
b
c
d
e
f
g
dp
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
2
1
1
1
1
0
0
1
0
3
0
1
1
0
0
1
1
0
4
1
0
1
1
0
1
1
0
5
1
0
1
1
1
1
1
0
6
1
1
1
0
0
0
0
0
7
1
1
1
1
1
1
1
0
8
1
1
1
1
0
1
1
0
9
从表可以看出,当选中第1、2个数码管时,只要按照表中的输入组合送入段选,那么数码管就会显示相应的数字,从而达到结果。
2.6南北方向模块
南北方向包含红黄绿灯控制模块和计时模块。
2.6.1红黄绿灯控制模块
由于南、北方向计时以及灯的控制都相同,设计中在此方向只用了三个灯,即红、黄、绿灯和两个数码管。
用到的是实验系统中第一、二、三个灯,即LED10、LED11、LED12,分别表示红、黄、绿三种颜色的灯。
LED灯与控制器的连接图如图2-3所示。
2.6.2计时模块
计时模块与东西方向相同,只是南北方向的计时用到的是实验系统中的第7、8个数码管,工作原理与东西方向的完全相同。
当选中第7、8个数码管时,送入表2-2中的段选,可以显示相应的数字。
2.7点阵模块
本设计主要是完成汉字在LED上的显示,16*16扫描LED点阵的工作原理与8位扫描数码管类似,也是用到了人眼的视觉暂态效应,只是显示的方式与结果不一样。
16*16点阵由256个LED通过排列组合而形成16行*16列的一个矩阵式的LED阵列,俗称16*16点阵。
单个的LED的电路如下图13-1所示:
图13-1单个LED电路图
由上图可知,对于单个LED的电路图当Rn输入一个高电平,同时Cn输入一个低电平时,电路形成一个回路,LED发光。
也就是LED点阵对应的这个点被点亮。
16*16点阵也就是由16行和16列的LED组成,其中每一行的所有16个LED的Rn端并联在一起,每一列的所有16个LED的Cn端并联在一起。
通过给Rn输入一个高电平,也就相当于给这一列所有LED输入了一个高电平,这时只要某个LED的Cn端输入一个低电平时,对应的LED就会被点亮。
具体的电路如下图13-2所示:
图13-216*16点阵电路原理图
因此,在点阵上显示一个字,就是要让这个字在点阵上所覆盖区域的LED灯点亮,而其他区域的LED灯被熄灭,例如,在点阵上显示中文“汉”字的显示图如下图13-3所示:
图13-3字符在点阵上的显示
在上图中,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。
根据前面我们所介绍的点阵显示的原理。
当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的Rn置为高电平,则在第一列中需要被点亮的点就会被点亮。
依此类推,显示第二列、第三列……第N列中需要被点亮的点。
然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示一个完整的不闪烁的汉字。
同时也可以按照这个原理来显示其它的汉字下图11-4是一个汉字显示所需要的时序图:
图13-4显示时序图
在上图中,在系统时钟的作用下,首先选取其中的一列,将数据输入让这列的LED显示其数据(当为高电平时LED发光,否则不发光)。
然后选取下一列来显示下一列的数据。
当完成一个16*16点阵的数据输入时,即列选择计数到最后一列后,再从第一列开始输入相同的数据。
这样只要第一次显示第一列的数据和第二次显示第一列的数据的时间足够短,那么人的眼睛就会看到第一列的数据总是显示的,而没有停顿现象。
同样的道理其它列也是这样,直到显示下一个汉字。
在实际