1、交通灯控制程序概要设计说明书1引言1.1编写目的创建一个可供日常交通灯使用的程序,目标读者为交通灯控制人员。1.2背景说明:a.交通路口复杂交通信号灯的设计b.任务提出者,开发者:陈磊用户:交通指挥系统设计环境:使用Verilog HDL语言进行设计 使用Quartus 2编程环境进行开发。1.3定义ORDER 选择信号ROAD 亮灯控制信号EN5 5秒延时使能信号LIN5 5秒延时终止信号EN25 25秒延时使能信号LIN25 25秒延时终止信号RST 系统复位信号CLK 系统时钟信号1.4参考资料Verilog HDL数字系统设计与应用2总体设计2.1需求规定输入项目:CLK 系统时钟信号
2、RST 系统复位信号输出项目:ROAD 亮灯控制信号,ROAD=00,红灯亮;ROAD=01,黄灯亮;ROAD=10,绿灯亮;ROAD=11,黄灯亮。处理要求:根据ORDER的不同值,使相应的灯发亮。2.2运行环境运行环境:。Quartus II 9.02.3基本设计概念和处理流程2.4结构ORDER 选择某一灯的选择变量ROAD 控制某一灯亮的控制变量2.5功能器求与程序的关系本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:程序1程序2功能需求1功能需求2功能需求3功能需求42.6人工处理过程人工输入ORDER的值,根据ORDER的不同值,相应的灯变亮2.7尚未问决的问题创
3、建一个稳定的时钟源3接口设计3.1用户接口light(red,amber,green,0,order)ORDER为控制变量,由它决定让哪一盏灯发亮。ROAD=100,则红灯亮; ROAD=010,则绿灯亮; ROAD=001,则黄灯亮; 3.2外部接口CLK 外部时钟源信号RST 计时程序使能信号ROAD 控制哪一盏灯发亮的信号3.3内部接口根据ORDER的不同取值,在下面这段程序中,case(order) 0: begin road=b100; en25=1; en5=0; if(lin25=1) order=1; end 1: begin road=b010; en25=0; en5=1;
4、 if(lin5=1) order=2; end 2: begin road=b001; en25=1; en5=0; if(lin25=1) order=3; end 3: begin road=b010; en25=0; en5=1; if(lin5=1) order=0; end endcase4运行设计4.1运行模块组合ORDER=0时,ROAD=100,调用模块TIMER25,红灯亮ORDER=1时,ROAD=010,调用模块TIMER5,黄灯亮ORDER=2时,ROAD=001,调用模块TIMER25,绿灯亮ORDER=3时,ROAD=010,调用模块TIMER5,黄灯亮4.2运行
5、控制ORDER=0时,ROAD=100,调用模块TIMER25,红灯亮ORDER=1时,ROAD=010,调用模块TIMER5,黄灯亮ORDER=2时,ROAD=001,调用模块TIMER25,绿灯亮ORDER=3时,ROAD=010,调用模块TIMER5,黄灯亮4.3运行时间运行模块将始终占用CPU5系统数据结构设计5.1逻辑结构设计要点ORDER 选择变量 用于选择让哪一盏灯亮ROAD=100,则红灯亮; ROAD=010,则绿灯亮; ROAD=001,则黄灯亮;5.2物理结构设计要点ORDER 2位寄存器变量 每次存取要存取全部2位 ROAD 3位寄存器变量,每次存取要存取全部3位5.3
6、数据结构与程序的关系ORDER 2位寄存器变量 每次存取要存取全部2位 ROAD 3位寄存器变量,每次存取要存取全部3位6系统出错处理设计6.1出错信息1系统开始运行时RST!=0,即系统没有复位,即开始运行,此时会导致出错。2系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。6.2补救措施故障1:使RST初始时为0,过一段时间后再将RST置1。故障2:寻找一个工作稳定的时钟源作为系统的时钟源。6.3系统维护设计1系统开始运行时RST!=0,即系统没有复位,即开始运行,此时会导致出错。2系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况
7、下延时程序会工作不正常,使延时时间延长或缩短。设计需求说明书需求分析说明书的编写提示2任务概述2.1目标该项目开发的意图是为了设计一个可供日常指挥交通使用的交通灯程序,应用目标是用来控制各种交通灯的运行,可以作用在各种类型的交通灯上。该项目的代码主要是我根据书上已有的一部分资料,再加上自己在网上搜索得到的一些代码,将两者综合以后写出来的|2.2用户的特点该项目的应用对象交通灯的主要特点如下:1任意时刻只能有一只灯(红、黄或绿灯)亮。2任意时刻必须有一只灯亮,不能三盏灯全是灭的。3任一只灯亮了一定时限后必须熄灭,不能一直亮着。操作人员特点:交通灯一般都是根据程序自动运行的,因此,无操作人员。维护
8、人员特点:在机房维护交通灯控制程序的人员一般都是学习过编程控制原理的,因此,他们可以看懂程序如何控制交通灯运行的。本课题预期使用频度:此交通灯控制程序属于24小时全天候运行类型的。2.3假定和约束预期开发期限:10周。经费限制:不需要经费。3.2对性能的规定3.2.1精度根据变量ORDER的值,即可使相应的灯变亮,不会出现差错。3.2.2时间特性要求说明对于该项目的时间特性要求,如对:a响应时间:根据设定的ORDER的值,立即跳转到相应状态。b更新处理时间:必须等待TIMER5或TIMER25延时结束以后,才能进行更新c数据的转换和传送时间:ORDER设定好以后,立即进行转换,无延迟。d解题时
9、间:立即转换,没有延迟。3.2.3灵活性a操作方式上的变化:没有影响b运行环境的变化:没有影响c同其他系统的接口的变化:没有影响d精度和有效时限的变化:没有影响e计划的变化或改进:没有影响3.3输人输出要求输入项:ORDER:2位寄存器型变量,取值范围从00到11。CLK: 时钟源信号RST: 延时程序使能信号输出项:ROAD:3位寄存器型变量,取值为100、010或0013.4数据管理能力要求需要管理的文卷个数为三个,一个是交通灯控制程序,一个是25秒程序,另一个是5秒延时程序,两个文卷的大小均在300k以内。3.5故障处理要求1系统开始运行时RST!=0,即系统没有复位,即开始运行,此时会
10、导致出错。2系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。3.6其他专门要求要有一个稳定的时钟源,这样才能保证某一灯亮后,等待5秒或25秒以后,按照程序的设定,使下一盏灯变亮。4运行环境规定4.1设备a处理器型号为8086,内存容量100MBb外存容量100MB、联机方式、存储格式为二进制文件、设备的型号为ACEX1K;c输入及输出设备的型号为ACEX1K,联机方式;d数据通信设备的型号为ACEX1K,数量1只;e无功能键;4.2支持软件支持软件:Quartus II 9.0 4.3接口串口通信协议。4.4控制根据ORDER的值不同,使不
11、同的灯发亮,所以控制信号即为ORDER。ORDER的值由计算机自动进行变换。详细设计说明书详细设计说明书2所设计系统的结构3模块1(标识符)设计说明3.1模块描述根据ORDER的不同值选择让不同的灯发亮,如果ORDER=00,则红灯亮;如果ORDER=01,则黄灯亮;如果ORDER=10,则绿灯亮;如果ORDER=11,则黄灯亮。程序常驻内存,不可重入,是顺序处理。3.2功能该系统功能如下:1系统启动,各项复位2红灯亮,延时25秒3黄灯亮,延时5秒4绿灯亮,延时25秒5黄灯亮,延时5秒6返回2继续运行3.3性能程序设计好以后,在运行期间,未发生出错的情况。3.4输人项CLK 系统时钟信号RST
12、 系统复位信号3.5输出项ROAD 亮灯控制信号,ROAD=00,红灯亮;ROAD=01,黄灯亮;ROAD=10,绿灯亮;ROAD=11,黄灯亮。3.6算法本程序使用一个CASE(ORDER)多重选择结构,根据ORDER的不同值,ROAD被赋给不同的值,具体设置如下所示:ORDER=00 红灯亮ORDER=01 黄灯亮ORDER=10 绿灯亮ORDER=11 黄灯亮3.7流程逻辑3.8接口3.9存储分配CONTROLLER模块:60%的存储空间TIMER5模块:20%的存储空间TIMER25模块:20%的存储空间3.10注释设计ORDER 选择信号ROAD 亮灯控制信号EN5 5秒延时使能信号
13、LIN5 5秒延时终止信号EN25 25秒延时使能信号LIN25 25秒延时终止信号RST 系统复位信号CLK 系统时钟信号3.11限制条件必须要有一个稳定的时钟源,否则可能导致程序运行不正常。3.12测试计划在Quartus II 9.0中运行该程序,因为程序中ORDER的值是按00,01,10,11的顺序赋值的,而且是循环赋值(即每次都按这个顺序赋一遍值),所以观察是否是按红灯,黄灯,绿灯,黄灯的顺序亮灯,若是,则程序运行正常,否则就不正常。3.13尚未解决的问题必须配备一个稳定的时钟源。4模块2(标识符)设计说明TIMER5模块:用来完成延时5秒的功能。TIMER25模块:用来完成延时2
14、5秒的功能。CONTROLLER模块:用来控制交通灯的运行。项目设计总结报告(GB856788)2实际开发结果2.1产品该项目中共有3个程序:TIMER5 延时5秒程序TIMER25 延时25秒程序CONTROLLER 交通灯控制程序各程序之间的关系如下图所示:2.2主要功能和性能该系统功能如下:1系统启动,各项复位2红灯亮,延时25秒3黄灯亮,延时5秒4绿灯亮,延时25秒5黄灯亮,延时5秒6返回2继续运行该系统基本达到了原先的开发目的。2.3基本流程基本关系如下图:流程图如下:2.4进度进度基本与预期一致,开发期间曾经遇到一些困难,我又上网搜了一些资料,最后终于赶上了进度。2.5费用工时:4
15、8个学时计算机使用时间:32个学时最终费用没有超过预期。3开发工作评价3.1对产品质量的评价错误发生率:使用中未曾发生出过出错现象,这也可能与使用时间过短有关,错误发生率为零。3.3对技术方法的评价本例中使用的是结构描述模块,这比使用行为描述模块要好得多。我们只要写好模块的定义,使用时只需写出这个模块的名字,再配上需要的参数即可。如果使用行为描述模块,我们使用一次就得把整个模块写一遍,再使用一次就得再把整个模块写一遍,这比结构描述模块的使用要浪费很多的时间和精力。3.4出错原因的分析1系统开始运行时RST!=0,即系统没有复位,即开始运行,此时会导致出错。2系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。4经验与教训要先做系统整体上的规划,等概要设计、详细设计做完了以后再开始编程,此时程序的框架已经构建好了,我们只需要把该框架翻译成Verilog HDL代码即可。不要一上来就开始编程,此时我们是想到哪里就写到哪里,大脑中没有一个系统的规划,根本不可能写出一段合格的代码来。 .
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1