一种应用于FPGA/CPLD的按键消抖逻辑电路的制作方法

文档序号:16791093发布日期:2019-02-01 19:37阅读:650来源:国知局
一种应用于FPGA/CPLD的按键消抖逻辑电路的制作方法

本发明涉及电路设计技术领域,尤其是一种应用于FPGA/CPLD的按键消抖逻辑电路。



背景技术:

在电路板设计和应用过程中,使用的按键大部分为机械弹性开关,在开关断开或者闭合时,由于机械触点的弹性作用引发机械抖动,容易导致开关信号存在抖动干扰脉冲,这些抖动时间虽然很短,一般为10ms-20ms,但是FPGA或者CPLD等边沿敏感型高速芯片会很容易检测到这些抖动信号并产生误触发。按键消抖模块在基于CPLD及FPGA的集成电路设计中是必不可少的。目前FPGA/CPLD电路中常用的机械按键消抖方法有以下几种:其一是在按键开关的两端并联电容,利用电容两端电压不能突变的特性滤除抖动脉冲,但是这种方式滤波电容的大小难以准确取值,而且引入电容影响了电路的快速响应能力并增加了硬件成本;FPGA/CPLD电路中利用“延时消抖”的方法是通过对输入信号的持续计数和电平比对实现的,系统将稳定时间小于规定的阈值时间的信号视为抖动脉冲而忽略其触发作用,延时消抖电路对抖动信号监测敏感,但是其信号比对电路及计数电路消耗了较多的FPGA/CPLD逻辑资源,而且会造成一定程度的信号延迟;另一种常见的基于RS触发器的消抖电路需要额外增加一对上拉电阻及基准电压,难以在FPGA/CPLD内部实现。



技术实现要素:

本发明的目的是提供一种应用于FPGA/CPLD的按键消抖逻辑电路,具有节省CPLD/FPGA内部逻辑资源、降低硬件设计成本及提高信号检测及传输速度的优点。

为实现上述目的,本发明采用下述技术方案:

本发明提供了一种应用于FPGA/CPLD的按键消抖逻辑电路,包括:分频电路和D触发器电路,所述分频电路的时钟输入端与系统时钟连接,分频电路的时钟输出端与D触发器电路的时钟输入端连接,D触发器电路的输入端输入按键信号,D触发器电路的输入端还与反相器电路的输入端连接,反相器电路的输出端与逻辑与电路的一路输入端连接,D触发器电路的复位端与分频电路的复位端连接,D触发器的输出端与逻辑与电路的另一路输入端连接,逻辑与电路的输出端输出处理后的按键信号。

进一步地,所述D触发器电路至少包括两组D触发器。

进一步地,所述D触发器电路包括第一D触发器和第二触发器,第一D触发器的输入端输入按键信号,第一D触发器的输出端与第二D触发器的输入端连接,第二D触发器的输入端还与反相器电路的输入端连接,反相器电路的输出端与逻辑与电路的一路输入端连接,第二D触发器的输出端与逻辑与电路的另一路输入端连接,逻辑与电路的输出端输出处理后的按键信号,第一D触发器的时钟端、第二D触发器的时钟端分别与分频电路的时钟输出端连接,第一D触发器的复位端、第二D触发器的复位端分别与分频电路的复位端连接。

进一步地,所述D触发器电路包括第一D触发器、第二触发器和第三触发器,第一D触发器的输入端输入按键信号,第一D触发器的输出端与第二D触发器的输入端连接,第二D触发器的输出端与第三D触发器的输入端连接,第三D触发器的输入端还与反相器的输入端连接,反相器电路的输出端与逻辑与电路的一路输入端连接,第三D触发器的输出端与逻辑与电路的另一路输入端连接,逻辑与电路输出处理后的按键信号,第一D触发器的时钟端、第二D触发器的时钟端、第三D触发器的时钟端分别与分频电路的时钟输出端连接,第一D触发器的复位端、第二D触发器的复位端、第三D触发器的复位端分别与分频电路的复位端连接。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明可以有效地滤除上述电路系统中外接开关按键“闭合-打开”过程中由于机械抖动而引入的抖动脉冲,甄别有效按键信号,避免由于开关机械抖动而引起的信号误触发。本发明相对于上述几种按键消抖方法,具有节省CPLD/FPGA内部逻辑资源、降低硬件设计成本及提高信号检测及传输速度的优点。

附图说明

图1是本发明实施例一电路结构示意图;

图2是本发明实施例二电路结构示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

实施例一

