用于GPIO接口的按键开关消抖电路的制作方法

文档序号:13674903阅读:1259来源:国知局

本发明涉及一种用于gpio接口的按键开关消抖电路。



背景技术:

在嵌入式系统的电路设计开发中,经常会使用处理器或控制器的gpio(generalpurposeinputoutput,通用输入/输出)接口来检测外部输入开关信号如按键开关信号来作为reset(复位)信号、恢复出厂设置信号、模式切换信号等实现相关功能。如图1所示,机械按键开关在按压瞬间,因机械抖动会产生数个毫秒级抖动信号(见图1中按键的抖动信号),未进行硬件消抖处理时,该抖动信号经过具有数字电路特性的gpio接口后就变成了数个开关信号(见图1中未消抖的开关信号),这时若直接使用这样的开关信号去执行后续操作将发生多次触发甚至出现不受控的状态。因此,在将gpio接口用作按键开关信号输入的设计中,一般会采用软件消抖程序对按键开关产生的信号进行消抖处理或者在按键开关产生的信号输入到gpio接口前就采用硬件消抖电路予以消抖处理。软件消抖程序需要占用处理器或控制器的资源,资源紧张时就无法实现;硬件消抖电路一般基于rc(电阻电容)滤波电路或者是稳态电路,其中rc滤波电路结构简单但消抖效果一般,而稳态电路消抖效果好但结构复杂。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中软件消抖程序需要占用资源,而硬件消抖电路中rc滤波电路虽然结构简单但消抖效果一般、稳态电路虽然消抖效果好但结构复杂的缺陷,提供一种用于gpio接口的按键开关消抖电路。

本发明是通过下述技术方案来解决上述技术问题:

一种用于gpio接口的按键开关消抖电路,其特点是,包括充电电路、放电电路和电容器,所述充电电路包括输入端、控制端和输出端,所述放电电路包括输入端和输出端,所述充电电路的输入端与第一工作电源连接,所述电容器一端分别与所述充电电路的输出端、所述放电电路的输入端、所述gpio接口连接,所述电容器另一端与信号地连接;按键开关一端分别与所述充电电路的控制端、所述放电电路的输出端连接,按键开关另一端与信号地连接;

当按键开关处于未按下状态时,所述放电电路处于断开状态,所述充电电路向所述电容器充电;

当按键开关处于按下状态时,所述放电电路通过按键开关将所述电容器的电量向信号地放电,同时所述充电电路通过按键开关被旁路至信号地。

本方案中,当释放按键开关即按键开关处于非按下状态时,所述充电电路就向所述电容器充电,这时所述电容器两端的电压值就随着充电过程从零伏逐步升高,直至充满电,相应的,所述gpio接口的电平也从低电平逐步过渡到高电平状态,从而利用充电过程平滑掉释放按键开关所产生的抖动毛刺信号;当按下按键开关即按键开关处于按下状态时,这时所述电容器两端的电压值就随着放电过程从充满电状态时的电压值逐步降低,直至放完电变为零伏,相应的,所述gpio接口的电平也从高电平逐步过渡到低电平状态,从而利用放电过程平滑掉按下按键开关所产生的抖动毛刺信号。

较佳地,所述用于gpio接口的按键开关消抖电路还包括缓冲器,所述缓冲器的输入端与所述电容器连接,所述缓冲器的输出端与所述gpio接口连接,所述缓冲器的电源端与第二工作电源连接;其中,所述缓冲器对所述电容器的两端电压波形进行整形并驱动所述gpio接口,通过所述缓冲器的整形作用,按键开关所产生的开关信号的边沿更陡峭,提高信号质量;

当按键开关处于未按下状态时,所述放电电路处于断开状态,所述充电电路向所述电容器充电,随着所述电容器的电量增加到所述缓冲器的输入端的高电平阈值时,所述缓冲器的输出端输出表示按键开关处于未按下状态的电平信号;

当按键开关处于按下状态时,所述放电电路通过按键开关将所述电容器的电量向信号地放电,同时所述充电电路通过按键开关被旁路至信号地,随着所述电容器的电量减少到所述缓冲器的输入端的低电平阈值时,所述缓冲器的输出端输出表示按键开关处于按下状态的电平信号。

在本方案中,所述缓冲器的输出-输入关系可以为同相关系或者反相关系。当为同相关系时,在所述电容器两端电压值未超出所述缓冲器的输入端的低电平阈值时,所述缓冲器的输出端就相应输出低电平,该低电平就表示按键开关处于按下状态,在所述电容器两端电压值超出所述缓冲器的输入端的高电平阈值时,所述缓冲器的输出端就相应输出高电平,该高电平就表示按键开关处于未按下状态;当为反相关系时,表示按键开关状态的电平正好相反,在此不再累述。

