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