如图1所示,一种应用于FPGA/CPLD的按键消抖逻辑电路,包括:分频电路101、第一D触发器102和第二触发器103,分频电路101的时钟输入端与系统时钟连接,第一D触发器102的输入端输入按键信号,第一D触发器102的输出端与第二D触发器103的输入端连接,第二D触发器103的输入端还与反相器电路106的输入端连接,反相器电路106的输出端与逻辑与电路105的一路输入端连接,第二D触发器103的输出端与逻辑与电路105的另一路输入端连接,逻辑与电路105的输出端输出处理后的按键信号,第一D触发器102的时钟端、第二D触发器103的时钟端分别与分频电路101的时钟输出端连接,第一D触发器102的复位端、第二D触发器103的复位端分别与分频电路101的复位端连接。

实施例二

如图2所示,一种应用于FPGA/CPLD的按键消抖逻辑电路,包括:分频电路201、第一D触发器202、第二触发器203和第三触发器204,分频电路201的时钟输入端与系统时钟连接,第一D触发器202的输入端输入按键信号,第一D触发器202的输出端与第二D触发器203的输入端连接,第二D触发器203的输出端与第三D触发器204的输入端连接,第三D触发器204的输入端还与反相器电路206的输入端连接,反相器电路206的输出端与逻辑与电路205的一路输入端连接,第三D触发器204的输出端与逻辑与电路205的另一路输入端连接,逻辑与电路205输出处理后的按键信号,第一D触发器202的时钟端、第二D触发器203的时钟端、第三D触发器204的时钟端分别与分频电路201的时钟输出端连接,第一D触发器202的复位端、第二D触发器203的复位端、第三D触发器204的复位端分别与分频电路201的复位端连接。

图中201为分频电路,该电路的功能为:将FPGA/CPLD外部输入的周期为T1的系统时钟信号CLK进行分频,得到周期为T2的采集时钟CLK’,其中对T2的要求为:CLK’周期T2应大于典型的按键抖动信号的持续时间,且小于按键有效高/低信号的持续时间,目的是在后续电路中利用CLK’信号只采集按键有效信号而过滤掉持续时间较短的抖动脉冲。输入信号RST为高电平或低电平有效的复位信号,RST信号可以来自FPGA/CPLD内部也可来自PCB板,作用是对分频电路进行异步复位。

202为典型D触发器,其输入信号D为FPGA/CPLD外部输入的开关按键信号,CLK’为经过201分频后的采集时钟,Q为信号D经触发器延时一拍时钟后的输出信号,Q’为Q的反相输出信号,在本发明中该信号未被使用。输入信号RST为高电平或低电平有效的复位信号,功能是对D触发器进行异步复位。202的作用是基于D触发器对毛刺信号不敏感的特性,滤掉按键输入信号中的部分毛刺信号。

203和204为典型D触发器,输入信号D均为前级触发器的Q端输出信号;输入时钟CLK’是经过201分频后的采集时钟,输入信号RST为高电平或低电平有效的复位信号,功能是对D触发器进行异步复位,Q’为Q的反相输出信号,在本发明中该信号未被使用。

此两级D触发器的作用是滤掉按键输入信号中的部分毛刺信号并为205提供输入。

206为数字反相器电路,其功能是将204的Q端输出信号逻辑取反。

205为“逻辑与”门级电路,其一端输入信号为前级D触发器的Q端输出,另一端输入为反相器206的输出;205的输出信号即为经过消抖后的有效按键信号。

图1所示的按键消抖逻辑电路适用于开关按键打开为“高电平”,闭合为“低电平”的情况,205输出逻辑为“1”时则判定检测到按键“闭合”操作;对于开关按键打开为“低电平”,闭合为“高电平”的电路系统,通过简单改变反相器206放置位置以适配其电平逻辑的设计应在本发明所保护的范围内。

本实施例中假设复位信号RST和系统时钟CLK均来自PCB板,RST复位信号为“高电平”有效,当RST复位时,分频器201及D触发器202、203、204均输出“逻辑1”;FPGA/CPLD与外部PCB板的连接关系如图,其中机械按键208位于PCB板上,207为上拉基准电压,210为上拉电阻,209为“地”;上述机械开关按键的电路连接方式表明其在“闭合”时为“低电平”有效,“断开”时为“高电平”;此处取按键抖动脉冲持续时长为典型的20ms,按键“闭合”后“低电平”有效的时间为120ms,则基于上面表述:CLK’周期T2应大于典型的按键抖动信号的持续时间,且小于按键有效高/低信号的持续时间,此处系统时钟CLK经分频电路201分频后得到的CLK’的周期T2取25ms,相应的频率为40Hz;当按键“闭合后”,205的输出信号“逻辑1”则视为检测到按键“闭合”。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1