[0026] 以下结合附图对本发明作进一步说明。
[0027] 如图1所示为去抖动电路实施例结构框图,包括开关脉冲产生电路和脉冲消抖电路。开关脉冲产生电路输出由按键或者开关操作产生的开关脉冲P1,开关脉冲P1被送至脉冲消抖电路进行脉冲消抖,得到输出脉冲P2。
[0028] 开关脉冲产生电路用于在有开关或者按键操作时产生开关脉冲并输出。如图2所示为开关脉冲产生电路的一个实施例,由开关S10、电阻R10、驱动门F10组成。开关脉冲P1经由驱动门F10输出,可以提高开关脉冲P1的带负载能力。选择驱动门F10时,可以选择同相驱动门,也可以选择反相驱动门;要求驱动门F10的高电平和低电平带负载能力一致或者接近,且灌电流带负载能力与拉电流带负载能力一致或者接近。驱动门F10可以选择CMOS门电路或者是高速CMOS门电路。驱动门F10还可以选择用运放电路来构成。
[0029] 脉冲消抖电路包括正向充放电电路、反向充放电电路、数据选择器。
[0030] 如图3所示为脉冲消抖电路实施例。实施例中,正向电流驱动器、正向抗干扰电容、正向抗干扰施密特电路分别为电流驱动器U11、电容C11、施密特电路F11,组成了正向充放电电路;反向电流驱动器、反向抗干扰电容、反向抗干扰施密特电路分别为电流驱动器U21、电容C21、施密特电路F21,组成了反向充放电电路。电容C11的一端接施密特电路F11的输入端,另外一端连接至公共地;电容C21的一端接施密特电路F21的输入端,另外一端连接至公共地。P1为开关脉冲端,P2为输出脉冲端。
[0031] 实施例中,数据选择器T11为二选一数据选择器,二个数据输入信号与输出信号之间都是同相关系,施密特电路F11、施密特电路F21则分别为同相施密特电路和反相施密特电路,因此,数据选择器T11输出与施密特电路F11输入信号之间为同相关系,数据选择器T11输出与施密特电路F21输入信号之间为反相关系。数据选择器T11的功能为:当选择控制端A=0时,输出Y=D1;当选择控制端A=1时,输出Y=D2。数据选择器T11的输出端Y(即脉冲输出端P2)直接连接至数据选择器T11的选择控制端A,输出脉冲P2为低电平时,控制数据选择器T11选择施密特电路F11的输出信号A3送到数据选择器的输出端Y;输出脉冲P2为高电平时,控制数据选择器T11选择施密特电路F21的输出信号A4送到数据选择器的输出端Y。
[0032] 图4为脉冲消抖电路实施例的波形,包括开关脉冲P1和施密特电路F11输出A3、施密特电路F21输出A4、输出脉冲P2的波形。图3中,当开关脉冲P1长时间维持为低电平时,A1点为低电平,施密特电路F11的输出A3为低电平;当开关脉冲P1长时间维持为高电平时,A1点为高电平,A3为高电平。当开关脉冲P1从高电平变成低电平时,电流驱动器U11的输出A1立即变成低电平电位,A3立即从高电平变成低电平。当开关脉冲P1从低电平变成高电平时,A1电位因电流驱动器U11输出的驱动电流向电容C11充电而上升,当充电时间达到T1,A1电位上升达到并超过施密特电路F11的上限门槛电压时,A3从低电平变成高电平;当P1的正脉冲宽度小于T1,充电时间小于T1,A1电位未达到施密特电路F11的上限门槛电压时P1即变成低电平,A1电位立即变成低电平电位,A3维持低电平状态。图4中,P1和A3的初始状态为低电平。正窄脉冲11、正窄脉冲12、正窄脉冲13的宽度均小于T1,A1电位无法经充电达到或超过施密特电路F11的上限门槛电压,对A3状态没有影响;P1的正脉冲14的宽度大于T1,因此,在P1的正脉冲14的上升沿过时间T1后,A3从低电平变为高电平。P1的正脉冲14的下降沿使A3从高电平变为低电平,P1的正脉冲15的宽度大于T1,在正脉冲15上升沿过时间T1后,A3从低电平变为高电平。P1正脉冲15的下降沿使A3从高电平变为低电平,P1的正脉冲16、正脉冲17、正脉冲18的宽度均小于T1,因此,正脉冲16、正脉冲17、正脉冲18对A3没有影响,A3维持低电平状态。P1的正脉冲19的宽度大于T1,在正脉冲19上升沿过时间T1后,A3从低电平变为高电平。
[0033] 图3中,当开关脉冲P1长时间维持为低电平时,A2点为高电平,施密特电路F21的输出A4为低电平;当开关脉冲P1长时间维持为高电平时,A2点为低电平,A4为高电平。当开关脉冲P1从低电平变成高电平时,电流驱动器U21的输出A2立即变成低电平电位,A4立即从低电平变成高电平。当开关脉冲P1从高电平变成低电平时,A2电位因电流驱动器U21输出的驱动电流向电容C21充电而上升,当充电时间达到T2,A2电位上升达到施密特电路F21的上限门槛电压时,A4从高电平变成低电平;当P1的负脉冲宽度小于T2,充电时间小于T2,A2电位未上升达到施密特电路F21的上限门槛电压时,P1即变成高电平,A2立即变成低电平电位,A4维持高电平状态。图4中,P1和A4的初始状态为低电平。P1的正脉冲11的上升沿使A4从低电平变为高电平,P1的负脉冲20的宽度大于T2,在负脉冲20下降沿过时间T2后,A4从高电平变为低电平。P1的正脉冲12的上升沿使A4从低电平变为高电平,P1的负脉冲20、负脉冲21的宽度均小于T2,因此,负脉冲20、负脉冲21对A4没有影响,A4维持低电平状态。负脉冲23、负脉冲24、负脉冲25、负脉冲26的宽度均小于T2,A2电位无法经充电达到或高于施密特电路F21的上限门槛电压,对A4状态没有影响;P1的负脉冲27的宽度大于T2,因此,在P1的负脉冲27的下降沿过时间T2后,A4从高电平变为低电平。在P1的负脉冲27的上升沿,A4从低电平变为高电平。
[0034] 施密特电路F11的输出A3在开关脉冲P1为低电平时保持低电平,在开关脉冲P1由低电平变为高电平后过时间T1才变为高电平。施密特电路F21的输出A4在开关脉冲P1为高电平时保持高电平,在开关脉冲P1由高电平变为低电平后过时间T2才变为低电平。或者说,在A3为高电平时,A4必定为高电平;在A4为低电平时,A3必定为低电平。
[0035] 图4中,A3、A4的初始状态均为低电平,数据选择器T11的输出Y为低电平,数据选择器T11选择A3作为输出Y且在A3为低电平的期间维持。当A3在边沿30从低电平变为高电平时,输出Y变为高电平,数据选择器T11选择A4作为输出Y,此时A4必定为高电平,维持输出Y的高电平状态。当A4在边沿31从高电平变为低电平时,输出Y变为低电平,数据选择器T11选择A3作为输出Y,此时A3必定为低电平,维持输出Y的低电平状态。当A3在边沿32从低电平变为高电平时,输出Y变为高电平,数据选择器T11选择A4作为输出Y,此时A4必定为高电平,维持输出Y的高电平状态。
[0036] 脉冲消抖电路将P1信号中的窄脉冲11、窄脉冲12、窄脉冲13、窄脉冲23、窄脉冲24、窄脉冲25、窄脉冲26都过滤掉,而正宽脉冲14(包括正脉冲14、正脉冲15、正脉冲16、正脉冲17和正脉冲18,负脉冲23、负脉冲24、负脉冲25、负脉冲26为干扰脉冲)、负宽脉冲27能够通过,使P2信号中出现相应的正宽脉冲28和负宽脉冲29。输出脉冲P2与开关脉冲P1同相,而输出的宽脉冲28上升沿比输入的正宽脉冲14上升沿滞后时间T1,下降沿滞后时间T2。
[0037] 正脉冲11、正脉冲12、正脉冲13为正窄脉冲,其中正脉冲11为干扰脉冲,正脉冲12、正脉冲13为连续的抖动脉冲。时间T1为脉冲消抖电路能够过滤的最大正窄脉冲宽度。T1即为正向充电时间。T1受到电流驱动器U11的流出驱动电流大小、电流驱动器U11的低电平电位、电容C11大小、施密特电路F11的上限门槛电压共同影响。通常情况下,调整T1的值可以通过改变电流驱动器U11的流出驱动电流大小和电容C11大小来进行。
[0038] 负脉冲23、负脉冲24、负脉冲25、负脉冲26,其中负脉冲23为干扰脉冲,负脉冲24、负脉冲25、负脉冲26为连续的抖动脉冲。时间T2为脉冲消抖电路能够过滤的最大负窄脉冲宽度。T2即为反向充电时间。T2受到电流驱动器U21的流出驱动电流大小、电流驱动器U21的低电平电位、电容C21大小、施密特电路F21的上限门槛电压共同影响。通常情况下,调整T2的值可以通过改变电流驱动器U21的流出驱动电流大小和电容C21大小来进行。
[0039] 图3中,电容C11接公共地的一端还可以改接在施密特电路F11、施密特电路F21的供电电源端;同样地,电容C21接公共地的一端也可以单独或者与电容C11一起改接在施密特电路F11、施密特电路F21的供电电源端。
[0040] 图3中,施密特电路F11、施密特电路F21还可以同时或者单独选择反相施密特电路,数据选择器T11的输入D1、D2与输出Y之间还可以同时或者单独为反相关系。当施密特电路F11、施密特电路F21同时或者单独选择反相施密特电路,数据选择器T11的输入D1、D2与输出Y之间同时或者单独为反相关系时,需要满足下面的条件,即:当数据选择器T11输出Y与施密特电路F11正向充放电电路输入信号之间为同相关系时,数据选择器T11输出Y与施密特电路F21输入信号之间为反相关系;此时Y的低电平控制选择施密特电路F11的输出送到数据选择器T11的输出端,Y的高电平控制选择施密特电路F21的输出送到数据选择器T11的输出端。当数据选择器T11输出Y与施密特电路F11输入信号之间为反相关系时,数据选择器T11输出Y与施密特电路F21输入信号之间为同相关系;此时Y的低电平控制选择施密特电路F21的输出送到数据选择器T11的输出端,Y的高电平控制选择施密特电路F11的输出送到数据选择器T11的输出端。
[0041] 图5为正向电流驱动器和反向电流驱动器实施例1电路。开漏输出同相驱动器F12、电阻R11组成正向电流驱动器。P1为低电平时,同相驱动器F12输出A1为低电平;P1为高电平时,同相驱动器F12为开漏输出,电源+VCC经电阻R11流出驱动电流。
[0042] 开漏输出反相驱动器F22、电阻R21组成反向电流驱动器。P1为高电平时,反相驱动器F22输出A2为低电平;P1为低电平时,反相驱动器F22为开漏输出,电源+VCC经电阻R21流出驱动电流。
[0043] 同相驱动器F12、反相驱动器F22可以选择各种集电极开路、漏极开路的集成电路。
[0044] 图6为正向电流驱动器和反向电流驱动器实施例2电路。三极管V21、电阻R22、电阻R23组成反向电流驱动器,P1为高电平时,三极管V21饱和导通,反向电流驱动器输出A2为低电平;P1为低电平时,三极管V21截止,电源+VCC经电阻R22流出驱动电流。
[0045] 三极管V11、三极管V12、电阻R12、电阻R13、电阻R14组成正向电流驱动器,P1为低电平时,三极管V12截止,三极管V11饱和导通,正向电流驱动器输出A1为低电平;P1为高电平时,三极管V12饱和导通,三极管V11截止,电源+VCC经电阻R12流出驱动电流。图6中的三极管V12、电阻R14组成的反相电路也可以用其他反相器来替代。
[0046] 图6中,正向电流驱动器和反向电流驱动器提供的流出驱动电流均不是恒定大小的驱动电流。
[0047] 图7为正向电流驱动器和反向电流驱动器实施例3电路。三极管V25、三极管V26、稳压管D25、电阻R25、电阻R26组成反向电流驱动器,其中,三极管V26、稳压管D25、电阻R25组成反向恒流电路。P1为高电平时,三极管V25饱和导通,反向电流驱动器输出A2为低电平;P1为低电平时,三极管V25截止,电源+VCC经三极管V26流出恒流驱动电流。
[0048] 三极管V15、三极管V16、三极管V17、稳压管D15、电阻R15、电阻R16、电阻R17组成正向电流驱动器,其中,三极管V16、稳压管D15、电阻R15组成正向恒流电路。P1为低电平时,三极管V17截止,三极管V15饱和导通,正向电流驱动器输出A1为低电平;P1为高电平时,三极管V17饱和导通,三极管V15截止,电源+VCC经三极管V16流出恒流驱动电流。图7中的三极管V17、电阻R17组成的反相电路也可以用其他反相器来替代。
[0049] 所述正向抗干扰施密特电路、反向抗干扰施密特电路均为施密特电路,输入信号为电容上的电压,因此,要求施密特电路具有高输入阻抗特性。施密特电路可以选择具有高输入阻抗特性的CMOS施密特反相器CD40106、74HC14,或者是选择具有高输入阻抗特性的CMOS施密特与非门CD4093、74HC24等器件。CMOS施密特反相器或者CMOS施密特与非门的上限门槛电压为与器件相关的固定值。用施密特反相器或者施密特与非门构成同相施密特电路,需要在施密特反相器或者施密特与非门后面增加一级反相器。
[0050] 施密特电路还可以选择采用运算放大器来构成,采用运算放大器来构成施密特电路可以灵活地改变上限门槛电压、下限门槛电压。同样地,采用运算放大器来构成施密特电路时,需要采用具有高输入阻抗特性的结构与电路。
[0051] 数据选择器可以选择74HC151、74HC152、74HC153、CD4512、CD4539等器件构成二选一数据选择器,也可以用门电路构成二选一数据选择器。