姓名: 序号:31
摘要:提出了基于FPGA的篮球计时计分器的设计方案,并使用Quartus II软件应用VHDL语言实现了相关设计。采用计数的方法设计了计时器模块、计分器模块,结合8段数码管动态显示原理及1602液晶控制方法设计了显示模块。经过仿真及下载验证,设计结果表明,计时器完成篮球比赛4节12分钟的倒计时,一次进攻时间24秒的计时;计分器实现甲乙两队加分,分数调整的功能;显示部分完成时间、比分的显示等。以上结果完全符合设计要求。
关键词:FPGA Quartus II篮球计时计分器 仿真 分析
引言
篮球比赛中,计时计分系统主要完成对篮球赛过程中所出现的时间,比分等数据进行快速采集记录,加工处理以及显示。文章基于FPGA设计并实现了满足NBA规则比赛基本要求的一种计时计分器。
一、总体系统设计
本篮球计时计分系统总体上分为五个模块:系统时钟、计时模块、计分模块、显示驱动模块、按键去抖动处理模块。功能框图如图1所示。 ㈠ 系统时钟提供其他主要模块所需时钟信号。 ㈡ 按键去抖模块处理按键的抖动。
㈢ 计时模块包括每节比赛的12分钟,以及每次进攻的24秒。可以利用减法计数器来实现。
㈣ 计分(比分)模块可以使用采用加法计数器来实现,在得分后,24秒的计数器清零,以表示下一次进攻的开始。
㈤ 显示模块包括时间和比分的显示,时间在数码管上显示,而比分则在液晶屏LCD上显示。
晶振 按键 去抖模块 LCLCD 驱动 D 系 统 时 钟 FPGA 计时模块 计分模块 数码管 驱动 数码管 去抖模块 按键
图1 系统功能框图
二、单元电路的设计和实现
在数字逻辑电路中,使用最多的时序逻辑电路就是计数器了。计数器不但用
于对时序脉冲的计数,还被广泛应用于各类数字系统的分频、定时,产生节拍脉冲,产生脉冲序列以及进行数字运算符。
计数器电路的种类非常多,如果按照计数器中的编码方式分类,可以分成二进制计数器、十进制计数器、循环码计数器;如果按照计数器在计数过程中的数字增减方式分类,可以把计数器分为加法计数器、减法计数器、可逆计数器;如果按照计数器的计数容量来分类,又可分成十进制计数器、十六进制计数器、六十进制计数器等;如果按照计数器中触发是否同时翻转分类,可以把计数器分成同步计数器和异步计数器。
在本课题中,大部分用到的就是计数器,因此,研究计数器的使用有着很重要的意义。
1、系统时钟(clkout)
本部分采用分频器对50MHZ有源晶振进行分频,电路符号如图2所示,CLK1HZ主要用于提供计时模块的1HZ的时钟,CLK10KHZ主要用于提供计分模块和显示模块的10KHZ的时钟。
clkoutclk50mclk10KHZclk1HZinst17 图2 分频器
2、 计时模块的设计
计时模块中包括12进制计时器(c12),60进制计时器(c60),24秒倒计时器(c24),时钟分频器(clkout),赛节显示电路(shift4_1)。
2.1、进制计时器(c12)
采用12进制减法计数器实现每节比赛的分钟位,如图3所示,q2[3..0]为个位计数输出端,y11[3..0]为十位计数输出端。
图3 十二进制计数器模块
仿真波形图4所示:
图4 十二进制计数器模块仿真结果
可以看出,该模块达到了每节比赛的12分钟的分钟位倒计时的功能。 2.2、60进制计时器(c60)
采用60进制的减法计数器,实现每一节比赛的秒钟位。要求在完成12个
60进制的计数后,计数器不再计数;具有清零、暂停功能,如图5所示,q3[3..0]为个位计数输出端,y12[3..0]为十位计数输出端。
c60clkenCRresetstopinst2coq3[3..0]y12[3..0] 图5 六十进制计数器模块
仿真波形如图6所示:
图6 六十进制计数器模块仿真结果
可以看出, 该模块达到了60秒倒计时的功能
2.3、24秒倒计时器(c24)
采用24进制减法计数器,实现每一次进攻的时间,并在每一次得分后,无论24秒是否结束计数器都要清零;若在24秒内没有打完一次进攻,则开始下一次的进攻,计数器从头开始倒计时。如图7所示,q1[3..0]为个位计数输出端,y10[3..0]为十位计数输出端。
C24clkcrenresetq1[3..0]y10[3..0] 图7 二十四进制计数器模块
仿真波形如图8所示:
inst5
图8 二十四进制计数器模块仿真结果
从仿真图可以看出,该模块达到了一次进攻的24秒倒计时的功能。
2.4、赛节显示(shift4_1)
采用加法计数器的原理,如图9所示,CR是清零端,CLK是时钟端,它与
按键RESET相连,在此过程中,还加了按键防抖,在下面将会提到。当RESET由0变为1时,开始计数,dout[3..0]为输出端。
shift4_1CRclkdout[3..0]inst11 图9 赛节模块
仿真波形如图10所示:
图10 赛节模块仿真结果
可以看出,该模块实现了比赛节次的计数功能。 3、计分模块的设计
采用计分器(fen)实现完成比赛中比分的累加,比分结果可以超过100分,并在加分出现错误的情况下,还可以通过DIRE端进行减法修正。
如图11所示,CR为清零端,当CR为0时,整个计数器清零。EN为使能端,当EN为0时,计数器暂停计数。S为数据选择器,当S为0时,甲方得分,当S为1时,乙方得分。P1表示加一分,P2表示加两分,P3表示加三分。DIRE用来进行减法修正,DIRE表示减一分。a_100,a_10,a_1分别为甲队得分的百、十、个位;b_100,b_10,b_1分别为已队得分的百、十、个位;当加分后,输出CO端为1,从而计时模块中的24秒倒计时减法器的CR端为0,减法器清零,当下一次进攻开始时,减法器重新开始倒计时。在这个计数器中,需要对DIRE,P1,P2,P3加按键防抖,在后面将会提到。
图11 计分器模块
计分模块仿真结果如图12所示:
图12 计分器仿真结果
图12仿真了一个比较悬殊的比分结果,可以看出,可以实现正常的得分累加,和甲队比分错误时的连续几次调整。
4、显示驱动模块设计
在这个模块中,主要运用了LED数码管动态显示(show)和LCD1602液晶显示(lcd_interface)。其中,数码管显示的主要是时间,而LCD1602显示的是甲乙两队的比分情况。
LED数码管动态显示(show),电路符号图13所示。CLK为时钟信号,选择10KHZ,它由分频器经过分频后得到。int0[3..0]至int6[3..0]均为要显示的数据。lout7[6..0]为数码管译码输出端,SEL[2..0]为数码管选通端。
showin6[3..0]in5[3..0]in4[3..0]in3[3..0]in2[3..0]in1[3..0]in0[3..0]clklout7[6..0]SEL[2..0]
图13 数码管显示驱动模块
LCD液晶显示(lcd_interface),主要用来显示比赛的比分和比赛队伍的信息。电路符号如图14所示:
inst9
图14 LCD驱动模块
其中,CLK为时钟信号,它与开发板上的晶振频率50MHZ相连,RESETN为复位键,它与外部清零CR相连,其它六个输入端分别为甲乙两方的比分的百、十、个位。
5、按键去抖动处理模块
作为机械开关的键盘,在按键盘操作时,由于机械触点的弹性及电压突跳等原因,在触点闭合或开路的瞬间会出现电压抖动,如图15所示。
前沿抖动 键按下 键稳定 后沿抖动
图15 按键电平抖动示意图
为保证按键识别的准确性,在按键电压信号抖动的情况下不能进行状态输入,为此必须进行去抖动处理,消除抖动部分的信号,一般有硬件和软件两种方法。这里用状态机的方法设计一个去抖电路。状态机实现去抖动电路原理是:按键去抖动关键在于提取稳定的低电平状态(按键按下时为低电平),滤除前沿、后沿抖动毛刺。对于一个按键信号,可以用一个脉冲对它进行取样,如果连续三次取样为低电平,则可以认为信号已经处于稳定状态,这时输出一个低电平的按键信号。继续取样的过程中,如果不能满足连续三次取样为低,则认为键稳定状态结束,这时输出变为高电平。
设计的状态转换图16所示,reset信号有效时,电路进入复位态S0,这时认为取样没有检测到低电平,在输入取样的过程中,每次检测到一个低电平,发生一次向下的状态转换,直到连续检测到3个连续的低电平时,进入S3状态,这时输出置低(按键信号稳定态);在中间状态S1,S2时,一旦检测到高电平,
[2]
仅进入S0状态,重新检测。
图16 状态转换图
S0 S1 S2 S3 本部分的模块元件符号如图17所示。
qudou_m clkdout[4..0] crdin[4..0] inst22 图17 加去抖动的按键模块
其中CLK为检测的时钟,它与10KHZ频率相连。CR为复位信号,低电平有效,din[4..0]为按键信号,它有5位,表示有5个按键需要去抖动,低电平有效。Dout[4..0]表示加了去抖动后的按键信号。
6、顶层原理图设计
三、结论
本设计进过编译后下载到基于Altera公司EP2C35F484C8芯片的开发板,能正确的实现本篮球计时计分器的功能,完成比赛过程中的计时如每节12分、每次进攻24秒、1至4节的节次自动显示;完成1分、2分、3分的得分加分、比分错误时的调整等。 本设计在时间的调整,进攻时间实时转换以及遥控方式控制等功能上还可以进一步完善。
四、心得体会
参考文献
[1] 王诚等. Altera FPGA/CPLD设计·基础篇[M].人民邮电出版社,2005,6
[2] 周润景, 图雅, 张丽敏. 基于Quartus II的FPGA/CPLD数字系统设计实例[M].电子工业出版社,2008
[3] 赵艳华, 曹丙霞, 张睿.基于Quartus Ⅱ的FPGA/CPLD设计与应用[M].电子工业出版社,
2009.2
[4] 刘延飞等.基于Altera FPGA/CPLD的电子系统设计及工程实践[M]. 人民邮电出版
社,2009,.9
[5] 张洪润.FPGA/CPLD应用设计200例[M].北京航空航天大学出版社,2009.1
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务