Interrupt Debouncing with Noise Filtering for Mechanical Switch Signals

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mechanical buttons and switches generate irregular or noisy signals due to their mechanical nature, leading to spurious interrupts that can cause incorrect device behavior, as existing debouncing methods are inefficient in filtering out these noise signals and consuming significant CPU resources.

Innovation Solution

A debouncing algorithm that uses a debounce interval timer and a noise filtering interval timer to stabilize the signal line, masking and unmasking it at specific times to determine if the signal is genuine, thereby invoking an interrupt only when the line remains asserted and stable during the noise filtering interval, reducing CPU usage and effectively filtering out noise.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional debouncing methods are used to filter mechanical button noise, then spurious interrupts are reduced, but CPU resource consumption increases significantly

Engineering Contradiction:
Improveinterrupt accuracyVSAvoidCPU resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pre-configuring the signal line as masked (disabled) before actual button presses occur. The debounce module is预先 set up with timer intervals and filtering criteria, so that when mechanical button noise generates spurious interrupts, the pre-masked state prevents CPU from processing these invalid signals, thereby reducing CPU resource consumption while maintaining interrupt accuracy.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the signal line is continuously monitored to detect genuine interrupts, then interrupt detection accuracy is improved, but CPU usage increases during debounce intervals

Engineering Contradiction:
Improveinterrupt detection accuracyVSAvoidCPU efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements periodic action through the use of debounce module with configured timer intervals. Instead of continuous monitoring, the system periodically checks the signal line at specific intervals (debounce interval and noise filtering interval). This periodic sampling approach maintains adequate interrupt detection accuracy while allowing the CPU to enter low-power modes between intervals, thereby improving overall CPU efficiency.

Inventive Principle:
Principle #19Periodic action

3Reliability

If noise filtering interval timer is extended to ensure stable signal detection, then genuine interrupt identification is improved, but system response time increases

Engineering Contradiction:
Improvegenuine interrupt identificationVSAvoidinterrupt response time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies parameter changes by configuring optimized timer interval values for the debounce module. The noise filtering interval timer is set to a specific duration that balances two competing requirements: long enough to filter out mechanical button bounce noise and identify genuine interrupts reliably, but short enough to maintain acceptable system response time. These parameters can be adjusted based on specific application requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9411755B2Software debouncing and noise filtering modules for interrupts
Publication Date: 2016.08.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9411755B2 patent drawing
  • US9411755B2 patent drawing
  • US9411755B2 patent drawing

AI summary

Systems and methods for debouncing a signal line within a computer device are provided. The mechanical nature of physical buttons and switches oftentimes present irregular or noisy signals on a signal line when depressed by a user. Thus, noise and/or irregular waveforms may be present on a signal line that is monitored to produce interrupt signals, when deemed valid and genuine. In many embodiments given herein, debounce modules and techniques set a debounce interval timer and/or a noise filtering interval timer in which debounce modules and/or techniques may note whether the signal line is still asserted (e.g., possibly a genuine interrupt signal) during the debounce interval timer and stable (e.g., no further interrupts have fired) during the noise filtering interval timer.