ΗΥ-120: Ψηφιακή Σχεδίαση
Φθινόπωρο 2007 |
Τμ. Επ. Υπολογιστών © Πανεπιστήμιο Κρήτης |
[Up - Table of Contents] [Prev - 0. Introduction] |
[printer version - PDF] [2. Relays - Next] |
[Βιβλίο: προαιρετικά μπορείτε να διαβάσετε τις παραγράφους 1.1, 1.2 (σελ. 1-7) του βιβλίου (Wakerly)].
Ο πίνακας που ακολουθεί αποτελεί μιά περίληψη των παραπάνω παραγράφων 0.6 - 0.8. Γιά πληρότητα, προσθέσαμε και το κύκλωμα της §0.5 με το όνομα "ταυτότητα" (identity), αν και συνήθως δεν θεωρούμε ενδιαφέρουσα αυτήν την τόσο απλή λογική πράξη. Στον πίνακα αυτόν χρησιμοποιούμε τον όρο "OFF" όταν μεν πρόκειται γιά διακόπτες γιά να σημαίνει "ελεύθερος" (όχι πατημένος), όταν δε πρόκειται γιά LED γιά να σημαίνει "σβηστή"· αντίστροφα, ο όρος "ON" γιά μεν τους διακόπτες σημαίνει "πατημένος" γιά δε τις LED σημαίνει "σβηστή".
Ο πίνακας αυτός δίνει αναλυτικά τη συμπεριφορά των κυκλωμάτων και των αντίστοιχων "Λογικών Συναρτήσεων" (πράξεων) γιά τις διάφορες περιπτώσεις εισόδων τους, δηλαδή κατάστασης των διακοπτών· τέτοιους πίνακες τους λέμε Πίνακες Αληθείας (truth tables). Γιά το κύκλωμα της ταυτότητας, ο πίνακας αληθείας μας λέει ότι η έξοδός του (φωτοβολία της LED) βρίσκεται πάντα σε ευθεία αντιστοιχία με την είσοδό του (κατάσταση του διακόπτη A): OFF γιά OFF και ON γιά ON. Γιά τη λογική πράξη OXI (ΝΟΤ), ο πίνακας μας δείχνει ότι η έξοδός της είναι πάντα το αντίστροφο (ανάποδο) της εισόδου της A, εξ' ου και το όνομα του κυκλώματος αυτού που συχνά λέγεται "αντιστροφέας" (inverter). Γιά την λογική πράξη ΚΑΙ (AND), η έξοδός της είναι συνάρτηση των δύο εισόδων της, A και B: είναι ON μόνον στον έναν από τους 4 συνδυασμούς τιμών των A και B, όταν A και B είναι ON· αυτό προκύπτει όταν οι διακόπτες είναι συνδεδεμένοι "εν σειρά". Τέλος, η λογική συνάρτηση Ή (OR) είναι ON όταν A είναι ON ή B είναι ON (ή και οι δύο είναι ON)· αυτό προκύπτει όταν οι διακόπτες είναι συνδεδεμένοι "εν παραλλήλω".
Οι λογικές πράξεις AND και OR είναι ανάλογες με πλήθος παρόμοιων εννοιών της καθημερινής μας ζωής, π.χ.:
Σε αυτό εδώ το πείραμα, πριν φτάσετε στο εργαστήριο:
Στο εργαστήριο, κατασκευάστε τα κυκλώματα, ελέγξτε τα, και δείξτε τα στο βοηθό. Γιά να ελεγχθεί πλήρως το κάθε κύκλωμα πρέπει να τού εφαρμόσετε καθέναν από τους 8 συνδυασμούς εισόδων που έχει ο πίνακας αληθείας, και να διαπιστώσετε ότι η LED κάνει το σωστό γιά καθέναν· καθώς τα ελέγχετε, διασταυρώστε την ορθότητα της συνθήκης γιά την άρνηση της κάθε εξόδου.
Το πρώτο κύκλωμα υλοποιεί τη λογική πράξη
"αποκλειστικό Ή" (exclusive OR - XOR),
διότι η LED ανάβει όταν είναι πατημένος
αποκλειστικά ο ένας από τους δύο διακόπτες
και όχι και οι δύο μαζί.
Παρατηρήστε το κύκλωμα
(όπου τα δύο χιαστί σύρματα
διασταυρώνονται χωρίς να κάνουν επαφή μεταξύ τους):
ρεύμα μπορεί να περάσει προς την LED
είτε όταν ο A είναι πατημένος και
ο B δεν είναι (σύρμα από κάτω αριστερά προς πάνω δεξιά),
είτε όταν ο A δεν είναι πατημένος και ο B είναι
(σύρμα από πάνω αριστερά προς κάτω δεξιά).
Επομένως, η LED ανάβει όταν
((A)ΚΑΙ(ΟΧΙ(B)))
Ή
((ΟΧΙ(A))ΚΑΙ(B)),
δηλαδή είναι πατημένος (μόνο ο A) ή (μόνο ο B).
Το δεύτερο κύκλωμα
υλοποιεί τη λογική πράξη ελέγχου ισότητας (equality check),
διότι η LED ανάβει μόνον όταν οι δύο διακόπτες
είναι στην ίδια (ίση) κατάσταση
--και οι δύο πατημένοι ή και οι δύο ελεύθεροι.
Ρεύμα μπορεί να περάσει προς την LED
είτε από το επάνω σύρμα (και οι δύο διακόπτες ελευθεροι)
είτε από το κάτω σύρμα (και οι δύο διακόπτες πατημένοι),
επομένως η LED ανάβει όταν
((ΟΧΙ(A))ΚΑΙ(ΟΧΙ(B)))
Ή ((A)ΚΑΙ(B)),
δηλαδή όταν A και B είναι
(και οι δύο OFF) ή (και οι δύο ON).
Πριν φτάσετε στο εργαστήριο,
γράψτε τον πίνακα αληθείας των εξόδων των δύο κυκλωμάτων.
Παρατηρήστε ότι,
ανεξαρτήτως της κατάστασης του ενός διακόπτη,
ο άλλος μπορεί πάντα, ανοιγοκλείνοντας,
να αναβοσβήσει το φώς.
Στο εργαστήριο, φτιάξτε τα δύο κυκλώματα,
δείξτε τα στο βοηθό σας,
και επαληθεύστε πειραματικά τις παραπάνω ιδιότητες.
Περιττή και Άρτια Ισοτιμία (Odd and Even Parity) - γιά όσους ενδιαφέρονται περισσότερο: η γενίκευση της συνάρτησης αποκλειστικού-Ή σε περισσότερες εισόδους είναι η περιττή ισοτιμία (odd parity), η δε γενίκευση της συνάρτησης ελέγχου ισότητας είναι η άρτια ισοτιμία (even parity). Όταν έχουμε πολλές εισόδους --πολλούς διακόπτες-- μετράμε το πλήθος τους που είναι πατημένοι (ON) σε δεδομένη στιγμή. Εάν το πλήθος αυτό είναι αριθμός περιττός (μονός - μη ακέραιο πολλαπλάσιο του 2), τότε λέμε ότι έχουμε περιττή ισοτιμία, και η αντίστοιχη συνάρτηση είναι ON (αναμένη), αλλοιώς η συνάρτηση αυτή είναι OFF (σβηστή). Αντίστροφα, όταν το πλήθος των εισόδων που είναι ON είναι αριθμός άρτιος (ζυγός - ακέραιο πολλαπλάσιο του 2), η συνάρτηση άρτιας ισοτιμίας είναι ON, αλλοιώς είναι OFF. Επομένως, οι συναρτήσεις περιττής και άρτιας ισοτιμίας είναι πάντα η μία το αντίστροφο (το λογικό ΟΧΙ) της άλλης (άρα αρκεί να ξέρουμε τη μία τους γιά να βρίσκουμε άμεσα και την άλλη).
Εάν ένας από τους διακόπτες αλλάξει κατάσταση, το πλήθος των εισόδων που είναι ON αλλάζει κατά ένα (+1 ή -1): αν ο διακόπτης που άλλαξε ήταν σβηστός (OFF) και άναψε (ON), το πλήθος αυξήθηκε κατά 1, ενώ αν ήταν αναμένος και έσβησε τότε το πλήθος μειώθηκε κατά 1. Ο,τιδήποτε από τα δύο και να συμβαίνει, η ισοτιμία αλλάζει από άρτια σε περιττή ή από περιττή σε άρτια! Βλέπουμε λοιπόν ότι διατηρείται η βασική ιδιότητα με την οποία ξεκινήσαμε: σε οιαδήποτε κατάσταση και να βρίσκονται οι διακόπτες, αρκεί οιοσδήποτε ένας από αυτούς να αλλάξει κατάσταση γιά να αλλάξει τιμή η έξοδος (από σβηστή να ανάψει ή από αναμένη να σβήσει). Η ιδιότητα αυτή αποτελεί τη βάση γιά την κύρια εφαρμογή των συναρτήσεων ισοτιμίας:
Οι συναρτήσεις ισοτιμίας χρησιμοποιούνται σαν η απλούστερη μορφή κώδικα ανίχνευσης σφαλμάτων (error detection codes): αφού μεταδώσουμε μέσα από ένα τηλεπικοινωνιακό δίκτυο κάμποσες πληροφορίες (κάμποσα σύρματα, καθένα "αναμένο" ή "σβηστό"), μεταδίδουμε στο τέλος ακόμα μία επιπλέον πληροφορία που είναι π.χ. η άρτια ισοτιμία όλων των προηγουμένων. Συνήθως, οι πληροφορίες που μεταδίδουμε φτάνουν στην άλλη ακρή όλες σωστές· σε σπάνιες περιπτώσεις, λόγω θορύβου, μία από τις πληροφορίες μπορεί να φτάσει λάθος (ON αντί OFF, ή OFF αντί ON)· σε πολύ σπανιότερες περιπτώσεις μπορεί δύο η περισσότερες πληροφορίες να φτάσουν λάθος (π.χ. αν η πιθανότητα ενός λάθους είναι μία στις χίλιες, και αν τα λάθη είναι ανεξάρτητα μεταξύ τους, τότε η πιθανότητα δύο λαθών είναι περίπου μία στο εκατομμύριο (περίπου το τετράγωνο της πιθανότητας ενός λάθους)). Εάν συμβεί ένα λάθος στη μετάδοση, τότε θα αλλάξει η ισοτιμία των πληροφοριών που στείλαμε, ακριβώς λόγω της παραπάνω ιδιότητας: οιεσδήποτε και αν είναι οι πληροφορίες, η αλλαγή μίας οιασδήποτε από αυτές αλλάζει την ισοτιμία. Αν όμως αλλάξει η ισοτιμία, θα το καταλάβουμε, διότι η επιπλέον πληροφορία ισοτιμίας που στείλαμε δεν θα συμπίπτει πλέον με την ισοτιμία που βλέπει ο παραλήπτης! Έτσι επιτυγχάνεται ο στόχος της ανίχνευσης σφαλμάτων στις περιπτώσεις που συμβαίνει μόνο ένα σφάλμα, που είναι και οι πιό συχνές. Άπαξ και διαπιστωθεί η ύπαρξη σφάλματος, η διόρθωση του μπορεί να γίνει π.χ. με μία αίτηση αναμετάδωσης ("ξαναπές το --δεν άκουσα καλά"). Ο κύριος περιορισμός των συναρτήσεων ισοτιμίας στην ανίχνευση σφαλμάτων είναι ότι αυτές ανιχνεύουν μόνο 1, 3, 5, κλπ. σφάλματα, ενώ τους διαφεύγουν 2, 4, 6, κλπ. σφάλματα. Εάν τα σφάλματα είναι ανεξάρτητα μεταξύ τους, και εάν η πιθανότητα ενός σφάλματος είναι πολύ μικρή, τότε 2 ή περισσότερα "μαζεμένα" σφάλματα είναι πολύ σπάνια. Εάν όμως τα σφάλματα είναι συχνά ή δεν είναι ανεξάρτητα μεταξύ τους, τότε χρειαζόμαστε άλλους, πιό πολύπλοκους κώδικες γιά την ανίχνευσή τους· τέτοια περίπτωση "ομοβροντίας (εκρηκτικών) σφαλμάτων" (burst errors) έχουμε π.χ. όταν ένα κινητό τηλέφωνο, κινούμενο, περνάει γιά λίγο πίσω από μία "σκιά" της κεραίας του σταθμού βάσης· αρκετά όμως είπαμε γιά τώρα --γιά περισσότερες πληροφορίες θα πρέπει να πάρετε κάποιο μάθημα τηλεπικοινωνιών και κωδικοποίησης....
Πληροφορία, εδώ, είναι το αν υπάρχει ή δεν υπάρχει ρεύμα στο κάθε σύρμα, πράγμα που ο πομπός το ρυθμίζει με τη θέση του κάθε διακόπτη, και ο δέκτης το καταλαβαίνει από το αν ανάβει ή όχι η κάθε LED. Κάθε σύρμα μεταδίδει μιά ποσότητα πληροφορίας ικανή να επιλέξει ένα από δύο πράγματα, καταστάσεις, ή μηνύματα. Γιά το λόγο αυτό, την ποσότητα αυτή πληροφορίας την ονομάζουμε δυαδικό ψηφίο (binary digit) ή δυφίο (bit) --όνομα που αποτελεί τον πιό γνωστό όρο της Επιστήμης Υπολογιστών! Το σύστημα του σχήματος μεταδίδει δύο bits πληροφορίας από τον πομπό στο δέκτη, το bit A και το bit B.
Κάθε bit μεταδιδόμενης πληροφορίας μπορεί να έχει δύο μόνο διαφορετικές τιμές· από ηλεκτρική άποψη αυτές είναι απουσία ή παρουσία ρεύματος γιά τα μέχρι στιγμής κυκλώματά μας, ή χαμηλή ή ψηλή ηλεκτρική τάση γιά τα συνηθισμένα chips τύπου CMOS των σημερινών μικροηλεκτρονικών συστημάτων. Η ερμηνεία όμως που δίδεται στις δύο αυτές διαφορετικές τιμές είναι θέμα σύμβασης (συμφωνίας) ανάμεσα στον πομπό και το δέκτη, και είναι εντελώς αυθαίρετη, καθώς και ανεξάρτητη από τις δύο ηλεκτρικές τιμές του bit· πολές φορές μάλιστα, η ερμηνεία αυτή είναι σκόπιμα κρυφή και μη αυτονόητη ώστε να αποφευχθούν υποκλοπές του μηνύματος, όπως π.χ. όταν χρησιμοποιούνται κώδικες κρυπτογραφίας. Προφανώς, γιά να υπάρξει επιτυχής επικοινωνία, πρέπει ο πομπός και ο δέκτης να έχουν προσυμφωνήσει στην ίδια ερμηνεία των ηλεκτρικών τιμών· πέραν των συμμετεχόντων στην επικοινωνία, όμως, δεν είναι ανάγκη κανείς άλλος να ξέρει ή να έχει συμφωνήσει με αυτή την ερμηνεία. Ο επόμενος πίνακας δίνει, σε δύο ζευγάρια στηλών, μερικά δημοφιλή ζευγάρια ερμηνείας των δύο τιμών ενός bit· τα δύο πρώτα ζευγάρια είναι οι συνηθισμένες ηλεκτρικές αναπαραστασεις που είπαμε παραπάνω, και τα υπόλοιπα είναι μερικές δημοφιλείς ερμηνείες τους.
ρεύμα ψηλή τάση πατημένος ON αναμένος πάνω |
όχι ρεύμα χαμηλή τάση ελεύθερος OFF σβηστός κάτω |
ναι αληθές 1 ενεργός θετικός αρνητικός |
όχι ψευδές 0 αδρανής αρνητικός θετικός |
Απ' όλα αυτά τα ζευγάρια, το πιό σύντομο στη γραφή είναι το "1, 0", γι' αυτό πολύ συχνά υιοθετούμε αυτά τα σύμβολα γιά τις δύο δυνατές τιμές ενος bit πληροφορίας. Ένα άλλο σχόλιο αρμόζει στα δύο τελευταία ζευγάρια: μερικές φορές μπορεί το ON ή το 1 να το ερμηνεύουμε σαν "θετικός", και μερικές σαν "αρνητικός", και αντίστροφα γιά το OFF ή το 0. Όταν βλέπουμε την έννοια "θετικός" σαν συναφή με τις έννοιες "ενεργός" ή "αληθής", έρχεται φυσικό να τις συμβολίσουμε όλες αυτές με την ίδια τιμή του bit (την τιμή "1"). Από την άλλη, όπως θα δούμε στο εργαστήριο 6, όταν παριστάνουμε προσημασμένους ακεραίους αριθμούς με τον "κώδικα συμπληρώματος-ως-προς-2", τότε το "αριστερό" bit της αναπαράστασης είναι 1 γιά τους αρνητικούς αριθμούς και 0 γιά τους μεγαλύτερους ή ίσους του μηδενός. Αυτές οι δύο, αντίθετες μεταξύ τους ερμηνείες της τιμής ενός bit δείχνουν καθαρά το πόσο σχετική και αυθαίρετη είναι η ερμηνεία αυτή, και πόσο αυτή είναι θέμα απλής σύμβασης μεταξύ αυτών που χρησιμοποιούν το bit.
Με ένα μόνο bit, πολύ μικρή ποσότητα πληροφορίας μπορούμε να μεταφέρουμε --μπορούμε να επιλέξουμε ανάμεσα σε ίσα-ίσα δύο μόνο προκαθορισμένα μηνύματα· γιά περισσότερες επιλογές (περισσότερη πληροφορία) χρειαζόμαστε και περισσότερα bits. Στο σύστημα του σχήματος στην αρχή της παραγράφου, ο πομπός μετέδιδε στο δέκτη δύο (2) bits πληροφορίας· ας δούμε τώρα πώς μπορούμε να τα εκμεταλλευτούμε αυτά. Ο πρώτος τρόπος εκμετάλλευσης πολλαπλών bits πληροφορίας είναι το κάθε bit να έχει τη δική του, χωριστή ερμηνεία· ας δούμε δύο παραδείγματα. Σαν πρώτο παράδειγμα, ας πούμε ότι ο πομπός του παραπάνω σχήματος βρίσκεται σε ένα δωμάτιο ξενοδοχείου, ο δέκτης βρίσκεται στην κουζίνα του ξενοδοχείου, το bit A σημαίνει "πεινάω - παρακαλώ φέρτε μου το πιάτο της ημέρας", και το bit B σημαίνει "διψάω - παρακαλώ φέρτε μου το ποτό της ημέρας". Τότε, οι 4 δυνατοί συνδυασμοί καταστάσεων των δύο διακοπτών A και B μεταφέρουν ένα από τα εξής τέσσερα δυνατά μηνύματα στην κουζίνα:
Ο δεύτερος τρόπος εκμετάλλευσης πολλαπλών bits πληροφορίας είναι η κάθε ερμηνεία να αντιστοιχεί σε όλα τα bits μαζί, σαν ομάδα· ας δούμε το ανάλογο των δύο προηγουμένων παραδειγμάτων σε αυτό το στυλ. Στην περίπτωση του ξενοδοχείου, μπορεί τα δύο bits να χρησιμοποιούνται γιά την παραγγελία ενός φαγητού από ένα μικρό μενού· ελλείψει περισσοτέρων bits, δεν υπάρχει δυνατότητα μεγαλύτερου μενού ή συνδυασμού πολλαπλών παραγγελιών (φαγητό, σαλάτα, ποτό, κλπ):
Τέλος, ας κάνουμε κι ένα πιό σύνθετο παράδειγμα: το ξενοδοχείο αποφασίζει να αναβαθμίσει τις υπηρεσίες εστιατορίου του και εγκαθιστά σε κάθε δωμάτιο 5 διακόπτες και 5 σύρματα προς την κουζίνα, μεταδίδοντας έτσι 5 bits πληροφορίας, A, B, C, D, και E. Τα 3 πρώτα bits, A, B, C χρησιμοποιούνται γιά την παραγγελία φαγητού, και τα 2 υπόλοιπα γιά την παραγγελία ποτού. Οι 8 συνδυασμοί τιμών των bits ABC αποφασίζεται να σημαίνουν: (000) δεν θέλω φαγητό, (001) σάντουιτς, (010) μακαρονάδα, (011) γεμιστά, (100) μουσακά, (101) ψάρι, (110) μπιφτέκια, (111) πριζόλα. Οι 4 συνδυασμοί τιμών των bits DE αποφασίζεται να σημαίνουν: (00) δεν θέλω ποτό, (01) μπύρα, (10) κρασί, (11) ούζο. Έτσι, όταν η κουζίνα βλέπει ABCDE = 00011 στέλνει ένα σκέτο ουζάκι, ενώ όταν βλέπει 10110 στέλνει ένα ψάρι με κρασί. Συνολικά, υπάρχουν 32 (=8x4) δυνατά μυνύματα: 1 μήνυμα ότι ο πελάτης δεν θέλει τίποτα (00000), 7 μηνύματα φαγητού χωρίς ποτό, 3 μηνύματα ποτού χωρίς φαγητό, και 21 (=7x3) συνδυασμοί κάποιου φαγητού με κάποιο ποτό.
Το κύκλωμα αυτό λέγεται αποκωδικοποιητής (decoder) και έχει τη βασική ιδιότητα ότι πάντα είναι αναμένη μία και μόνο μία από τις εξόδους του --εκείνη που αντιστοιχεί στο συνδυασμό τιμών που υπάρχουν στις εισόδους του την παρούσα στιγμή. Ο συγκεκριμένος αποκωδικοποιητής εδώ είναι μεγέθους 2-σε-4, δηλαδή αποκωδικοποιεί 2 εισόδους στους 4 συνδυασμούς τους, άρα έχει 4 εξόδους· το κύκλωμα εδώ έχει σαν εξόδους 4 LED's. Το κύκλωμα λειτουργεί ως εξής (βάσει της τοπολογίας "δυαδικού δέντρου αποφάσεων" (binary decision tree), όπως θα μάθετε σε άλλα μαθήματα): ο διακόπτης A "παραλαμβάνει" ρεύμα από την τροφοδοσία μέσω του πόλου του, και το διοχετεύει σε ακριβώς ένα από τα δύο μισά του κυκλώματος --το πάνω ή το κάτω-- ανάλογα με την παρούσα τιμή της εισόδου A. Στη φωτογραφία, όταν A=0 (ελεύθερος) το ρεύμα οδηγείται μέσω του T0 και του κίτρινου σύρματος στον επάνω διακόπτη B, ενώ όταν A=1 (πατημένος) το ρεύμα οδηγείται μέσω του Τ1 και του πράσινου σύρματος στον κάτω διακόπτη Β. Στη συνέχεια, οι διακόπτες B οδηγούν το ρεύμα σε ένα από τα δύο μισά του υπολοίπου κυκλώματος, ανάλογα με την παρούσα τιμή της εισόδου B· αφού ρεύμα υπάρχει σε ακριβώς ένα από τα δύο πρώτα μισά A, ο αντίστοιχος διακόπτης B το οδηγεί σε ακριβώς ένα από τα δύο μισά αυτού του μισού, δηλαδή σε ακριβώς ένα από τα τέσσερα σκέλη του κυκλώματος που αποτελούν και τις 4 τελικές εξόδους του. Η συνέπεια είναι ότι ανάβει η μία και μόνη LED που αντιστοιχεί στο συνδυασμό τιμών A και B, όπως δείχνουν τα σύμβολα 00, 01, 10, 11 στο σχήμα. Εάν πάνω από κάθε LED βάλουμε ένα ημιδιαφανές πλαστικό με γραμμένο επάνω το αντίστοιχο μήνυμα, όπως στο σχήμα δεξιά, θα έχουμε προσφέρει την επιθυμητή βοήθεια στο μάγειρα του ξενοδοχείου.
Πριν φτάσετε στο εργαστήριο, φτιάξτε τον πίνακα αληθείας γιά καθεμιά από τις 4 εξόδους του κυκλώματος. Επίσης, γιά την κάθε έξοδο παρατηρήστε το κύκλωμα που την τροφοδοτεί (δύο διακόπτες εν σειρά) και εκφράστε την με μιάν "εξίσωση" (π.χ. (A)ΚΑΙ(ΟΧΙ(B))), βάσει των όσων είπαμε στην §1.2. Στο εργαστήριο, φτιάξτε και ελέγξτε το κύκλωμα, και δείξτε το στον βοηθό σας.
Γενικότερα, κάθε φορά που προσθέτουμε άλλο ένα bit στην ομάδα, διπλασιάζεται το πλήθος των συνδυασμών: γιά την τιμή 0 του νέου bit έχουμε τους συνδυασμούς - κώδικες - μηνύματα που είχαμε και πριν βάσει των υπολοίπων bits, και γιά την τιμή 1 του νέου bit έχουμε άλλους τόσους νέους συνδυασμούς, πάλι βάσει των υπολοίπων bits. Έτσι προκύπτει ότι τα n bits μπορούν να βρίσκονται σε 2n διαφορετικούς συνδυασμούς τιμών, ή με n bits μπορούμε να διαλέξουμε ένα ανάμεσα σε 2n πράγματα, ή να κωδικοποιήσουμε ένα ρεπερτόριο 2n διαφορετικών επιτρεπτών μηνυμάτων. Γι' αυτό, οι δυνάμεις του 2 παίζουν κεφαλαιώδη ρόλο στους υπολογιστές, και θα τις βρίσκουμε μπροστά μας συνεχώς:
Ένα σκέτο bit μπορεί να μεταφέρει πολύ μικρή ποσότητα πληροφορίας, γι' αυτό συχνά τα bits τα χρησιμοποιούμε κατά ομάδες, όπως είπαμε παραπάνω. Μεταξύ των διαφόρων δυνατών μεγεθών ομάδων, η πιό συνηθισμένη, σε όλους ανεξαίρετα τους σημερινούς υπολογιστές, είναι τα οκτώ (8) bits που ονομάζονται ένα Byte. Έτσι, η κωδικοποίηση του κάθε αριθμού μητρώου στο προηγούμενο παράδειγμα ήταν σε 3 Bytes (= 3x8 = 24 bits). Σαν σύντμηση, το "b" μικρό συμβολίζει το bit, και το "B" κεφαλαίο συμβολίζει το Byte.
Ας θεωρήσουμε τώρα έναν υπολογιστή που έχει μνήμη 256 MBytes· αυτό σημαίνει 256x8 = 2048 Mbits = 2 Gbits. Από τις μνήμες σαν αυτήν, θέλουμε να ζητάμε να διαβάσουμε ορισμένα κομάτια τους που μας ενδιαφέρουν κατ' επιλογή· συνήθως, το κομάτι που μας ενδιαφέρουν είναι ένα Byte, και όχι μεμονωμένα bits διότι αυτά θεωρούνται πολύ μικρά. Κάθε φορά που θέλουμε να διαβάσουμε λοιπόν από τη μνήμη μας των 2 Gb = 256 MB, πρέπει να της διευκρινίσουμε ποιό από τα 256 εκατομμύρια Bytes που αυτή περιέχει εμείς θέλουμε να διαβάσουμε. Πόσα bits χρειαζόμαστε γιά να επιλέξουμε ένα ανάμεσα σε 256 Μ πράγματα; Σύμφωνα με τα παραπάνω, χρειαζόμαστε 28 bits. Τα 28 αυτά bits που πρέπει να δώσουμε στη μνήμη τα λέμε διεύθυνση του Byte της το οποίο επιθυμούμε να επιλέξουμε: κάθε Byte της μνήμης έχει τη δική του διεύθυνση, σαν να είναι ένα σπιτάκι σε έναν πολύ μακρύ δρόμο.
Στις μονάδες της Φυσικής, ο πολλαπλασιαστής "k" (μικρό) σημαίνει 1000· π.χ. 1 kg = 1000 g, 1 km = 1000 m, 1 kHz = 1000 Hz. Όταν μιλάμε γιά bits ή γιά Bytes, ο πολλαπλασιαστής "Κ" (κεφαλαίο) σημαίνει 1024, όπως τον ορίσαμε παραπάνω· π.χ. 1 Kb = 1024 bits, 1 KB = 1024 Bytes. Εκεί που τα πράγματα είναι διφορούμενα, είναι με τους πολλαπλασιαστές "M" και "G" (κεφαλαία): αυτοί, άλλοτε σημαίνουν 1,000,000 και 1,000,000,000 αντίστοιχα, μπροστά από τις παραδοσιακές φυσικές μονάδες, και άλλοτε σημαίνουν 1,048,576 και 1,073,741,824 αντίστοιχα, μπροστά από τα bits και τα Bytes που αφορούν χωρητικότητα μνημών. Έτσι, 1 MHz = 106 Hz ενώ 1 Mb = 220 bits, και 1 GHz = 109 Hz ενώ 1 GB = 230 Bytes. (Τα πράγματα χειροτερεύουν όταν μιλάμε γιά ταχύτητες δικτύων υπολογιστών: συνήθως, 1 Mb/s = 106 bits/second και 1 Gb/s = 109 b/s, επειδή οι ταχύτητες αυτές πηγάζουν από ρολόγια του 1 MHz ή 1 GHz!...).
Η αναλογική (analog) μετάδοση λειτουργεί περίπου ως εξής: χρησιμοποιούμε ένα ηλεκτρικό σύρμα (συν την αναγκαία γείωση γιά να κλείνει κύκλωμα), και πάνω σε αυτό βάζουμε μιάν ηλεκτρική τάση ίση με τη θερμοκρασία επί έναν συντελεστή αναλογίας π.χ. 0.1 V/°C· επειδή η τάση που μεταδίδουμε είναι ανάλογη προς την θερμοκρασία, η μετάδοση λέγεται "αναλογική". Π.χ. αν η μέτρηση του θερμομέτρου είναι -18.4°C τότε στο σύρμα θα βάλουμε μιά τάση -1.84 Volt. Αφού το θερμόμετρο έχει περιοχή λειτουργίας από -25°C έως +25°C, τα ηλεκτρονικά κυκλώματα που οδηγούν το σύρμα θα πρέπει να μπορούν να ρυθμίζουν την τάση του από -2.5 V έως + 2.5 V. Προκειμένου να μην υπάρχει απώλεια ακρίβειας στη μετάδοση της μέτρησης, θα πρέπει το συνολικό σφάλμα των ηλεκτρονικών μετάδοσης να μην υπερβαίνει τα ±0.01 Volt (δηλ. ±10 mV). Παραδείγματος χάριν, έστω ότι η μέτρηση είναι -18.4°C, και θα έπρεπε να μεταδώσουμε -1.840 V, αλλά ο πομπός έχει σφάλμα +3 mV κι έτσι στην πραγματικότητα μεταδίδει -1.837 V· σε αυτό προστίθεται ηλεκτρικός θόρυβος +8 mV από παρεμβολές κατά μήκος του σύρματος μετάδοσης, κι έτσι στον δέκτη φτάνει τάση -1.829 V· ο δέκτης έχει σφάλμα +2 mV, κι έτσι νομίζει ότι βλέπει -1.827 V· ξέροντας ότι οι μετρήσεις είναι ακέραια πολλαπλάσια του 0.2°C, ο δέκτης ερμηνεύει την τάση που (νομίζει ότι) βλέπει σαν -18.2°C αντί του σωστού -18.4°C. Το λάθος συνέβη επειδή το συνολικό σφάλμα του συστήματος μετάδοσης είναι 3+8+2 = 13 mV που ξεπερνά την επιτρεπτή ανοχή του ±0.01 V που αντιστοιχεί στην ανοχή της μέτρησης θερμοκρασίας των ±0.1°C.
Η ψηφιακή (digital) μετάδοση λειτουργεί περίπου ως εξής: χρησιμοποιούμε οκτώ ηλεκτρικά σύρματα (συν την αναγκαία γείωση γιά να κλείνει κύκλωμα), και πάνω σε αυτά τα σύρματα βάζουμε 8 bits πληροφορίας που αποτελούν την κωδικοποίηση της θερμοκρασίας σύμφωνα με έναν κώδικα που εμείς αποφασίσαμε· επειδή ο κώδικας αποτελείται από "ψηφία" (digits), η μετάδοση λέγεται "ψηφιακή". Υπάρχουν 251 διαφορετικές δυνατές μετρήσεις θερμοκρασίας από το -25°C έως το +25°C ανά 0.2°C (50°C / 0.2°C = 250), επομένως ξέρουμε ότι 8 bits αρκούν γιά την κωδικοποίηση ενός τέτοιου ρεπερτορίου μηνυμάτων, αφού 8 bits έχουν 256 διαφορετικούς συνδυασμούς. Γιά τη μετάδοση του καθενός bit πληροφορίας, ας χρησιμοποιήσουμε μιάν ηλεκτρική τάση 0.0 V γιά την τιμή OFF και +5.0 V γιά την τιμή ON· η περιοχή αυτή τάσεων είναι η συνηθισμένη στα κυκλώματα του εργαστηρίου μας, και το εύρος της είναι 5 Volt, όσο δηλαδή και το εύρος λειτουργίας των αναλογικών ηλεκτρονικών στο προηγούμενο παράδειγμα (από -2.5 V έως + 2.5 V). Προκειμένου να μην υπάρξει λάθος στη μετάδοση, τώρα, πρέπει το συνολικό σφάλμα των ηλεκτρονικών μετάδοσης να μην υπερβαίνει τα ±2.50 Volt (δηλ. ±2500 mV). Παραδείγματος χάριν, έστω ότι το bit που θέλουμε να μεταδώσουμε είναι OFF, άρα πρέπει να μεταδώσουμε 0.0 V, αλλά ο πομπός έχει σφάλμα +400 mV κι έτσι στην πραγματικότητα μεταδίδει +0.4 V· σε αυτό προστίθεται ηλεκτρικός θόρυβος +1500 mV από παρεμβολές κατά μήκος του σύρματος μετάδοσης, κι έτσι στον δέκτη φτάνει τάση +1.9 V· ο δέκτης έχει σφάλμα +200 mV, κι έτσι νομίζει ότι βλέπει +2.1 V. Ξέροντας όμως ότι οι αναμενόμενες τιμές του bit είναι είτε 0.0 V είτε 5.0 V, και δεδομένου ότι τα +2.1 V που (νομίζει ότι) βλέπει είναι πιό κοντά στο 0 απ' ό,τι στο 5, ερμηνεύει σωστά το bit που λαμβάνει σαν OFF και όχι σαν ON.
Βλέπουμε ότι σε αυτό το παράδειγμα το ψηφιακό σύστημα στέλνει οκτώ (8) ηλεκτρικές τάσεις σαν πληροφορία, αντί της μίας (1) μόνο ηλεκτρικής τάσης που στέλνει το αναλογικό, αλλά το ψηφιακό σύστημα ανέχεται διακόσιες πενήντα (250) φορές περισσότερο θόρυβο και έλλειψη ακρίβειας στις τάσεις των ηλεκτρονικών κυκλωμάτων λειτουργίας του απ' όσο το αναλογικό (±2500 mV αντί ±10 mV). Η τεράστια εξάπλωση των ψηφιακών ηλεκτρονικών συστημάτων, σήμερα, οφείλεται στα εξής πλεονεκτήματά τους:
Transistors και Διακόπτες:
Τα ψηφιακά συστήματα κατασκευάζονται σήμερα σε μορφή
μικροηλεκτρονικών chips (IC - integrated circuit - ολοκληρωμένο κύκλωμα)
που περιέχουν το καθένα χιλιάδες ή εκατομμύρια transistors.
Τα transistors αυτά, όταν λειτουργούν ψηφιακά,
συμπεριφέρονται σαν διακόπτες,
που άλλοτε κάνουν επαφή (ανάβουν) και άλλοτε την διακόπτουν (σβήνουν).
Φυσικά, δεν υπάρχει κανένα μαγικό χέρι
που να αναβοσβήνει αυτούς τους διακόπτες
--αυτοί ανοιγοκλείνουν υπο την επίδραση (ψηφιακών) ηλεκτρικών τάσεων.
Γιά το λόγο αυτό,
ξεκινήσαμε τη μελέτη των ψηφιακών συστημάτων
μελετώντας απλούς, καθημερινούς διακόπτες.
[Up - Table of Contents] [Prev - 0. Introduction] |
[printer version - PDF] [2. Relays - Next] |
Up to the Home Page of CS-120
|
© copyright
University of Crete, Greece.
last updated: 3 Oct. 2007, by M. Katevenis. |