ソフトウェアでよく使われるデバウンスフィルターメカニズムは、信号を複数回チェックする方法です。
スイッチの閉/開で、最初の信号が入った後、その信号をソフトウェアで複数回チェックして、電圧レベルがLowかHighに安定するまでチェックするという方式です。ユーザーは、ソフトウェアで電圧レベルが安定したのを確認した後に、正式な処理ルーチーンへ飛ぶようにプログラムを構成します。これによってチャタリングによる誤動作を防止できます。
ソフトウェアで電圧レベルが安定するのを確認するには時間がかかるため、外部信号の高速処理には限界があります。高速処理が必要な場合は、やはりハードウェアの対策が必要です。
マイコン内部に施されているチャタリング防止策は、前述したシュミットトリガーが一般的です。シュミットトリガーは、大抵のマイコンで採用されています。具体的なヒステリシス特性は、データシートの電気的特性の欄に記述されています。
図4にSTマイクロエレクトロニクスのマイコン「STM32F405」の端子内に入っているシュミットトリガーの例を示します。
また、その他の方法については、マイコンメーカー各社でいろいろ工夫しており、特許も申請されていますので、詳しく説明できませんが、一例を挙げると、信号に意図的に遅延を持たして、オリジナルの信号との一致を判定する方式があります。入力信号の立ち上がりや立ち下りの際に、遅延時間の間は不一致になりますが、信号が安定すると一致します。不一致期間の信号を内部に取り込まなければ、立ち上がりや立ち下りの際に発生するチャタリングは内部に取り込まれないことになります。
Copyright © ITmedia, Inc. All Rights Reserved.