Loading...
1. ΓΕΝΙΚΑ
ΣΧΟΛΗ: 
ΜΗΧΑΝΙΚΩΝ
ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ: Προπτυχιακό
ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ: ECE_ELE750
ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ: 7ο
ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ
ΕΒΔΟΜΑΔΙΑΙΕΣ ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ:  Διαλέξεις 2, Εργαστήριο 2   
ΠΙΣΤΩΤΙΚΕΣ ΜΟΝΑΔΕΣ: 5,0 
ΤΥΠΟΣ ΜΑΘΗΜΑΤΟΣ: Ειδίκευσης
ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ ΜΑΘΗΜΑΤΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΑ ΣΥΣΤΗΜΑΤΑ
ΓΛΩΣΣΑ ΔΙΔΑΣΚΑΛΙΑΣ και ΕΞΕΤΑΣΕΩΝ: Ελληνική
ΤΟ ΜΑΘΗΜΑ ΠΡΟΣΦΕΡΕΤΑΙ ΣΕ ΦΟΙΤΗΤΕΣ ERASMUS: Ναι
e-class ΜΑΘΗΜΑΤΟΣ (URL): https://eclass.uop.gr/courses/1034/


2. ΜΑΘΗΣΙΑΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ 

Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στις βασικές έννοιες, τεχνικές και εφαρμογές των Μικροελεγκτών στην παρατήρηση / έλεγχο / διαχείριση διεργασιών & δεδομένων. Ιστορική αναδρομή και εξέλιξη μικροελεγκτών, αρχιτεκτονική Harvard σε αντιδιαστολή με την αρχιτεκτονική Von Neumann των επεξεργαστών. Ιδιαίτερη έμφαση δίνεται στη μελέτη βασικών περιφερειακών κυκλωμάτων που συναντώνται σε όλους τους μικροελεγκτές και στον προγραμματισμό τους. Συγκεκριμένα μελετώνται δύο αντιπροσωπευτικοί μικροελεγκτές 8 και 32 bit της οικογένειας μικροελεγκτών AVR και βασισμένων σε ARM, αντίστοιχα.  Μελέτη μνήμης προγράμματος και δεδομένων. Τύποι εσωτερικής και εξωτερικής μνήμης, καταχωρητές, αριθμητική λογική μονάδα, εντολές, υποστηριζόμενοι τύποι δεδομένων. Θα χρησιμοποιηθεί ένα μεσαίας δυναμικότητας μοντέλο της οικογένειας AVR (ATtiny2313) και όσον αφορά μικροελεγκτές βασισμένους σε ARM θα χρησιμοποιηθεί ο Atmel AT90RM9200 στη θεωρία για να μελετηθεί ο πυρήνας του, η διασύνδεσή του με εσωτερικές και εξωτερικές μνήμες διαφόρων τύπων και κάποια σύνθετα περιφερειακά κυκλώματα. Θα γίνει επίσης αναφορά στις μοντέρνες εκδόσεις 64-bit ARM όπως οι πυρήνες A53 που χρησιμοποιούνται στους μικροελεγκτές Raspberry PI και στις FPGAs Xilinx Ultrascale MPSoC. Στο εργαστήριο θα χρησιμοποιηθούν ασκήσεις προγραμματισμού AVR και 32-bit ARM Cortex. Τα περιφερειακά κυκλώματα τα οποία θα μελετηθούν είτε στη θεωρία είτε στο εργαστήριο περιλαμβάνουν ασύγχρονη/σύγχρονη σειριακή επικοινωνία (UART/USART/SPI bus), χρονιστές/μετρητες (timer/counters), διαχείριση διακοπών
(interrupts), αναλογικός συγκριτής, μετατροπείς αναλογικού σήματος σε ψηφιακό και αντίστροφα (ADC/DAC), μνήμες EEPROM/Flash και προγραμματισμός τους είτε από λογισμικό είτε από ειδικούς προγραμματιστές, Ethernet controller, USB Device/host port.

 

Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα μπορούν:

 

Σε επίπεδο Γνώσεων:

