Le rebond de contact, la commutation marche-arrêt rapide d'un commutateur mécanique en raison de son mouvement physique, est un problème courant dans les claviers et autres périphériques d'entrée basés sur des commutateurs. Lorsque plusieurs touches sont enfoncées simultanément (situation courante), le rebond de contact sur chaque touche peut entraîner l'enregistrement de plusieurs signaux parasites, entraînant une saisie incorrecte. Pour surmonter ce problème, il faut des solutions matérielles et logicielles.
Solutions matérielles :
* Circuits anti-rebond : Il s’agit de l’approche matérielle la plus courante. Ils adoucissent essentiellement les transitions marche-arrêt rapides du commutateur. Plusieurs types existent :
* Circuits RC (Résistance-Condensateur) : Un simple circuit RC agit comme un filtre passe-bas. Le condensateur se charge lentement, ignorant efficacement les rebonds rapides après la première pression sur une touche. La constante de temps (RC) est choisie pour être suffisamment longue pour filtrer le rebond mais suffisamment courte pour ne pas retarder les pressions légitimes sur les touches. Il s'agit d'une solution économique, mais son efficacité dépend des caractéristiques du commutateur.
* Déclencheur Schmitt : Ce circuit est plus sophistiqué et présente un effet d'hystérésis. Il nécessite une tension plus élevée pour s'allumer que pour s'éteindre, ignorant les petites variations de tension provoquées par le rebond. Cela fournit un signal plus clair avec une transition plus nette.
* Microcontrôleurs dotés de capacités anti-rebond internes : De nombreux microcontrôleurs modernes disposent de fonctionnalités anti-rebond intégrées, simplifiant ainsi la conception matérielle. Ils utilisent souvent des minuteries ou une gestion d'entrée spécialisée pour détecter les états stables.
* Améliorations mécaniques : Bien qu'il ne s'agisse pas strictement d'une solution de circuit, l'utilisation de commutateurs mécaniques de meilleure qualité avec de meilleures conceptions de contact réduit intrinsèquement le rebond. Ces commutateurs sont souvent plus chers. Les claviers à membrane, qui ne comportent aucune pièce physique mobile, ne souffrent pas intrinsèquement de rebond de contact.
Solutions logicielles :
* Anti-rebond logiciel : Même avec l'anti-rebond matériel, un certain rebond résiduel peut subsister. Les algorithmes logiciels peuvent atténuer davantage ce problème. Il s'agit généralement de :
* Minuteurs : L'approche la plus simple consiste à vérifier l'état de la clé après un court délai (par exemple 10 à 20 millisecondes). Si l’état est cohérent après ce délai, la pression sur la touche est considérée comme valide.
* Machines à états : Des machines à états plus complexes peuvent gérer des scénarios plus sophistiqués, tels que la distinction entre une seule pression sur une touche et plusieurs pressions rapides (conçues comme une commande répétée).
* Algorithmes de filtrage : Des techniques de filtrage logiciel plus avancées, telles que les moyennes mobiles ou les filtres médians, peuvent lisser le signal d'entrée, réduisant ainsi les effets des rebonds restants.
Surmonter les pressions simultanées sur les touches :
La gestion de plusieurs touches enfoncées simultanément (une combinaison de touches, comme Ctrl+C) nécessite des considérations supplémentaires au-delà du simple rebond de touches individuelles.
* Claviers matriciels : Au lieu de commutateurs individuels pour chaque touche, de nombreux claviers utilisent une disposition matricielle. Les lignes et les colonnes sont analysées pour déterminer quelle touche est enfoncée. Cela permet intrinsèquement de détecter les pressions simultanées sur des touches. Le logiciel doit ensuite interpréter la combinaison de lignes et de colonnes actives.
* Interrogations et interruptions : L'interrogation implique de vérifier périodiquement l'état des touches, tandis que l'entrée pilotée par interruption traite chaque pression sur une touche comme une interruption. Les interruptions peuvent améliorer la réactivité, mais peuvent nécessiter une manipulation prudente pour éviter des situations de concurrence critique lorsque plusieurs touches sont enfoncées simultanément.
* Files d'attente/tampons de clés : Les logiciels utilisent souvent des files d'attente ou des tampons pour stocker temporairement les frappes au clavier. Cela gère les situations dans lesquelles plusieurs touches sont enfoncées presque simultanément, garantissant que toutes les pressions sur les touches sont enregistrées dans le bon ordre.
En pratique, une solution robuste combine souvent l’anti-rebond matériel et logiciel. Un simple circuit RC peut gérer la majorité du rebond, avec un logiciel gérant tout bruit résiduel ou des aspects de synchronisation plus sophistiqués. Le choix de l'approche matérielle et logicielle dépend des contraintes, du budget et des exigences de performances de l'application. Pour des applications simples, une solution uniquement logicielle peut suffire. Pour les applications exigeantes telles que les jeux ou le contrôle industriel, des solutions matérielles plus robustes sont généralement nécessaires.
|