當(dāng)軟件去抖動(dòng)不合適時(shí),如何實(shí)現(xiàn)開關(guān)和繼電器硬件去抖動(dòng)?
發(fā)布時(shí)間:2021-03-04 來源:Clive "Max" Maxfield 責(zé)任編輯:lina
【導(dǎo)讀】在電氣和電子工程中,開關(guān)是一種能夠“接合”或“斷開”電路的組件,從而中斷電流或?qū)㈦娏鲝囊粋€(gè)導(dǎo)體轉(zhuǎn)到另一個(gè)導(dǎo)體。正如工程師們所知,開關(guān)有許多不同的類型,包括撥動(dòng)開關(guān)、搖臂開關(guān)、按鈕開關(guān)、微動(dòng)開關(guān)和限位開關(guān)、磁性開關(guān)和磁簧開關(guān)以及繼電器等。所有開關(guān)都有一個(gè)共同點(diǎn):就是有抖動(dòng)。這就是它們的工作方式。
在電氣和電子工程中,開關(guān)是一種能夠“接合”或“斷開”電路的組件,從而中斷電流或?qū)㈦娏鲝囊粋€(gè)導(dǎo)體轉(zhuǎn)到另一個(gè)導(dǎo)體。正如工程師們所知,開關(guān)有許多不同的類型,包括撥動(dòng)開關(guān)、搖臂開關(guān)、按鈕開關(guān)、微動(dòng)開關(guān)和限位開關(guān)、磁性開關(guān)和磁簧開關(guān)以及繼電器等。所有開關(guān)都有一個(gè)共同點(diǎn):就是有抖動(dòng)。這就是它們的工作方式。
通常情況下,這種抖動(dòng)對(duì)電路幾乎沒有影響,但如果是數(shù)字電路,只要速度足夠快,就能檢測(cè)到多次抖動(dòng)并對(duì)之作出響應(yīng),并因此造成嚴(yán)重后果。工程師的任務(wù)就是要避免或減輕這種抖動(dòng)的影響,或者給開關(guān)“去抖動(dòng)”。雖然業(yè)界長(zhǎng)期以來一直都在采取硬件去抖動(dòng),但直到最近才轉(zhuǎn)向基于軟件的去抖動(dòng)方式。然而,在某些情況下,硬件去抖動(dòng)是更好的選擇。
本文解釋了什么是抖動(dòng),并討論了去抖動(dòng)的軟件和硬件方法。然后用實(shí)例證明硬件去抖動(dòng)是更好的選擇,并闡述如何實(shí)現(xiàn)該方法。最后以來自 NKK Switches、ON Semiconductor、Texas Instruments、Maxim Integrated 和 LogiSwitch 等公司的產(chǎn)品為例,展示了幾個(gè)具體的開關(guān)器件和硬件去抖動(dòng)組件。
什么是開關(guān)抖動(dòng)?
當(dāng)開關(guān)或繼電器翻轉(zhuǎn)或撥動(dòng),或者每次設(shè)備改變狀態(tài)時(shí),人們通常視之為瞬間單一反應(yīng),但實(shí)際上可能涉及 100 個(gè)以上的接合或斷開動(dòng)作,這些動(dòng)作持續(xù)幾千分之一秒,最后接觸才會(huì)穩(wěn)定下來。
例如像 NKK 的 M2011SS1W01 這樣的單刀單擲 (SPST) 常開 (NO) 面板安裝撥動(dòng)開關(guān)。假設(shè)該開關(guān)的一側(cè)(可視為輸入端)連接到地(0 伏),而另一側(cè)(在本例中為輸出端)通過上拉電阻 (R1) 連接到 5 伏電源(顯示為 +ve)(圖 1)。
觀察到開關(guān)抖動(dòng)在開關(guān)啟動(dòng)(閉合)和停用(打開)時(shí)都可能發(fā)生。有時(shí)抖動(dòng)可能會(huì)全程跨越兩個(gè)電源軌,即不是邏輯 0 就是邏輯 1 狀態(tài)。在這種情況下,這些都是“干凈”的抖動(dòng)。相比之下,如果信號(hào)只達(dá)到一個(gè)中間電壓,這些被稱為“臟”抖動(dòng)。
對(duì)于像 NKK 的 M2012SS1W01-BC 這樣的單刀雙擲 (SPDT) 面板安裝撥動(dòng)開關(guān),在常開 (NO) 和常閉 (NC) 端子上都可能發(fā)生抖動(dòng)(圖 2)。在這種情況下,為了簡(jiǎn)單起見,只顯示了“干凈”的抖動(dòng)。
在許多情況下,這種信號(hào)抖動(dòng)持續(xù)是沒有影響的。當(dāng)一個(gè)開關(guān)連接到一個(gè)電子設(shè)備上時(shí),如果這個(gè)設(shè)備的速度足夠快,可以檢測(cè)到多次抖動(dòng)并做出響應(yīng),那么就會(huì)引起問題。需要做的是,在電子設(shè)備對(duì)開關(guān)發(fā)出的信號(hào)進(jìn)行響應(yīng)前就對(duì)其進(jìn)行去抖動(dòng)。
軟件與硬件去抖動(dòng)比較
在 20 世紀(jì) 60 年代和 70 年代,開關(guān)去抖動(dòng)采用了各種硬件技術(shù),從與 SPST 開關(guān)一起使用的簡(jiǎn)單電阻電容 (RC) 延遲電路到更復(fù)雜的置位/復(fù)位 (SR) 鎖存器功能。
最近,由于許多系統(tǒng)都采用了微處理器單元 (MPU) 或微控制器單元 (MCU),因此使用軟件技術(shù)來消除來自任何開關(guān)的信號(hào)已經(jīng)變得很普遍。然而,軟件去抖動(dòng)并不總是最好的方法。有一些采用小型、低性能、存儲(chǔ)空間有限的處理器的應(yīng)用,其代碼空間和/或時(shí)鐘周期有限,就無法實(shí)現(xiàn)去抖動(dòng)例程。在這些情況下,硬件實(shí)現(xiàn)可能是一個(gè)更好的解決方案。
另外,很多軟件開發(fā)人員對(duì)開關(guān)的物理特性并不熟悉,比如開關(guān)的去抖動(dòng)特性除了在不同的激活方式下會(huì)有不同的變化外,還可能受到溫度、濕度等環(huán)境條件的影響。
軟件開發(fā)人員缺乏開關(guān)專業(yè)技術(shù),加上現(xiàn)有關(guān)于開關(guān)抖動(dòng)的文獻(xiàn)往往是混亂和矛盾的,進(jìn)一步加劇了這一問題的嚴(yán)重性。例如,我們通常讀到開關(guān)在激活或停用后 1 毫秒 (ms) 就會(huì)停止抖動(dòng)。然而,知名嵌入式系統(tǒng)專家 Jack Ganssle 對(duì)各種類型的開關(guān)進(jìn)行了實(shí)證測(cè)試,將每個(gè)開關(guān)激活 300 次,并記錄下了觸點(diǎn)打開和關(guān)閉的最小和最大抖動(dòng)量。據(jù)其報(bào)告記錄,平均抖動(dòng)持續(xù)時(shí)間為 1.6 ms,最大抖動(dòng)持續(xù)時(shí)間為 6.2 ms。一些工業(yè)和軍事“最佳實(shí)踐”建議在初始激活后等待 20 ms,然后再假設(shè)開關(guān)已經(jīng)停止抖動(dòng);另一些人則主張?jiān)谧罱K檢測(cè)到抖動(dòng)后等待 20 毫秒再觸發(fā)任何動(dòng)作。
此外,還有很多簡(jiǎn)單的無處理器的系統(tǒng)也需要消除開關(guān)抖動(dòng)。舉幾個(gè)這類系統(tǒng)的例子:驅(qū)動(dòng)七段式顯示器對(duì)來自繼電器的脈沖進(jìn)行計(jì)數(shù)的二進(jìn)制計(jì)數(shù)器;用作門或閘電機(jī)控制裝置的555 單次定時(shí)器的觸發(fā)輸入;以及采用鍵控輸入的基于寄存器的有限狀態(tài)機(jī) (FSM)。還有電子微調(diào)電位器 (Pot),其值是用開關(guān)輸入(加、減,有時(shí)是存儲(chǔ))修改的,這時(shí)開關(guān)抖動(dòng)就會(huì)有問題。
所有這些例子都清楚地表明,掌握一些如何進(jìn)行硬件去抖動(dòng)的知識(shí)對(duì)任何設(shè)計(jì)人員或開發(fā)人員都是有用的。
用 RC 網(wǎng)絡(luò)對(duì) SPST 開關(guān)進(jìn)行硬件去抖動(dòng)
一個(gè)最簡(jiǎn)單的基于硬件的開關(guān)去抖動(dòng)方案就是將電阻電容 (RC) 網(wǎng)絡(luò)與 SPST 開關(guān)結(jié)合起來使用。這種電路有很多變型。其中一個(gè)較通用的實(shí)現(xiàn)方案是采用兩個(gè)電阻和一個(gè)二極管(圖 3)。
當(dāng)開關(guān)啟動(dòng)(閉合)時(shí),電容 C1 通過電阻 R2 放電。如果這個(gè)電路中省略了二極管 D1,那么當(dāng)開關(guān)停用(打開)時(shí),C1 將通過電阻 (R1 + R2) 充電。但是,D1 的存在意味著 C1 只能通過 R1 充電。
在某些情況下,人們只關(guān)注開關(guān)的激活(即觸發(fā)動(dòng)作發(fā)生),在這種情況下,D1 可以省略。但是,如果要在開關(guān)被激活和停用時(shí)觸發(fā)動(dòng)作,并且要考慮將延遲降到最低,建議增加 D1。
觀察電容器電壓 VC 所表現(xiàn)出的指數(shù)充放電曲線。將此信號(hào)直接送入下游數(shù)字邏輯功能的輸入端并不是一個(gè)好主意,因?yàn)橄掠螖?shù)字邏輯功能不會(huì)喜歡看到一個(gè)在“好”的邏輯 0 和邏輯 1 值之間的未定義區(qū)域徘徊的信號(hào)。相反,該信號(hào)應(yīng)被送入帶有施密特觸發(fā)器輸入的緩沖器的輸入端。此外,通常要使用反相緩沖器,如 Texas Instruments 的 CD74HC14M96 的一個(gè)通道,因?yàn)榉聪喙δ艿那袚Q速度比非反相功能快。
用 SR 鎖存器對(duì) SPDT 開關(guān)進(jìn)行去抖動(dòng)
在 SPDT 開關(guān)情況下,常見的硬件去抖動(dòng)方案是采用 SR 鎖存器。自從 20 世紀(jì) 60 年代 IBM 等公司將這種技術(shù)應(yīng)用于大型計(jì)算機(jī)的開關(guān)面板后,這種方法就被認(rèn)為是簡(jiǎn)單硬件去抖動(dòng)解決方案中的精華。這種鎖存器可以使用兩個(gè)背對(duì)背的雙輸入 NAND 門形成;例如,采用 Texas Instruments 的 SN74HC00DR 四路雙輸入 NAND IC 的兩個(gè)通道(圖 4)。
當(dāng)開關(guān)的 NC 端子接地時(shí),如圖 4 上半部分所示,這將迫使門 g2 的輸出變?yōu)檫壿?1。反過來,門 g1 輸入端的兩個(gè)邏輯 1 又迫使其輸出端變?yōu)檫壿?0。相比之下,當(dāng)開關(guān)的 NO 端子接地時(shí),如圖 4 下半部分所示,這就迫使門 g1 的輸出變?yōu)檫壿?1。反過來,門 g2 輸入端的兩個(gè)邏輯 1 又迫使其輸出端變?yōu)檫壿?0。
這個(gè)電路之所以工作得這么好,是因?yàn)楫?dāng)它的兩個(gè)輸入都處于不活動(dòng)的邏輯 1 狀態(tài)時(shí),SR 鎖存器會(huì)記住它以前的值。請(qǐng)記住,如圖 2 所示,當(dāng)一個(gè) SPDT 開關(guān)被撥動(dòng)時(shí),在該時(shí)刻,無論其哪一個(gè)端子接地,都會(huì)發(fā)生抖動(dòng)。由于這些抖動(dòng)信號(hào)在其原值(邏輯 0)和新值(邏輯 1)之間,所以對(duì) SR 鎖存器的當(dāng)前狀態(tài)沒有影響。只有在這個(gè)端子停止抖動(dòng)后,其相對(duì)的端子才開始抖動(dòng),此時(shí) SR 鎖存器才會(huì)改變其狀態(tài)。
用專用設(shè)備對(duì) SPST 開關(guān)進(jìn)行去抖動(dòng)
前面的解決方案有一個(gè)問題,就是很多設(shè)計(jì)者喜歡使用 SPST 開關(guān),因?yàn)樗鼈兊某杀酒毡榈陀?SPDT。市場(chǎng)上有很多有名的專用 SPST 去抖動(dòng)器件,如 ON Semiconductor 的 MC14490DWG 和 Maxim Integrated 的 MAX6818EAP+T。
另一家制造商 LogiSwitch 也提供了一套三通道、六通道和九通道的去抖動(dòng)解決方案,同時(shí)采用通孔和表面貼裝 (SMD) 封裝。例如,考慮使用 LogiSwitch LS18-S 器件的電路(圖 5)。
與 LogiSwitch 產(chǎn)品家族所有成員一樣,LS18-S 支持 2.5 至 5.5 伏的工作電壓范圍(供電電壓值不影響器件的響應(yīng)時(shí)間)。此外,與其他一些專用 IC 解決方案不同,LogiSwitch 去抖動(dòng)器件不需要任何額外的元件,如外部時(shí)鐘、RC 時(shí)序網(wǎng)絡(luò)或輸入或輸出上的上拉電阻。
LS18-S 采用 LogiSwitch 專有的自適應(yīng) NoBounce(無抖動(dòng))技術(shù),實(shí)現(xiàn)了高水平抗噪能力。在啟動(dòng)或終止一個(gè)周期時(shí)禁止小于 20 ms 持續(xù)時(shí)間的噪聲尖峰,然后在開關(guān)激活和釋放的最后一次抖動(dòng)后,無論抖動(dòng)持續(xù)時(shí)間長(zhǎng)短,輸出都會(huì)延遲 20 毫秒。
結(jié)語
開關(guān)有很多不同的類型,包括撥動(dòng)開關(guān)、搖臂開關(guān)和按鈕開關(guān),這些開關(guān)都可能會(huì)抖動(dòng)。如果開關(guān)抖動(dòng)不得到緩解,就會(huì)導(dǎo)致微處理器和其他電子電路將一次開關(guān)激活視為多個(gè)事件。
人們常常利用微控制器中運(yùn)行的軟件對(duì)開關(guān)發(fā)出的抖動(dòng)信號(hào)進(jìn)行消抖。如上所述,雖然這是一種低成本的解決方案,但它可能并不是所有情況下的最佳選擇。這些情況包括:系統(tǒng)基于性能和存儲(chǔ)空間有限的微控制器,軟件開發(fā)人員缺乏開關(guān)相關(guān)問題專業(yè)知識(shí),或者系統(tǒng)實(shí)現(xiàn)沒有微控制器。
作為替代選擇,我們可以使用各種方法在硬件中進(jìn)行去抖動(dòng),具體方法包括電阻電容網(wǎng)絡(luò)、SR 鎖存器以及專用集成電路。
(來源:Digi-Key,作者:Clive "Max" Maxfield)
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)電話或者郵箱聯(lián)系小編進(jìn)行侵刪。
特別推薦
- 兆易創(chuàng)新GD32F30x STL軟件測(cè)試庫獲得德國萊茵TüV IEC 61508功能安全認(rèn)證
- 芯科科技第三代無線開發(fā)平臺(tái)引領(lǐng)物聯(lián)網(wǎng)發(fā)展
- MSO 4B 示波器為工程師帶來更多臺(tái)式功率分析工具
- 艾為電子推出新一代高線性度GNSS低噪聲放大器——AW15745DNR
- 瑞薩發(fā)布四通道主站IC和傳感器信號(hào)調(diào)節(jié)器, 以推動(dòng)不斷增長(zhǎng)的IO-Link市場(chǎng)
- e絡(luò)盟現(xiàn)貨供應(yīng) Abracon 新推出的 AOTA 系列微型鑄型電感器
- 加賀富儀艾電子推出支持Wi-Fi 6和藍(lán)牙的無線局域網(wǎng)/藍(lán)牙組合模塊
技術(shù)文章更多>>
- 讓汽車LED照明無死角,LED驅(qū)動(dòng)的全面進(jìn)化
- 開關(guān)模式電源問題分析及其糾正措施:晶體管時(shí)序和自舉電容問題
- 熱電偶的測(cè)溫原理
- 【泰克先進(jìn)半導(dǎo)體實(shí)驗(yàn)室】 遠(yuǎn)山半導(dǎo)體發(fā)布新一代高壓氮化鎵功率器件
- ADALM2000實(shí)驗(yàn):變壓器
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
電容器公式
電聲器件
電位器
電位器接法
電壓表
電壓傳感器
電壓互感器
電源變壓器
電源風(fēng)扇
電源管理
電源管理IC
電源連接器
電源濾波器
電源模塊
電源模塊
電源適配器
電子書
電阻測(cè)試儀
電阻觸控屏
電阻器
電阻作用
調(diào)速開關(guān)
調(diào)諧器
鼎智
動(dòng)力電池
動(dòng)力控制
獨(dú)石電容
端子機(jī)
斷路器
斷路器型號(hào)