Encodeurs Prioritaires : Compréhension et Applications
Les encodeurs prioritaires prennent toutes leurs entrées de données une par une et les convertissent en un code binaire équivalent à la sortie.
Contrairement à un multiplexeur qui sélectionne une seule ligne d’entrée de données et envoie ensuite ces données à une seule ligne de sortie ou à un interrupteur, la fonction d’un encodeur prioritaire est de produire une adresse de sortie binaire pour l’entrée ayant la priorité la plus élevée.
L’Encodeur Numérique, plus communément appelé Encodeur Binaire, prend toutes ses entrées de données une par une et les convertit en une seule sortie codée. On peut donc dire qu’un encodeur binaire est un circuit logique combinatoire à entrées multiples qui convertit le niveau logique “1” à ses entrées en un code binaire équivalent à sa sortie.
En général, les encodeurs numériques produisent des sorties de codes 2 bits, 3 bits ou 4 bits selon le nombre de lignes d’entrée de données. Un encodeur binaire de “n bits” a 2n lignes d’entrée et n bits de lignes de sortie, avec des types courants comprenant les configurations 4 à 2, 8 à 3 et 16 à 4 lignes.
Les lignes de sortie d’un encodeur numérique génèrent l’équivalent binaire de la ligne d’entrée dont la valeur est égale à “1” et sont disponibles pour encoder un motif d’entrée décimal ou hexadécimal en un code binaire ou “B.C.D.” (décimal codé binaire).
Encodeur Binaire 4 à 2
Un des principaux inconvénients des encodeurs numériques standards est qu’ils peuvent générer le mauvais code de sortie lorsqu’il y a plus d’une entrée présente au niveau logique “1”. Par exemple, si nous mettons les entrées D1 et D2 sur HAUT au niveau logique “1” en même temps, la sortie résultante ne sera ni “01” ni “10”, mais sera à “11”, ce qui est un nombre binaire de sortie différent de l’entrée réelle présente. De plus, un code de sortie de tous les “0” logiques peut être généré lorsque toutes ses entrées sont à “0” OU lorsque l’entrée D0 est égale à un.
Une façon simple de surmonter ce problème est de “Prioriser” le niveau de chaque broche d’entrée. Donc, s’il y a plus d’une entrée au niveau logique “1” en même temps, le code de sortie réel correspondra uniquement à l’entrée ayant la priorité désignée la plus élevée. Ce type d’encodeur numérique est couramment appelé Encodeur Prioritaire ou Encodeur P pour faire court.
Encodeur Prioritaire
L’Encodeur Prioritaire résout les problèmes mentionnés ci-dessus en allouant un niveau de priorité à chaque entrée. La sortie des encodeurs prioritaires correspond à l’entrée actuellement active ayant la plus haute priorité. Ainsi, lorsque qu’une entrée ayant une priorité plus élevée est présente, toutes les autres entrées ayant une priorité inférieure seront ignorées.
L’encodeur prioritaire existe sous plusieurs formes, un exemple d’encodeur prioritaire à 8 entrées ainsi que sa table de vérité est montré ci-dessous.
Encodeur Prioritaire 8 à 3
Les encodeurs prioritaires sont disponibles sous forme de circuits intégrés standards et le TTL 74LS148 est un encodeur prioritaire à 8 à 3 bits qui a huit entrées actives BAISSEES (logique “0”) et fournit un code de 3 bits de l’entrée de la plus haute priorité à sa sortie.
Les encodeurs prioritaires sortent d’abord l’entrée de plus haute priorité. Par exemple, si les lignes d’entrée “D2“, “D3” et “D5” sont appliquées simultanément, le code de sortie serait pour l’entrée “D5” (“101”) car cela a la plus haute priorité parmi les 3 entrées. Une fois que l’entrée “D5” a été retirée, le code de sortie suivant serait celui de l’entrée “D3” (“011”), et ainsi de suite.
La table de vérité pour un encodeur prioritaire 8 à 3 bits est donnée comme suit :
Entrées Numériques | Sortie Binaire | |||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | Q2 | Q1 | Q0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | X | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 1 | X | X | 0 | 1 | 0 |
0 | 0 | 0 | 1 | X | X | X | X | 0 | 1 | 1 |
0 | 0 | 1 | X | X | X | X | X | 1 | 0 | 0 |
0 | 1 | X | X | X | X | X | X | 1 | 1 | 0 |
1 | X | X | X | X | X | X | X | 1 | 1 | 1 |
Où X signifie “peu importe”, c’est-à-dire qu’il peut être à un niveau logique “0” ou à un niveau logique “1”.
À partir de cette table de vérité, l’expression booléenne pour l’encodeur ci-dessus avec des entrées de données D0 à D7 et des sorties Q0, Q1, Q2 est donnée comme :
Sortie Q0
Sortie Q1
Sortie Q2
Ensuite, l’expression booléenne finale pour l’encodeur prioritaire incluant les entrées nulles est définie comme :
Expression de Sortie de l’Encodeur Prioritaire
Dans la pratique, ces entrées nulles seraient ignorées, permettant la mise en œuvre de l’expression booléenne finale pour les sorties de l’encodeur prioritaire 8 à 3. Nous pouvons construire un encodeur simple à partir de l’expression ci-dessus en utilisant des portes OU individuelles comme suit.
Encodeur Numérique utilisant des Portes Logiques
Applications de l’Encodeur Numérique
Encodeur de Clavier
Les encodeurs prioritaires peuvent être utilisés pour réduire le nombre de fils nécessaires dans un circuit ou une application particulière ayant plusieurs entrées. Par exemple, supposons qu’un microordinateur doit lire les 104 touches d’un clavier QWERTY standard où une seule touche sera pressée soit “HAUT” soit “BAS” à un moment donné.
Une façon serait de connecter tous les 104 fils provenant des touches individuelles du clavier directement à l’entrée de l’ordinateur, mais cela serait impraticable pour un petit PC domestique. Une autre alternative, et meilleure méthode serait d’interface le clavier avec le PC en utilisant un encodeur prioritaire.
Les 104 boutons ou touches individuels pourraient être encodés en un code ASCII standard de seulement 7 bits (0 à 127 décimal) pour représenter chaque touche ou caractère du clavier, puis être transmis comme un code B.C.D de 7 bits beaucoup plus petit directement à l’ordinateur. Des encodeurs de pavé numérique tels que l’encodeur de 20 touches 74C923 sont disponibles pour ce faire.
Encodeurs de Position
Une autre application plus courante est le contrôle de position magnétique utilisé sur la navigation de navires ou pour le positionnement de bras robotiques, etc. Ici, par exemple, la position angulaire ou rotative d’une boussole est convertie en un code numérique par un encodeur prioritaire à 8 à 3 lignes 74LS148 et intégrée au système informatique pour fournir des données de navigation, un exemple d’un simple encodeur de boussole à 8 positions et 3 bits de sortie est montré ci-dessous. Des aimants et des commutateurs reed pourraient être utilisés à chaque point de la boussole pour indiquer la position angulaire de l’aiguille.
Navigation par Encodeur Prioritaire
Direction de la Boussole | Sortie Binaire | ||
Q0 | Q1 | Q2 | |
Nord | 0 | 0 | 0 |
Nord-Est | 0 | 0 | 1 |
Est | 0 | 1 | 0 |
Sud-Est | 0 | 1 | 1 |
Sud | 1 | 0 | 0 |
Sud-Ouest | 1 | 0 | 1 |
Ouest | 1 | 1 | 0 |
Nord-Ouest | 1 | 1 | 1 |
Requêtes d’Interruption
D’autres applications, en particulier pour les Encodeurs Prioritaires, peuvent inclure la détection des interruptions dans les applications de microprocesseurs. Ici, le microprocesseur utilise des interruptions pour permettre aux périphériques tels que le lecteur de disque, le scanner, la souris ou l’imprimante de communiquer avec lui, mais le microprocesseur ne peut “parler” qu’à un périphérique à la fois, donc il a besoin d’un moyen de savoir quand un périphérique particulier veut communiquer avec lui.
Le processeur fait cela en utilisant des “Requêtes d’interruption” ou signaux “IRQ” pour attribuer une priorité à tous les périphériques de manière à ce que le périphérique le plus important soit servi en premier. L’ordre d’importance des périphériques dépendra de leur connexion à l’encodeur prioritaire.
Numéro IRQ | Utilisation Typique | Description |
IRQ 0 | Chronomètre système | Chronomètre interne du système. |
IRQ 1 | Clavier | Contrôleur de clavier. |
IRQ 3 | COM2 & COM4 | Deuxième et Quatrième Port Série. |
IRQ 4 | COM1 & COM3 | Premier et Troisième Port Série. |
IRQ 5 | Son | Carte son. |
IRQ 6 | Disquette | Contrôleur de disque flexible. |
IRQ 7 | Port parallèle | Imprimante parallèle. |
IRQ 12 | Souris | Souris PS/2. |
IRQ 14 | IDE Primaire | Contrôleur de disque dur principal. |
IRQ 15 | IDE Secondaire | Contrôleur de disque dur secondaire. |
Parce que la mise en œuvre d’un tel système utilisant des encodeurs prioritaires comme le standard 74LS148 implique des circuits logiques supplémentaires, des circuits intégrés spécifiquement conçus tels que le 8259 Contrôleur d’Interruption Prioritaire Programmable sont disponibles.
Résumé de l’Encodeur Numérique
Pour résumer, l’Encodeur Numérique est un circuit combinatoire qui génère un code spécifique à ses sorties, tel que binaire ou BCD, en réponse à une ou plusieurs entrées actives. Il existe deux principaux types d’encodeurs numériques : l’Encodeur Binaire et l’Encodeur Prioritaire.
Nous avons vu que l’Encodeur Binaire convertit l’une des 2n entrées en une sortie n bits. Un encodeur binaire a donc moins de bits de sortie que le code d’entrée. Les encodeurs binaires sont utiles pour compresser les données et peuvent être construits à partir de simples portes AND ou OR.
Un des principaux inconvénients d’un encodeur binaire standard est qu’il produira une erreur à ses sorties si plus d’une entrée est active en même temps. Pour surmonter ce problème, des encodeurs prioritaires ont été développés.
L’Encodeur Prioritaire est un autre type de circuit combinatoire similaire à un encodeur binaire, sauf qu’il génère un code de sortie basé sur l’entrée ayant la priorité la plus élevée. Les encodeurs prioritaires sont largement utilisés dans les systèmes numériques et informatiques en tant que contrôleurs d’interruptions de microprocesseurs où ils détectent l’entrée de priorité la plus élevée.
Dans le prochain tutoriel sur les dispositifs logiques combinatoires, nous examinerons la fonction complémentaire de l’encodeur, appelée Décodeur, qui convertit un code d’entrée n bits en l’une de ses 2n lignes de sortie.