Please ensure Javascript is enabled for purposes of website accessibility

Παρουσίαση/Προβολή

Εικόνα επιλογής

Προηγμένα Μικροϋπολογιστικά Συστήματα

(ECE_ELE960) -  Βασίλειος Καψάλης (θεωρία και εργαστήριο)

Περιγραφή Μαθήματος

Είναι ένα εξειδικευμένο μάθημα στο πεδίο των προηγμένων μικροϋπολογιστικών συστημάτων, που καλύπτει τη δομή και την αρχιτεκτονική αυτόνομων συστημάτων όσο και συστημάτων που λειτουργούν στο Διαδίκτυο των Πραγμάτων (IoT).  Διδάσκεται στο 9ο εξάμηνο και είναι μάθημα ελεύθερης επιλογής (ΕΕ).

Σκοπός του μαθήματος είναι η κατανόηση των σύγχρονων υπολογιστικών συστημάτων, που ακολουθούν τις αρχιτεκτονικές CISC και RISC, της λειτουργίας τους καθώς και του τρόπου επικοινωνίας τους με εξωτερικές μονάδες εισόδου/εξόδου (I/O) και το Διαδίκτυο.

Συγκεκριμένα, το μάθημα στοχεύει στην κατανόηση των χαρακτηριστικών της οικογένειας μικροεπεξεργαστών 80x86 που ακολουθούν την αρχιτεκτονική CISC, τους τρόπους διευθυνσιοδότησης, τις εντολές μεταφοράς δεδομένων, αριθμητικές/λογικές, τις εντολές ελέγχου ροής του προγράμματος, τον προγραμματισμό, τις προδιαγραφές υλικού, τη διεπαφή μνήμης και εισόδου/εξόδου, το σύστημα διακοπών, το μηχανισμό απευθείας προσπέλασης μνήμης, τον αριθμητικό συνεπεξεργαστή, την εκτέλεση εντολών σταθερής και κινητής υποδιαστολής, τη διασύνδεση με τους διαύλους διευθύνσεων, δεδομένων και ελέγχου.

Η ύλη καλύπτει όλες τις εκδόσεις της οικογένειας Intel, από τον 8086 μέχρι τους σύγχρονους πολυπύρηνους μικροεπεξεργαστές.

Επίσης, το μάθημα καλύπτει την αρχιτεκτονική προηγμένων 32-bit μικροελεγκτών (ESP32-C3, STM32) που ακολουθούν την αρχιτεκτονική RISC, τους τρόπους σύνδεσης με αναλογικές/ψηφιακές εισόδους/εξόδους χρησιμοποιώντας κατάλληλα ολοκληρωμένα κυκλώματα και διαδεδομένα πρωτόκολλα (RS232, I2C, SPI, CAN) καθώς και τη διασύνδεσή τους μέσω του πρωτοκόλλου MQTT με IoT πλατφόρμες (HiveMQ MQTT broker, ThingSpeak, ThingsBoard κλπ.) για την ανάπτυξη εφαρμογών παρακολούθησης και ελέγχου μέσω του Internet.

