数电电子课设交通灯信号灯课程设计
- 格式:doc
- 大小:652.52 KB
- 文档页数:22
设计课题:交通信号灯控制器 学 院:电气与信息工程学院 专 业:电气工程及其自动化 班 级: 学 号: 姓 名:
目录 一、设计任务及技术要求………………………………………2 1.设计任务…………………………………………………2 2.设计要求…………………………………………………3 二、系统分析与总体方案………………………………………3 1.系统分析…………………………………………………3 2.使用FPGA和VHDL的优点………………………………5 1
3.设计的总体方案…………………………………………7 三、电路与模块…………………………………………………9 1.交通灯的主程序模块……………………………………10 2.频率转换模块……………………………………………10 四、程序…………………………………………………………11 1.交通灯的主程序模块的VHDL语言程序 ………………12 2.频率转换模块的VHDL语言程序 ………………………16 五、心得体会……………………………………………………19 六、参考文献……………………………………………………20 七、教师评语……………………………………………………21
一、设计任务及技术要求 设计一个十字路口两道路的交通灯控制器,两道路交替通行。由主干道A和支干道B的汇合点形成十字交叉路口,在交叉路口的-每个入口处设置有红,黄,绿三色信号灯。 2
1. 设计任务: ① 用红,绿,黄三色发光二极管作信号灯,主干道A为南北向,设红,黄,绿三色灯为AR,AY,AG,支干道B为东西向,三色灯为BR,BY,BG。 ② 主干道车辆较多,所以亮绿灯的时间为50s,支干道亮绿灯的时间为30s,当主干道允许通行亮绿灯的时候支干道亮红灯,相反,支干道允许通行的时候主干道亮红灯。每次由绿灯转变为红灯的时候,其间要亮5s的黄灯作为过渡,以便行驶中的车辆有时间停到禁止线以内。 ③ 交通灯正常运行时,用四位数码管M1,M2,M3,M4显示主干道和支干道的倒计时时间,M1M2显示主干道在当前状态的剩余时间;M3M4显示支干道在当前状态的剩余时间。 ④ 能实现系统清0,清0后计数器由初始状态开始计数,指示灯指示主干道亮绿灯。 ⑤ 具有一定的扩展功能: 它能实现特殊状态的功能显示,用开关S作为特殊信号传感器,S为1时进入特殊状态并实现下列特殊状态功能: A显示器M1M2M3M4闪烁,即全在0和当前计时时间中交替显示。 B计数器停止计数并保持原来的时间数据。 C东西,南北方向的三色灯全显示红色状态。 D特殊状态解除后能继续返回工作状态。
3
2. 设计要求: ① 分析任务,拟定多种方案,根据当时的制作条件,选择一种方案绘制系统框图和设计流程。 ② 设计部分单元电路或编写VHDL描述程序。计算元件参数,确定元器件型号和数量,提出元器件清单。 ③ 安装调试硬件电路,或制作CPLD/FPGA为基础的专用集成电路芯片ASIC。 ④ 对制作的电路进行功能测试,分析各项计数指标,或对设计的电路进行功能仿真,分析仿真波形。 ⑤ 总结设计资料,打印包括原理图仿真波形的设计报告,校验并演示电路装置。
二、系统分析与总体方案
1.系统分析 通过分析可以知道,所要求设计的十字路口交通灯控制电路要能够使南北、东西各三个灯(绿,黄,红),能够按顺序依次亮灭。红灯亮表示禁止通行,绿灯亮表示可以通行,在绿灯变红灯时先要求黄灯亮几秒钟,以便让停车线以外的车辆停止运行。因为主干道上的车辆多,所以主干道放行的时间要长。因此可以得到路口交通灯系统示意图如图1所示。 4
干道主红黄绿
支道红黄绿干
图1路口交通灯系统示意图 主干道车辆较多,所以亮绿灯的时间为50s,支干道亮绿灯的时间为30s,当主干道允许通行亮绿灯的时候支干道亮红灯,相反,支干道允许通行的时候主干道亮红灯。每次由绿灯转变为红灯的时候,其间要亮5s的黄灯作为过渡,以便行驶中的车辆有时间停到禁止线以内。还要求三种灯的点亮时间能够以倒计时的形式显示出来。可以用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。分析可得状态顺序与灯亮对应表以及交通灯控制状态图。
态序(S1 S0) 主干道(A) 支干道(B) 亮灯时间 1 (0 0) 黄灯亮 红灯亮 5s
绿灯 黄灯 红灯 5
2 (0 1) 红灯亮 绿灯亮 30s 3 (1 0) 红灯亮 黄灯亮 5s 4 (1 1) 绿灯亮 红灯亮 50s 表1状态顺序与灯亮对应表
图2交通灯控制状态图 2.使用FPGA和VHDL的优点 交通灯控制器的设计是数字电路教学中的经典问题,传统的设计方法是基于中、小规模集成电路进行的,采用的电路原件多、接线复杂、故障率高、可靠性低,修改电路的功能就要修改硬件电路,在教学上费时、费力还不容易调试,成功率极低。随着电子设计自动化
00状态 AY,BR
01状态 AR,BG
10状态 AR,BY
11状态 AG,BR
5S未到,保持原来状态 5S到,转下一状态
30S未到,保持原来状态 30S到,转下一状态
5S未到,保持原来状态 5S到,转下一状态
50S未到,保持原来状态 50S到,转下一状态 6
(EDA)技术的发展,在线可编程逻辑器件的出现,使实验室中制作专用集成电路成为可能。我们用FPGA作为设计载体,以硬件描述语言(VHDL)作为系统设计的主要表达手段,以计算机、大规模可编程器件的开发以及开发实验系统为设计工具,使得我们在实验室就可以制作专用集成电路。 使用基于FPGA的方法具有周期短、使用灵活、易于修改的优点。而且,随着FPGA器件,设计语言和电子设计自动化的工具发展和改进,越来越多的电子系统采用FPGA来设计。未来使用FPGA器件设计的产品将出现在各个领域。因此此次的交通灯控制器将基于FPGA的设计方案来实现所需要的功能。 与传统的自底向上的设计方法不同,VHDL设计是从系统的总体需求出发,采用自顶向下的设计方法。其程序结构特点是将一项工程设计或设计实体分成外部(即端口)和内部(即功能和算法)。在对一个设计实体定义了外部端口后,一旦内部开发完成,其他设计就可以直接调用这个实体。VHDL语言设计的过程一般如下:代码编写,由综合器综合成门级网表,前仿真/功能仿真,装备、布线至某一类CPLD/FPGA。 此次设计所用VHDL设计平台是Altium Designer。Altium Designer界面友好,使用便捷。 3. 设计的总体方案 设计过程:设计采用自上而下的设计方法,首先根据交通灯控制系统的功能要求,将功能要求转化成系统状态图,然后再对系统进行 7
模块的划分、 各个模块的I/O端口及其具体功能,本系统共两个模块,分别是交通灯主程序模块和频率转换模块。然后对各个模块用VHDL语言编程、编辑以及功能仿真,检查所编程序是否正确。如果正确则生成图形文件;如果出现错误,则要修改到正确为止。 设计出交通灯结构方框图如图3
图3交通灯控制器原理框图
所示在VHDL设计描述中,采用自顶向下的设计思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:外部时钟信号clk。LED在自顶向下的VHDL设计描述中, 8
通常把整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。通过上面的分析,不难得知可以把交通灯控制系统划分为3个模块:时钟分频模块,交通灯控制及计时模块,扫描显示模块。 如图4.
图4 ①时钟分频模块:分频器是一个把时钟信号通过计数器根据时间片段分为几个输出信号的设备。输入较高频率脉冲用分频电路的到较第频率的时钟信号,用于触发控制器、计数器和扫描显示电路。本电路通过二次分频分别得到1Hz的时钟信号。 ②交通灯控制以及计时模块:状态控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,当计时时间到达,状态控制器就响应,自动跳转到下一个状态。以及输出倒计时数值给七段译码管的分位译码电路。此外,当检测到特殊信号时,执行特殊控制,则东西南北都亮红灯,在这种状态下原来的状态必须保持,即东西南北定时时间保持不变,恢复后继续计时,同时恢复东西南北原来的状态。下一
CLK 时钟分频模块
交通灯控制以及计数模块 扫描显示模块 LED显示 数码管位码 数码管段码 9
个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况发生时,计数器暂停计数。而系统复位信号RESET则使计数器异步清零。 ③扫描显示模块:根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的显示器,使显示器输出当前状态下的数码管亮、灭指令。因为控制器输出的倒计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数)。七段数码管的译码电路根据控制电路的控制信号,驱动交通灯的显示,通过输入二进制数值,输出信号点亮二极管,我们用的是共阴极数码管,因此译码电路输出逻辑数值‘1’点亮二极管,译码电路输出逻辑数值‘0’熄灭二极管。
三、电路与模块
图4交通灯控制器设计电路图 1. 交通灯主程序模块