您的位置 首页 培训

根据FPGA按键形式的分类和怎么完成使用规划

基于FPGA按键模式的分类和如何实现应用设计-在FPGA系统设计中,按键是最常见的人机交互接口部件。在没有微控制器参与的情况下,FPGA系统中按键的功能相对较弱,通常可以将按键抖动和按键处理结合起来统一考虑。关于按键的机械抖动问题,在以文献[1]和文献[2]为代表的一类文章中均有讨论;关于矩阵形式的键盘扫描问题,在以文献[3]和文献[4]为代表的一类文章中有论述。

FPGA体系规划中,按键是最常见的人机交互接口部件。在没有微操控器参加的状况下,FPGA体系中按键的功用相对较弱,一般能够将按键颤动和按键处理结合起来一致考虑。关于按键的机械颤动问题,在以文献[1]和文献[2]为代表的一类文章中均有评论;关于矩阵方法的键盘扫描问题,在以文献[3]和文献[4]为代表的一类文章中有论说。值得重视的是,在文献[3]中提到过对按键处理“能表明长期按键的操作”的要求;在文献[4]中也涉及到“单击和连击”两种击键状况。不论是文献[3]的按键操作,仍是文献[4]的击键操作,都可归结为按键形式问题。现在针对FPGA按键形式评论的文章很少,因而本文专门讨论FPGA的按键形式。

1、 FPGA按键形式的分类

常见的按键形式分为单键形式和复键形式两类。所谓单键类,便是一次按键最多只能输出一个有用键;而复键类,则指一次按键能够输出多个有用键,一般经过按键时刻的长短来差异多个有用键。

单键类一般有三种按键形式:琴键形式、脉冲形式、乒乓形式。在琴键形式下,按下键时输出有用电平,开释键时输出无效电平。在脉冲形式下,每按下一次键只输出一个特定宽度的有用脉冲,其宽度常与时钟宽度相同,能够直接用做计数脉冲。在乒乓形式下,每按下一次键,键输出电平翻转一次。

复键类按键一般有连发形式和长键形式。复键类按键在按键继续时刻未抵达长按阈值时,输出效果与单键类按键形式相同。与单键类按键形式的不同之处在于对继续按键的不同处理方法。连发形式是指继续按键必定时刻以上,以必定频率重复输出有用键值。长键形式则是指继续按键抵达必定时刻以上,输出别的一种不同的有用键值。为便利比照,将几种按键形式的分类状况列在表1中。

根据FPGA按键形式的分类和怎么完结运用规划

2 、单键类按键形式的规划

2.1 琴键形式的规划

琴键形式是一切按键形式中相对最简略的一种,只需考虑到按键的去抖问题就能够了。机械按键的颤动是因为触点的弹性效果在开关切换的瞬间呈现来回弹跳的不稳定现象,一般颤动的时刻为10ms~20ms。在FPGA规划中,比较简略的去抖办法便是用50Hz的频率采样按键,将20ms以内的按键颤动滤掉。在这种消抖方法下,去抖电路十分简略,用D触发器即可便利完结。其寄存器传输级(RTL)原理图如图1所示。

不失一般性,假定按键输出高电平有用(下同),经QuartusⅡ7.2功用仿真,得到其仿真波形如图2所示。从波形图能够看出,当键KeyIn按下时,在时钟信号Clock_50Hz的上升沿抵达后,输出信号KeyOut继续为高电平,直到释键后输出才变为低电平。KeyIn比较密布的脉冲代表按键或释键的颤动,从输出信号KeyOut的波形能够看出按键与释键进程的颤动均已去掉,处理后键值输出的电平改变均与时钟信号的上升沿同步。

2.2 脉冲形式的规划

与琴键形式比较,脉冲形式的不同之处便是对其按键输出有用电平限制了一个宽度,一般取时钟宽度,即为一个时钟宽度的脉冲。在琴键形式输出的基础上,再添加一个数字的微分环节,就能够取得较窄宽度的脉冲。假定以正脉冲表明有用脉冲输出(下同),其RTL原理图如图3所示。图3左面的D触发器KeyTemp起到推迟的效果,它与KeyOut~0一同完结微分效果,检测出上跳沿。图3右边的触发器KeyOut~reg0则完结去抖功用。