Το μάθημα αποτελείται από τις ακόλουθες ενότητες:

  1. Βασικές έννοιες: Ιστορική αναδρομή, υλικό και λογισμικό, αριθμητικά συστήματα, δομή, οργάνωση και λειτουργία υπολογιστών, κεντρική μονάδα επεξεργασίας, σύστημα μνήμης, αποκωδικοποίηση διευθύνσεων μνήμης, είδη εντολών γλώσσας μηχανής, αρχιτεκτονική συνόλου εντολών, μικροεπεξεργαστές σύνθετου και μειωμένου συνόλου εντολών.
  2. Αρχιτεκτονική του μικροεπεξεργαστή: Μονάδα ελέγχου, αριθμητική/λογική μονάδα, καταχωρητές γενικού και ειδικού σκοπού, μοντέλο προγραμματισμού και λειτουργία πραγματικού και προστατευμένου τρόπου λειτουργίας.
  3. Τρόποι διευθυνσιοδότησης: Απ’ ευθείας, μέσω καταχωρητή, άμεση, έμμεση μέσω καταχωρητή, μέσω βάσης και δείκτη, σχετική ως προς καταχωρητή, σχετική ως προς βάση και δείκτη, μέσω κλιμακωτού δείκτη.
  4. Εντολές: Μεταφοράς δεδομένων, αριθμητικές/λογικές εντολές και ελέγχου προγράμματος.
  5. Προγραμματισμός του μικροεπεξεργαστή: Αρθρωτός προγραμματισμός, μακροεντολές, τοπικές εντολές σε μακροεντολή, ρουτίνες και συναρτήσεις, χρήση συναρτήσεων του DOS.
  6. Χάρτης και λειτουργίες ακροδεκτών: Ανάθεση και συνδέσεις ακροδεκτών, χαρακτηριστικά εισόδου/εξόδου, αποπολύπλεξη διαύλων διευθύνσεων και δεδομένων, σύστημα οδήγησης, χρονισμός διαύλων, ελεγκτής διαύλου 8288.
  7. Διεπαφή μνήμης: Τύποι μνημών, συνδέσεις διευθύνσεων, επιλογής και δεδομένων, μνήμη ROM και RAM, αποκωδικοποίηση διευθύνσεων.
  8. Συνδεσμολογία εισόδου/εξόδου: Απομονωμένο I/O και απεικονιζόμενο σε μνήμη I/O, εντολές εισόδου/εξόδου, αποκωδικοποίηση διευθύνσεων θυρών I/O, προγραμματιζόμενη περιφερειακή διεπαφή 82C55, διεπαφή πληκτρολογίου/οθόνης 8279, χρονιστής διαστημάτων 8254, διεπαφή επικοινωνίας 16550, A/D ADC0804, D/A DAC0830, ελεγκτής διακοπών 8259A, ελεγκτής DMA 8237.
  9. Σύγχρονοι μικροελεγκτές και ενσωμάτωσή τους στην υποδομή IoT. Σύγχρονοι 32-bit μικροελεγκτές (ESP32-C3, STM32), τοπικά πρωτόκολλα για σύνδεση με αισθητήρες και ενεργοποιητές (RS232, I2C, SPI, CAN), προγραμματισμός μέσω C/C++/MicroPython, πρωτόκολλο MQTT για σύνδεση στο IoT,  ανάπτυξη εφαρμογών παρακολούθησης και ελέγχου μέσω του Internet (IoT). Υλοποίηση σεναρίου ελέγχου στο ευφυές ενεργειακό δίκτυο με αντικείμενο τη διαχείριση ζήτησης ηλεκτρικής ενέργειας.

Εργαστηριακές Ασκήσεις

emu8086

  1. Δομή προγραμμάτων, μακροεντολές, αριθμητικές εντολές, ολίσθησης και περιστροφής, εντολές διακλάδωσης υπό συνθήκη για δομές ελέγχου απλής, σύνθετης και πολλαπλής επιλογής και εφαρμογή σε υπολογισμό σύνθετων λογικών εκφράσεων.
  2. Εισαγωγή, επεξεργασία και εκτύπωση συμβολοσειρών, επεξεργασία πινάκων (αντιγραφή, αναζήτηση, εύρεση τιμών, κλπ.).

8086 trainer kit και multi application board

  1. Απλές λειτουργίες I/O με χρήση διακοπτών και LEDs, Analog to Digital (A/D) και Digital to Analog (D/A) μετατροπές.
  2. Έλεγχος ταχύτητας και φοράς DC κινητήρα με γραμμικό ποτενσιόμετρο.

