一种基于EPLD的信号抖动消除方法以及系统
文献发布时间:2023-06-19 10:11:51
技术领域
本发明涉及电路设计技术领域,更具体的说,是一种基于EPLD的信号抖动消除方法和系统。
背景技术
电路板上经常会使用按键电路去实现芯片复位,控制LED灯亮灭等功能。由于实际的按键并非理想的按键,当按键按下和释放时会伴随一连串的机械抖动,从而被后级电路识别为多次的按下,若不进行按键消抖操作,会出现异常触发。比如按键按下一次,但是检测电路将n次抖动也检测进去,会造成输出异常。为了保证电路设计的可靠性和稳定性,需要尽可能地消除抖动。现有阶段比较常用的解决方法是在单板上增加RS触发器或者D触发器,或者通过电容充放电,实现“滤波”的效果(如附图1所示),这种方式虽然有效,但是会增加单路成本。本发明就是要解决这个问题,通过把有可能存在抖动的信号引入EPLD,通过逻辑处理消除抖动后输出,既节省成本又高效。
发明内容
本发明的目的就在于为了解决上述问题而提供一种通过EPLD逻辑处理,可消除电路抖动毛刺的基于EPLD的信号抖动消除方法和系统。
为了实现上述目的,本发明是通过以下技术方案实现的:一种基于EPLD的信号抖动消除方法,通过EPLD逻辑处理消除信号抖动,解决单板上信号抖动的问题,所述EPLD逻辑处理中,当检测到按键信号KEY为低电平时,启动计数器,做15ms延时后再检测一次,若KEY仍然为低电平,则说明按键确实被按下,否则为干扰;当检测KEY为高电平时,启动计数器,做15ms延时,第二次检测,若KEY仍然为高电平,则说明按键确实被松开。
另外本发明还提出一种基于上述基于EPLD的信号抖动消除方法的系统,所述系统通过状态机实现,共涉及四个状态:
state00:按键空闲状态IDLE;
state01:按下按键消抖状态FILTER_DOWN;
state10:按下按键稳定状态DOWN;
state11:按键释放消抖状态FILTER_UP。
进一步的,在state00状态时,如检测到按键下降沿,便跳转到state01;在state01状态,逻辑启动一个15ms的计数器,用来判决是否是抖动;若计数器计满15ms时仍旧为低电平,说明是正常按键信号,逻辑输出一个低电平KEY,同时状态机进入state10状态检测按键松开信号;在state10状态,若检测到按键上升沿,便跳转到state11;在state11状态,逻辑启动15ms的计数器,用来判决是否是抖动;若计数器计满15ms,说明是按键松开,KEY变为高电平,状态机返回state00状态。
综上所述本发明具有以下有益效果:本发明通过EPLD逻辑处理,可消除电路抖动毛刺,无需增加芯片,简化了电路设计,节省成本,方便实用。
附图说明
图1是使用RS触发器或者D触发器的去抖方式;
图2是本发明的去抖方式;
图3是本发明去抖前后效果对比。
具体实施方式
下面结合附图中的实施例对本发明作进一步的详细说明,但并不构成对本发明的任何限制。
抖动时间的长短由按键的机械特性决定,一般为15ms以内。在每次按键闭合或者松开期间,跳过这段抖动时间,再检测按键的状态。只要通过采取延时的措施就可以实现按键的消抖。即按键按下时(低电平有效),经过15ms延时,如果仍然低电平则确实被按下;抬起时,经过15ms的延时仍然高电平,则确实被抬起。在逻辑设计时,当检测到按键信号KEY_IN为低电平时,启动计数器,做15ms延时后再检测一次,若KEY_IN仍然为低电平,则说明按键确实被按下,否则为干扰。当检测KEY_IN,为高电平时,启动计数器,做15ms延时,第二次检测,若KEY_IN仍然为高电平,则说明按键确实被松开。
本发明提供的一种基于EPLD的信号抖动消除方法:通过EPLD逻辑处理消除信号抖动,解决单板上信号抖动的问题,所述EPLD逻辑处理中,当检测到按键信号KEY为低电平时,启动计数器,做15ms延时后再检测一次,若KEY仍然为低电平,则说明按键确实被按下,否则为干扰;当检测KEY为高电平时,启动计数器,做15ms延时,第二次检测,若KEY仍然为高电平,则说明按键确实被松开。
如附图2所示,基于EPLD的信号抖动消除方法,本发明还提出一种基于EPLD的信号抖动消除方法的系统,所述系统通过状态机实现,共涉及四个状态:state00:按键空闲状态IDLE;state01:按下按键消抖状态FILTER_DOWN;state10:按下按键稳定状态DOWN;state11:按键释放消抖状态FILTER_UP。
具体的工作原理阐述如下:在state00状态时,如检测到按键下降沿,便跳转到state01;在state01状态,逻辑启动一个15ms的计数器,用来判决是否是抖动。在检测到下降沿即开始计数,检测到高电平时计数停止。若在计数器未计满15ms时检测到高电平,则认为是抖动,计数器清零,状态机返回第一个状态继续等待下一个下降沿;若计数器计满15ms时仍旧为低电平,说明是正常按键信号,逻辑输出一个低电平KEY_OUT,同时状态机进入state10状态检测按键松开信号(即高电平);在state10状态,若检测到按键上升沿,便跳转到state11,在state11启动15ms的计数器,若不满15ms检测到高电平,则认为是抖动,KEY_OUT保持低电平不变,状态机返回state10状态,若计数器计满15ms,说明是按键松开,KEY_OUT变为高电平,状态机返回state00状态;
如附图3所示,本发明去抖前后效果对比,可以明确看出去抖动的信号平稳,明显;综上所述本发明通过简单地逻辑处理,实现信号的消抖,大大节省了电路成本,保障了系统的稳定性。
以上所举实施例为本发明的较佳实施方式,仅用来方便说明本发明,并非对本发明作任何形式上的限制,任何所属技术领域中具有通常知识者,若在不脱离本发明所提技术特征的范围内,利用本发明所揭示技术内容所作出局部更动或修饰的等效实施例,并且未脱离本发明的技术特征内容,均仍属于本发明技术特征的范围内。
- 一种基于EPLD的信号抖动消除方法以及系统
- 一种消除基于光纤传输的VGA信号抖动的方法