ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1.1 ΕΙΣΑΓΩΓΙΚΗ ΑΝΑΦΟΡΑ ΣΤΑ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 1 1.1.1 Σήματα ψηφιακών συστημάτων 1 1.1.2 Παράλληλη και σειριακή μεταφορά πληροφορίας 2 1.1.3 Λογική τριών σταθερών καταστάσεων 2 1.1.4 Flip-flop, μετρητές, καταχωρητές 3 1.1.5 Κωδικοποιητές - αποκωδικοποιητές 8 1.1.6 Πολυπλέκτες - αποπλέκτες 9 1.1.7 ΕΙΣΑΓΩΓΗ ΣΤΟΥ ΥΠΟΛΟΓΙΣΤΕΣ 11 1.1.8 Είδη υπολογιστών 12 1.1.9 Βασική δομή του υπολογιστή 13 1.2.2.1 Μονάδα Κεντρικής Επεξεργασίας 13 1.2.2.2 Μονάδα Μνήμης 13 1.2.2.3 Αριθμητική-Λογική μονάδα 15 1.2.2.4 Μονάδα ελέγχου 15 1.2.2.5 Μονάδα εισόδου 15 1.2.2.6 Μονάδα εξόδου 15 1.2.2.7 Διάδρομοι Μεταφοράς Πληροφορίας 16 1.2.2.8 Διάδρομος Διευθύνσεων 16 1.2.2.9 Διάδρομος Δεδομένων 16 1.2.2.10 Διάδρομος Ελέγχου 17 Ερωτήσεις-Προβλήματα 18 ΚΕΦΑΛΑΙΟ II : Ο ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗΣ 2.1 ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗ 19 2.1.1 Κυκλώματα χρονισμού και ελέγχου 20 2.1.2 Αριθμητικά-Λογικά κυκλώματα 21 2.1.3 Κυκλώματα Καταχωρητών 22 2.2. Η ΕΞΕΛIΞΗ ΤΩΝ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΩΝ 26 2.3 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ RISC 27 2.4 Ο ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗΣ 68000 28 2.5 ΔΙΑΣΥΝΔΕΣΗ ΤΟΥ 68000 ΜΕ ΤΑ ΠΕΡΙΦΕΡΕΙΑΚΑ 30 2.5.1 Διάδρομοι δεδομένων και διευθύνσεων 30 2.5.2 Διάδρομος ελέγχου 32 2.5.2.1 Διάδρομος ασύγχρονου ελέγχου 33 2.5.2.2 Διάδρομος κατάστασης μικροεπεξεργαστή και κώδικες λειτουργίας 33 2.5.2.3 Διάδρομος ελέγχου συστήματος 35 2.5.2.4 Διάδρομος ελέγχου διακοπών 35 2.5.2.5 Διάδρομος ελέγχου διαιτησίας διαδρόμου 35 2.5.2.6 Διάδρομος σύγχρονου ελέγχου 36 Δ. Πογαρίδη v
2.6 ΜΟΝΤΕΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΤΟΥ 68000 36 2.6.1 Καταχωρητές δεδομένων 37 2.6.2 Καταχωρητές διευθύνσεων 38 2.6.3 Δείκτες σωρού 38 2.6.4 Μετρητής προγράμματος 38 2.6.5 Καταχωρητής κατάστασης 39 2.6.6 Κυκλώματα ελέγχου εκτέλεσης εντολών 40 Ερωτήσεις-Προβλήματα 42 ΚΕΦΑΛΑΙΟ IΙΙ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΟΥ 68000 3.1 ΕΙΣΑΓΩΓΗ 45 3.2 ΜΕΘΟΔΟΛΟΓΙΑ ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ 46 3.3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 49 3.3.1 Συμβολική γλώσσα 50 3.3.2 Ψευδοεντολές 52 3.3.3 Γλώσσες ανωτέρου επιπέδου 57 3.3.4 Υπορουτίνες 58 3.3.5 Πέρασμα παραμέτρων 58 3.3.6 Μακροεντολές 60 3.4 ΜΕΘΟΔΟΙ ΔΙΕΥΘΥΝΣΙΟΔΟΤΗΣΗΣ 60 3.4. 1 Εισαγωγή 60 3.4.2 Μέθοδοι διευθυνσιοδότησης του 68000 61 3.4.2.1 Διευθυνσιοδότηση απευθείας δεδομένων 62 3.4.2.2 Άμεση διευθυνσιοδότηση καταχωρητή 62 3.4.2.3 Απόλυτη διευθυνσιοδότηση δεδομένων 63 3.4.2.4 Συνεπαγόμενη διευθυνσιοδότηση 65 3.4.2.5 Σχετική διευθυνσιοδότηση μετρητή προγράμματος 65 3.4.2.6 Έμμεση διευθυνσιοδότηση καταχωρητή 67 3.4.2.6.1Έμμεση διευθυνσιοδότηση καταχωρητή 68 3.4.2.6.2 Έμμεση μεταυξητική διευθυνσιοδότηση καταχωρητή 68 3.4.2.6.3 Έμμεση προμειωτική διευθυνσιοδότηση καταχωρητή 69 3.4.2.6.4 Έμμεση διευθυνσιοδότηση καταχωρητή με μετατόπιση 70 3.4.2.6.5 Με δείκτη έμμεση διευθυνσιοδότηση καταχωρητή με μετατόπιση 71 3.4.2.7. Κατηγορίες μεθόδων διευθυνσιοδότησης ανάλογα με τη λειτουργία τους 73 3.5 ΟΙ ΕΝΤΟΛΕΣ ΤΗΣ ASSEMBLY ΤΟΥ 68000 74 3.5.1 Εντολές μεταφοράς δεδομένων 82 3.5.2 Αριθμητικές εντολές 93 3.5.2.1 Μη-προσημασμένη, Προσημασμένη αριθμητική απλής και πολλαπλής ακρίβειας 93 3.5.2.1.1. Πρόσθεση απλής ακρίβειας 94 3.5.2.1.1. Πρόσθεση πολλαπλής ακρίβειας 94 3.5.2.1.3. Αφαίρεση απλής ακρίβειας 97 3.5.2.1.4. Αφαίρεση πολλαπλής ακρίβειας 98 3.5.2.2 Αριθμητικές εντολές ακέραιων αριθμών 100 3.5.2.2 Αριθμητικές εντολές δυαδικά κωδικοποιημένων δεκαδικών αριθμών 120 vi Σχεδίαση Συστημάτων Μικροϋπολογιστών
3.5.3 Λογικές εντολές 125 3.5.4 Εντολές ολίσθησης και περιστροφής 131 3.5.5 Εντολές σύγκρισης και ελέγχου 141 3.5.6 Εντολές διακλάδωσης 147 3.5.7 Εντολές ελέγχου συνθήκης μείωσης και διακλάδωσης 155 3.5.8 Εντολές διαχείρισης υπορουτινών 155 3.5.9 Εντολές χειρισμού ψηφίου 159 3.6 ΠΑΡΑΔΕΙΓΜΑΤΑ ΧΡΗΣΙΜΩΝ ΥΠΟΡΟΥΤΙΝΩΝ 162 3.6.1 Υπορουτίνες μετατροπής αριθμών 162 3.6.2 Υπορουτίνες διερεύνησης και σύγκρισης πινάκων και ορμαθών 173 3.6.2.1 Υπορουτίνες τοποθέτησης σε αυξητική/μειωτική τάξη 178 3.6.3 Υπορουτίνες χρονοκαθυστέρησης 180 3.6.4 Μαθηματικές υπορουτίνες 182 Ερωτήσεις-Προβλήματα 186 ΚΕΦΑΛΑΙΟ VΙ: ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΟΣ ΜΝΗΜΗΣ 4.1 ΕΙΣΑΓΩΓΗ 195 4.1.1 Διαδικασία λειτουργίας της μνήμης 196 4.2 ΜΝΗΜΗ RΑM 194 4.2.1 Η αρχιτεκτονική δομή της μνήμης RAM 198 4.2.2 Δυναμική μνήμη RAM 202 4.3 ΜΝΗΜΗ ROM 204 4.3.1 Λειτουργικά χαρακτηριστικά της μνήμης ROM 206 4.3.2 Εφαρμογές της ROM 208 4.4 ΣΠΟΝΔΥΛΟΙ ΜΝΗΜΗΣ 209 4.1.1 Παραδείγματα επέκτασης μήκους λέξης και χωρητικότητας 209 4.5 ΧΑΡΤΟΓΡΑΦΗΣΗ ΜΝΗΜΗΣ 211 4.6 ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΑΣΥΝΔΕΣΗ ΜΝΗΜΗΣ ΣΤΟΝ 68000 212 4.6.1 Ασύγχρονη διασύνδεση μνήμης και μονάδων Ι/Ο 212 4.6.2 Χώρος διευθύνσεων και οργάνωση δεδομένων 213 4.6.3 Μνήμη αποθήκευσης προγράμματος και δεδομένων και οι κώδικες κατάστασης 217 4.6.4 Κύκλοι ανάγνωσης και εγγραφής μνήμης 219 4.6.5 Σωροί χρήστη και επόπτη 223 4.6.6 Σύγχρονη διασύνδεση μνήμης και μονάδων Ι/Ο 224 4.7 AΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΔΙΕΥΘΥΝΣΕΩΝ 227 4.8 ΕΙΚΟΝΙΚΗ ΜΝΗΜΗ 233 4.9 ΜΝΗΜΗ CACHE 234 Ερωτήσεις-Ασκήσεις-Προβλήματα 236 ΚΕΦΑΛΑΙ0 V: ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΟΣ ΕΙΣΟΔΟΥ-ΕΞΟΔΟΥ 5.1 ΠΑΡΑΛΛΗΛΗ ΕΠΙΚΟΙΝΩΝΙΑ 241 5.1.1 Χρήση ειδικών καταχωρητών εισόδου/εξόδου του μικροεπεξεργαστή 241 Δ. Πογαρίδη vii
5.1.2 Είσοδος-Έξοδος με εξωτερικούς καταχωρητές 242 5.1.3 Είσοδος-Έξοδος χαρτογραφημένη σε μνήμη 243 5.1.4 Σήματα χειραψίας 245 5.1.5 Πόρτες δεδομένων δύο κατευθύνσεων 247 5.1.6 Προγραμματιζόμενες πόρτες εισόδου/εξόδου 248 5.1.7 Στάθμες σήματος εισόδου-εξόδου 250 5.2 OΛΟΚΛΗΡΩΜΕΝΑ ΠΑΡΑΛΛΗΛΗΣ ΠΡΟΣΑΡΜΟΓΗΣ Ι/Ο 251 5.2.1 Ο 68230 PI/T Παράλληλος προσαρμοστής/χρονιστής 253 5.2.1.1 Διασύνδεση τον Μ68230 στον Μ68000 256 5.2.1.2 Προγραμματίζοντας τον 68230PI/T 257 5.3 ΣΕΙΡΙΑΚH ΕΠΙΚΟΙΝΩΝΙΑ 280 5.3.1 Σειριακή είσοδος-έξοδος 280 5.3.2 Συγχρονισμός δεδομένων 282 5.3.3 Ασύγχρονη σειριακή εκπομπή 283 5.3.4 Σήματα χειραψίας 286 5.3.5 Ταχύτητα εκπομπής (ΒΑUD RATE) 286 5.3.6 Οδηγοί γραμμών και ΜΟDEMS 286 5.3.7 H σύνδεση RS232 288 5.3.8 Σύγχρονη λειτουργία 291 5.3.9 Χρήσεις της σειριακής μεταφοράς 292 5.4 OΛΟΚΛΗΡΩΜΕΝΑ ΣΕΙΡΙΑΚΗΣ ΠΡΟΣΑΡΜΟΓΗΣ Ι/Ο 293 5.4.1 Διπλός Καθολικός Ασύγχρονος Πομποδέκτης 68681 (DUART) 295 5.4.1.1 Σύνδεση του 68681 στο μικροεπεξεργαστή 68000 296 5.4.1.2. Προγραμματισμός του 68681 299 5.5 ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ Ι/Ο ΤΗΣ ΟΙΚΟΓΕΝΕΙΑΣ 6800 312 5.5.1 Ο 6821 Περιφερειακός Προσαρμοστής Διασύνδεσης 312 5.5.1.1 Χρησιμοποιώντας τον 6821 για χωρίς όρους μεταφορά 314 5.5.1.2 Χρησιμοποιώντας τον 6821 για υπό όρους μεταφορά 314 5.5.1.3 Προγραμματίζοντας τον 6821ΡΙΑ 316 5.5.1.4 Σύνδεση του 6821ΡΙΑ 318 5.5.2 Ο 6850 ασύγχρονος προσαρμοστής επικοινωνιών (ACIA) 320 5.5.2.1 Σύνδεση του 6850 στο μικροεπεξεργαστή 68000 323 5.6 Ο ΔΙΑΔΡΟΜΟΣ ΙΕΕΕ 488 325 Ερωτήσεις-Ασκήσεις-Προβλήματα 331 ΚΕΦΑΛΑΙΟ V: Η ΛΕΙΤΟΥΡΓΙΑ ΤΗΣ ΔΙΑΚΟΠΗΣ 6.1 ΕΙΣΑΓΩΓΗ 335 6.2 BAΣΙΚΗ ΛΕΙΤΟΥΡΓΙΑ ΤΗΣ ΔΙΑΚΟΠΗΣ 338 6.3 ΑΠΟΘΗΚΕΥΣΗ ΤΗΣ ΚΑΤΑΣΤΑΣΗΣ ΤΟΥ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗ 338 6.4 ΑΝΥΣΜΑΤΑ ΔΙΑΚΟΠΗΣ 339 6.5 ΧΕΙΡΙΣΜΟΣ ΔΥΟ ΞΕΧΩΡΙΣΤΩΝ ΔΙΑΚΟΠΩΝ 340 6.6 Η ΜΑΣΚΑ ΔΙΑΚΟΠΩΝ 342 viii Σχεδίαση Συστημάτων Μικροϋπολογιστών
6.7 ΔΙΑΚΟΠΕΣ ΧΩΡΙΣ ΜΑΣΚΑ 342 6.8 ΔΙΑΚΟΠΕΣ ΜΕΣΩ ΠΡΟΓΡΑΜΜΑΤΟΣ 343 6.9 ΠΡΟΤΕΡΑΙΟΤΗΤΑ ΔΙΑΚΟΠΗΣ 343 6.10 ΚΥΚΛΩΜΑΤΙΚΗ ΜΕΘΟΔΟΣ ΚΑΘΟΡΙΣΜΟΥ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ 344 6.11 ΔΙΑΧΕΙΡΙΣΗ ΕΞAIΡΕΣΕΩΝ (ΔΙΑΚΟΠΩΝ) ΤΟΥ 68000 345 6.11.1 Πίνακας ανυσμάτων εξαιρέσεων 345 6.11.2 Προτεραιότητες εξαιρέσεων 347 6.11.3 Εξωτερικές διακοπές 348 6.11.4 Διαδικασία εκτέλεσης της διακοπής 350 6.11.5 Κυκλώματα διασύνδεσης διακοπών του 68000 354 6.11.6 Εντολές εξαιρέσεων 358 6.11.7 Σφάλμα διαδρόμου 360 6.11.8 Εξαίρεση RESET 362 6.11.9 Λειτουργίες εσωτερικών εξαιρέσεων 362 6.11.10 Διακλαδωτές εξαιρέσεων 364 6.12 ΣΧΕΔΙΑΖΟΝΤΑΣ ΕΝΑ ΣΥΣΤΗΜΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ 369 6.13 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ 370 6.14 ΑΜΕΣΗ ΠΡΟΣΠΕΛΑΣΗ ΜΝΗΜΗΣ 374 Ερωτήσεις-Ασκήσεις-Προβλήματα 376 ΚΕΦΑΛΑΙΟ VII: ΣΧΕΔΙΑΣΗ ΕΛΑΧΙΣΤΟΥ ΣΥΣΤΗΜΑΤΟΣ 7.1 ΕΙΣΑΓΩΓΗ 381 7.2 ΜΟΝΑΔΑ ΚΕΝΤΡΙΚΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 382 7.3 ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΜΝΗΜΗΣ ΚΑΙ ΜΟΝΑΔΩΝ Ι/Ο 385 7.4 Η ΜΝΗΜΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ 391 7.5 ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ 393 7.5.1 Παράλληλη είσοδος-έξοδος 393 7.5.2 Σειριακή είσοδος-έξοδος 396 7.6 ΑΝΑΓΝΩΡΙΣΗ ΔΕΔΟΜΕΝΩΝ 399 7.7 ΣΗΜΑΤΑ ΔΙΑΚΟΠΗΣ ΚΑΙ ΑΝΑΓΝΩΡΙΣΗΣ ΔΙΑΚΟΠΗΣ 399 7.8 ΤΡΟΦΟΔΟΣΙΑ ΣΥΣΤΗΜΑΤΟΣ 401 7.9 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ 402 7.9.1 Οι ανεξάρτητες υπορουτίνες 402 7.9.2 Οι εντολές του monitor 410 7.11 ΤΙ ΠΡΕΠΕΙ ΝΑ ΠΡΟΣΕΧΘΕΙ 419 Ερωτήσεις-Ασκήσεις-Προβλήματα 421 ΚΕΦΑΛΑΙΟ VIII: ΕΦΑΡΜΟΓΕΣ 8.1 ΕΦΑΡΜΟΓΕΣ ΠΑΡΑΛΛΗΛΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ 423 8.2 ΜΕΤΑΤΡΟΠΗ D/A ΔΙΑ ΜΕΣΟΥ ΥΠΟΛΟΓΙΣΤΗ 430 8.2.1 Ρύθμιση του μετατροπέα DAC 08032 431 Δ. Πογαρίδη ix
8.3 ΕΛΕΓΧΟΣ ΚΙΝΗΤΗΡΑ DC ΔΙΑ ΜΕΣΟΥ ΥΠΟΛΟΓΙΣΤΗ 436 8.4 ΕΛΕΓΧΟΣ ΒΗΜΑΤΙΚΟΥ ΚΙΝΗΤΗΡΑ ΜΕ ΥΠΟΛΟΓΙΣΤΗ 440 8.5 ΕΦΑΡΜΟΓΕΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ 456 8.6 ΜΕΤΑΤΡΟΠΕΣ A/D ΔΙΑ ΜΕΣΟΥ ΥΠΟΛΟΓΙΣΤΗ 460 8.3.1 Ρυθμίσεις του μετατροπέα A/D 461 Ερωτήσεις-Ασκήσεις-Προβλήματα 472 ΓΛΩΣΣΑΡΙ 481 ΑΠΑΝΤΗΣΕΙΣ ΕΠΙΛΕΓΜΕΝΩΝ ΕΡΩΤΗΣΕΩΝ 489 ΠΑΡΑΡΤΗΜΑ Ι 513 ΠΑΡΑΡΤΗΜΑ ΙΙ 597 ΠΑΡΑΡΤΗΜΑ ΙΙΙ 607 ΒΙΒΛΙΟΓΡΑΦΙΑ 609 ΑΛΦΑΒΗΤΙΚΟ ΕΥΡΕΤΗΡΙΟ 611 x Σχεδίαση Συστημάτων Μικροϋπολογιστών