EDA的交通灯控制系统的设计Word下载.docx
- 文档编号:4768124
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:16
- 大小:26.45KB
EDA的交通灯控制系统的设计Word下载.docx
《EDA的交通灯控制系统的设计Word下载.docx》由会员分享,可在线阅读,更多相关《EDA的交通灯控制系统的设计Word下载.docx(16页珍藏版)》请在冰点文库上搜索。
输入接口、输出接口,数据器和控制器其结构如图1.1所示:
图1.1数字系统结构图
输入接口是用来将模似量转化为系统能接收的数字量的模块,同理输出接口是完成可逆变化的模块.数字系统的信号包括数据流和控制流信号,对数据流进行传送和加工处理为数据处理器,对控制流信号进行传送和加工处理为控制器.数据处理器和控制器是数字系统中最基本的两个部份.尽管各种数字系统可能具有完全不同的功能和形式,但是都可以用数据处理器和控制所构成的数字系统的本结构来描述.控制器的产生的输出控制信号影响着其它系统控制器的操作,使本系统与其它系统协调一致地工作,控制器的输入信号也有可能是其系统的输出控制信号.数据处理器作用是控制系统内各部份模块的工作,使它们按一定顺序进行操作,数字系统中就是这样通过数据处理器和控制器之间的密切配合协调工作,成为一个自动实现信息处理功能的有机整体.通常以是否有控制器作为区别数字系统和系统部件的标志,凡是包含控制器且能按顺序进行操作的系统,不论规模大小一律称为数字系统,否则只能是一个系统的部件.
1.3数字系统的设计方法
现代数字系统的设计方法早期的数字系统多采用试凑法设计,此法无固定的套路可循,主要凭借设计者的经验。
先进的现代数字系统设计是自上而下的模块化设计。
从整个系统功能出发,按一定原则将系统分成若干个子系统,再将每个子系统分成若干个功能模块,再将每个模块分成若干个较小模块——直至分成许多基本模块实现。
在自上而下划分过程中,最重要的是将系统或子系统按计算机组成思想那样划分成控制器和若干个受控制的功能模块。
受控部分通常为设计者们所熟悉的各种功能电路,无论是采用现成模块还是自行设计都有一些固定方法可依,无须花费更多精力。
主要任务是设计控制器,控制器在系统或子系统中只有一个,设计工作量不大。
从而大大简化了设计的难度,缩短了设计时间,而且修改设计也很方便,避免了牵一发而动全身。
1.3.1自底向上的设计方法(BottomUp)
这是一种传统的设计方法,其主要的设计过程是根据系统对硬件的要求,从整体上规划整个系统的功能,编写出详细技术规格书和系统控制流程图。
并根据所给的技术规格书和控制程图,对系统的功能进行细化,合理地划分功能模块,确立它们之间的相互关系:
这种划分过程不断在进行,直到划分得到的单元可以直接映射到实际的物理器件,完成上述划分后再行各功能模块设计与调试工作。
最后进行各模块电路的连接并进行系统联调,从而完成整个系统的硬件设计。
早期的数字系统设计多采用这种方法。
1.3.2自顶向下设计(TopDown)
随着微电子技术发展,VHDL硬件描述语言应用越来越广,硬件描述语言可以在各抽象层次上对电子系统进行描述,且借助于DEA设计:
工具,自动地实现从高层次到低层次的转换,使自顶向下的设计过程得以实现。
目前这种设计方法被工程界广为采用。
设计的总过程是从系统总体要求出发,从系统顶层开始,自上而下地逐步将系统设计内容进行细化,借助硬件描述语言进行编程,将系统硬件设计转化成软件编程,在此基础上再利用相应的逻辑综合工具EDA以及在线可编程ISP技术对各种可编程逻辑器件如CPLD、FPGA进行逻辑划分与适配,将所产生的菊花链文件映射到相应的可编芯片内,最后完成硬件的整体设计。
1.4现代数字系统的设计过程
在使用现场可编程逻辑器件以前,数字系统的设计过程是:
书面设计—硬件搭试—制作样机。
硬件搭试是很费时间的,往往因接线紊乱和接触不良而带来各式各样的麻烦,所用器件越多,搭试难度越大,当系统规模大到一定程度,系统复杂到一定程度,这种搭试实际上是不可行的。
由于计算机技术的发展和采用现场可编程逻辑器件,改变了数字系统设计的程式,硬件搭试被仿真所取代。
所谓仿真,就是在计算机上建立起系统的模型,然后加进合适的测试码(对组合电路)或测试序列(对时序电路),对此模型进行测试,以验证系统是否符合预期的设计,如不符合再行修改,直至满足设计要求,然后制作样机。
所以,现代数字系统设计过程是书面设计—仿真—(烧录器件)制作样机,这是一种快捷而且节约的方法。
第2章:
交通灯控制系统介绍
城市中常见的大型十字路口如图2.1所示。
图2.1十字路口示意图
一般情况下,当汽车行驶至十字交通路口时,有3种选择:
向前,向左转弯,向右转弯。
根据我国的交通规则规定,汽车是靠右行驶,向右拐弯只要走弧形的支干道即可,不需受十字交通灯的束缚。
因此,本文主要考虑前行和左转这两种情况。
十字路口交通灯负责控制各走向红绿灯的状态及转换,并且各状态之间有一定的时间过渡。
同时,东西南北每条干道上都为人行横道设置了红绿灯,提醒过路行人在安全时刻穿越道路,以保证行人的安全。
2.1交通灯控制系统的功能
交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。
2.2交通灯控制系统设计
城市路口交通信号控制系统大体上分为三种类型:
定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。
具体采用哪种类型,应根据其应用场合及特点加以确定。
其中,第一种类型以其成本低,设计简单,安装及维护方便等特点得到了广泛应用。
2.3交通灯控制系统的基本组成模块
交通灯控制器原理框图如图2.2所示,包括置数模块、计数模块、主控制器模块和译码器模块。
置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。
其中,核心部分是主控制模块。
图2.2交通灯控制器原理框图
2.4交通灯控制器状态
2.5程序流程图
第3章:
交通灯控制系统的设计
有一条主干道和一条支干道的汇合点形成的十字路口,为确保车辆安全,迅速通行,在干道和支道的入口设置了红、绿(包括直行和左拐)、黄3色信号灯。
3.1交通灯控制器功能描述及设计方法
通过两组交通灯来模拟控制东西、南北两条通道上的车辆通行,所有功能在实验操作平台上进行模拟通过,根据原理其主要功能如下:
图3.1系统结构图
3.2设计要求
1.能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯;
2.南北向为主干道,每次通行时间为30S,东西向为支干道,每次通行时间为20S;
3.能实现正常的倒计时功能,用两组数码管作为东西、南北向的倒计时显示。
其中,黄灯:
5S。
4.能实现特殊状态的功能。
按下SP键后,能实现以下特殊功能:
(1)显示倒计时的两组数码管闪烁;
(2)计数器停止计数并保持在原来的状态;
(3)东西、南北路口均显示红灯状态;
(4)特殊状态解除后能继续计数;
5.能实现全清零功能。
按下reset键后,系统实现全清零,计数器由初状态计数,对应状态的指示灯亮;
6.用VHDL语言设计上述功能的交通灯控制器,并用层次化方法设计该电路;
7.仿真、验证设计的正确性。
3.2.1控制部分的设计
libraryieee。
useieee.std_logic_1164.all。
useieee.std_logic_unsigned.all。
entityledcontrolis
port(reset,clk,urgen:
instd_logic。
state:
outstd_logic_vector(1downto0)。
sub,set1,set2:
outstd_logic)。
endledcontrol。
architectureaofledcontrolis
signalcount:
std_logic_vector(6downto0)。
signalsubtemp:
std_logic。
begin
sub<
=subtempand(notclk)。
statelabel:
process(reset,clk)
ifreset='
1'
then
count<
="
0000000"
。
state<
00"
elsifclk'
eventandclk='
ifurgen='
0'
thencount<
=count+1。
subtemp<
='
elsesubtemp<
endif。
ifcount=0thenstate<
set1<
set2<
elsifcount=25thenstate<
01"
elsifcount=30thenstate<
10"
elsifcount=45thenstate<
11"
elsifcount=50thencount<
elseset1<
endprocessstatelabel。
enda。
3.2.2显示部分的设计
entityledshowis
port(clk,urgen:
instd_logic_vector(1downto0)。
r1,g1,y1,r2,g2,y2:
outstd_logic。
led1,led2:
outstd_logic_vector(7downto0))。
endledshow。
architectureaofledshowis
signalcount1,count2:
std_logic_vector(7downto0)。
signalsetstate1,setstate2:
signaltg1,tg2,tr1,tr2,ty1,ty2:
std_logic。
led1<
11111111"
whenurgen='
andclk='
elsecount1。
led2<
elsecount2。
tg1<
whenstate="
andurgen='
else'
ty1<
tr1<
whenstate
(1)='
orurgen='
tg2<
ty2<
tr2<
setstate1<
="
00100101"
else
"
00000101"
00100000"
setstate2<
00010101"
00110000"
label2:
process(sub)
ifsub'
eventandsub='
ifset2='
count2<
=setstate2。
elsifcount2(3downto0)="
0000"
thencount2<
=count2-7。
elsecount2<
=count2-1。
endif。
g2<
=tg2。
r2<
=tr2。
y2<
=ty2。
endprocesslabel2。
label1:
ifset1='
count1<
=setstate1。
elsifcount1(3downto0)="
thencount1<
=count1-7。
elsecount1<
=count1-1。
g1<
=tg1。
r1<
=tr1。
y1<
=ty1。
endprocesslabel1。
3.2.3分频器部分的设计
usework.p_alarm.all。
entitydivideris
port(clk_in:
reset:
clk:
enddivider。
architectureartofdivideris
constantdivide_period:
t_short:
=1000。
process(clk_in,reset)is
variablecnt:
t_short。
begin
if(reset='
)then
cnt:
=0。
clk<
elsifrising_edge(clk_in)then
if(cnt<
=(divide_period/2))then
clk<
cnt:
=cnt+1。
elsif(cnt<
(divide_period-1))then
else
endif。
endif。
endprocess。
endart。
p_alarm程序包
packagep_alarmis
subtypet_digitalisintegerrange0to9。
subtypet_shortisintegerrange0to65535。
typet_clock_timeisarray(5downto0)oft_digital。
typet_displayisarray(5downto0)oft_digital。
endpackagep_alarm。
3.3交通灯控制系统的仿真
3.3.1对交通灯控制部分进行仿真
在QuartusII软件中导入交通灯控制程序,对此程序编译无错误后,建立Vectorwaveformfile文件保存时仿真文件名要与设计文件名一致。
在其中设计始终开始时间为0,结束时间为5us,周期为50ns。
仿真结果如下:
当reset='
state<
count<
在上升沿到来时执行当count=0则state<
count=25state<
count=30thenstate<
count=45thenstate<
count=50thencount<
,否则set1<
仿真的结果正确。
3.3.2对交通灯显示部分模块进行仿真
在QuartusII软件中导入交通灯显示程序,对此程序编译无错误后,建立Vectorwaveformfile文件保存时仿真文件名要与设计文件名一致。
将控制仿真的结果贴到显示仿真中,两次在其中设计的开始时间为0,结束时间为5us,周期为50ns。
仿真结果与程序所要的结果一样。
当state=”00”时g1<
=1;
当state
(1)<
=’0’时r2<
=’1’.
当urgen=‘1’时r1<
=’1’,r2<
=’1’。
仿真结果与程序设计符合。
3.3.3对交通灯系统进行仿真
在QuartusII软件中导入交通灯系统程序,对此程序编译无错误后,建立Vectorwaveformfile文件保存时仿真文件名要与设计文件名一致。
在其中设计开始时间为0,结束时间为5us,周期为50ns。
系统仿真的结果符合设计要求。
与前面仿真的结果也一致。
3.4程序下载
3.4.1引脚配置
在实验箱上选择管脚与程序中的输入输出信号对应,其管脚配置如下:
输入
芯片脚号
输出
Clk
Pin_93
led2[7]
Pin_121
led1[4]
Pin_126
reset
pin_41
led2[6]
Pin_120
led1[3]
Pin_125
urgen
Pin_42
led2[5]
Pin_114
led1[2]
Pin_124
led2[4]
Pin_113
led1[1]
Pin_123
led2[3]
Pin_112
led1[0]
Pin_122
led2[2]
Pin_111
g1
Pin_142
led2[1]
Pin_110
g2
Pin_132
led2[0]
Pin_109
r1
Pin_140
led1[7]
Pin_129
r2
Pin_139
led1[6]
Pin_128
y1
Pin_141
led1[5]
Pin_127
y2
Pin_133
3.4.2编程下载
适配后生成的下载或配置文件通过编程器,对CPLD的下载称为编程(Program)。
点击QuartusII软件中的Program就实行了本次实验的下载。
最后对载入了设计的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 交通灯 控制系统 设计