仿真后的输出波形如图4所示。从脉冲形式的仿真波形图中能够看出,完结一次按键动作(包含按键和释键),取得一个时钟宽度的正脉冲。为表现按键的灵敏性,正脉冲的输出尽量接近按键动作,一般在检测到跳沿时即输出正脉冲,正如图4中KeyOut所示信号。

2.3 乒乓形式的规划

在单键类按键形式中,乒乓形式与其他两种形式的差异在于它的输出并非是一次特定的有用脉冲,而是带有输出电平回忆功用,成果与原输出电平相关,将本来的电平翻转,即高电平变为低电平,或许低电平变为高电平,每次按键输出电平翻转一次。乒乓形式的电路只需在有用跳沿检测的基础上,再跟上一个T’触发器做一个电平翻转即可,其RTL原理图如图5所示。图5右边的D触发器KeyOut~reg0构成T′触发器的翻转功用,一同兼去抖效果。

乒乓形式电路仿真后的输出波形如图6所示。从乒乓形式的仿真波形图中能够看出,完结一次按键动作(包含按键和释键),输出信号KeyOut的电平翻转一次。

3 、复键类按键形式的规划

3.1 连发形式的规划

连发形式的按键进程分为两个阶段。两个阶段的区分以预先设定的按键时刻tTH为阈值,当按键继续时刻小于tTH时,输出处于单键值阶段,能够为琴键形式的有用电平,也能够为脉冲形式的有用脉冲。当按键继续时刻大于tTH时,一般输出一个必定频率的脉冲序列,直到开释按键停止。连发形式的规划较单键类形式杂乱,一般用硬件描绘言语完结。其规划的操控中心能够用一个有限状况机(FSM)表述,如图7所示。该FSM包含“闲暇”、“单键”和“连发”三个状况。闲暇态是初始状况,没有键按下时总是处于闲暇态。单键态表明有键按下,可是按键继续时刻不到tTH。当键继续按下时刻超越tTH时,体系处于连发态。在闲暇态,体系输出低电平;在单键态,体系输出一个正脉冲(也能够根据要求输出有用电平);在连发态,体系输出一个特定频率的脉冲序列。

连发态下序列的输出频率是根据自己的运用要求设定的。阈值tTH的巨细表征人按键时刻的长短边界,一般选1~3s,比较契合人的按键习气。为便利仿真,假定阈值tTH=1s,1s内输出一个时钟周期宽度的正脉冲,1s后以10Hz的频率输出宽度为时钟周期的正脉冲序列。依照有限状况机选用Verilog硬件描绘言语进行规划(规划代码省略),规划归纳后的仿真输出波形如图8所示。图8中的信号KeyIn模拟出两次按键进程,前两个“黑块”别离代表一次按键及释键进程,因为按键继续时刻短,体系只输出一个正脉冲信号。第2次按键动作从第3个“黑块”处开端,并一向继续按下不放,能够从KeyOut信号波形上看出,先输出一个正脉冲,等候1s后,开端输出频率为10Hz的脉冲序列。

3.2 长键形式的规划

长键形式的按键进程与连发形式根本相同,其状况转化示意图如图9所示。比较图9与图7,不同仅在于图7的连发态换成了图9的长键态,用以差异两者在此刻不同的状况输出。

长键形式的仿真波形如图10所示。为有用表明长键形式在长键态时的输出,引进第二个输出信号KeyOutL。当按键处于单键态时,KeyOut输出为高电平(也能够是有用脉冲),否则为低电平。当按键处于长键态时,KeyOutL输出为高电平(也能够是有用脉冲),否则为低电平。

按键是最不行短少的人机交互设备之一。按键的去抖与形式处理是最根本的两个按键处理问题。在FPGA体系的规划布景下,按键的两个根本问题常放在一同考虑,可是现在国内的文献资料对这种状况的论说很少。

本文针对FPGA规划中运用按键的常见方法进行归纳归纳,提出单键复键两类共5种典型的按键形式,并对每种按键形式进行了剖析与规划,一同给出了QuartusII7.2下的功用仿真成果。这几种典型的按键形式在一般的嵌入式体系规划中也是值得学习与参阅的。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/96597.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部