Comment implémenter l'antirebond matériel pour les interrupteurs et les relais lorsque l'antirebond logiciel n'est pas approprié
Avec la contribution de Rédacteurs nord-américains de DigiKey
2021-02-09
Dans le contexte de l'ingénierie électrique et électronique, un interrupteur est un composant qui peut établir ou couper un circuit électrique, interrompant ainsi un courant électrique ou le redirigeant d'un conducteur à un autre. Comme peuvent en témoigner les ingénieurs, il existe de nombreux types d'interrupteurs différents, notamment les interrupteurs à levier, les interrupteurs à bascule, les interrupteurs à bouton-poussoir, les microrupteurs et les interrupteurs de fin de course, les interrupteurs magnétiques et à lames, et les relais. Tous ont une chose en commun : ils rebondissent.
Normalement, ce rebond n'a que peu ou pas d'effet sur le circuit, mais si le circuit numérique est assez rapide pour détecter de multiples rebonds et y répondre, cela peut avoir de graves conséquences. La tâche d'un ingénieur est d'éviter ou d'atténuer les effets de ce rebond, ou de neutraliser les rebonds de l'interrupteur. Alors que l'industrie a longtemps pratiqué l'antirebond matériel, elle est passée plus récemment à des approches d'antirebond basées sur un logiciel. Cependant, il existe des situations où l'antirebond matériel constitue une meilleure option.
Cet article explique ce qu'est le rebond et discute des approches logicielles et matérielles d'antirebond. Il souligne ensuite les cas où l'antirebond matériel est une meilleure option avant de montrer comment il peut être mis en œuvre. Des dispositifs de commutation et des composants d'antirebond matériel sont présentés par le biais d'exemples de NKK Switches, ON Semiconductor, Texas Instruments, Maxim Integrated et LogiSwitch.
Rebond d'interrupteur
Lorsqu'un interrupteur ou un relais est actionné, ce qu'un humain perçoit comme une réponse unique instantanée à chaque changement d'état du dispositif peut en fait impliquer une centaine d'actions d'ouverture et de fermeture qui persistent pendant plusieurs millièmes de seconde avant que le contact ne se positionne.
Prenons l'exemple d'un interrupteur à levier unipolaire unidirectionnel (SPST) normalement ouvert (NO) à montage sur panneau, tel que le M2011SS1W01 de NKK. Supposons qu'un côté de cet interrupteur, qui peut être considéré comme l'entrée, soit connecté à la terre (0 volt (V)), et que l'autre côté, dans ce cas la sortie, soit connecté à une alimentation de 5 V (représentée par +ve) via une résistance d'excursion haute (R1) (Figure 1).
Figure 1 : Dans le cas d'un interrupteur à levier SPST-NO, le rebond peut se produire à la fois lorsque l'interrupteur est activé et désactivé. (Source de l'image : Max Maxfield)
Observez que le rebond de l'interrupteur peut se produire à la fois lorsque l'interrupteur est activé (fermé) et désactivé (ouvert). Parfois, les rebonds peuvent transitionner complètement entre les rails d'alimentation, ici considérés comme des états logiques 0 et 1. Dans ce cas, il s'agit de rebonds « propres ». En comparaison, si le signal n'atteint qu'une tension intermédiaire, on parle de rebonds « sales ».
Dans le cas d'un interrupteur à levier unipolaire bidirectionnel (SPDT) à montage sur panneau, comme le M2012SS1W01-BC de NKK, un rebond peut se produire à la fois sur les bornes normalement ouvertes (NO) et normalement fermées (NC) (Figure 2). Dans cet exemple, seuls les rebonds « propres » sont illustrés pour des raisons de simplicité.
Figure 2 : Dans le cas d'un interrupteur à levier SPDT, un rebond peut se produire sur les bornes NO et NC lorsque l'interrupteur est activé et désactivé. (Source de l'image : Max Maxfield)
Dans de nombreux cas, la durée de rebond du signal est telle qu'elle n'a aucun effet. Les problèmes surviennent lorsqu'un interrupteur est connecté à un équipement électronique suffisamment rapide pour détecter de multiples rebonds et y répondre. Il faut trouver un moyen de neutraliser les rebonds du signal provenant de l'interrupteur avant qu'ils ne soient pris en compte par l'équipement électronique.
Antirebond logiciel ou matériel
Dans les années 1960 et 1970, l'antirebond des interrupteurs a été implémenté à l'aide de diverses techniques matérielles, allant de simples circuits à retard RC (résistance-capacité) utilisés avec les interrupteurs SPST à des fonctions de verrouillage SR (set/reset) plus sophistiquées.
Plus récemment, et parce que de nombreux systèmes intègrent un microprocesseur (MPU) ou un microcontrôleur (MCU), il est devenu courant d'utiliser des techniques logicielles pour neutraliser les rebonds du signal provenant de tout interrupteur. Cependant, l'antirebond logiciel n'est pas toujours la meilleure approche. Certaines applications impliquent de petits processeurs à faibles performances et à mémoire limitée, avec un espace de code et/ou des cycles d'horloge limités pour implémenter des routines antirebonds. Dans ces cas, une implémentation matérielle peut constituer une meilleure solution.
En outre, de nombreux développeurs logiciels ne connaissent pas les caractéristiques physiques des interrupteurs, comme le fait qu'en plus de varier d'une activation à l'autre, les caractéristiques de rebond d'un interrupteur peuvent être affectées par les conditions environnementales comme la température et l'humidité.
Le problème lié au manque d'expertise sur les interrupteurs des développeurs logiciels est exacerbé par le fait que la littérature disponible concernant le rebond des interrupteurs est souvent confuse et contradictoire. Par exemple, il est fréquent de lire qu'un interrupteur n'aura plus de rebond 1 milliseconde (ms) après son activation ou sa désactivation. Cependant, Jack Ganssle, expert reconnu en systèmes embarqués, a effectué des tests empiriques sur différents types d'interrupteurs, activant chaque interrupteur 300 fois et enregistrant le nombre minimum et maximum de rebonds pour l'ouverture et la fermeture des contacts. Il a signalé une durée moyenne de rebond de 1,6 ms et une durée maximale de rebond de 6,2 ms. Certaines meilleures pratiques industrielles et militaires recommandent d'attendre 20 ms après l'activation initiale avant de supposer que les rebonds de l'interrupteur ont pris fin ; d'autres préconisent d'attendre 20 ms après le dernier rebond détecté avant de déclencher toute action.
De plus, il existe de nombreux systèmes simples sans processeur qui exigent également l'antirebond des interrupteurs. Les exemples de tels systèmes incluent un compteur binaire commandant des affichages à sept segments comptant les impulsions d'un relais ; l'entrée de déclenchement d'un temporisateur 555 à une seule impulsion utilisé comme commande de moteur pour une porte ou un portail ; et une machine à états finis (FSM) basé sur des registres qui utilise des entrées codées. Il existe également des potentiomètres ajustables électroniques dont les valeurs sont modifiées à l'aide d'entrées d'interrupteur (montée, descente et parfois mémorisation), où le rebond de l'interrupteur serait problématique.
Tous ces exemples montrent clairement que des connaissances sur la manière d'effectuer un antirebond matériel peuvent être utiles à tout concepteur ou développeur.
Antirebond matériel d'un interrupteur SPST avec un circuit RC
L'une des solutions d'antirebond matériel d'interrupteur les plus simples utilise un circuit résistance-capacité (RC) en conjonction avec un interrupteur SPST. Il existe de nombreuses variantes d'un tel circuit. L'une des implémentations les plus polyvalentes implique deux résistances et une diode (Figure 3).
Figure 3 : Lors de l'utilisation d'un circuit RC pour l'antirebond d'un interrupteur SPST (en haut), l'ajout de la diode (D1) force le condensateur (C1) à se charger via la résistance R1 et à se décharger via la résistance R2. (Source de l'image : Max Maxfield)
Lorsque l'interrupteur est activé (fermé), le condensateur C1 est déchargé via la résistance R2. Si la diode D1 était omise de ce circuit, alors avec l'interrupteur désactivé (ouvert), C1 serait chargé via les résistances (R1 + R2). Cependant, la présence de D1 signifie que C1 ne sera chargé que via R1.
Dans certains cas, seule l'activation de l'interrupteur présente un intérêt (c'est-à-dire le déclenchement d'actions), auquel cas la diode D1 peut être omise. Toutefois, si des actions doivent être déclenchées lorsque l'interrupteur est activé et désactivé, et si la réduction du délai est une considération, l'ajout de D1 est recommandé.
Observez les courbes de charge et de décharge exponentielles de la tension du condensateur VC. Ce ne serait pas une bonne idée d'envoyer ce signal directement à l'entrée d'une fonction logique numérique en aval, qui n'apprécierait pas de voir un signal qui traîne dans la région indéfinie entre les « bonnes » valeurs logiques 0 et 1. Ce signal est plutôt envoyé à l'entrée d'un tampon avec une entrée de bascule de Schmitt. De plus, un tampon inverseur est généralement utilisé, comme par exemple un canal d'un CD74HC14M96 de Texas Instruments, car les fonctions d'inversion commutent plus rapidement que leurs homologues non inverseurs.
Antirebond d'un interrupteur SPDT avec un verrou SR
Dans le cas d'un interrupteur SPDT, une solution courante d'antirebond matériel consiste à utiliser un verrou SR. Depuis que des entreprises comme IBM ont utilisé cette technique pour les panneaux d'interrupteurs de leurs ordinateurs centraux vers les années 1960, cette approche est considérée comme la crème de la crème des solutions d'antirebond matériel simples. Un tel verrou peut être formé en utilisant deux portes NAND à deux entrées dos à dos ; par exemple, en employant deux canaux d'un circuit intégré NAND quadruple à deux entrées SN74HC00DR de Texas Instruments (Figure 4).
Figure 4 : L'utilisation d'un verrou SR basé NAND pour l'antirebond d'un interrupteur SPDT est une solution d'antirebond matériel très efficace. (Source de l'image : Max Maxfield)
Lorsque la borne NC de l'interrupteur est connectée à la terre, comme illustré dans la partie supérieure de la Figure 4, cela force la sortie de la porte g2 à la logique 1. À leur tour, les deux 1 logiques sur les entrées de la porte g1 forcent sa sortie à la logique 0. En comparaison, lorsque la borne NO de l'interrupteur est connectée à la terre, comme illustré dans la partie inférieure de la Figure 4, cela force la sortie de la porte g1 à la logique 1. À leur tour, les deux 1 logiques sur les entrées de la porte g2 forcent sa sortie à la logique 0.
La raison pour laquelle ce circuit fonctionne si bien est que lorsque ses deux entrées sont dans leur état logique 1 inactif, le verrou SR se souvient de sa valeur précédente. Rappelez-vous que, comme illustré à la Figure 2, lorsqu'un interrupteur SPDT est actionné, la borne connectée à la terre — à ce moment précis — rebondit en premier. Comme ces rebonds se situent entre sa valeur initiale (logique 0) et sa nouvelle valeur (logique 1), ils n'ont aucun effet sur l'état actuel du verrou SR. Ce n'est qu'une fois que cette borne cesse de rebondir que son homologue commence à rebondir, moment auquel le verrou SR change d'état.
Antirebond d'un interrupteur SPST avec un dispositif dédié
Un problème avec la solution précédente est que de nombreux concepteurs préfèrent utiliser des interrupteurs SPST parce qu'ils coûtent généralement moins cher que les interrupteurs SPDT. Il existe sur le marché un certain nombre de dispositifs antirebonds SPST dédiés bien connus, tels que le MC14490DWG d'ON Semiconductor et le MAX6818EAP+T de Maxim Integrated.
Un autre fabricant, LogiSwitch, propose une suite de solutions antirebonds à trois, six et neuf canaux, en boîtiers à montage traversant et en boîtiers à montage en surface (CMS). Prenons l'exemple d'un circuit utilisant un dispositif LS18-S de LogiSwitch (Figure 5).
Figure 5 : Utilisation d'une puce LS18-S à trois canaux dédiée pour l'antirebond d'un interrupteur SPDT (des dispositifs à six et neuf canaux sont également disponibles). (Source de l'image : Max Maxfield)
Comme tous les produits de la gamme LogiSwitch, le LS18-S prend en charge une plage de tensions de fonctionnement de 2,5 V à 5,5 V (la valeur de la tension d'alimentation n'affecte pas le temps de réponse du dispositif). De plus, contrairement à d'autres solutions de circuits intégrés dédiées, les dispositifs antirebonds de LogiSwitch ne nécessitent aucun composant supplémentaire tel qu'une horloge externe, un circuit de temporisation RC ou des résistances d'excursion haute sur les entrées ou les sorties.
Le LS18-S utilise la technologie NoBounce adaptative propriétaire de LogiSwitch, qui offre un haut niveau d'immunité au bruit. Les pics de bruit d'une durée inférieure à 20 ms ne peuvent pas démarrer ou terminer un cycle, et les sorties sont retardées de 20 ms après le rebond final de l'interrupteur, tant à l'activation qu'à la désactivation, quelle que soit la durée du rebond.
Conclusion
Il existe de nombreux types d'interrupteurs différents, notamment des interrupteurs à levier, des interrupteurs à bascule et des interrupteurs à bouton-poussoir, qui sont tous exposés à des rebonds. S'il n'est pas atténué, le rebond des interrupteurs peut amener les microprocesseurs et d'autres circuits électroniques à considérer une seule activation d'interrupteur comme des événements multiples.
Le signal de rebond d'un interrupteur est souvent neutralisé par un logiciel s'exécutant dans un microcontrôleur. Bien qu'il s'agisse d'une solution peu coûteuse, comme illustré, ce n'est pas forcément la meilleure dans tous les cas, par exemple pour les systèmes basés sur des microcontrôleurs aux performances et à la mémoire limitées, les développeurs logiciels manquant d'expertise sur les problèmes liés aux interrupteurs, ou pour les systèmes implémentés sans microcontrôleur.
Alternativement, l'antirebond peut être effectué dans le matériel en utilisant une variété d'approches telles que des circuits résistance-capacité, des verrous SR et des circuits intégrés dédiés.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.




