按键消抖电路瞬态分析和设计
2014-03-22颜福才
颜福才
摘 要: 分析了软件消抖存在输出信号下冲电平超出后续数字芯片输入电平范围容,易危害数字芯片,且按键闭合时信号下降速度过快易引起容性串扰等缺点。针对软件消抖电路的不足,分析了硬件消抖电路,建立了数学模型,仿真并实测了按键消抖电路的时域响应。针对硬件消抖电路中仅使用滤波电容消除按键抖动的方法,通过仿真和实测阐述了该方法反而会导致下冲持续时间更长,对后续电路危害性大。分析计算了在按键导线中串接电阻以消除下冲,仿真并实测了整个硬件消抖电路的瞬时响应,实测了硬件消抖电路按键按下和释放整个过程的时域波形,消除了按键抖动和下冲。
关键字: 按键消抖电路; 瞬态分析; 下冲电平; 数学模型
中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2014)06?0051?05
0 引 言
按键是仪器仪表中普遍采用的人机输入接口电路。在按键电路中必须考虑对按键的抖动进行软件消抖[1?5]和硬件消抖[6?10]。软件消抖具有使用硬件数量少的优点,但也具有以下两个缺点:
(1) 在仪器键盘电路中,多个按键安装在仪器面板上,键盘的输出通过排线连接到主控板上,此时键盘导线寄生电感和寄生电容的存在,寄生电感寄生电容和排线电阻将组成二阶振荡系统,二阶振荡将形成负电平脉冲,而负电平脉冲很容易超出数字芯片的输入最大允许电平范围,导致数字芯片容易损坏。
(2) 按键闭合和断开时,电压信号下降沿非常陡峭,剧烈变化的电压信号将通过互容传递到相邻导线上。
硬件消抖电路的设计主要是要考虑以下三个因素:
(1) 消除信号的抖动,确保按键电路输出信号的平整;
(2) 消除信号的下冲,因为下冲电平超出了后续数字芯片的最大输入电平范围;
(3) 降低信号变化的速度,避免在邻线上引起容性串扰;
(4) 不影响按键电路的正常功能。
常见的硬件消抖电路包括电容滤波消抖和触发器消抖。电容滤波消抖采用电阻和电容组成低通滤波器,具有电路结构简单可靠的优点,因此本文将重点阐述该消抖电路。
1 按键消抖电路结构与电路模型
图1为某仪器按键电路原理图,按键安装在仪器面板上,通过导线连接到主控板上,按键的一端接上拉电阻并连接后续电路,按键的另一端接地,当按键没有按下时,按键输出高电平,当按键按下时,按键输出低电平。图2为加上滤波电容后的按键电路。
图3为按键消抖电路的电路模型。图中R0为连接按键导线的电阻,L为导线电感,C0为导线对地电容,Cf为滤波电容,Cp为按键后续电路的输入电容,Ri为按键后续电路的输入阻抗,R为上拉电阻,VCC为电源电压,U为按键消抖电路的输出电压。
当按键闭合时,其等效电路模型如图4所示。当按键断开时,其等效电路模型如图5所示。
2 按键消抖电路数学模型
设某一时刻按键合上,在此之前按键断开,整个电路处于稳态,即各个电容和电感上没有电流流动。此时输出电压[U=u0=VCC×R(R+Ri)]。则根据图4整个电路可列出以下微分方程:
设某一时刻按键断开,在此之前按键闭合,整个电路处于稳态,即各个电容和电感上没有电流流动。此时输出电压[U=u0=VCC×RiR0 (RRi+R0Ri+RR0)]。根据图5可列出以下微分方程:
式中C为C0,Cf和Cp的等效电容,C为三者之和。对上式进行拉普拉斯变换可得到:
对上式整理后可得:
将上式运用留数定理分解可得:
3 按键电路瞬态分析
对式(5)进行拉普拉斯反变换便可得到按键断开电路处于稳态时按键闭合的输出电压u(t)的时域响应。
根据拉普拉斯变换的初值定理和终值定理,可得到:
式(5)的时域响应为典型的二阶系统时域响应,当ξ小于1时,其时域响应为衰减振荡,衰减因子为[e-ξωn],振荡频率为[ωn1-ξ2],振荡就会产生下冲,一次下冲持续时间取决于振荡频率。当ξ大于1时,时域响应为单调衰减,整个过程没有下冲。因此消抖电路设计的一个目的就是要使ξ大于1。
对式(6)进行拉普拉斯反变换便可得到按键闭合电路处于稳态时按键断开的输出电压u(t)的时域响应。
式(6)的时域响应为电容充电的时域响应,其响应过程为单调上升,其上升时间为2.2T,充电时间常数T等于ReC,Re为Ri和R的并联。
T越大上升时间越大,上升时间过大将影响按键的正常使用。按键按下一次的持续时间约为0.01~0.1 s,因此消抖电路将上升时间调整到500 μs以内比较适合。
现测得已连接到单片机输入引脚的按键电路其导线电阻R0为1.6 Ω,导线电感L为25 nH,导线对地电容Ci+Cp为9.6 pF,在电路中使用的上拉电阻R为10 kΩ,单片机输入引脚输入阻抗Re为2 MΩ,使用电源电压VCC为3.3 V,则不加滤波电容时,按键闭合和断开的瞬态响应分别如图6和图7所示,由图6可见下冲峰值接近2 V,而使用单片机引脚的最大输入电压范围为-0.3 V~(VCC+0.3 V),该下冲电压远远超出该电平范围。
4 按键消抖电路设计
按键消抖电路的设计主要是利用电容的平滑功能,将毛刺平滑掉,滤波电容越大,信号越平滑。但是电容的增大会导致上升时间过大,电容太小则无法消除毛刺。现针对一单片机按键电路为例进行阐述。图8为该电路未进行硬件消抖时使用衰减探头在示波器上观察到的毛刺。
现测得该单片机按键电路寄生电感L为30 nH,寄生电容C0+Cp为35 pF,导线直流电阻R0为0.2 Ω。查阅单片机数据手册,计算得到其输入引脚输入阻抗为2 MΩ,上拉电阻R为10 kΩ。根据式(6)和式(7)可计算出未加滤波电容的按键电路在按键闭合时其二阶系统的ξ为0.004 887,振荡频率为155.319 MHz。图6为在示波器上观察到的按键闭合瞬间的时域响应。由图可见最大的下冲幅度达到了-1.66 V,该电平远超出单片机的电压范围。
根据式(9)可计算得到按键断开时充电时间常数为348.258 7 ns,信号上升时间为766.17 ns。图7为在示波器上观察到的按键断开瞬间时域响应。为消除按键抖动,滤波电容越大越好,但电容增大将增大信号的上升时间。为不影响按键电路的正常功能,需将上升时间控制。在0.5 ms以内。为此可得到当上拉电阻为10 kΩ时滤波电容的最大值为22.85 nF,上拉电阻为1 kΩ时滤波电容的最大值为227.38 nF。
当滤波电容为227.38 nF时,ξ值为0.275 9,ξ值小于1,当按键闭合时依然会有衰减振荡,此时的衰减振荡频率为1.849 8 MHz,下冲峰值约为-1.34 V,下冲持续时间约为271 ns,R=1 kΩ,Cf=227.38 nF。
由于下冲持续时间较长,危害性也将增大。图9为R=1 kΩ,滤波电容为227.38 nF时的按键闭合瞬间时域响应波形。图10为R=1 kΩ,滤波电容为220 nF时在示波器上观察到的按键闭合瞬间时域响应波形。
因此,单靠增加电容来进行滤波的方法是行不通的,由式(7)可知,增大R0可以显著增加ξ,为此可以在按键导线上串接电阻。在最终的按键消抖电路设计中,串接电阻选为100 Ω,滤波电容为8.2 nF。此时ξ为26.117 7,彻底消除了振荡,此时的充电时间常数T为81.94 μs,上升时间为180.268 μs。图11为整个按键消抖电路的按键闭合和按键断开瞬间的时域响应波形仿真。图12为整个按键消抖电路的按键闭合和按键断开瞬间的实测时域响应波形。图13为一次按键按下实测完整波形。图14为最终的按键消抖电路。由图12可见,按键闭合时没有过冲,按键断开时上升时间小于0.5 ms。由图13可见,在按键按下和松开之间的过程中,抖动已被消除,而且完全不影响按键电路的正常功能。
5 结 语
本文分析了软件消抖电路中存在的不足,指出了软件消抖存在输出信号下冲电平超出后续数字芯片输入电平范围容易危害数字芯片,提出了按键闭合时信号下降速度过快易引起容性串扰。针对软件消抖电路的不足,本文分析了硬件消抖电路,建立了数学模型,仿真并实测了按键消抖电路的时域响应。针对硬件消抖电路中仅使用滤波电容消除按键抖动的方法,通过仿真和实测阐述了该方法反而会导致下冲持续时间更长,对后续电路危害性大。
针对该问题,本文分析计算了在按键导线中串接电阻以消除下冲,仿真并实测了整个硬件消抖电路的瞬时响应,实测了硬件消抖电路按键按下和释放整个过程的时域波形,消除了按键抖动和下冲。
参考文献
[1] 王效东.按键消抖的软件处理新法[J].自动化与仪表,2000,15(2):68?69.
[2] 邢自茹,史明健.FPGA开发中按键消抖与单脉冲发生器电路[J].现代电子技术,2009,32(21):171?172.
[3] 谷长龙,李小英.基于 FPGA 器件的消除按键抖动方法研究[J].吉林化工学院学报,2006,23(3):53?55.
[4] 秦国栋.有限状态机的嵌入式Linux按键驱动设计[J].单片机与嵌入式系统应用,2010(4):3?5.
[5] 徐彩霞.新型非编码式键盘扫描方法研究[J].苏州市职业大学学报,2010,21(001):26?28.
[6] 晓峰.一种新颖的键盘消抖电路[J].微型机与应用,1987(2): 13?15.
[7] 李运兵.微控制器中按键处理技巧及应用[J].计算机系统应用,2010,19(2):195?197.
[8] 汤晓君,刘君华,梁鸿生.MCS系列单片机P1口键盘显示功能的实现[J].仪表技术与传感器,2002(11):27?29.
[9] 姚有峰.单键编码锁[J].电子技术,1991(4):40?42.
[10] 高培先.一种独立式键盘电路及其中断程序设计[J].计算机测量与控制,2008,16(3):373?375.
根据式(9)可计算得到按键断开时充电时间常数为348.258 7 ns,信号上升时间为766.17 ns。图7为在示波器上观察到的按键断开瞬间时域响应。为消除按键抖动,滤波电容越大越好,但电容增大将增大信号的上升时间。为不影响按键电路的正常功能,需将上升时间控制。在0.5 ms以内。为此可得到当上拉电阻为10 kΩ时滤波电容的最大值为22.85 nF,上拉电阻为1 kΩ时滤波电容的最大值为227.38 nF。
当滤波电容为227.38 nF时,ξ值为0.275 9,ξ值小于1,当按键闭合时依然会有衰减振荡,此时的衰减振荡频率为1.849 8 MHz,下冲峰值约为-1.34 V,下冲持续时间约为271 ns,R=1 kΩ,Cf=227.38 nF。
由于下冲持续时间较长,危害性也将增大。图9为R=1 kΩ,滤波电容为227.38 nF时的按键闭合瞬间时域响应波形。图10为R=1 kΩ,滤波电容为220 nF时在示波器上观察到的按键闭合瞬间时域响应波形。
因此,单靠增加电容来进行滤波的方法是行不通的,由式(7)可知,增大R0可以显著增加ξ,为此可以在按键导线上串接电阻。在最终的按键消抖电路设计中,串接电阻选为100 Ω,滤波电容为8.2 nF。此时ξ为26.117 7,彻底消除了振荡,此时的充电时间常数T为81.94 μs,上升时间为180.268 μs。图11为整个按键消抖电路的按键闭合和按键断开瞬间的时域响应波形仿真。图12为整个按键消抖电路的按键闭合和按键断开瞬间的实测时域响应波形。图13为一次按键按下实测完整波形。图14为最终的按键消抖电路。由图12可见,按键闭合时没有过冲,按键断开时上升时间小于0.5 ms。由图13可见,在按键按下和松开之间的过程中,抖动已被消除,而且完全不影响按键电路的正常功能。
5 结 语
本文分析了软件消抖电路中存在的不足,指出了软件消抖存在输出信号下冲电平超出后续数字芯片输入电平范围容易危害数字芯片,提出了按键闭合时信号下降速度过快易引起容性串扰。针对软件消抖电路的不足,本文分析了硬件消抖电路,建立了数学模型,仿真并实测了按键消抖电路的时域响应。针对硬件消抖电路中仅使用滤波电容消除按键抖动的方法,通过仿真和实测阐述了该方法反而会导致下冲持续时间更长,对后续电路危害性大。
针对该问题,本文分析计算了在按键导线中串接电阻以消除下冲,仿真并实测了整个硬件消抖电路的瞬时响应,实测了硬件消抖电路按键按下和释放整个过程的时域波形,消除了按键抖动和下冲。
参考文献
[1] 王效东.按键消抖的软件处理新法[J].自动化与仪表,2000,15(2):68?69.
[2] 邢自茹,史明健.FPGA开发中按键消抖与单脉冲发生器电路[J].现代电子技术,2009,32(21):171?172.
[3] 谷长龙,李小英.基于 FPGA 器件的消除按键抖动方法研究[J].吉林化工学院学报,2006,23(3):53?55.
[4] 秦国栋.有限状态机的嵌入式Linux按键驱动设计[J].单片机与嵌入式系统应用,2010(4):3?5.
[5] 徐彩霞.新型非编码式键盘扫描方法研究[J].苏州市职业大学学报,2010,21(001):26?28.
[6] 晓峰.一种新颖的键盘消抖电路[J].微型机与应用,1987(2): 13?15.
[7] 李运兵.微控制器中按键处理技巧及应用[J].计算机系统应用,2010,19(2):195?197.
[8] 汤晓君,刘君华,梁鸿生.MCS系列单片机P1口键盘显示功能的实现[J].仪表技术与传感器,2002(11):27?29.
[9] 姚有峰.单键编码锁[J].电子技术,1991(4):40?42.
[10] 高培先.一种独立式键盘电路及其中断程序设计[J].计算机测量与控制,2008,16(3):373?375.
根据式(9)可计算得到按键断开时充电时间常数为348.258 7 ns,信号上升时间为766.17 ns。图7为在示波器上观察到的按键断开瞬间时域响应。为消除按键抖动,滤波电容越大越好,但电容增大将增大信号的上升时间。为不影响按键电路的正常功能,需将上升时间控制。在0.5 ms以内。为此可得到当上拉电阻为10 kΩ时滤波电容的最大值为22.85 nF,上拉电阻为1 kΩ时滤波电容的最大值为227.38 nF。
当滤波电容为227.38 nF时,ξ值为0.275 9,ξ值小于1,当按键闭合时依然会有衰减振荡,此时的衰减振荡频率为1.849 8 MHz,下冲峰值约为-1.34 V,下冲持续时间约为271 ns,R=1 kΩ,Cf=227.38 nF。
由于下冲持续时间较长,危害性也将增大。图9为R=1 kΩ,滤波电容为227.38 nF时的按键闭合瞬间时域响应波形。图10为R=1 kΩ,滤波电容为220 nF时在示波器上观察到的按键闭合瞬间时域响应波形。
因此,单靠增加电容来进行滤波的方法是行不通的,由式(7)可知,增大R0可以显著增加ξ,为此可以在按键导线上串接电阻。在最终的按键消抖电路设计中,串接电阻选为100 Ω,滤波电容为8.2 nF。此时ξ为26.117 7,彻底消除了振荡,此时的充电时间常数T为81.94 μs,上升时间为180.268 μs。图11为整个按键消抖电路的按键闭合和按键断开瞬间的时域响应波形仿真。图12为整个按键消抖电路的按键闭合和按键断开瞬间的实测时域响应波形。图13为一次按键按下实测完整波形。图14为最终的按键消抖电路。由图12可见,按键闭合时没有过冲,按键断开时上升时间小于0.5 ms。由图13可见,在按键按下和松开之间的过程中,抖动已被消除,而且完全不影响按键电路的正常功能。
5 结 语
本文分析了软件消抖电路中存在的不足,指出了软件消抖存在输出信号下冲电平超出后续数字芯片输入电平范围容易危害数字芯片,提出了按键闭合时信号下降速度过快易引起容性串扰。针对软件消抖电路的不足,本文分析了硬件消抖电路,建立了数学模型,仿真并实测了按键消抖电路的时域响应。针对硬件消抖电路中仅使用滤波电容消除按键抖动的方法,通过仿真和实测阐述了该方法反而会导致下冲持续时间更长,对后续电路危害性大。
针对该问题,本文分析计算了在按键导线中串接电阻以消除下冲,仿真并实测了整个硬件消抖电路的瞬时响应,实测了硬件消抖电路按键按下和释放整个过程的时域波形,消除了按键抖动和下冲。
参考文献
[1] 王效东.按键消抖的软件处理新法[J].自动化与仪表,2000,15(2):68?69.
[2] 邢自茹,史明健.FPGA开发中按键消抖与单脉冲发生器电路[J].现代电子技术,2009,32(21):171?172.
[3] 谷长龙,李小英.基于 FPGA 器件的消除按键抖动方法研究[J].吉林化工学院学报,2006,23(3):53?55.
[4] 秦国栋.有限状态机的嵌入式Linux按键驱动设计[J].单片机与嵌入式系统应用,2010(4):3?5.
[5] 徐彩霞.新型非编码式键盘扫描方法研究[J].苏州市职业大学学报,2010,21(001):26?28.
[6] 晓峰.一种新颖的键盘消抖电路[J].微型机与应用,1987(2): 13?15.
[7] 李运兵.微控制器中按键处理技巧及应用[J].计算机系统应用,2010,19(2):195?197.
[8] 汤晓君,刘君华,梁鸿生.MCS系列单片机P1口键盘显示功能的实现[J].仪表技术与传感器,2002(11):27?29.
[9] 姚有峰.单键编码锁[J].电子技术,1991(4):40?42.
[10] 高培先.一种独立式键盘电路及其中断程序设计[J].计算机测量与控制,2008,16(3):373?375.