スイッチ デバウンスに関する究極のガイド (パート 3)
ホームページホームページ > ブログ > スイッチ デバウンスに関する究極のガイド (パート 3)

スイッチ デバウンスに関する究極のガイド (パート 3)

Jun 15, 2024

このミニシリーズのパート 1 では、スイッチ バウンスの概念を紹介しました。 つまり、スイッチを開く (非アクティブ化) または閉じる (アクティブ化) と、最終的に新しい状態に落ち着くまでに複数の遷移が行われる可能性があります (スイッチの種類とスイッチの用語のコラムも参照してください)。 また、これはトグル スイッチ、ロッカー スイッチ、押しボタン スイッチなどで発生することにも注目しました。たとえば、水銀チルト スイッチなど、ほとんどの人が決して使用しないスイッチを除けば、ほぼすべてのスイッチで発生します。

パート 2 では、単極単投 (SPST) および単極双投 (SPDT) トグル スイッチに関連するバウンスをさらに深く掘り下げました。これには、スイッチ バウンスがどの程度持続するか、スイッチのバウンスの幅などに関するいくつかの経験的データが含まれます。個々のバウンス パルスの数と、予想されるバウンスの数。 また、ハードウェアでの信号の前処理やソフトウェアでの後処理など、スイッチのバウンスに対処するためにどのような技術を使用する場合でも、その技術が時折発生するノイズ「グリッチ」や「スパイク」にだまされないことが重要であるという点も紹介しました。クロストーク、EMI (電磁妨害)、RFI (無線周波数妨害)、または ESD (静電気放電) によって引き起こされます。

スイッチバウンスソリューションはノイズに騙されてはいけません (画像出典: Max Maxfield)

この図では、抵抗 R1 がプルアップ抵抗として機能しています。 スイッチが開いている場合、R1 は NO 信号を +ve (論理 1) 値まで引き上げます。 スイッチが閉じると、NO 信号が 0V (ロジック 0) に短絡されます。

さて、パート 3 では、比喩的に言えば、「ゴムと道路が出会う」地点に到達しました。 ここで、バウンス スイッチに対するさまざまな解決策を検討し始めます。

ハードウェアとソフトウェア (ちょっとした歴史)

1970 年代初頭から半ばにかけてマイクロプロセッサが初めて登場したとき、比較的多数のエレクトロニクス ハードウェア設計エンジニアが存在していましたが、ソフトウェア開発者は比較的少数で、ソフトウェアを知っているほとんどの人は「大きな技術」に取り組んでいました。 「iron」メインフレーム コンピュータまたはミニコンピュータ上で使用されます。

当時のマイクロプロセッサはメモリとクロック サイクルの点で制限がありました (つまり、マイクロプロセッサのクロック周波数は比較的低かったため、すべてのクロック サイクルが大切にされていました)。 プログラミングの多くはアセンブリ言語を使用して丹念に実行され、楽しさと軽薄さを増すために、コードの多くは通常、プログラミング全般、特に適切なプログラミングの実践に精通していないハードウェア設計エンジニアによって作成されました。

上記のすべては、スイッチ バウンス問題に対する初期の解決策の多くがハードウェア ベースであった理由を説明しています。しかし、待ってください。さらに多くのことがあります…

Texas Instruments (TI) のトランジスタ - トランジスタ ロジック (TTL) 集積回路の 74xx シリーズは、1960 年代半ばに初めて登場しました。 1970 年代までに、これらのデバイス (および他のベンダーの同様のファミリ) が実装されたプリント回路基板 (PCB) が至る所に普及しました。

各 74xx デバイスには通常、少数のジェリービーン ロジック ゲートまたは関数が含まれていました。 たとえば、7400 には 4 つの 2 入力 NAND ゲートが含まれていました。 7474 には 2 つのポジティブエッジでトリガーされる D タイプ フリップフロップが含まれており、それぞれが独自の非同期プリセットとクリアを備えています。 74118 には 6 つの SR ラッチが含まれていました。

重要なのは、PCB にはこれらの 74xx デバイスが数百個も含まれている可能性があり、ほぼ例外なく、未使用のまま残されている機能が存在するということです。ここには NAND ゲートがあり、そこには SR ラッチがあり、おそらくは考慮されていない D タイプのフリップフロップさえあります。

ハードウェア設計エンジニアは、これらのコミットされていないロジック関数は、スイッチのデバウンスに使用するには「公平なゲーム」であると考えていました。 いわば、わずかな「スープの飛び込み」の 1 つは、誰が設計を行ったか、どの残りの論理ゲートと関数が利用可能だったかに応じて、異なる手法を使用して各スイッチがデバウンスされることになることが珍しくなかったということです。 。

時間の経過とともに、デジタル ロジックはますます少数のデバイスに統合され、その結果、無駄になる単純な「グルー ロジック」機能の量が減少しました。 また、マイクロプロセッサのメモリ サイズが大きくなり、クロック周波数が増加し、ソフトウェアを開発する人がますます増えました。