Το γενικό πλαίσιο θεωρητικών και πρακτικών  γνώσεων που θα αποκτήσει ο φοιτητής στο τέλος του μαθήματος ο φοιτητής θα είναι:

  1. Η κατανόηση σε βάθος της δομής, αρχιτεκτονικής τύπου-harvard, λειτουργίας και προγραμματισμού σε γλώσσα C και Assembly των επεξεργαστικών πυρήνων AVR και ARM.
  2. Αναλυτική περιγραφή της λειτουργικότητας στην εκτέλεση εντολών με λεπτομερή διαγράμματα χρονισμού.
  3. Ανάλυση και μελέτη προγραμματισμού και διαχείρισης μνήμης και περιφερειακών για έλεγχο, αυτοματισμούς και επεξεργασία. Ρουτίνες, μακροεντολές, καταχωρητές θυρών Ι/Ο, διακοπές.
  4. Σχεδίαση και υλοποίηση ολοκληρωμένων συστημάτων μικροελεγκτών και εφαρμογές στον αυτόματο έλεγχο διεργασιών σε βιομηχανίες, κτίρια, διαχείριση ενέργειας και πόρων.

Σε επίπεδο Δεξιοτήτων:

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

 Σε επίπεδο Ικανοτήτων:

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

Γενικές Ικανότητες
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων θεωρητικών εννοιών και τεχνολογιών.
  • Προσαρμογή σε νέες καταστάσεις.
  • Λήψη αποφάσεων.
  • Αυτόνομη εργασία.
  • Ομαδική εργασία.
  • Ανάπτυξη κρίσης - κριτικής σκέψης.
  • Προαγωγή της επαγωγικής σκέψης.
  • Ανάπτυξη ικανότητας εφαρμογής ιδεών στην πράξη.
  • Παραγωγή εφαρμοσμένων ερευνητικών ιδεών.


3. ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ

Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στις βασικές έννοιες, και την αρχιτεκτονική των Μικροελεγκτών καθώς και στις εφαρμογές τους. Η δομή του μαθήματος στηρίζεται σε δύο άξονες: τη μελέτη των χαρακτηριστικών της διαδεδομένης οικογένειας 8-bit μικροελεγκτών AVR και των 32-bit ARM-based (πχ ARM7TDMI, ARM9TDMI, Cortex). Μελετώνται όλα τα αρχιτεκτονικά χαρακτηριστικά του όπως μνήμες, αριθμητική λογική μονάδα, εντολές, κλπ. Δίνεται ιδιαίτερη έμφαση στη μελέτη απλών αλλά και σύνθετων περιφερειακών κυκλωμάτων και η αξιοποίηση τους σε διάφορες εφαρμογές ελέγχου όπως αυτοματισμών, βιομηχανικά περιβάλλοντα, κλπ.
Το θεωρητικό μέρος περιλαμβάνει τις ακόλουθες ενότητες:
  1. Ιστορική αναδρομή στους μικροελεγκτες και στην εξέλιξή τους (TexasTMS1000, Intel8051). Εισαγωγή στα βασικά χαρακτηριστικά (ταχύτητα, κατανάλωση, κόστος, υποστηριζόμενη μνήμη και περιφερειακά απαραίτητα για τις ανάγκες μιας εφαρμογής) της αρχιτεκτονικής μικροελεγκτών. Αρχιτεκτονική Harvard. Διαδεδομένες κατηγορίες και κατασκευαστές μικροελεγκτών.
  2. Αρχιτεκτονική των μικροελεγκτών AVR (modified Harvard 8-bit RISC). Μνήμη προγράμματος, μνήμη δεδομένων και διαμόρφωσης. Καταχωρητές, αριθμητική λογική μονάδα, εντολές, τύποι. Εντολές και διευθυνσιοδότηση μικροελεγκτών AVR. Στοίβα, ρουτίνες, μακροεντολές, διαχείριση διακοπών.
  3. Περιφερειακά των μικροελεγκτών AVR. Θύρες γενικού σκοπού, οι καταχωρητές κατεύθυνσης και δεδομένων, παραδείγματα προγραμματισμού. 
  4. Χρονιστές/μετρητές σε AVR. Λειτουργίες καταγραφής γεγονότων εισόδου (Input Capture) και προγραμματισμός γεγονότων εξόδου (Output Compare). Αναλογικός συγκριτής,
  5. Εισαγωγή στην σειριακή σύγχρονη ή ασύγχρονη επικοινωνία με single ended (πχ RS232) ή differential σήματα (πχ USB). Μονάδα ασύγχρονης/σύγχρονης σειριακής επικοινωνίας (UART/USART), μονάδα σύγχρονης σειριακής επικοινωνίας (SPI) στον AVR. Επιλογή ταχύτητας ασύγχρονης σειριακής θύρας και αναμενόμενο σφάλμα, παραδείγματα προγραμματισμού.
  6. Μνήμη EEPROM/Flash. Αποθήκευση/ανάγνωση από EEPROM μέσω λογισμικού. Αποθήκευση/ανάγνωση EEPROM/Flash από εξωτερικό προγραμματιστή με σειριακό ή παράλληλο τρόπο.
  7. Μικροελεγκτές των 32-bit. O μικροεπεξεργαστής ARM (Harvard “bus/cache” αρχιτεκτονικής 32-bit RISC). Ιστορικό και εξέλιξη. Αναφορά στα χαρακτηριστικά των μοντέρνων 64-bit επεξεργαστών ARM όπως ο A53.
  8. Αρχιτεκτονική του ARM. CPU modes (ARM/Thumb programming mode, User/Supervisor modes). Γενικού & ειδικού σκοπού καταχωρητές. Εντολές. Debugging. Floating point. DSP. Οργάνωση μνήμης και χάρτης μνήμης. Τύποι μικρο-αρχιτεκτονικών του ARM.
  9. Eσωτερικές και εξωτερικές μνήμες σε ARM-based μικροελεγκτές (Static RAM, Synchronous Dynamic RAM, Flash)
  10. Η χρήση της γλώσσας C για προγραμματισμό ARM-based μικροελεγκτών. Αντιστοίχιση διευθύνσεων και προσπέλαση περιεχομένων θέσεων μνήμης μέσω δομών και δεικτών.
  11. Προχωρημένα περιφερειακά κυκλώματα: Ethernet MAC controller σε μικροελεγκτή βασισμένο σε ARM. Παράδειγμα προγραμματισμού για διευθυνσιοδότητη MAC controller και αναγνώρισης εισερχόμενων πακέτων, αποστολή και λήψη δεδομένων.
  12. Προχωρημένα περιφερειακά κυκλώματα: Αρχιτεκτονική USB θύρας, ουρές δεδομένων. Η USB device port σε μικροελεγκτή βασισμένο σε ARM. Παραδείγματα προγραμματισμού για λήψη και αποστολή δεδομένων με ή χωρίς ping pong.
  13. Προχωρημένα περιφερειακά κυκλώματα: USB Host Controller. Open Host Controller Interface (OHCI). Δομές που χρησιμοποιούνται στη μνήμη για την αποστολή ή τη λήψη δεδομένων (endpoints). Τύποι μεταφοράς σε USB: bulk, interrupt, isochronous.
