欢迎来到天天文库
浏览记录
ID:37556272
大小:1.45 MB
页数:13页
时间:2019-05-25
《素质拓展论文》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要FPGA器件的应用是继单片机之后,当今嵌入式系统开发中最为热门的关键技术之一,在国内也有着很广泛的应用群体。对于我们高校学生,应该掌握这门新技术。FPGA的开发和设计有着自己独特的方法和技巧,Verilog作为硬件描述语言与之前学的C语言有相似和不同的地方,这些都可以通过设计进行验证。使用FPGA进行交通灯的控制,不仅要重视控制程序,也应注意其他基本的要求,从而能使功能完善。关键字:按键消抖分频显示消影实时控制131设计分析题目要求:实现南北和东西方向的交通控制,利用3个按键对通行时间进行控制,其中1个拨位开关更改方向,2个按键增减通行时间。分析:为达到题目的设计
2、要求,设计了图2-1的基本架构框图,将整个系统分为控制输入模块,运算控制模块,信息显示模块,结果输出模块。下面对各个模块进行介绍:控制输入模块运算控制模块结果输出模块信息显示模块图2-1交通灯控制基本功能架构控制输入模块:通过检测拨位开关和按键来确定用户的控制要求,拨位开关是通过电平的高低来区分两种不同的状态,而按键在闭合和断开时,触点会存在抖动现象,在按键按下或者释放的时候都会出现一个不稳定的抖动时间,因此在设计时必须有效消除按键抖动。控制输入模块实时将拨位开关和按键的状态输入到运算控制模块中。运算控制模块:此模块应通过输入状态做出相应的决策并将决策结果输出到结果输
3、出模块进行输出从而控制交通灯,一个良好的系统应有用户交互界面,因此也应将控制状态输出到信息显示模块进行显示以达到更好的控制的功能。信息显示模块:实时的显示用户的控制状态。输出结果模块:输出用户的控制结果,控制交通的交替亮灭过程。通过以上的设计分析和功能的划分,此次设计采用模块化的设计思路,在通过合理连接以达到此次设计任务的功能。2电路设计13根据以上对设计任务的分析,确定了将采用FPGA来实现交通灯系统的控制,在此我们选用Altera公司的经济型的FPGA——CycloneIIEP2C5T144来进行系统的设计。以下给出部分模块的电路设计图并作说明,其余部分电路设计图
4、见附图。2.1输入模块电路图3-1输入模块电路图输入模块采用如上设计,拨位开关的状态由SW0信号输入到FPGA中,两个按键的信号通过SW1和SW2进行输入。2.2信息显示模块电路信息显示模块电路图见图3-2,用两个数码管进行显示通信时间,SM0-SM7控制数字的显示,SM_CS1和SM_CS2分别是两个数码管的选通信号,这样可以减少FPGA的I/O口的使用,也可以减少电路连接,在此不使用数据寄存器,而是通过FPGA的快速的刷新来进行显示。13图3-2信息显示模块电路图2.3交通灯电路设计要求中只用考虑东西和南北两个方向的通行,所以每个方向仅用三个LED进行显示。设计电
5、路图如下:图3-2交通灯电路图133模块设计与程序3.1系统时钟程序设计与仿真系统需要两个时钟,一个是系统运行所需要的时钟,鉴于本系统功能不需要高频时钟驱动,因此再次将系统运行时钟有外部输入时钟分频到1MHz,还需要一个1Hz的时钟信号来进行计时,此时钟信号也有外部输入时钟进行分频得到。下面是程序代码(系统输入时钟为27MHz):modulesys_clk(clk,clk_1m,clk_1);inputclk;outputclk_1m;//1MHz的输出时钟outputclk_1;//1Hz的输出时钟reg[7:0]cnt;always@(posedgeclk)//c
6、nt循环计数beginif(cnt<=8'd25)cnt<=cnt+1'b1;elsecnt<=8'd0;endassignclk_1m=(cnt<=8'd13)?1'b1:1'b0;//判断是否翻转reg[25:0]count;always@(posedgeclk)//cnt循环计数beginif(count<=25'd26999998)count<=count+1'b1;elsecount<=25'd0;endassignclk_1=(count<=25'd13999999)?1'b1:1'b0;//判断是否翻转endmodule由于在此需要的分频因数太大,为便于
7、观察仿真结果,在进行软件仿真时对主时钟分别进行10分频和20分频,下面是仿真结果:图4-1系统时钟仿真结果由上图的仿真结果可以看出,成功的将输入时钟进行了10分频和20分频,达到了预期的要求。在实际中按所需的输出时钟频率来设定分频因数即可。133.2输入模块程序设计与仿真如图4-2所示,按键在闭合和断开时,触点会存在抖动现象。按键消抖原理是利用一个计数器实现20ms的计数,当按键按下时开始计数,并保存计数器开始计数前后按键的两个状态,当20ms计数完成后比较两次按键的状态,如果均为按下的状态则说明确实有按键按下,这样可以将抖动的信号滤除掉,从而达到消
此文档下载收益归作者所有