较佳地,所述用于gpio接口的按键开关消抖电路还包括第一电阻器,所述缓冲器还包括使能端,所述使能端为低电平有效,所述缓冲器的输入端与所述使能端相连,所述第一电阻器并联于所述缓冲器的电源端和所述缓冲器的输出端之间。

本方案中,所述缓冲器为带使能端的三态缓冲器,所述缓冲器的输出-输入关系在使能端有效情况下为同相关系,所以在所述电容器两端电压值未超出所述缓冲器的输入端的低电平阈值时,所述缓冲器使能有效,从而所述缓冲器的输出端就相应输出低电平,此时该低电平就表示按键开关处于按下状态,在所述电容器两端电压值一旦超出所述缓冲器的输入端的低电平阈值时,所述缓冲器就使能无效,这时所述缓冲器的输出端就呈现高阻抗状态,通过所述第一电阻器的上拉后使得所述gpio接口获得高电平,从而该高电平就表示按键开关处于未按下状态。

较佳地,所述充电电路包括第二电阻器、二极管,所述第二电阻器的两端分别作为所述充电电路的输入端和控制端,所述二极管阴极作为所述充电电路的输出端,所述二极管阳极与所述充电电路的控制端连接。

本方案中,所述充电电路利用二极管单向导通特性,由于所述二极管在单向导通时阻抗低,所以对充电时间常数影响小,即充电时间常数主要由所述第二电阻器的电阻值和所述电容器的电容值决定,从而可根据实际电路的抖动情况通过调整所述第二电阻器的电阻值和所述电容器的电容值来获得合适的充电时间常数。另外,当按键开关未按下时,第一工作电源就通过所述第二电阻器、所述二极管向所述电容器充电;当按键开关按下时,所述放电电路将所述电容器的电量向信号地放电,同时第一工作电源通过所述第二电阻器后被旁路到信号地而不能通过所述充电电路向所述电容器充电,从而使得所述电容器的放电更彻底。

较佳地,所述放电电路包括第三电阻器,所述第三电阻器的两端分别作为所述放电电路的输入端和所述放电电路的输出端。

较佳地,所述第一工作电源的电压值满足所述缓冲器的输入端的输入电压特性要求,所述第二工作电源的电压值满足所述gpio接口的输入电压特性要求。

本发明的积极进步效果在于:本发明提供的用于gpio接口的按键开关消抖电路,消抖处理无需占用处理器或控制器资源,消抖电路结构简单,电路能稳定、可靠地工作,具有良好消抖效果。

附图说明

图1为按键的抖动情况和未消抖处理的波形示意图。

图2为本发明较佳实施例的用于gpio接口的按键开关消抖电路的示意图。

图3为本发明较佳实施例的用于gpio接口的按键开关消抖电路的按键开关的波形与消抖处理后gpio接口处波形的示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

如图2所示,本实施例涉及一种用于gpio接口的按键开关消抖电路,该消抖电路包括充电电路1、放电电路2、缓冲器u1加第一电阻器r1构成的整形电路3和电容器c1,其中,所述充电电路1包括第二电阻器r2、二极管d1,所述第二电阻器r2的两端分别作为所述充电电路1的输入端a和控制端b,所述二极管d1阴极作为所述充电电路1的输出端c,所述充电电路1的输入端a连接第一工作电源vcc1,所述二极管d1阳极与所述充电电路1的控制端b连接,所述放电电路2包括第三电阻器r3,所述第三电阻器r3的两端分别作为所述放电电路2的输入端d和所述放电电路2的输出端e,所述电容器c1一端分别与所述充电电路1的输出端c、所述放电电路2的输入端d、所述缓冲器u1的输入端in、所述缓冲器u1的使能端oe连接,所述缓冲器u1的输出端out与gpio接口连接,所述缓冲器u1的电源端vc与第二工作电源vcc2连接,所述第一电阻器r1两端分别与第二工作电源vcc2、所述缓冲器u1的输出端out连接,按键开关sw一端分别与所述充电电路1的控制端b、所述放电电路2的输出端e连接,所述电容器c1另一端与信号地连接,按键开关另一端与信号地连接。另外,第一工作电源vcc1和第二工作电源vcc2应满足各自电路的电气特性要求,即第一工作电源vcc1的电压值满足所述缓冲器u1的输入端in的输入电压特性要求,第二工作电源vcc2的电压值满足所述gpio接口的输入电压特性要求,所以具体实施时,一般将第一工作电源vcc1和第二工作电源vcc2设置为同一电源,且该同一电源也用作所述gpio接口所在芯片的io(输入输出接口)工作电源vccio(图2中未画出芯片及其io工作电源vccio),从而简化了电路设计以及使得电路之间具有良好电气兼容性。

