3. ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ
Σκοπός του μαθήματος είναι να εισάγει τους φοιτητές στις βασικές έννοιες, και την αρχιτεκτονική των Μικροελεγκτών καθώς και στις εφαρμογές τους. Η δομή του μαθήματος στηρίζεται σε δύο άξονες: τη μελέτη των χαρακτηριστικών της διαδεδομένης οικογένειας 8-bit μικροελεγκτών AVR και των 32-bit ARM-based (πχ ARM7TDMI, ARM9TDMI, Cortex). Μελετώνται όλα τα αρχιτεκτονικά χαρακτηριστικά του όπως μνήμες, αριθμητική λογική μονάδα, εντολές, κλπ. Δίνεται ιδιαίτερη έμφαση στη μελέτη απλών αλλά και σύνθετων περιφερειακών κυκλωμάτων και η αξιοποίηση τους σε διάφορες εφαρμογές ελέγχου όπως αυτοματισμών, βιομηχανικά περιβάλλοντα, κλπ.
Το θεωρητικό μέρος περιλαμβάνει τις ακόλουθες ενότητες:
- Ιστορική αναδρομή στους μικροελεγκτες και στην εξέλιξή τους (TexasTMS1000, Intel8051). Εισαγωγή στα βασικά χαρακτηριστικά (ταχύτητα, κατανάλωση, κόστος, υποστηριζόμενη μνήμη και περιφερειακά απαραίτητα για τις ανάγκες μιας εφαρμογής) της αρχιτεκτονικής μικροελεγκτών. Αρχιτεκτονική Harvard. Διαδεδομένες κατηγορίες και κατασκευαστές μικροελεγκτών.
- Αρχιτεκτονική των μικροελεγκτών AVR (modified Harvard 8-bit RISC). Μνήμη προγράμματος, μνήμη δεδομένων και διαμόρφωσης. Καταχωρητές, αριθμητική λογική μονάδα, εντολές, τύποι. Εντολές και διευθυνσιοδότηση μικροελεγκτών AVR. Στοίβα, ρουτίνες, μακροεντολές, διαχείριση διακοπών.
- Περιφερειακά των μικροελεγκτών AVR. Θύρες γενικού σκοπού, οι καταχωρητές κατεύθυνσης και δεδομένων, παραδείγματα προγραμματισμού.
- Χρονιστές/μετρητές σε AVR. Λειτουργίες καταγραφής γεγονότων εισόδου (Input Capture) και προγραμματισμός γεγονότων εξόδου (Output Compare). Αναλογικός συγκριτής,
- Εισαγωγή στην σειριακή σύγχρονη ή ασύγχρονη επικοινωνία με single ended (πχ RS232) ή differential σήματα (πχ USB). Μονάδα ασύγχρονης/σύγχρονης σειριακής επικοινωνίας (UART/USART), μονάδα σύγχρονης σειριακής επικοινωνίας (SPI) στον AVR. Επιλογή ταχύτητας ασύγχρονης σειριακής θύρας και αναμενόμενο σφάλμα, παραδείγματα προγραμματισμού.
- Μνήμη EEPROM/Flash. Αποθήκευση/ανάγνωση από EEPROM μέσω λογισμικού. Αποθήκευση/ανάγνωση EEPROM/Flash από εξωτερικό προγραμματιστή με σειριακό ή παράλληλο τρόπο.
- Μικροελεγκτές των 32-bit. O μικροεπεξεργαστής ARM (Harvard “bus/cache” αρχιτεκτονικής 32-bit RISC). Ιστορικό και εξέλιξη. Αναφορά στα χαρακτηριστικά των μοντέρνων 64-bit επεξεργαστών ARM όπως ο A53.
- Αρχιτεκτονική του ARM. CPU modes (ARM/Thumb programming mode, User/Supervisor modes). Γενικού & ειδικού σκοπού καταχωρητές. Εντολές. Debugging. Floating point. DSP. Οργάνωση μνήμης και χάρτης μνήμης. Τύποι μικρο-αρχιτεκτονικών του ARM.
- Eσωτερικές και εξωτερικές μνήμες σε ARM-based μικροελεγκτές (Static RAM, Synchronous Dynamic RAM, Flash)
- Η χρήση της γλώσσας C για προγραμματισμό ARM-based μικροελεγκτών. Αντιστοίχιση διευθύνσεων και προσπέλαση περιεχομένων θέσεων μνήμης μέσω δομών και δεικτών.
- Προχωρημένα περιφερειακά κυκλώματα: Ethernet MAC controller σε μικροελεγκτή βασισμένο σε ARM. Παράδειγμα προγραμματισμού για διευθυνσιοδότητη MAC controller και αναγνώρισης εισερχόμενων πακέτων, αποστολή και λήψη δεδομένων.
- Προχωρημένα περιφερειακά κυκλώματα: Αρχιτεκτονική USB θύρας, ουρές δεδομένων. Η USB device port σε μικροελεγκτή βασισμένο σε ARM. Παραδείγματα προγραμματισμού για λήψη και αποστολή δεδομένων με ή χωρίς ping pong.
- Προχωρημένα περιφερειακά κυκλώματα: 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.