ソフトウェア デバウンスが適切でない場合にスイッチおよびリレーのハードウェア デバウンスを実装する方法
ホームページホームページ > ニュース > ソフトウェア デバウンスが適切でない場合にスイッチおよびリレーのハードウェア デバウンスを実装する方法

ソフトウェア デバウンスが適切でない場合にスイッチおよびリレーのハードウェア デバウンスを実装する方法

Jun 14, 2024

電気および電子工学の文脈では、スイッチは電気回路を「作る」または「切る」ことができるコンポーネントであり、それによって電流を遮断したり、電流をある導体から別の導体に迂回させたりすることができます。 エンジニアが証明しているように、スイッチにはトグル スイッチ、ロッカー スイッチ、押しボタン スイッチ、マイクロ スイッチ、リミット スイッチ、磁気スイッチ、リード スイッチ、リレーなど、さまざまな種類があります。 すべてに共通しているのは、弾むということです。 それはまさに彼らがやっていることなのです。

通常、このバウンスは回路にほとんどまたはまったく影響を与えませんが、デジタル回路が複数のバウンスを検出して応答できるほど高速である場合、重大な結果が生じる可能性があります。 エンジニアの仕事は、このバウンス、つまりスイッチの「デバウンス」の影響を回避または軽減することです。 業界では長年ハードウェア デバウンスを実践してきましたが、最近ではソフトウェア ベースのデバウンス アプローチに移行しています。 ただし、ハードウェア デバウンスの方がより良いオプションである状況もあります。

この記事では、バウンスについて説明し、デバウンスに対するソフトウェアとハ​​ードウェアのアプローチについて説明します。 次に、ハードウェア デバウンスの実装方法を示す前に、ハードウェア デバウンスがより良いオプションである例を示します。 スイッチング デバイスとハードウェア デバウンス コンポーネントの例は、NKK Switches、ON Semiconductor、Texas Instruments、Maxim Integrated、および LogiSwitch の例として紹介されています。

スイッチバウンスとは何ですか?

スイッチやリレーが切り替わったり切り替えられたりするとき、人間がデバイスの状態を変えるたびに瞬時に 1 回の反応を起こすと認識しているものは、実際には、最終的に接触するまでの数千分の 1 秒間持続する 100 回以上の開閉動作を伴う可能性があります。その場に定着します。

たとえば、NKK の M2011SS1W01 のような単極単投 (SPST) 常開 (NO) パネル取り付けトグル スイッチについて考えてみましょう。 このスイッチの一方の側 (入力とみなされます) がグランド (0 ボルト) に接続され、もう一方の側 (この場合は出力) が 5 ボルトの電源 (+ve として表示) に接続されているとします。 ) プルアップ抵抗 (R1) を介して接続されます (図 1)。

スイッチのバウンスは、スイッチがアクティブになったとき (閉じたとき) と非アクティブになったとき (開いたとき) の両方で発生する可能性があることに注意してください。 場合によっては、バウンスが電源レール間をずっと遷移することがあります。ここでは論理 0 と 1 の状態と見なされます。 この場合、これらは「クリーンな」バウンスです。 比較すると、信号が中間電圧にのみ到達する場合、これらは「ダーティ」バウンスと呼ばれます。

NKKのM2012SS1W01-BCのような単極双投(SPDT)パネル取り付けトグルスイッチの場合、ノーマルオープン(NO)端子とノーマルクローズ(NC)端子の両方でバウンスが発生する可能性があります(図2)。 この場合、簡単にするために「クリーンな」バウンスのみが示されています。

多くの場合、この信号のバウンス時間は効果がないほど長くなります。 スイッチが、複数のバウンスを検出して応答するのに十分な速さの電子機器に接続されている場合、問題が発生します。 必要なのは、スイッチからの信号が影響を受ける前に、その信号をデバウンスする方法です。電子機器

ソフトウェアとハ​​ードウェアのデバウンス

1960 年代と 1970 年代には、SPST スイッチで使用される単純な抵抗コンデンサ (RC) 遅延回路から、より洗練されたセット/リセット (SR) ラッチ機能に至るまで、さまざまなハードウェア技術を使用してスイッチ デバウンスが実装されました。

最近では、多くのシステムがマイクロプロセッサ ユニット (MPU) またはマイクロコントローラ ユニット (MCU) を備えているため、ソフトウェア技術を使用してスイッチからの信号をデバウンスすることが一般的になりました。 ただし、ソフトウェア デバウンスが常に最良のアプローチであるとは限りません。 アプリケーションによっては、デバウンス ルーチンの実装に使用できるコード スペースやクロック サイクルが限られた、小型で低パフォーマンスのメモリ制約のあるプロセッサを使用するものもあります。 このような場合、ハードウェア実装がより良い解決策となる可能性があります。

また、多くのソフトウェア開発者は、スイッチの物理的特性に詳しくありません。たとえば、スイッチのバウンス特性は、起動ごとに異なることに加えて、温度や湿度などの環境条件にも影響される可能性があります。