本实施例在具体实施时,上述用于gpio接口的按键开关消抖电路中各元器件选用情况具体如下:在选用缓冲器u1时,考虑到小型化设计及电路扩展应用,缓冲器u1优选74lvc1g125三态缓冲器,该器件的使能端为低电平有效,封装尺寸小,宽工作电压范围(根据74lvc1g125器件手册,该器件推荐的工作电压范围为1.65v-5.5v)可满足不同gpio接口对电平的要求;r1起上拉作用,上拉电阻一般选用电阻值为数千欧姆的电阻器即可,所以r1的电阻值优选10kω;鉴于二极管d1在充电电路2中起单向导通作用,所以二极管d1选用普通二极管即可,这里优选了型号规格为bas16x,该二极管封装尺寸小,导通压降约0.7v,反向耐压达75v;鉴于二极管d1单向导通时电阻值较小,所以充电时间常数就由r2的电阻值和c1的电容值决定,另外电容器c1可为极性电容器,也可为非极性电容器,这里优选了无极性的1μf/50v瓷介电容器,考虑到按键开关的抖动一般为毫秒级信号,所以r2的电阻值优选10kω;鉴于按键开关sw的导通电阻值很小,一般也不超过50ω,所以放电时间常数就由r3的电阻值和c1的电容值决定,这里r3的电阻值优选10kω;另外,考虑到电路小型化要求,r1-r3优选封装尺寸为0402的金属膜贴片电阻器,c1优选封装尺寸为0603的瓷介电容器。在本实施例中,当释放按键开关sw即按键开关sw处于非按下状态时,第一工作电源vcc1就通过所述充电电路1的第二电阻器r2、二极管d1向所述电容器c1充电,这时所述电容器c1两端的电压值就随着充电过程从零伏逐步升高,在所述电容器c1的两端电压值未超过所述缓冲器u1的输入端的低电平阈值(根据74lvc1g125器件手册,在器件工作电压为2.3v-2.7v时该低电平阈值最大值为0.7v)时,所述缓冲器使能有效,从而所述缓冲器u1的输出端就相应输出低电平,此时该低电平就表示按键开关处于按下状态,在所述电容器c1的两端电压值一旦超过所述缓冲器u1的输入端的低电平阈值时,所述缓冲器就使能无效,这时所述缓冲器的输出端就呈现高阻抗状态,通过所述第一电阻器r1的上拉后使得所述gpio接口获得高电平,这时该高电平就表示按键开关处于未按下状态,通过利用充电过程平滑掉释放按键开关sw所产生的抖动毛刺信号,然后结合缓冲器整形作用来使得所述gpio接口处低电平向高电平过渡时形成很陡峭的上升沿;当按下按键开关sw即按键开关sw处于按下状态时,这时所述电容器c1的两端电压值就随着放电过程从充满电状态时的较高电压值逐步降低,同时第一工作电源vcc1通过所述充电电路1的第二电阻器r2被按键开关sw旁路至信号地而不能再通过所述充电电路1向所述电容器c1充电,使得所述电容器c1的放电很彻底,即c1两端电压值随着放完电而变为零伏,在所述电容器c1两端电压值降低到所述缓冲器u1的输入端的低电平阈值时,所述缓冲器u1的输出端就输出表示按键开关sw处于按下状态的低电平信号,此时所述gpio接口就获得了低电平,从而该低电平就表示按键开关处于未按下状态,通过利用放电过程平滑掉释放按键开关sw所产生的抖动毛刺信号,然后结合缓冲器整形作用来使得所述gpio接口处高电平向低电平过渡时形成很陡峭的下升沿。为便于直观理解本实施例涉及的用于gpio接口的按键开关消抖电路,这里将第一工作电源vcc1和第二工作电源vcc2均设置为2.5v电源,在按压按键开关sw中使用示波器测试了图2中的b处(或者e处)和gpio处的相应波形,即使用示波器获取按键开关sw的波形和经本实施例提供的电路进行消抖处理后的波形,测试结果如图3所示。其中,示波器的第一路测试探头(即通道c1)、第二路测试探头(即通道c2)测试的位置分别相应为图2中的b处和gpio处,示波器的横轴刻度设置为10ms/div(即横向为时间轴,每格表示10ms的宽度),示波器通道c1、通道c2的纵轴刻度均设置为1v/div(即纵向为电压幅度,每格表示1v)、探头阻抗均设置为1mω,触发信号设置为通道c1(设置为下降沿触发,触发电平设置为2.06v)。如图3所示,按键开关被按下后,经本实施例的消抖电路对按键开关sw进行了有效的硬件消抖处理,并在gpio接口处获得稳定的开关信号,从而无需后续软件消抖处理。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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