ESP32-C3 - MQTT broker

  1. Σύνδεση του ESP32-C3 με συσκευές εισόδου/εξόδου (αναλογικές και ψηφιακές) και υλοποίηση τοπικού σεναρίου ελέγχου.
  2. Διασύνδεση του ESP32-C3 με MQTT broker και υλοποίηση IoT σεναρίου παρακολούθησης και ελέγχου.
Μέθοδος αξιολόγησης
 

α) Τελική γραπτή εξέταση επί του θεωρητικού μέρους του μαθήματος.

β) Ολοκλήρωση του εργαστηρίου με την παράδοση των εργαστηριακών ασκήσεων.

Η παράδοση όλων των εργαστηριακών ασκήσεων είναι υποχρεωτική.

Εναλλακτικά, το εργαστηριακό μέρος μπορεί να πραγματοποιηθεί με υλοποίηση project που θα ανατεθεί ανά φοιτητή ή ανά ομάδα φοιτητών.

Ο τελικός βαθμός προκύπτει από την στάθμιση των βαθμών θεωρίας (α) και εργαστηρίου (β) με συντελεστές βαρύτητας 60% και 40%, αντίστοιχα.

Τελικός βαθμός = (α)*60% + (β)*40%

Προϋπόθεση για προβιβάσιμο τελικό βαθμό είναι η ύπαρξη προβιβάσιμων βαθμών, τόσο στη θεωρία όσο και στο εργαστήριο.

Προτεινόμενη βιβλιογραφία

1. K. Bhurchandi, A. Ray, “Advanced Microprocessors and Peripherals”, 3rd edition, Tata McGraw Hill, 2017.
2. B. B. Brey, “The INTEL Microprocessors, Architecture, Programming and Interfacing”, 8th edition, 2009.
3. Sivarama P. Dandamudi, “Introduction to Assembly Language Programming For Pentium and RISC Processors”, 2005.
4. Kip R. Irvine, “Assembly Language for x86 Processors”, 6th edition, 2011.
5. Richard Detmer, “Introduction to 80x86 Assembly Language and Computer Architecture”, 2001.
6. Μικροεπεξεργαστές, 2η έκδοση, Παπάζογλου Παναγιώτης
7. Κ. Πεκμεστζή, “Συστήματα μικροϋπολογιστών I: Μικροεπεξεργαστές 80x86, Pentium και ARM”, Εκδόσεις Συμμετρία, 2009.
8. Γ. Φ. Αλεξίου, “Μικροεπεξεργαστές και σχεδιασμός μικροϋπολογιστικών συστημάτων”, Εκδόσεις Κλειδάριθμος, 2012.
9. Δ. Πογαρίδη, “Σχεδίαση συστημάτων μικροεπεξεργαστών”, Εκδόσεις Β. Γκιούρδα, 2006.
10. The Art of Assembly Language, https://www.ic.unicamp.br/~pannain/mc404/aulas/pdfs/Art%20Of%20Intel%20x86%20Assembly.pdf
11. Intel 64 and IA -32 Architectures Software Developer's Manual, 2006.
-----
12. Raj Kamal, "Internet of Things, Architecture and Design Principles", 2017, McGraw Hill Education.
13. RioT Bridgera, "A Reference Guide to the Internet of Things", https://bridgera.com/wp-content/uploads/2018/10/IoTeBook3.pdf
14. Charles Bell, "MicroPython for the Internet of Things", 2nd edition, Apress, 2024.
15. HiveMQ, “MQTT & MQTT 5 Essentials”, https://www.hivemq.com/mqtt-5/
16. ESP32-C3 Wireless Adventure - A Comprehensive Guide to IoT, Espressif Systems, 2023.
17. Hans-Petter Halvorsen, "MQTT - A Communication Protocol popular in Internet of Things Applications", https://www.halvorsen.blog/documents/technology/mqtt/resources/MQTT.pdf
18. Neil Kolban, "Koban's book on ESP32", May 2017.

Ημερομηνία δημιουργίας

Δευτέρα 10 Ιουλίου 2023