- Βασική αρχή του κωδικοποιητή:
- Δημιουργία κωδικοποιητών που χρησιμοποιούν συνδυαστικά λογικά σχέδια
- Κωδικοποιητές 8: 3:
- Μειονέκτημα των Κανονικών Κωδικοποιητών:
- Κωδικοποιητής προτεραιότητας:
Οι κωδικοποιητές, όπως υποδηλώνει το όνομα, κωδικοποιούν ένα μεγαλύτερο κομμάτι πληροφοριών σε μια μικρότερη τιμή bit. Υπάρχουν πολλοί τύποι κωδικοποιητών βάσει του αριθμού εισόδων και εξόδων και βάσει του τρόπου λειτουργίας του. Αλλά κάθε κωδικοποιητής έχει έναν βασικό κανόνα, ο αριθμός των γραμμών εξόδου σε έναν κωδικοποιητή θα είναι πάντα μικρότερος από τον αριθμό των γραμμών εισαγωγής. Θα μάθουμε περισσότερα για τους κωδικοποιητές, τι είναι ένας κωδικοποιητής, πώς και γιατί χρησιμοποιούνται σε ψηφιακά κυκλώματα σε αυτό το άρθρο.
Βασική αρχή του κωδικοποιητή:
Ας φανταστούμε ότι ένας κωδικοποιητής θα είναι ένα μαύρο κουτί όπως φαίνεται παρακάτω, ο οποίος μειώνει μαγικά τον αριθμό των γραμμών εισόδου από 4 σε μόλις 2 γραμμές εξόδου, αλλά εξακολουθούμε να παρέχουμε τις ίδιες πληροφορίες χωρίς απώλεια δεδομένων.
Αρχικά ας προσδιορίσουμε ποιο θα ήταν το όνομα αυτού του κωδικοποιητή. Έχει τέσσερις εισόδους και δύο εξόδους, έτσι το όνομα αυτού του κωδικοποιητή θα είναι κωδικοποιητής 4: 2. Εάν ένας κωδικοποιητής έχει " n " αριθμό γραμμών εξόδου, τότε ο αριθμός των γραμμών εισόδου θα είναι 2 n, στην περίπτωσή μας ο αριθμός των γραμμών εξόδου είναι δύο (n = 2), επομένως ο αριθμός των γραμμών εισόδου θα πρέπει να είναι (2 2 = 4) τέσσερις, πράγμα που ισχύει. Οι τέσσερις ακροδέκτες εισόδου επισημαίνονται από I0 έως I3 και οι δύο ακίδες εξόδου επισημαίνονται από O0 έως O1
Πώς λοιπόν ο Encoder μετατρέπει τέσσερα σήματα σε δύο, μπορεί να γίνει κατανοητό ρίχνοντας μια ματιά στον παρακάτω πίνακα αλήθειας. Είναι επίσης σημαντικό να γνωρίζετε ότι ένας συνηθισμένος κωδικοποιητής όπως αυτός που εμφανίζεται εδώ έχει έναν κανόνα ότι σε δεδομένη στιγμή μόνο ένας πείρος εισόδου θα πρέπει να είναι υψηλός, έτσι στον παρακάτω πίνακα αλήθειας μόνο μία είσοδος θα είναι υψηλή.
Κάθε πιθανή συνθήκη της εισόδου η έξοδος εμφανίζεται στον παραπάνω πίνακα αλήθειας. Για παράδειγμα, όταν μόνο το O1 είναι υψηλό (1) και όλες οι άλλες είσοδοι είναι χαμηλές (0) τότε και οι δύο ακίδες εξόδου θα είναι χαμηλές (0). Ομοίως για κάθε περίπτωση οι ακίδες εξόδου θα αλλάξουν επίσης την κατάστασή της. Χρησιμοποιώντας αυτήν την κατάσταση bit εξόδου, ο χρήστης θα μπορεί να εντοπίσει το σήμα εισόδου που θα είχε δοθεί στον Encoder
Εντάξει, τι είναι φανταστικό για τη μετατροπή 4 γραμμών σε 2 γραμμές γιατί το χρειαζόμαστε ακόμη;
Για λόγους κατανόησης έχουμε εξηγήσει έναν κωδικοποιητή 4: 2, αλλά υπάρχουν και άλλοι κωδικοποιητές που μπορούν να πάρουν μεγαλύτερο αριθμό εισόδων και να τις μετατρέψουν σε χαμηλότερο αριθμό εξόδων όπως ο κωδικοποιητής 8: 3, ο κωδικοποιητής 16: 4 κ.λπ. Αυτοί οι τύποι του Encoder είναι πολύ χρήσιμο όταν πρέπει να μειώσουμε τον αριθμό των ακίδων που χρησιμοποιούνται σε ένα MCU / MPU ή να μειώσουμε τον αριθμό των καλωδίων μεταφοράς σήματος σε PLC και σε άλλα συστήματα όπου μια σειρά διακοπτών ή LED. Χρησιμοποιείται επίσης στην αποτελεσματική μετάδοση δεδομένων χρησιμοποιώντας μικρότερα καλώδια. Σε ορισμένες εφαρμογές ενδέχεται να έχουμε μια κατάσταση όπου περισσότερες από μία είσοδο θα μπορούσαν να είναι υψηλές (1) σε αυτήν την περίπτωση θα κάνουμε κάτι που ονομάζεται Priority Encoder το οποίο θα συζητήσουμε περαιτέρω σε αυτό το άρθρο.
Δημιουργία κωδικοποιητών που χρησιμοποιούν συνδυαστικά λογικά σχέδια
Τώρα που γνωρίζουμε πώς λειτουργεί ένας κωδικοποιητής και πού χρησιμοποιείται. Ας μάθουμε πώς να φτιάχνουμε ένα χρησιμοποιώντας απλές πύλες λογικής. Παρόλο που οι κωδικοποιητές όπως το 8: 3 είναι διαθέσιμοι ως ένα τακτοποιημένο ενιαίο πακέτο IC όπως το SN74LS148, είναι σημαντικό να γνωρίζουμε πώς κατασκευάζονται έτσι ώστε να μπορούμε να κάνουμε προσαρμοσμένους κωδικοποιητές για τα έργα μας με βάση τον απαιτούμενο πίνακα αλήθειας.
Boolean Έκφραση:
Ο πρώτος στο σχεδιασμό της συσκευής Combinational Logic είναι να βρείτε το Boolean Expression για τον πίνακα αλήθειας. Είναι πολύ εύκολο και μπορεί εύκολα να προσδιοριστεί απλά κοιτάζοντας τον πίνακα αλήθειας. Ο ίδιος πίνακας αλήθειας που είδαμε νωρίτερα δίνεται παρακάτω με μερικές απεικονίσεις για να σας κάνει να καταλάβετε καλύτερα.
Ο αριθμός των εκφράσεων θα είναι ίσος με τον αριθμό των γραμμών εξόδου, εδώ έχουμε δύο εξόδους και ως εκ τούτου έχουμε δύο εκφράσεις. Για την πρώτη έξοδο O0, απλώς ελέγξτε σε ποια κατάσταση είναι υψηλή (1) και εντοπίστε τον αντίστοιχο αριθμό pin εισόδου που παραμένει επίσης υψηλός (1). Ομοίως για όλες τις υψηλές τιμές της σημείωσης O0, ποιος αριθμός pin εισαγωγής είναι υψηλός και προσθέστε τις ακίδες. Οι ακίδες εισόδου που αντιστοιχούν στην έξοδο O0 επισημαίνονται με κόκκινο χρώμα και για το O1 επισημαίνονται με μπλε χρώμα. Έτσι, η έκφραση για O0 και O1 θα είναι
O 1 = I 3 + I 2 O 0 = I 3 + I 1
Διάγραμμα κυκλώματος κωδικοποιητή 4: 2:
Μόλις αποκτήσουμε το Boolean Expression, πρέπει απλώς να το σχεδιάσουμε με τη μορφή Gates. Εδώ επειδή έχουμε λειτουργία προσθήκης (+) θα χρησιμοποιήσουμε τις πύλες OR για την κατασκευή των κυκλωμάτων μας. Μπορείτε επίσης να απλοποιήσετε ή να τροποποιήσετε την έκφραση Boolean ανάλογα με τις ανάγκες σας. Το διάγραμμα κυκλώματος για την παραπάνω έκφραση φαίνεται παρακάτω
Το κύκλωμα μπορεί εύκολα να κατασκευαστεί χρησιμοποιώντας IC 7432 OR. Έχω δημιουργήσει το κύκλωμα κωδικοποιητή μου πάνω από ένα breadboard όπως φαίνεται παρακάτω
Οι τέσσερις γραμμές εισόδου (I0, I1, I2 και I3) παρέχονται από τα τέσσερα κουμπιά, όταν πατηθεί το κουμπί συνδέει + 5V με τον πείρο καθιστώντας το λογικό 1 και όταν το κουμπί δεν πατηθεί, ο πείρος διατηρείται στη γείωση μέσω μιας αντίστασης 10k προς τα κάτω για να καταστεί λογική μηδέν. Οι έξοδοι (O0 και O1) απεικονίζονται χρησιμοποιώντας ένα ζευγάρι κόκκινου LED. Εάν το LED ανάβει τότε σημαίνει ότι η λογική εξόδου είναι 1 και αν είναι απενεργοποιημένη, αυτό σημαίνει ότι η λογική εξόδου 0. Η πλήρης λειτουργία του κυκλώματος κωδικοποιητή εμφανίζεται στο παρακάτω βίντεο
Όπως μπορείτε να δείτε όταν πατηθεί το πρώτο κουμπί, η είσοδος I0 γίνεται υψηλή και ως εκ τούτου και οι δύο έξοδοι παραμένουν χαμηλές. Όταν πατηθεί το δεύτερο κουμπί, η είσοδος I1 είναι ενεργοποιημένη και έτσι ένα LED ανάβει για να δείξει ότι το O0 είναι υψηλό. Τέλος, όταν πατηθεί το τέταρτο κουμπί, η είσοδος I3 γίνεται υψηλή και έτσι και τα δύο LED φτάνουν ψηλά. Αυτό είναι ένα πολύ απλό κύκλωμα, επομένως το έχουμε φτιάξει εύκολα σε ένα breadboard, αλλά, για πρακτικούς κωδικοποιητές, το κύκλωμα θα γίνει λίγο πιο περίπλοκο. Ωστόσο, οι κωδικοποιητές είναι επίσης διαθέσιμοι ως πακέτα IC τα οποία μπορούν να αγοραστούν εάν ταιριάζει στο έργο σας.
Κωδικοποιητές 8: 3:
Η λειτουργία και η χρήση του κωδικοποιητή 8: 3 είναι επίσης παρόμοια με τον κωδικοποιητή 4: 2 εκτός από τον αριθμό των καρφιτσών εισόδου και εξόδου. Ο κωδικοποιητής 8: 3 καλείται επίσης ως Octal to Binary Encoder, το παρακάτω διάγραμμα ενός κωδικοποιητή 8: 3 φαίνεται παρακάτω
Εδώ ο κωδικοποιητής έχει 8 εισόδους και 3 εξόδους, και πάλι μόνο μία είσοδος πρέπει να είναι υψηλή (1) ανά δεδομένη στιγμή. Δεδομένου ότι υπάρχουν 8 είσοδοι ονομάζεται οκταδική είσοδος και δεδομένου ότι υπάρχουν τρεις έξοδοι ονομάζεται επίσης δυαδική έξοδος. Ο πίνακας αλήθειας του Encoder φαίνεται παρακάτω.
Πίνακας αλήθειας κωδικοποιητή 8: 3:
Boolean Έκφραση:
Δεδομένου ότι έχουμε τις εξόδους σας, θα έχουμε τρεις εκφράσεις όπως φαίνεται παρακάτω
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
Διάγραμμα κυκλώματος κωδικοποιητή 8: 3:
Μόλις ληφθεί η έκφραση Boolean όπως πάντα μπορούμε να δημιουργήσουμε το Διάγραμμα κυκλώματος χρησιμοποιώντας τις πύλες OR όπως φαίνεται παρακάτω.
Το κύκλωμα χρησιμοποιεί ένα IC εισόδου 4 εισόδων, μπορείτε επίσης να απλοποιήσετε το Boolean Expression για να χρησιμοποιήσετε άλλα κανονικά 2 IC εισόδου.
Μειονέκτημα των Κανονικών Κωδικοποιητών:
Αυτοί οι τύποι Encoders υποφέρουν από τα ακόλουθα σημαντικά μειονεκτήματα
- Όταν καμία από τις εισόδους δεν είναι υψηλή, η έξοδος θα είναι ίση και μηδενική, αλλά αυτές οι συνθήκες έρχονται επίσης σε αντίθεση με το πρώτο bit είναι υψηλό (MSB). Ως εκ τούτου, πρέπει πάντα να λαμβάνεται μέριμνα ώστε τουλάχιστον ένα κομμάτι να παραμένει ΕΝΕΡΓΟ πάντα
- Όταν περισσότερες από μία είσοδο είναι υψηλές, η έξοδος θα καταρρεύσει και μπορεί να δώσει το αποτέλεσμα για οποιαδήποτε από τις εισόδους που οδηγεί σε σύγχυση.
Για να ξεπεράσουμε αυτές τις δυσκολίες, χρησιμοποιούμε έναν διαφορετικό τύπο κωδικοποιητή που ονομάζεται Priority Encoder, ο οποίος χρησιμοποιεί μια πρόσθετη έξοδο για να προσδιορίσει εάν η έξοδος είναι έγκυρη και όταν περισσότερες από μία είσοδο βοηθούν υψηλά, αυτή που πηγαίνει υψηλή ξεκινώντας από το LSD, θεωρείται μόνη της ενώ αγνοώντας τις άλλες εισόδους.
Κωδικοποιητής προτεραιότητας:
Ας αναλύσουμε έναν Κωδικοποιητή Προτεραιότητας 4: 2 ως παράδειγμα για να καταλάβουμε πώς διαφέρει από έναν κανονικό Κωδικοποιητή και μπορεί να ξεπεράσει τα παραπάνω δύο μειονεκτήματα. Το διάγραμμα μπλοκ ενός κωδικοποιητή προτεραιότητας 4: 2 φαίνεται παρακάτω
Ένας κωδικοποιητής προτεραιότητας 4: 2 έχει επίσης 4 εισόδους και 2 εξόδους, αλλά θα προσθέσουμε μια άλλη έξοδο που ονομάζεται V που σημαίνει έγκυρο bit. Αυτό το έγκυρο bit θα ελέγξει εάν και οι τέσσερις ακίδες εισόδου είναι χαμηλές (0) αν χαμηλή η bit θα κάνει επίσης χαμηλή δηλώνοντας ότι η έξοδος δεν είναι έγκυρη, έτσι μπορούμε να ξεπεράσουμε το πρώτο μειονέκτημα που αναφέρθηκε παραπάνω.
Πίνακας αλήθειας κωδικοποιητή προτεραιότητας 4: 2:
Το επόμενο μειονέκτημα μπορεί να αποφευχθεί δίνοντας προτεραιότητα στα MSB bits, ο Encoder θα ελέγξει από το MSB και μόλις βρει το πρώτο bit τόσο υψηλό (1) θα παράγει την έξοδο ανάλογα. Επομένως, δεν έχει σημασία αν οι άλλες ακίδες είναι υψηλές ή χαμηλές. Ως εκ τούτου, στον πίνακα αλήθειας παρακάτω, όταν επιτευχθεί το 1, οι τιμές μη φροντίδας παρουσιάζονται από το "X".
Boolean Έκφραση:
Τώρα πρέπει να αντλήσουμε τρεις εκφράσεις που είναι για τα O0, O1 και V. Δεδομένου ότι ο πίνακας αλήθειας δεν ενδιαφέρεται για αντικείμενα, πρέπει να χρησιμοποιήσουμε τη μέθοδο K-map για να αντλήσουμε τη Boolean Expression για αυτό. Δεν πρόκειται να καλύψουμε τον τρόπο επίλυσης με τους χάρτες K, καθώς είναι εκτός πεδίου αυτού του άρθρου. Αλλά ο χάρτης εμφανίζεται παρακάτω, ώστε να μπορείτε να παρέμβετε και να μάθετε μόνοι σας.
Στους παραπάνω χάρτες, το αριστερό είναι για το O1 και το σωστό για το O0. Οι γραμμές εξόδου αναφέρονται με y και οι γραμμές εισόδου αναφέρονται με x. Επομένως, τακτοποιώντας την εξίσωση θα λάβουμε τα ακόλουθα.
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
Ομοίως, για το έγκυρο bit "V" μπορεί να δοθεί η έκφραση Boolean ως
V = I 3 + I 2 + I 1 + I 0
Διάγραμμα κυκλώματος:
Το διάγραμμα κυκλώματος για αυτό το έργο μπορεί να δημιουργηθεί χρησιμοποιώντας τις εκφράσεις Boolean.
Το κύκλωμα μπορεί να κατασκευαστεί χρησιμοποιώντας τις βασικές πύλες NOT, AND και OR. Εδώ τα bit O0 και O1 θεωρούνται έξοδοι ενώ το bit V χρησιμοποιείται για την επικύρωση της εξόδου. Μόνο εάν το bit V είναι υψηλό, η έξοδος θα ληφθεί υπόψη εάν η τιμή του V είναι χαμηλή (0) η έξοδος θα πρέπει να αγνοηθεί, καθώς υπονοεί ότι όλες οι ακίδες εισόδου είναι μηδέν.