Παρουσίαση/Προβολή
Μικροελεγκτές (Θ+Ε)
(ECE_ELE750) - Νικόλαος Πετρέλλης (Nikos Petrellis)
Περιγραφή Μαθήματος
(English description is following)
Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στις βασικές έννοιες, τεχνικές και εφαρμογές των Μικροελεγκτών στην παρατήρηση / έλεγχο / διαχείριση διεργασιών & δεδομένων. Ιστορική αναδρομή και εξέλιξη μικροελεγκτών, αρχιτεκτονική Harvard σε αντιδιαστολή με την αρχιτεκτονική Von Neumann των επεξεργαστών. Ιδιαίτερη έμφαση δίνεται στη μελέτη βασικών περιφερειακών κυκλωμάτων που συναντώνται σε όλους τους μικροελεγκτές και στον προγραμματισμό τους. Συγκεκριμένα μελετάται ένας αντιπροσωπευτικός μικροελεγκτής 32 bit της οικογένειας μικροελεγκτών STM32 που περιλαμβάνουν ARM πυρήνα. Μελέτη μνήμης προγράμματος και δεδομένων. Τύποι εσωτερικής και εξωτερικής μνήμης, καταχωρητές, αριθμητική λογική μονάδα, εντολές, υποστηριζόμενοι τύποι δεδομένων. Θα χρησιμοποιηθεί ο μικροελεγκτής Atmel AT90RM9200 στη θεωρία για να μελετηθεί ο πυρήνας του, η διασύνδεσή του με εσωτερικές και εξωτερικές μνήμες διαφόρων τύπων και κάποια σύνθετα περιφερειακά κυκλώματα. Θα γίνει επίσης αναφορά στις μοντέρνες εκδόσεις 64-bit ARM όπως οι πυρήνες A53 που χρησιμοποιούνται στους μικροελεγκτές Raspberry PI και στις FPGAs Xilinx Ultrascale MPSoC. Στο εργαστήριο θα χρησιμοποιηθούν ασκήσεις προγραμματισμού του αναπτυξιακού STM32F4 Discovery με 32-bit ARM Cortex. Τα περιφερειακά κυκλώματα τα οποία θα μελετηθούν είτε στη θεωρία είτε στο εργαστήριο περιλαμβάνουν General Purpose I/O (GPIOs), χρονιστές/μετρητες (timer/counters), διαχείριση διακοπών (interrupts), μετατροπείς αναλογικού σήματος σε ψηφιακό και αντίστροφα (ADC/DAC), Ethernet controller, USB Device/host port.
Λέξεις Κλειδιά: Μικροελεγκτές, Μικροϋπολογιστές, Αρχιτεκτονική, Περιφερειακά Κυκλώματα
Description in English
The course introduces the students to the basics of microcontrollers and their use in various applications to monitor / control / manage processes and associated data. The evolution of microcontrollers, comparison of Von Neumann processor architecture with the microcontroller Harvard architecture. The basic peripheral circuits that are offered by all microcontrollers and their programming are studied. Specifically the 32-bit ARM based microcontroller family STM32 is studied in detail: program/data memories, internal and external memories, registers, ALU, instructions, and supported data types. Atmel AT90RM9200 will also be analyzed as a typical ARM microcontroller. Focus will be given to the features of its ARM core, its interconnection with internal and external memories and composite peripheral circuits. A short introduction will also be given about the modern 64-bit ARM architectures such as A53 that is used in popular microcontrollers (Raspberry PI) and FPGAs (e.g., Xilinx Ultrascale MPSoC). In the laboratory, several programming exercises will be given for the STM32F4 Discovery board with 32-bit ARM Cortext. The peripheral circuits that will be studied both in theory and in the lab include: General Purpose I/O (GPIO), timer/counters, interrupt handling, A/D and D/A Converters, Ethernet controllers, USB Device/Host port.
Keywords: Μικροελεγκτές, Μικροϋπολογιστές, Αρχιτεκτονική, Περιφερειακά Κυκλώματα
Ημερομηνία δημιουργίας
Τρίτη 27 Οκτωβρίου 2020
-
Περιεχόμενο μαθήματος
Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στις βασικές έννοιες, και την αρχιτεκτονική των Μικροελεγκτών καθώς και στις εφαρμογές τους. Η δομή του μαθήματος στηρίζεται στη μελέτη των χαρακτηριστικών της οικογένειας των 32-bit ARM-based μικροελεγκτών STM32. Μελετώνται όλα τα αρχιτεκτονικά χαρακτηριστικά του όπως μνήμες, αριθμητική λογική μονάδα, εντολές, κλπ. Δίνεται ιδιαίτερη έμφαση στη μελέτη απλών αλλά και σύνθετων περιφερειακών κυκλωμάτων και η αξιοποίηση τους σε διάφορες εφαρμογές ελέγχου όπως αυτοματισμών, βιομηχανικά περιβάλλοντα, κλπ.
Το θεωρητικό μέρος περιλαμβάνει τις ακόλουθες ενότητες:
1. Ιστορική αναδρομή στους μικροελεγκτες και στην εξέλιξή τους (TexasTMS1000, Intel8051). Εισαγωγή στα βασικά χαρακτηριστικά (ταχύτητα, κατανάλωση, κόστος, υποστηριζόμενη μνήμη και περιφερειακά απαραίτητα για τις ανάγκες μιας εφαρμογής) της αρχιτεκτονικής μικροελεγκτών. Αρχιτεκτονική Harvard. Διαδεδομένες κατηγορίες και κατασκευαστές μικροελεγκτών.
2. Μικροελεγκτές των 32-bit. O μικροεπεξεργαστής ARM Cortex (Harvard “bus/cache” αρχιτεκτονικής 32-bit RISC). Ιστορικό και εξέλιξη. Αναφορά στα χαρακτηριστικά των μοντέρνων 64-bit επεξεργαστών ARM όπως ο A53.
3. Αρχιτεκτονική του ARM. CPU modes (ARM/Thumb programming mode, User/Supervisor modes). Γενικού & ειδικού σκοπού καταχωρητές. Εντολές. Debugging. Floating point. DSP. Οργάνωση μνήμης και χάρτης μνήμης. Τύποι μικρο-αρχιτεκτονικών του ARM. Network Vectored Interrupt Controller του ARM Cortex
4. Eσωτερικές και εξωτερικές μνήμες σε ARM-based μικροελεγκτές (Static RAM, Synchronous Dynamic RAM, Flash) και η χρήση της γλώσσας C για προγραμματισμό ARM-based μικροελεγκτών. Αντιστοίχιση διευθύνσεων και προσπέλαση περιεχομένων θέσεων μνήμης μέσω δομών και δεικτών.5. Θύρες ακροδεκτών γενικού σκοπού (GPIOs) στο μικροελεγκτή STM32F407
6. Χρονιστές / Μετρητές (Timer/Counters) TIM στο μικροελεγκή STM32F407
7. Διαχείριση διακοπών σε επίπεδο περιφερειακών κυκλωμάτων του STM32F407. Οι διακοπές στους TImer/Counters ΤΙΜ του STM32F407. Έλεγχος σε επίπεδο περιφερειακών κυκλωμάτων και σε επίπεδο NVIC
8. Λειτουργίες χρονομετρητών Input Capture, Output Compare, PWM. Εξειδίκευση στον STM32F407
9. Εισαγωγή στους μετατροπείς Αναλογικού σήματος σε Ψηφιακό (ADC). Ο ADC και τα κανάλια του στον STM32F407. Καταστάσεις λειτουργίας
10. ΕΙσαγωγή στους μετατροπείς Ψηφιακού σήματος σε Αναλογικό (DAC). Ο DAC στον STM32F407
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.Το εργαστηριακό μέρος του μαθήματος περιλαμβάνει παραδείγματα προγραμματισμού του αναπτυξιακού STM32F4 Discovery βασισμένου σε ARM Cortex και υλοποίηση εφαρμογών, ώστε να επιτευχθεί εξοικείωση και απόκτηση εμπειρίας με θέματα που αφορούν τη χρήση μικροελεγκτών γενικά και ειδικότερα του STM32. Οι ασκήσεις υλοποιούνται σε γλώσσα C και με τη χρηση των εργαλείων Keil uVision, STMCubeMX
Hardware STM32: Ολοκληρωμένη αναπτυξιακή εκπαιδευτική πλατφόρμα για ARM-based μικροελεγκτές. Δυνατότητα γρήγορης εκπαίδευσης / ανάπτυξης κώδικα C / Assembly και ανάπτυξης πρωτοτύπων και ελέγχου νέων προγραμμάτων.
ΑΣΚΗΣΗ 1. Γενικά για τους Μικροϋπολογιστές, Εξοικείωση με το περιβάλλον εργασίας του Keil uVision. Περιγραφή του STM32 F4 Discovery board, του τρόπου σύνδεσης του και προγραμματισμού της μνήμης Flash
ΑΣΚΗΣΗ 2. Θύρες με ψηφιακά I/O (GPIO Ports, Push Buttons, Leds) σε Keil uVision/STM32 για ARM-based μικροελεγκτές. Σύνδεση LEDs σε GPIO ακροδέκτεςΑΣΚΗΣΗ 3. GPIO ports σύνδεση διακοπτών σε ακροδέκτες εισόδου. Αναλυτική παρουσίαση της δομής του κώδικα, παραλλαγές των λυμένων ασκήσεων
ΑΣΚΗΣΗ 4. Χρήση χρονιστών/μετρητών ΤΙΜ σε Keil uVision/STM32 για ARM-based μικροελεγκτές για υλοποίηση καθυστέρησης ακριβείας με έλεγχο (polling) υπερχείλισης.ΑΣΚΗΣΗ 5. Διακοπές (interrupts) σε Keil uVision/STM32 για ARM-based μικροελεγκτές. Ρουτίνες εξυπηρέτησης διακοπών (Interrupt Service Routines-ISR). Μέθοδοι αντιστοίχισης ISR με τις αντίστοιχες πηγές διακοπών. Επίτρεψη και έλεγχος διακοπών σε επίπεδο NVIC
ΑΣΚΗΣΗ 6. Χρήση χρονιστών/μετρητών σε Keil uVision/STM32 για ARM-based μικροελεγκτές με πρόκληση διακοπών κατά την υπερχείλιση ή σε άλλες συνθήκες. Πολλαπλές διακοπέςΑΣΚΗΣΗ 7. Οι λειτουργίες Input Capture, Output Compare σε ΤΙΜ χρονομετρητές του STM32
ΑΣΚΗΣΗ 8. Η λειτουργία Pulse WIdth Modulation (PWM) των χρονομετρητών ΤΙΜ του STM32
ΑΣΚΗΣΗ 9. Μετατροπείς Αναλογικού σήματος σε Ψηφιακό. Χρήση αναλογικών ακροδεκτών γενικού σκοπού σε Keil uVision/STM32 για ARM-based μικροελεγκτές για καταγραφή ενός αναλογικού σήματος. Ψηφιοποίηση ήχου
ΑΣΚΗΣΗ 10. Μετατροπείς Ψηφιακού σήματος σε Αναλογικό σε Keil uVision/STM32 για ARM-based μικροελεγκτές. Χρήση αναλογικών ακροδεκτών γενικού σκοπού για παραγωγή αναλογικών σημάτων (τριγωνικών, πριονωτών, ημιτονοειδών).
ΑΣΚΗΣΗ 11. Εφαρμογή ελέγχου θερμοκηπίου με τη χρήση του STM32. Προδιαγραφές, οδηγίες υλοποίησης από τους φοιτητές
ΑΣΚΗΣΗ 12. Παρουσίαση των λύσεων για την εφαρμογή ελέγχου θερμοκηπίου με τη χρήση STM32 από τους φοιτητές.
ΑΣΚΗΣΗ 13. Εξέταση εργαστηρίου. Η εξέταση πραγματοποιείται στο χώρο του εργαστηρίου με τη χρήση του αναπτυξιακού STM32Μαθησιακοί στόχοι
Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα μπορούν:
Σε επίπεδο Γνώσεων:
Το γενικό πλαίσιο θεωρητικών και πρακτικών γνώσεων που θα αποκτήσει ο φοιτητής στο τέλος του μαθήματος ο φοιτητής θα είναι:
1. Η κατανόηση σε βάθος της δομής, αρχιτεκτονικής τύπου-harvard, λειτουργίας και προγραμματισμού σε γλώσσα C και Assembly των επεξεργαστικών πυρήνων AVR και ARM.
2. Αναλυτική περιγραφή της λειτουργικότητας στην εκτέλεση εντολών με λεπτομερή διαγράμματα χρονισμού.
3. Ανάλυση και μελέτη προγραμματισμού και διαχείρισης μνήμης και περιφερειακών για έλεγχο, αυτοματισμούς και επεξεργασία. Ρουτίνες, μακροεντολές, καταχωρητές θυρών Ι/Ο, διακοπές.
4. Σχεδίαση και υλοποίηση ολοκληρωμένων συστημάτων μικροελεγκτών και εφαρμογές στον αυτόματο έλεγχο διεργασιών σε βιομηχανίες, κτίρια, διαχείριση ενέργειας και πόρων.
Σε επίπεδο Δεξιοτήτων:1. Θεωρητική και πρακτική μελέτη και ανάλυση σε βάθος της αρχιτεκτονικής και του προγραμματισμού των μικροελεγκτών, αντίληψης των ειδικών δυνατοτήτων των μικροελεγκτών και της εφαρμογής τους σε διάφορα πεδία παρατήρησης ελέγχου και αυτοματισμού διεργασιών στη βιομηχανία, έξυπνα κτίρια, μεταφορές, κοινή ωφέλεια, αγροτικό τομέα, περιβάλλον, κλπ.
2. Επίσης ο φοιτητής θα αποκτήσει μια πρώιμη εμπειρία στην πρακτική δηλ. ικανότητα εφαρμογής γνώσεων & προγραμματισμό, όσον αφορά τον σχεδιασμό και την ανάπτυξη εφαρμογών βασισμένων σε μικροελεγκτές με την προσθήκη κατάλληλων περιφερειακών κυκλωμάτων (hardware) και ειδικού προγραμματισμού (software) και οδηγών (drivers) στα προαναφερθέντα πεδία εφαρμογής.Σε επίπεδο Ικανοτήτων:
1. Να εφαρμόζει τις κατάλληλες τεχνικές σχεδίασης και εξομοίωσης κατά την ανάπτυξη ενός συστήματος βασισμένου σε μικροελεγκτές.
2. Να αναπτύσσει και να υλοποιεί τόσο το λογισμικό όσο και τα κυκλώματα που απαιτούνται σε μια εφαρμογή βασισμένη σε μικροελεγκτές.
3. Να υπολογίζει τις επιδόσεις (κόστος, κατανάλωση ενέργειας, ταχύτητα, κλπ) που μπορούν να επιτευχθούν από τη χρήση μικροελεγκτών σε σχέση με τις προδιαγραφές της εκάστοτε εφαρμογής.Μέθοδοι αξιολόγησης-Student Performance Evaluation
Αξιολόγηση:
(α) Τελική γραπτή εξέταση επί του θεωρητικού μέρους με θέματα που αφορούν αρχιτεκτονική, λειτουργίες, χρονισμούς, διαχείριση μνήμης και περιφερειακών καθώς και επίλυσης σύνθετων προβλημάτων σε ανάπτυξη εφαρμογών.
(β) Εξέταση ανά εργαστηριακή άσκηση μέσω ελέγχου και παράδοσης γραπτής επίλυσης προγραμματιστικού θέματος και τελική γραπτή ή/και πρακτική εξέταση επί του εργαστηριακού μέρους με ερωτήσεις επίλυσης σύνθετων προβλημάτων με προγραμματισμό σε C/Assembly
Τελικός Βαθμός=0,6x(α) + 0,4x(β)
(εκ των προτέρων γνωστό στους φοιτητές)
Βιβλιογραφία
- Petrellis, G. Alexiou, Microprocessors and the Design of Microcomputer Systems. 2nd edition Kleidarithmos Publ., Greece, 2013.
- Microcomputer Systems II Microcontrollers AVR & PIC, Pekmestzi Kiamal, Symmetria Editions ISBN: 9789602662694, 2009
- THE AVR MICROCONTROLLER AND EMBEDDED SYSTEMS - Using Assembly and C, MUHAMMAD ALI MAZIDI, SARMAD NAIMI, AND SEPEHR NAlMl, 2011 Pearson Education, Inc., Prentice Hall.
- PROGRAMMING AND CUSTOMIZING THE AVR MICROCONTROLLER, Dhananjay V. Gadre, McGraw-Hill 2001.
- Embedded C Programming and the Atmel AVR, Richard H. Barnett, Sarah Cox, Larry O'Cull 2nd edition 2007.
- Introduction to Microprocessor Based Systems Using the ARM Processor, 2nd edition Kris Schindler Published by Pearson Learning Solutions 2013
- ARM Architecture Reference Manual 2nd Edition by David Seal, Addison-Wesley Professional 2001
- 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)
- Embedded Systems: Introduction to Arm® Cortex™-M Microcontrollers Paperback by Jonathan W Valvano, CreateSpace Independent Publishing Platform; 2nd ed. edition (May 26 2012)
- PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18, Muhammad Ali Mazidi, Danny Causey, Rolin McKinlay. MicroDigitalEd, 2nd edition, 2016.
- 8051 Microcontroller and Embedded Systems: Using Assembly and C. 2nd (Second) edition Muhammad Ali Mazidi, Janice Gillispie Mazidi, Rolin D. McKinlay , Prentice Hall September 15, 2005.
- Laboratory Exercises textbook, Programming in AVR, Microcomputer laboratory, ECE, UOP, 2019