Το εργαστηριακό μέρος του μαθήματος περιλαμβάνει παραδείγματα προγραμματισμού μικροελεγκτών βασισμένων σε AVR και ARM και υλοποίηση εφαρμογών, ώστε να επιτευχθεί εξοικείωση και απόκτηση εμπειρίας με θέματα που αφορούν την αρχιτεκτονική και τις εντολές του μικροελεγκτή, τον προγραμματισμό του σε γλώσσα Assembly. Software AVR Studio 4 IDE : Ολοκληρωμένο Περιβάλλον Ανάπτυξης C / Assembly. Βασικό λογισμικό για τη σύνταξη του πηγαίου κώδικα, τη συμβολομετάφραση  του και τη μεταφόρτωση του προγράμματος στον ελεγκτή.
Hardware STK500 micro-kit: Ολοκληρωμένη αναπτυξιακή εκπαιδευτική πλατφόρμα για AVR-based μικροελεγκτές. Δυνατότητα γρήγορης εκπαίδευσης / ανάπτυξης κώδικα C / Assembly και ανάπτυξης πρωτοτύπων και ελέγχου νέων προγραμμάτων.
Hardware STM32: Ολοκληρωμένη αναπτυξιακή εκπαιδευτική πλατφόρμα για ARM-based μικροελεγκτές. Δυνατότητα γρήγορης εκπαίδευσης / ανάπτυξης κώδικα C / Assembly και ανάπτυξης πρωτοτύπων και ελέγχου νέων προγραμμάτων.
  • ΑΣΚΗΣΗ 1. Γενικά για τους Μικροϋπολογιστές, Εξοικείωση με το περιβάλλον εργασίας του AVR Studio και STK500. Απλά προγράμματα που χρησιμοποιούν εντολές Μεταφοράς Δεδομένων σε Καταχωρητές και Μνήμη, χρήση διαγραμμάτων ροής.
  • ΑΣΚΗΣΗ 2. Αριθμητικές Πράξεις δεκαεξαδικών 8-bit/16-bit αριθμών στο AVR Studio. Λογικές Πράξεις, Εντολές Αύξησης Μείωσης, Εντολή NOP, βρόχοι, συγκρίσεις, διακλαδώσεις. 
  • ΑΣΚΗΣΗ 3. Θύρες με ψηφιακά  I/O (Ports, Push Buttons, Leds) σε AVR Studio/STK500 ή/και σε Keil uVision/STM32 για ARM-based μικροελεγκτές. Υπορουτίνες Καθυστέρησης.
  • ΑΣΚΗΣΗ 4. Χρήση χρονιστών/μετρητών σε Keil uVision/STM32 για ARM-based μικροελεγκτές για υλοποίηση καθυστέρησης ακριβείας με έλεγχο (polling) υπερχείλισης. Οι λειτουργίες Input Capture, Output Compare.
  • ΑΣΚΗΣΗ 5. Διακοπές (interrupts) σε Keil uVision/STM32 για ARM-based μικροελεγκτές. Ρουτίνες εξυπηρέτησης διακοπών (Interrupt Service Routines-ISR). Μέθοδοι αντιστοίχισης ISR με τις αντίστοιχες πηγές διακοπών.
  • ΑΣΚΗΣΗ 6. Χρήση χρονιστών/μετρητών σε Keil uVision/STM32 για ARM-based μικροελεγκτές με πρόκληση διακοπών κατά την υπερχείλιση ή σε άλλες συνθήκες. Πολλαπλές διακοπές
  • ΑΣΚΗΣΗ 7. Μετατροπείς Αναλογικού σήματος σε Ψηφιακό. Χρήση αναλογικών ακροδεκτών γενικού σκοπού σε Keil uVision/STM32 για ARM-based μικροελεγκτές για καταγραφή ενός αναλογικού σήματος. Ψηφιοποίηση ήχου
  • ΑΣΚΗΣΗ 8. Μετατροπείς Ψηφιακού σήματος σε Αναλογικό σε Keil uVision/STM32 για ARM-based μικροελεγκτές. Χρήση αναλογικών ακροδεκτών γενικού σκοπού για παραγωγή αναλογικών σημάτων (τριγωνικών, πριονωτών, ημιτονοειδών).
  • ΑΣΚΗΣΗ 9. Ελεγχος στη ταχύτητα και φορά σερβοκινητήρα με γραμμικό ποτενσιόμετρο (STK500 microkit & Flight application boards).
  • ΑΣΚΗΣΗ 10. Διατήρηση σταθερής θερμοκρασίας εντός ορίων σε θερμοαντίσταση με τη βοήθεια ανεμιστήρα ψύξης (STK500 kit & Flight application boards).
  • ΑΣΚΗΣΗ 11. Έλεγχος LEDS με φωτοδίοδο (STK500 microkit & Flight application boards).
