- Principe de base du codeur:
- Création d'encodeurs à l'aide de conceptions logiques combinées
- Encodeurs 8: 3:
- Inconvénient des encodeurs normaux:
- Encodeur prioritaire:
Les encodeurs, comme leur nom l'indique, encode un plus gros bit d'information en une valeur de bit plus petite. Il existe de nombreux types de codeurs en fonction du nombre d'entrées et de sorties et en fonction de son fonctionnement. Mais chaque encodeur a une règle sous-jacente, le nombre de lignes de sortie sur un encodeur sera toujours inférieur au nombre de lignes d'entrée. Nous en apprendrons plus sur les encodeurs, sur ce qu'est un encodeur, comment et pourquoi ils sont utilisés dans les circuits numériques dans cet article.
Principe de base du codeur:
Imaginons qu'un encodeur soit une boîte noire comme indiqué ci-dessous, ce qui réduit comme par magie le nombre de lignes d'entrée de 4 à seulement 2 lignes de sortie, tout en fournissant les mêmes informations sans aucune perte de données.
Commençons par déterminer le nom de cet encodeur. Il a quatre entrées et deux sorties, le nom de cet encodeur sera donc 4: 2 Encoder. Si un encodeur a un nombre « n » de lignes de sortie, le nombre de lignes d'entrée sera de 2 n, dans notre cas, le nombre de lignes de sortie est de deux (n = 2) donc le nombre de lignes d'entrée doit être (2 2 = 4) quatre, ce qui est exactement le cas. Les quatre broches d'entrée sont étiquetées de I0 à I3 et les deux broches de sortie sont étiquetées de O0 à O1
Alors, comment l'encodeur convertit quatre signaux en deux, cela peut être compris en jetant un œil à la table de vérité ci - dessous. Il est également important de savoir qu'un encodeur ordinaire comme celui montré ici a pour règle qu'à un moment donné, une seule broche d'entrée doit être haute, donc dans la table de vérité suivante, une seule entrée sera haute.
Toutes les conditions possibles de l'entrée de la sortie sont indiquées dans la table de vérité ci-dessus. Par exemple, lorsque seul O1 est haut (1) et que toutes les autres entrées sont basses (0), les deux broches de sortie seront basses (0). De même pour chaque cas, les broches de sortie changeront également son état. En utilisant cet état des bits de sortie, l'utilisateur pourra retracer le signal d'entrée qui aurait été transmis au codeur.
D'accord, qu'est-ce qui est intéressant de convertir 4 lignes en 2 lignes pourquoi en avons-nous même besoin?
Pour comprendre, nous avons expliqué un encodeur 4: 2, mais il existe d'autres encodeurs qui peuvent prendre un plus grand nombre d'entrées et les convertir en un nombre inférieur de sorties comme l' encodeur 8: 3, l'encodeur 16: 4 etc. Ces types of Encoder sont très utiles lorsque nous devons réduire le nombre de broches utilisées sur un MCU / MPU ou réduire le nombre de fils porteurs de signaux dans les API et autres systèmes où un tableau de commutateur ou de LED. Il est également utilisé pour transmettre efficacement des données en utilisant des fils de moindre qualité. Dans certaines applications, nous pourrions avoir une situation où plus d'une entrée pourrait être élevée (1) dans ce cas, nous allons quelque chose appelé encodeur de priorité dont nous discuterons plus loin dans cet article.
Création d'encodeurs à l'aide de conceptions logiques combinées
Maintenant que nous savons comment fonctionne un encodeur et où il est utilisé. Apprenons à en construire un à l'aide de simples portes logiques. Bien que des encodeurs tels que 8: 3 soient disponibles sous forme de circuits intégrés simples tels que SN74LS148, il est important de savoir comment ils sont construits afin que nous puissions créer des encodeurs personnalisés pour nos projets en fonction de la table de vérité requise.
Expression booléenne:
La première dans la conception du dispositif logique combinatoire consiste à trouver l'expression booléenne pour la table de vérité. C'est très facile et peut être facilement déterminé simplement en regardant la table de vérité. Le même tableau de vérité que nous avons vu précédemment est donné ci-dessous avec quelques illustrations pour vous permettre de mieux comprendre.
Le nombre d'expressions sera égal au nombre de lignes de sortie, ici nous avons deux sorties et donc nous avons deux expressions. Pour la première sortie O0, vérifiez simplement à quelle condition elle est élevée (1) et retracez le numéro de broche d'entrée correspondant qui reste également élevé (1). De même pour toutes les valeurs élevées de O0, notez quel numéro de broche d'entrée est élevé et ajoutez les broches. Les broches d'entrée correspondant à la broche de sortie O0 sont surlignées en rouge au-dessus et pour O1 en bleu. Ainsi, l'expression pour O0 et O1 sera
O 1 = I 3 + I 2 O 0 = I 3 + I 1
Schéma du circuit du codeur 4: 2:
Une fois que nous avons obtenu l'expression booléenne, il suffit de la dessiner sous la forme de portes. Ici, puisque nous avons une opération d'addition (+), nous utiliserons les portes OU pour construire nos circuits. Vous pouvez également simplifier ou modifier l'expression booléenne en fonction de vos besoins. Le schéma de circuit pour l'expression ci-dessus est montré ci-dessous
Le circuit peut facilement être construit en utilisant un IC de porte 7432 OU. J'ai construit mon circuit encodeur sur une maquette comme indiqué ci-dessous
Les quatre lignes d'entrée (I0, I1, I2 et I3) sont fournies par les quatre boutons poussoirs, lorsque le bouton est enfoncé, il relie + 5V à la broche ce qui en fait la logique 1 et lorsque le bouton n'est pas enfoncé, la broche est maintenue à la masse à travers une résistance de rappel de 10k pour en faire un zéro logique. Les sorties (O0 et O1) sont représentées à l'aide d'une paire de LED rouges. Si la LED s'allume, cela signifie que la logique de sortie est 1 et si elles sont désactivées, cela signifie que la logique de sortie 0. Le fonctionnement complet du circuit encodeur est montré dans la vidéo ci-dessous
Comme vous pouvez le voir lorsque le premier bouton est enfoncé, l'entrée I0 est rendue haute et donc les deux sorties restent faibles. Lorsque le deuxième bouton est enfoncé, l'entrée I1 est activée et donc une LED devient haute pour indiquer que O0 est haut. Enfin, lorsque le quatrième bouton est enfoncé, l'entrée I3 est rendue haute et ainsi les deux LED deviennent hautes. C'est un circuit très simple, nous l'avons donc construit facilement sur une maquette, mais pour les encodeurs pratiques, le circuit deviendra un peu plus complexe. Cependant, les encodeurs sont également disponibles sous forme de packages IC qui peuvent être achetés si cela convient à votre projet.
Encodeurs 8: 3:
Le fonctionnement et l'utilisation de l'encodeur 8: 3 sont également similaires à l'encodeur 4: 2 à l'exception du nombre de broches d'entrée et de sortie. Le codeur 8: 3 est également appelé codeur octal vers binaire le schéma de principe d'un codeur 8: 3 est illustré ci-dessous
Ici, le codeur a 8 entrées et 3 sorties, encore une fois, une seule entrée doit être au niveau haut (1) à un moment donné. Puisqu'il y a 8 entrées, elle est appelée entrée octale et comme il y a trois sorties, elle est également appelée sortie binaire. La table de vérité de l'encodeur est présentée ci-dessous.
Tableau de vérité de l'encodeur 8: 3:
Expression booléenne:
Puisque nous avons tes sorties, nous aurons trois expressions comme indiqué ci-dessous
O 2 = I 7 + I 6 + I 5 + I 4 O 1 = I 7 + I 6 + I 3 + I 2 O 0 = I 7 + I 5 + I 3 + I 1
Schéma du circuit du codeur 8: 3:
Une fois que l'expression booléenne est obtenue, comme toujours, nous pouvons construire le diagramme de circuit en utilisant les portes OU comme indiqué ci-dessous.
Le circuit utilise un IC de porte OU à 4 entrées, vous pouvez également simplifier l'expression booléenne pour utiliser d'autres IC de porte à 2 entrées normales.
Inconvénient des encodeurs normaux:
Ces types d'encodeurs souffrent des inconvénients majeurs suivants
- Lorsqu'aucune des entrées n'est élevée, la sortie sera égale à zéro, mais cette condition entre également en conflit avec le premier bit étant haut (MSB). Par conséquent, il faut toujours veiller à ce qu'au moins un bit reste toujours activé
- Lorsque plus d'une entrée est élevée, la sortie est réduite et peut donner le résultat pour l'une ou l'autre des entrées, ce qui prête à confusion.
Pour surmonter ces difficultés, nous utilisons un autre type de codeur appelé codeur prioritaire qui utilise une sortie supplémentaire pour déterminer si la sortie est valide, et lorsque plus d'une entrée est élevée, celle qui va haut à partir du LSD est seule considérée tout en étant ignorant les autres entrées.
Encodeur prioritaire:
Analysons un encodeur de priorité 4: 2 à titre d'exemple pour comprendre en quoi il diffère d'un encodeur normal et il peut surmonter les deux inconvénients mentionnés ci-dessus. Le schéma de principe d'un codeur prioritaire 4: 2 est illustré ci-dessous
Un encodeur de priorité 4: 2 a également 4 entrées et 2 sorties, mais nous ajouterons une autre sortie appelée V qui signifie bit valide. Ce bit valide vérifiera si les quatre broches d'entrée sont à l'état bas (0) si bas, le bit se rendra également à l'état bas indiquant que la sortie n'est pas valide ainsi nous pouvons surmonter le premier inconvénient mentionné ci-dessus.
Tableau de vérité du codeur de priorité 4: 2:
L'inconvénient suivant peut être évité en donnant la priorité aux bits MSB, le codeur vérifiera à partir du MSB et une fois qu'il aura trouvé le premier bit aussi haut (1), il générera la sortie en conséquence. Donc, peu importe si les autres broches sont hautes ou basses. Par conséquent, dans le tableau de vérité ci-dessous, une fois que 1 est atteint, les valeurs indifférentes sont présentées par «X».
Expression booléenne:
Maintenant, nous devons dériver trois expressions qui sont pour O0, O1 et V. Puisque la table de vérité n'a pas d'items importants, nous devons utiliser la méthode K-map pour dériver l'expression booléenne pour cela. Nous n'allons pas expliquer comment résoudre avec K-maps car cela est hors de portée de cet article. Mais la carte est présentée ci-dessous afin que vous puissiez interférer et apprendre par vous-même.
Dans les cartes ci-dessus, celle de gauche est pour O1 et celle de droite pour O0. Les lignes de sortie sont mentionnées par y et les lignes d'entrée par x. Donc, en organisant l'équation en conséquence, nous obtiendrons ce qui suit.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
De même, pour le bit valide «V», l'expression booléenne peut être donnée comme
V = I 3 + I 2 + I 1 + I 0
Schéma:
Le schéma de circuit de ce projet peut être créé à l'aide des expressions booléennes.
Le circuit peut être construit en utilisant les portes de base NOT, AND et OR. Ici les bits O0 et O1 sont considérés comme des sorties tandis que le bit V sert à valider la sortie. Seulement si le bit V est haut, la sortie sera prise en compte si la valeur de V est basse (0) la sortie doit être ignorée, car cela implique que toutes les broches d'entrée sont nulles.