FPGA抢答器的设计与实现
2016-05-14张煜
张煜
摘要:本课题我所设计的是基于FPGA的抢答器。主要构成有FPGA开发板,计分显示电路,主持人按键电路,手模拟按键电路,时间倒数显示电路。当主持人公布完题目,按下主持人开关,指示灯亮,此时数码管倒数十秒,此十秒为选手抢答时间;如若十秒内有人抢答成功,对应灯亮,则开始答题,若答题成功,主持人按下按键为该选手计一分,若答错,则不计分,主持人按下复位键,进行下一轮此时蓝灯亮;而如若十秒内无人抢答,那么时间到后,红灯熄灭,绿灯亮。然后主持人按系统复位键,即可进行下一轮抢答。
关键词:FPGA 抢答器 数码管 计时显示
中图分类号:TP331.2 文献标识码:A 文章编号:1007-9416(2016)08-0190-01
1 引言
随着电子技术的发展,现在的抢答器功能越来越强,可靠性和准确性也越来越高。抢答器可以用各种不同的方法来实现它的功能。本课题即为对抢答器进行一个原理上的工作实现。
2 FPGA抢答器的系统设计(系统框图见图1)
本文设计了一个通用型电子抢答器:有3个按键输入,其中3个按键为三组抢答选手的输入,另外一个为主持人的开始抢答、加分操作按键。由一个四位八段数码管进行显示,其中三个显示积分,另外1个倒数计时。并有4个LED灯用来提示相应抢答选手抢答成功。四组抢答选手,各自可手动按按钮申请抢答权;回答正确加1分,错误记0分,不抢答记0分,各组初始积分为0分。
抢答器具体功能如下:
(1)主持人有一个控制选手抢答的开关:只有当主持人按下这个键选手才能抢答;在按开始按钮前抢答属于违规。
(2)抢答器具有定时抢答功能,且一次抢答的时间设定为10秒。当主持人启动”开始”键后,数码管开始倒数计时,直到为零,若仍没人抢答则该轮抢答轮空,按复位键进行下一轮。
(3)在选手抢答后可以进入加分环节,主持人利用开始按键给选手加分,当选手抢答成功后,可以开始回答问题,如果回答正确,主持人按下按键,为该选手加一分,然后按复位键,进行下一轮抢答。
3 硬件设计
3.1 选手按键设计
在此次设计中,我采用3个独立按键来模拟抢答选手。其电路配置灵活、软件结构简单。独立式按键的主要特点是每个按键使用一个GPIO口,所以每个按键工作都不会相互影响其他的GPIO口的电平状态。
在按键没有按下的时候。因上拉电阻接高电平,那么给GPIO口的电平始终是高电平。而当按键按下的时候,按键接通,上拉电阻VCC与GND相通,电势拉低。此时GPIO口电平翻转,变为低电平。FPGA就是由此判断是否有选手按下。
而当某位选手按下后,FPGA会判断出此时已经有选手抢答成功,屏蔽其他选手,使其按键无效。
3.2 数码管显示电路设计
本人设计是利用三极管驱动共阳极数码管,来达到显示时间和记分的目的。其中第二位,第三位,第四位显示选手积分,第四位同时兼顾倒数计时功能。
4 结语
基于FPGA的抢答器,制作简单,可以很好的改变升级,所需材料少,集成度较高,既稳定又可靠。经过仿真以及下载到FPGA开发板上测试,此次设计可以公正、准确、直观的判断第一抢答者,并对抢答进行计时,加减操作的计时,并通过LED显示并提示时间,以及复位抢答等功能,同时3个BCD数码管可以正确的显示第一抢答者的组号以及积分信息。同时通过测试验证了软件的按键消抖处理适当,不会产生按键误判断的情况,以及状态机的程序设计方式结构清晰,易于查找程序的错误和进行改进。
参考文献
[1]郭勇.EDA技术基础(第2 版)[M].机械工业出版社.2005:314-320.
[2]田耘,徐文波,胡彬.Xinlinx ISE Design Suite 10.x FPGA开发指南[M].人民邮电出版社,2008年5月.
[3]V. Betz, “Architecture and CAD for speed and area optimizatoin of FPGAs,” Ph.D., Univ. Toronto,1998.
[4]A. Marquardt, V. Betz, and J. Rose, “Timing-driven placement for FPGAs,” in ACM/SIGDA Int. Conf. FPGAs (FPGA00),2000:203–213.