Επιπρόσθετα δύνανται να ανατεθούν κι άλλες εργασίες – project στην πλατφόρμα STM32-F4 Discovery kit (32-bit ARM Cortex-M4 with FPU core) που τρέχει ενδεικτικές εφαρμογές (πχ. επιταχυνσιόμετρο) και σε πιλοτικό εν λειτουργία περιβάλλον εξομοιωμένου θερμοκηπίου με Arduino.


4. ΔΙΔΑΚΤΙΚΕΣ και ΜΑΘΗΣΙΑΚΕΣ ΜΕΘΟΔΟΙ - ΑΞΙΟΛΟΓΗΣΗ

ΤΡΟΠΟΣ ΠΑΡΑΔΟΣΗΣ Πρόσωπο με πρόσωπο
ΧΡΗΣΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ  Χρήση Τ.Π.Ε. στη Διδασκαλία, στην Εργαστηριακή Εκπαίδευση, στην Επικοινωνία με τους φοιτητές . 

  • Power Point παρουσιάσεις.
  • Εργαστηριακό φυλλάδιο. Διανέμεται έντυπα και ηλεκτρονικά από το e-Class.
  • Διαθέσιμα προγράμματα C / Assembly που αντιστοιχούν στις εργαστηριακές ασκήσεις.
  • Διαθέσιμo αναπτυξιακό λογισμικό.
  • Περαιτέρω εκπαιδευτικό υλικό στο e-Class του μαθήματος όπως φυλλάδιο, ασκήσεις, κώδικες, παρουσιάσεις, θέματα, ανακοινώσεις, εγγραφές σε τμήματα, λύσεις παλιών θεμάτων θεωρίας και εργαστηρίου κλπ. μέσω email (μαζικά μέσω e-class ή προσωπικά μέσω προσωπικού  email).

    ΟΡΓΑΝΩΣΗ ΔΙΔΑΣΚΑΛΙΑΣ 
  • Φόρτος Εργασίας Εξαμήνου Διαλέξεις 2 x 13=26
  • Εργαστηριακή Εκπαίδευση 2 x 13=26
  • Κατ’ οίκον μελέτη 79
  • Τελική γραπτή εξέταση (θεωρητικό μέρος) 3
  • Τελική γραπτή εξέταση (εργαστηριακό μέρος) 3
  • Σύνολο Μαθήματος 125 ώρες (5 ECTS)
