0 引言
数字抢答器控制系统在现今许多工厂、学校和电视台等单位所举办的各种知识竞赛中起着不可替代的作用。基于EDA技术设计的电子抢答
器,以其价格便宜、安全可靠、使用方便而受到了人们的普遍欢迎。本文以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言VHDL为主要表达方式,以OuartusⅡ开发软件和GW48EDA开发系统为设计工具设计的电子抢答器,具有抢答鉴别与锁存功能以及60秒答题限时功能、对抢答犯规的小组进行警告和对各抢答小组进行相应的成绩加减操作等功能。
1 电子抢答器的功能
该电子抢答器实现的功能主要包括四项操作:
(1)第一抢答信号的鉴别和锁存
该电子抢答器共设4个组别,每组控制一个抢答开关,分别为a,b,c,d。在主持人发出抢答指令后,若有参赛者按抢答器按钮,则该组指示灯亮,同时显示器显示出抢答者的组别。同时,电路处于自锁状态,以使其他组的抢答器按钮不起作用。
(2)计时功能
在初始状态时。主持人可以设置答题时间的初时值。在主持人对抢答组别进行确认,并给出倒计时计数开始信号以后,抢答者便可开始回答问题。此时,显示器从初始值开始倒计时,计至0时停止计数,同时扬声器发出超时报警信号。若参赛者在规定的时间内回答完问题,主持人即可给出计时停止信号,以免扬声器鸣叫。
(3)计分功能
在初始状态时,主持人可以给每组设置初始分值。每组抢答完后,由主持人打分,答对一次加1分,答错一次减1分。
(4)犯规设置
对提前抢答者和超时抢答者给予蜂鸣警示,并显示犯规组别。
2 电子抢答器的结构原理
2.1 电子抢答器的整体结构
电子抢答器的整体结构如图1所示。它包括鉴别与锁存模块、定时与犯规设置模块以及计分模块。
2.2 鉴别与锁存模块设计
鉴别与锁存模块的主要功能是用于判断a、b、c、d四个组别抢答的先后,记录最先抢答的组别号码,并且不再接受其它输入信号,而对最先抢答的组别锁存,同时显示最先抢答的组别。
根据以上功能要求,该模块的源程序必须包含四个抢答输入信号。现将其信号分别设为a、b、c、d;抢答时必须要有一个允许开始抢答信号,将其信号设为 sta,该信号输入后,其输出指示灯亮,以便选手知道允许抢答信号已发出,故可设置一个sta的输出指示灯信号为star-t;为了鉴别最先抢答者,可分别设置a、b、c、d组的输出指示灯为led_a、led_b、led_c、led_d,同时设置显示最先抢答组别号码的输出信号为 states[3..0];为了使系统进入重新抢答状态,还需要设置一个系统复位信号,可将其设为rst。其鉴别与锁存模块的仿真波形如图2所示。
通过图2可以看出,当rst=1时,系统处于初始状态,此时所有输入均无效;当rst=O且sta=O时,抢答无效;而当rst=O且sta=1 时,start指示灯亮,d组为最先有效抢答组别,led_d指示灯亮,并显示抢答成功组别d组为“0100”。通过图2的仿真图及分析说明,可见其鉴别与锁存模块的功能设计正确。
2.3 电子抢答器定时与犯规模块设计
定时与犯规模块的主要功能是用来对答题限时。当倒计时时间计为0时,系统将输出报警信号,以对提前抢答者给予蜂鸣警示并显示犯规组别号码。
根据以上功能设计要求,该模块需要设置一个倒计数器来限制答题时间,可将其信号设为TIme[7..0]。为了使倒计时器能够开始或停止工作,应设置一个计时使能输入信号en;为了确定是否有选手提前抢答或超时答题,可将允许抢答信号sta和四个抢答输入(a、b、c、d)、显示抢答成功组别 states[3..0]、系统时钟信号clk_1hz等作为输入信号,而将犯规报警器信号alarm和犯规组别显示offender作为输出信号。为了使蜂鸣器停止报警或使系统重新进入有效抢答状态,应设置系统复位输入信号rst。定时与犯规模块的仿真波形如图3所示,其中图3(a)为抢答犯规及暂停计时控制功能的仿真,图3(b)为答题犯规控制功能的仿真。
通过图3(a)可以看出,当rst=1时,抢答无效,倒计时器初始值设为60s;当rst=O,且sta=O时,d组提前抢答,报警器开始报警,offen-der显示犯规组别“0100”,说明提前犯规组别为d组。此后主持人按下rst键,使rst=1,此时报警器停止报警,系统进入初始状态;而当rs-t=O且sta=1,a组抢答成功,计时使能信号en=1。当时钟信号clk_lhz的上升沿来时,倒计时器开始计时,当a组在限定时间内回答完问题,主持人按下计时使能信号,使en=O,倒计时器停止计时,同时防止报警器报警。
而通过图3(b)可以看出,当rst=O,sta=1时,a组抢答成功,但没在限定时间内回答完问题,60s倒计时时间计为O时,报警器开始报警,offender显示犯规组别为“0001”,说明超时犯规组别为a组;主持人按下复位键,使rst=l,报警器停止报警,offender显示 “0000”,即将犯规组别的号码清零,系统重新进入初始状态。
2.4 计分模块的设计
计分模块的主要功能是对抢答成功并答对的组别进行加分操作或对抢答成功但答错的组别进行减分操作,同时通过译码显示电路显示出来。根据以上的功能设计要求,该模块需要将加、减分操作add、sub和系统时钟clk_lhz作为输入信号,而各组别的分数显示作为输出信号aa0[3..0]、 bb0[3..0]、cc0[3..o]、dd0[3..0];为了确定给哪个组别加或减分,需要有一个抢答成功组别的输入信号,可将其设为chose。为了使系统能进入下一轮的抢答,应设置系统复位输入信号rst。其计分模块的仿真模型如图4所示。
通过图4可以看出,当rst=l时,系统进入初始状态,a、b、c、d组的初始分值都为5,当add=1,系统时钟信号clk_lhz的一个上升沿到来时,就给chose当前鉴别的组别“0001”组加1分,当sub=1,系统时钟信号clk_lhz来一个上升沿时,就给chose当前鉴别的组别 “0010”组减1分。
3 电子抢答器的硬件验证
本设计选用杭州康芯电子有限公司生产的GW48EDA系统作为硬件验证系统,同时选用Altera公司的EPlK30TCl44-3作为主控芯片。该主控芯片是一种基于查找表结构的现场可编程逻辑器件,它的基本逻辑单元是可编程的查找表,能够实现组合逻辑运算,并能用可编程寄存器实现时序逻辑运算。设计时,只需要对电子抢答器整体设计中的输入输出引脚作引脚锁定,然后重新编译、下载,就可以进行电子抢答器的硬件验证了。实验表明:本设计能够实现电子抢答器的全部功能。
4 结束语
本文以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ开发软件和GW48EDA开发系统为设计工具设计了一种具有第一抢答信号鉴别和锁存、计时和计分,并可对提前抢答和超时抢答进行蜂鸣警示等功能的电子抢答器。阐述了电子抢答器的工作原理和软硬件实现方法。并对电子抢答器的各部分模块进行了时序仿真和硬件验证,结果表明,该电路能够实现其所要求的功能。另外,由于FPGA芯片体积小,功耗低,价格便宜,安全可靠,稍加修改就可以改变抢答器的抢答组别数,而且抢答时间设定和成绩组成方式以及维护和升级都比较方便,同时也很容易做成ASIC芯片,因而具有较好的应用前景。