按鍵是儀器儀表中普遍采用的人機輸入接口電路。在按鍵電路中必須考慮對按鍵的抖動進行軟件消抖和硬件消抖。 消抖具有使用硬件數量少的優點,但也具有以下兩個缺點: (1)在儀器鍵盤電路中,多個按鍵安裝在儀器面板上,鍵盤的輸出通過排線連接到主控板上,此時鍵盤導線寄生電感和寄生電容的存在,寄生電感寄生電容和排線電阻將組成二階振蕩系統,二階振蕩將形成負電平脈沖,而負電平脈沖很容易超出數字芯片的輸入最大允許電平范圍,導致數字芯片容易損壞。 (2)按鍵閉合和斷開時,電壓信號下降沿非常陡峭,劇烈變化的電壓信號將通過互容傳遞到相鄰導線上。 硬件消抖電路的設計主要是要考慮以下三個因素: (1)消除信號的抖動,確保按鍵電路輸出信號的平整; (2)消除信號的下沖,因為下沖電平超出了后續數字芯片的最大輸入電平范圍; (3)降低信號變化的速度,避免在鄰線上引起容性串擾; (4)不影響按鍵電路的正常功能。 常見的硬件消抖電路包括電容濾波消抖和觸發器消抖。電容濾波消抖采用電阻和電容組成低通濾波器,具有電路結構簡單可靠的優點,因此本文將重點闡述該消抖電路。 1 按鍵消抖電路結構與電路模型 圖1為某儀器按鍵電路原理圖,按鍵安裝在儀器面板上,通過導線連接到主控板上,按鍵的一端接上拉電阻并連接后續電路,按鍵的另一端接地,當按鍵沒有按下時,按鍵輸出高電平,當按鍵按下 時,按鍵輸出低電平。圖2為加上濾波電容后的按鍵電路。 圖1 某儀器按鍵電路 圖2 按鍵消抖電路 圖3為按鍵消抖電路的電路模型。圖中R0為連接按鍵導線的電阻,L為導線電感,C0為導線對地電容,Cf為濾波電容,Cp為按鍵后續電路的輸入電容,Ri為按鍵后續電路的輸入阻抗,R 為上拉電阻,VCC為電源電壓,U為按鍵消抖電路的輸出電壓。 圖3 按鍵消抖電路的電路模型 當按鍵閉合時,其等效電路模型如圖4所示。當按鍵斷開時,其等效電路模型如圖5所示。 2 按鍵消抖電路數學模型 設某一時刻按鍵合上,在此之前按鍵斷開,整個電路處于穩態,即各個電容和電感上沒有電流流動。此時輸出電壓U =u0 =VCC ×R (R +Ri)。則根據圖4整個電路可列出以下微分方程: 圖4 按鍵閉合時等效電路模型 圖5 按鍵斷開時等效電路模型 式中:i0為L 所在支路的電流;C 為C0,Cf和 Cp的等效電容,C 為三者之和。 (1)、式(2)進行拉普拉斯變換后可得: 將上式運用留數定理分解可得: 設某一時刻按鍵斷開,在此之前按鍵閉合,整個電路處于穩態,即各個電容和電感上沒有電流流動。此時輸出電壓U=u0=VCC × Ri R0 (RRi +R0 Ri +RR0)。根據圖5可列出以下微分方程: 3 按鍵電路瞬態分析 對式(5)進行拉普拉斯反變換便可得到按鍵斷開電路處于穩態時按鍵閉合的輸出電壓u(t)的時域響應。 根據拉普拉斯變換的初值定理和終值定理,可得到: 對式(6)進行拉普拉斯反變換便可得到按鍵閉合電路處于穩態時按鍵斷開的輸出電壓u(t)的時域響應。對式(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),該下沖電壓遠遠超出該電平范圍。 圖6 實測按鍵閉合瞬間的時域響應 4 按鍵消抖電路設計 按鍵消抖電路的設計主要是利用電容的平滑功能,將毛刺平滑掉,濾波電容越大,信號越平滑。但是電容的增大會導致上升時間過大,電容太小則無法消除毛刺。現針對一單片機按鍵電路為例進行闡述。圖8為該電路未進行硬件消抖時使用衰減探頭在示波器上觀察到的毛刺。 圖7 實測按鍵斷開瞬間時域響應 圖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時在示波器上觀察到的按鍵閉合瞬間時域響應波形。 圖9 按鍵閉合瞬間仿真波形 圖10 按鍵閉合 瞬間實測波形 因此,單靠增加電容來進行濾波的方法是行不通的,由式(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可見,在按鍵按下和松開之間的過程中,抖動已被消除,而且完全不影響按鍵電路的正常功能。 圖11 消抖電路按鍵閉合和斷開瞬間的時域響應波形仿真 圖12 消抖電路按鍵閉合和斷開瞬間實測時域響應波形 圖13 一次按鍵按下實測完整波形 5 結語 本文分析了軟件消抖電路中存在的不足,指出了軟件消抖存在輸出信號下沖電平超出后續數字芯片輸入電平范圍容易危害數字芯片,提出了按鍵閉合時信號下降速度過快易引起容性串擾。針對軟件消抖電路的不足,本文分析了硬件消抖電路,建立了數學模型,仿真并實測了按鍵消抖電路的時域響應。針對硬件消抖電路中僅使用濾波電容消除按鍵抖動的方法,通過仿真和實測闡述了該方法反而會導致下沖持續時間更長,對后續電路危害性大。 圖14 按鍵消抖電路圖 針對該問題,本文分析計算了在按鍵導線中串接電阻以消除下沖,仿真并實測了整個硬件消抖電路的瞬時響應,實測了硬件消抖電路按鍵按下和釋放整個過程的時域波形,消除了按鍵抖動和下沖 |