ΑΞΙΟΛΟΓΗΣΗ ΦΟΙΤΗΤΩΝ
Γλώσσα: Ελληνικά
Αξιολόγηση:
(α) Τελική γραπτή εξέταση επί του θεωρητικού μέρους με θέματα που αφορούν αρχιτεκτονική, λειτουργίες, χρονισμούς, διαχείριση μνήμης και περιφερειακών καθώς και επίλυσης σύνθετων προβλημάτων σε ανάπτυξη εφαρμογών..
(β) Εξέταση ανά εργαστηριακή άσκηση μέσω ελέγχου και παράδοσης γραπτής επίλυσης προγραμματιστικού θέματος και τελική γραπτή ή/και πρακτική εξέταση επί του εργαστηριακού μέρους με ερωτήσεις επίλυσης σύνθετων προβλημάτων με προγραμματισμό σε C/Assembly.
Τελικός Βαθμός=0,6x(α) + 0,4x(β) (εκ των προτέρων γνωστό στους φοιτητές)


5. ΣΥΝΙΣΤΩΜΕΝΗ-ΒΙΒΛΙΟΓΡΑΦΙΑ


  1. Petrellis, G. Alexiou, Microprocessors and the Design of Microcomputer Systems. 2nd edition Kleidarithmos Publ., Greece, 2013.
  2. Συστήματα μικροϋπολογιστών II, Μικροελεγκτές AVR και PIC, Συγγραφέας: Πεκμεστζή Κιαμάλ Εκδότης: Συμμετρία, ISBN: 9789602662694, Αριθμός Σελίδων: 312, Έτος Έκδοσης: 2009
  3. THE AVR MICROCONTROLLER AND EMBEDDED SYSTEMS - Using Assembly and C, MUHAMMAD ALI MAZIDI, SARMAD NAIMI, AND SEPEHR NAlMl, 2011 Pearson Education, Inc., Prentice Hall.
  4. PROGRAMMING AND CUSTOMIZING THE AVR MICROCONTROLLER, Dhananjay V. Gadre, McGraw-Hill 2001.
  5. Embedded C Programming and the Atmel AVR, Richard H. Barnett, Sarah Cox, Larry O'Cull 2nd edition 2007.
  6. Introduction to Microprocessor Based Systems Using the ARM Processor, 2nd edition Kris Schindler Published by Pearson Learning Solutions 2013
  7. ARM Architecture Reference Manual 2nd Edition by David Seal, Addison-Wesley Professional 2001
  8. Embedded Systems Fundamentals with ARM Cortex-M based Microcontrollers: A Practical Approach Paperback by Alexander G Dean, Editor ARM Education Media UK (28 Mar. 2017)
  9. Embedded Systems: Introduction to Arm® Cortex™-M Microcontrollers Paperback by Jonathan W Valvano, CreateSpace Independent Publishing Platform; 2nd ed. edition (May 26 2012)
  10. PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18, Muhammad Ali Mazidi, Danny Causey, Rolin McKinlay. MicroDigitalEd, 2nd edition, 2016.
  11. 8051 Microcontroller and Embedded Systems: Using Assembly and C. 2nd edition Muhammad