Μηχανοτρονική Μάθημα ΙV Μικροελεγκτές. Καθηγητής Αντώνιος Γαστεράτος, Δρ. Αθανάσιος Ψωμούλης Τμήμα Μηχανικών Παραγωγής και Διοίκησης, Δ.Π.Θ.

Σχετικά έγγραφα
Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

WDT και Power Up timer

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Ενσωµατωµένα Συστήµατα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Δομή Ηλεκτρονικού υπολογιστή

Το υλικό του υπολογιστή

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Μνήμη και Προγραμματίσιμη Λογική

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

Ψηφιακή Λογική Σχεδίαση

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Αρχιτεκτονική υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αρχιτεκτονική υπολογιστών

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι)

Συστήματα Μικροϋπολογιστών

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Εφαρμογές μικροελεγκτών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

Βασικές Έννοιες της Πληροφορικής

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Οργάνωση Υπολογιστών (IΙI)

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Τεχνολογίες Κύριας Μνήμης

Θεωρητικές Ερωτήσεις

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

9. ΚΑΤΑΧΩΡΗΤΕΣ (REGISTERS)

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Κεντρική Μονάδα Επεξεργασίας

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Οργάνωση Υπολογιστών (ΙI)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

ΕΙ Η ΜΝΗΜΩΝ ΠΤΥΤΙΚΕΣ ΜΗ ΠΤΥΤΙΚΕΣ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Αρχιτεκτονική υπολογιστών

Ηλεκτρονικός Υπολογιστής

Αρχιτεκτονική Μνήμης

Αρχιτεκτονική Μνήµης

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

8.1 Θεωρητική εισαγωγή

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Αρχιτεκτονικές Συνόλου Εντολών

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Λιβανός Γιώργος Εξάμηνο 2017Β

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Αρχιτεκτονική υπολογιστών

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Transcript:

Μηχανοτρονική Μάθημα ΙV Μικροελεγκτές Καθηγητής Αντώνιος Γαστεράτος, Δρ Αθανάσιος Ψωμούλης Τμήμα Μηχανικών Παραγωγής και Διοίκησης, ΔΠΘ 1

Μικροελεγκτές Αρχές της δεκαετίας του 1970: Η τεχνολογία μέσης κλίμακας ολοκλήρωση (medium scale integration MSI) επέτρεψε στους σχεδιαστές κυκλωμάτων να ολοκληρώσουν όλες τις λειτουργίες μιας κεντρικής μονάδας επεξεργασίας (Central Processing Unit - CPU) υπολογιστή σε ένα μόνο πλινθίο, το οποίο ονόμασαν μικροεπεξεργαστή Οι εταιρείες Intel και Texas Instruments παρουσίασαν το 1971 σχεδόν ταυτόχρονα τους πρώτους μικροεπεξεργαστές τεσσάρων ψηφίων: τον 4004 και τον TMS1802 Σήμερα: Mεγάλος πλουραλισμός στην αγορά μικροϋπολογιστικών συστημάτων (μps, microcontrollers, DSPs κλπ) 2

Μικροελεγκτές Οι επεξεργαστές απαιτούν και άλλα κυκλώματα, όπως μνήμη και βασικές λειτουργίες εισόδου/εξόδου (Input/Output I/O), προκειμένου να είναι λειτουργικοί αρτηρία συστήµατος Μικρο επεξεργαστής (µp) RAM ROM Είσοδος Έξοδος Στοιχεία µνήµης Μονάδα εισόδου/εξόδου Ένα σύστημα που αποτελείται από μικροεπεξεργαστή, μνήμη και συσκευές I/O ονομάζεται μικροϋπολογιστής 3

Μικροελεγκτές αρτηρία συστήµατος Μικρο επεξεργαστής (µp) RAM ROM Είσοδος Έξοδος Στοιχεία µνήµης Μονάδα εισόδου/εξόδου Σε ένα σύστημα μικρουπολογιστή: Ο μικροεπεξεργαστής, με βάση τις εντολές του προγράμματός του, χρησιμοποιείται για την εκτέλεση αριθμητικών και λογικών λειτουργιών επάνω σε δεδομένα καθώς και λειτουργιών ελέγχου Η μνήμη χρησιμοποιείται για την αποθήκευση δεδομένων και εντολών προγράμματος Διακρίνεται σε πτητική (RAM) και μη πτητική (ROM), καθεμία από τις οποίες βρίσκεται σε διαφορετικά πλινθία Η μονάδα I/O χρησιμοποιείται για την επικοινωνία (μεταφορά/ανταλλαγή δεδομένων) του μικροϋπολογιστή με εξωτερικές συσκευές μέσω θυρών Ι/Ο, οι οποίες υλοποιούνται με χρήση μανδαλωτών και απομονωτών τριών καταστάσεων 4

Μικροελεγκτές Ένας μικροεπεξεργαστής γενικής χρήσης τυπικά περιέχει ένα σύνολο από καταχωρητές, μία μονάδα ελέγχου καθώς και μία αριθμητική και λογική μονάδα και υλοποιεί/υποστηρίζει ένα σύνθετο σύνολο εντολών (Instructions Set) Στις περισσότερες εφαρμογές μηχανοτρονικής δεν χρειάζονται οι εξεζητημένες λειτουργίες και οι σύνθετες εντολές ενός πλήρους υπολογιστή που φέρει κάποιον μικροεπεξεργαστή γενικής χρήσης Οι ανάγκες τους μπορούν να εξυπηρετηθούν με χαμηλού κόστους, απλά μονολιθικά (ολοκλήρωση όλων των συσκευών που απαιτούνται σε ένα μοναδικό πλινθίο) μικροϋπολογιστικά συστήματα Τα ολοκληρωμένα αυτά κυκλώματα ονομάστηκαν μικροελεγκτές (οι πρώτοι διάσημοι ήταν οι 8048 και 8051 από την Intel και η σειρά 68HCxx από τη Motorola) Ο μικροελεγκτής περιέχει ένα πυρήνα απλού επεξεργαστή, μνήμη (πτητική και μη πτητική), θύρες I/O, ενώ στις περισσότερες περιπτώσεις περιλαμβάνει ακόμη και ADC και DAC για άμεση επικοινωνία με το φυσικό κόσμο 5

Μικροελεγκτές Πολλές από τις συσκευές που είναι ολοκληρωμένες σε μικροελεγκτές, στους μικροεπεξεργαστές, στους οποίους βασίζουν τη λειτουργία τους γενικής χρήσης υπολογιστικά συστήματα, χρειάζεται να τοποθετηθούν εξωτερικά, με αποτέλεσμα να αυξάνει το συνολικό κόστος σχεδιασμού και υλοποίησης του συστήματος Ο μικροελεγκτής αποτελεί τη βασική ηλεκτρονική μονάδα με την οποία εκτελείται ο έλεγχος σε ένα σύστημα μηχανοτρονικής (εγκέφαλος του συστήματος) Τυπική λειτουργία μικροελεγκτή σε οικιακή συσκευή διασύνδεση χρήστη οθόνη επιλογέας ή πληκτρολόγιο αισθητήρες επίπεδο νερού ελεγκτής προγράµµατος θερµοκρασία νερού βάρος ρούχων τύµπανο θερµοκρασία νερού ενεργοποίηση αντλία νερού 6

Μικροελεγκτές Σε ένα οικιακό πλυντήριο, ο μικροελεγκτής είναι τοποθετημένος μεταξύ αισθητήρων, ενεργοποιητών και χρήστη: διαβάζει τη θερμοκρασία, το επίπεδο του νερού και το βάρος των ρούχων μέσω των αντίστοιχων αισθητήρων, λαμβάνει υπόψη του τις προτιμήσεις και τους περιορισμούς που θέτει ο χρήστης για το χρώμα και την ευαισθησία των ρούχων, κλπ με βάση αυτά εκτελεί συγκεκριμένο πρόγραμμα, δίνοντας εντολές ελέγχου κίνησης ή και ταχύτητας του τυμπάνου, το οποίο βελτιστοποιεί το αποτέλεσμα, δηλαδή ένα καλό πλύσιμο των ρούχων με ταυτόχρονη μείωση της ενέργειας, του νερού και του απορρυπαντικού που δαπανάται για το πλύσιμο Τυπική λειτουργία μικροελεγκτή σε οικιακή συσκευή διασύνδεση χρήστη οθόνη επιλογέας ή πληκτρολόγιο αισθητήρες επίπεδο νερού ελεγκτής προγράµµατος θερµοκρασία νερού βάρος ρούχων τύµπανο θερµοκρασία νερού ενεργοποίηση 7 αντλία νερού

Μικροελεγκτές - Κριτήρια επιλογής για συγκεκριμένη εφαρμογή η ταχύτητα/απόδοσή του, η οποία καθορίζει και την απόδοσή της εφαρμογής το μέγεθος μνήμης και οι δυνατότητες διασύνδεσης με ψηφιακές και αναλογικές εισόδους και εξόδους η ύπαρξη ενσωματωμένων κυκλωμάτων που υποστηρίζουν εξειδικευμένες λειτουργίες (πχ ADCs, DACs, SPI, CAN, I2C I/Fs κλπ) το συνολικό κόστος ανάπτυξης (σχεδίασης/υλοποίησης/ελέγχου) η ύπαρξη συμβατών (της ίδιας οικογένειας) ισχυρότερων μικροελεγκτών που παρέχει την δυνατότητα εύκολής μελλοντικής αναβάθμισης του συστήματος η ευρεία χρήση του σε διάφορες εφαρμογές, η οποία εξασφαλίζει την ύπαρξη εμπειρίας στην χρήση του, αλλά και ώριμων εργαλείων ανάπτυξης λογισμικού **Συστήνεται η εφαρμογή του πρακτικού κανόνα εξασφάλισης του επιπλέον 25% για όλους τους προυπολογιζόμενους πόρους του συστήματος, περιλαμβανομένης της διαθέσιμης μνήμης και της ταχύτητας, για την άμεση/ εύκολη αντιμετώπιση αστοχιών και απρόβλεπτων καταστάσεων 8

Μικροελεγκτές - Αρχιτεκτονική Πυρήνας επεξεργαστή (CPU): Είναι η κεντρική μονάδα επεξεργασίας, που περιλαμβάνει εσωτερικά τους καταχωρητές, τη μονάδα ελέγχου και την αριθμητική και λογική μονάδα Μνήμη: Περιλαμβάνει την πτητική (RAM) και τη μη πτητική μνήμη (ROM) Η μνήμη διακρίνεται επίσης σε μνήμη προγράμματος και μνήμη δεδομένων Στους μεγάλους μικροελεγκτές η μεταφορά δεδομένων μεταξύ περιφεριακών και μνήμης γίνεται από έναν ελεγκτή άμεσης πρόσβασης μνήμης (Direct Memory Access - DMA) Χρονιστές/Μετρητές: Για τη δημιουργία χρονικών σημάνσεων (timestamps) καθώς και τη μέτρηση χρονικών διαστημάτων και συμβάντων Πάρα πολλοί ελεγκτές χρησιμοποιούν μετρητές για την παραγωγή σήματος PWM στην έξοδο για απευθείας οδήγηση κινητήρων CPU RAM (SRAM) ROM (EEPROM/ Flash) Χρονιστής/ Μετρητής Εσωτερική αρτηρία Ψηφιακή Ι/Ο Σειριακής διεπαφής Αναλογική Ι/Ο Ελεγκτής διακοπών 9

Μικροελεγκτές - Αρχιτεκτονική Ψηφιακή Ι/Ο: Οι παράλληλες ψηφιακές θύρες Ι/Ο είναι από τα βασικά χαρακτηριστικά ενός μικροελεγκτή Ο αριθμός των ακροδεκτών Ι/Ο μπορεί να ποικίλει από 4 έως 90, ανάλογα με την οικογένεια και τη σειρά του μικροελεγκτή Αναλογική Ι/Ο: Σχεδόν το σύνολο των μικροελεγκτών διαθέτουν ολοκληρωμένους ADC, που διαφέρουν ως προς την ανάλυσή τους (συνήθως 8 έως 12 ψηφία) Ορισμένοι μικροελεγκτές διαθέτουν ολοκληρωμένους και DAC Ελεγκτής διακοπών: Οι διακοπές χρησιμοποιούνται για τη διακοπή της ροής του προγράμματος όταν συμβαίνουν σημαντικά συμβάντα εντός ή εκτός του μικροελεγκτή CPU RAM (SRAM) ROM (EEPROM/ Flash) Χρονιστής/ Μετρητής Εσωτερική αρτηρία Ψηφιακή Ι/Ο Σειριακής διεπαφής Αναλογική Ι/Ο Ελεγκτής διακοπών 10

Μικροελεγκτές - Αρχιτεκτονική Σειριακή διεπαφή: Μπορεί να χρησιμοποιηθεί πχ για το κατέβασμα του προγράμματος και γενικά την επικοινωνία με τον υπολογιστή (hosting computer) που χρησιμοποιεί ο χρήστης για την ανάπτυξη του κώδικα εφαρμογής Διάφορα υποσυστήματα που αποσκοπούν στον χρονισμό ή στην ορθή λειτουργία του μικροελεγκτή όπως πχ τα κυκλώματα τοπικού ταλαντωτή (για την παροχή παλμών χρονισμού), αρχικοποίησης (reset), επιτήρησης τροφοδοσίας, επιτήρησης λειτουργίας (watchdog), κλπ Η επικοινωνία του μικροελεγκτή με τον εξωτερικό κόσμο γίνεται μέσω ακίδων (pins) εισόδου/εξόδου CPU RAM (SRAM) ROM (EEPROM/ Flash) Χρονιστής/ Μετρητής Εσωτερική αρτηρία Ψηφιακή Ι/Ο Σειριακής διεπαφής Αναλογική Ι/Ο Ελεγκτής διακοπών 11

Μικροελεγκτές - Αρτηρίες Αποτελούν το φυσικό μέσο μεταφοράς της ψηφιακής πληροφορίας σε ένα σύστημα μικροϋπολογιστή Είναι φτιαγμένες συνήθως από μεταλλικούς αγωγούς (ένας αγωγός για κάθε ψηφίο) Χαρακτηρίζονται από τον αριθμό των δυαδικών ψηφίων που μπορούν να μεταφέρουν, δηλαδή συνήθως μιλάμε για αρτηρία 8-bit, 16-bit κλπ Μνήµη Ι/Ο RAM ROM Θύρες εισόδου Θύρες εξόδου Αρτηρία διευθύνσεων CPU Αρτηρία δεδοµένων Αρτηρία ελέγχου Αρτηρία συστήµατος 12

Μικροελεγκτές - Αρτηρίες Η Αρτηρία Συστήματος ενός μικροϋπολογιστή γενικά, και του μικροελεγκτή ειδικότερα, περιλαμβάνει: την αρτηρία διευθύνσεων (μεταφορά διευθύνσεων) την αρτηρία δεδομένων (μεταφορά δεδομένων ή του προς εκτέλεση προγράμματος) την αρτηρία ελέγχου (μεταφορά σημάτων ελέγχου σχετικών με την εκτέλεση του προγράμματος) Οι αρτηρίες αυτές συνδέουν τη CPU με τη μνήμη RAM και ROM καθώς και με τις λοιπές μονάδες Μνήµη Ι/Ο RAM ROM Θύρες εισόδου Θύρες εξόδου Αρτηρία διευθύνσεων CPU Αρτηρία δεδοµένων Αρτηρία ελέγχου Αρτηρία συστήµατος 13

Μικροελεγκτές - Αρτηρίες Αρτηρία Διευθύνσεων Η πληροφορία ρέει από τη CPU προς τη μνήμη ή τις θύρες Ι/Ο (μονοκατευθυντική) Το μέγεθός της Ν ορίζει τις διαφορετικές διευθύνσεις μνήμης ή άλλων συσκευών, στις οποίες μπορεί να απευθυνθεί συνολικά η CPU, οι οποίες είναι 2 Ν Σε ορισμένες συσκευές η αρτηρία διευθύνσεων και η αρτηρία δεδομένων μπορεί να πολυπλέκονται για λόγους οικονομίας χώρου Μνήµη Ι/Ο RAM ROM Θύρες εισόδου Θύρες εξόδου Αρτηρία διευθύνσεων CPU Αρτηρία δεδοµένων Αρτηρία ελέγχου Αρτηρία συστήµατος 14

Μικροελεγκτές - Αρτηρίες Αρτηρία Δεδομένων Η πληροφορία ρέει και προς τις δύο κατευθύνσεις, δηλαδή από και προς τη CPU (αμφίδρομη) - Εγγραφή (Write) - αποστολή δεδομένων από τον επεξεργαστή στη μνήμη ή μία συσκευή Ι/Ο - Ανάγνωση (Read) - λήψη από τον επεξεργαστή δεδομένων της μνήμης ή μίας θύρα Ι/Ο Το μέγεθός της είναι συνήθως ίδιο με αυτό των καταχωρητών της CPU και καθορίζει το μήκος λέξης και συνεπώς τον τύπο του μικροελεγκτή (σε μικροελεγκτή 8-bit ή 16-bit, η αρτηρία δεδομένων είναι 8 ή 16 ψηφίων, αντίστοιχα) Μνήµη Ι/Ο RAM ROM Θύρες εισόδου Θύρες εξόδου Αρτηρία διευθύνσεων CPU Αρτηρία δεδοµένων Αρτηρία ελέγχου Αρτηρία συστήµατος 15

Μικροελεγκτές - Αρτηρίες Αρτηρία Ελέγχου Η πληροφορία ρέει από τη CPU προς τη μνήμη ή τις θύρες Ι/Ο (μονοκατευθυντική) και χρησιμοποιείται για τον συγχρονισμό των λειτουργιών των επιμέρους μονάδων του μικροελεγκτή Το σετ σημάτων ελέγχου εν πολλοίς διαφέρει από τον ένα στον άλλο μικροελεγκτή, ενώ υπάρχουν σήματα που είναι κοινά για πολλούς μικροελεγκτές Μνήµη Ι/Ο RAM ROM Θύρες εισόδου Θύρες εξόδου Αρτηρία διευθύνσεων CPU Αρτηρία δεδοµένων Αρτηρία ελέγχου Αρτηρία συστήµατος 16

Μικροελεγκτές - Χρονισμός Σήμα παλμών ρολογιού - περιοδικό, τετραγωνικό σήμα που επιτρέπουν τον συγχρονισμό της εκτέλεσης των εντολών της CPU Η συχνότητά του ουσιαστικά καθορίζει το ρυθμό εκτέλεσης των εντολών από τη CPU του μικροελεγκτή Ορισμένοι μικροελεγκτές διαθέτουν εσωτερική γεννήτρια παλμών ρολογιού και χρειάζονται μόνο έναν κατάλληλης συχνότητας εξωτερικό κρύσταλλο ή ένα κύκλωμα ταλαντωτή, που με την ταλάντωσή του θέτει την κατάλληλη συχνότητα λειτουργίας Παραδείγματα ταλαντωτών: α) κύκλωμα Pierce με κρύσταλλο β) ταλαντωτής RC Οι μικροελεγκτές που δεν διαθέτουν εσωτερική γεννήτρια παλμών ρολογιού πρέπει να συνδεθούν με κατάλληλο ολοκληρωμένο κύκλωμα παραγωγής παλμών ρολογιού 17

Μικροελεγκτές - Χρονισμός Η CPU, με βάση το σήμα ρολογιού, δίνει στις εξωτερικές συσκευές που είναι συνδεδεμένες σε αυτήν (πχ στη μνήμη), τα σήματα ελέγχου που απαιτούνται για το συγχρονισμό της λειτουργίας τους και της αλληλεπίδρασης μαζί της Απλοποιημένος κύκλος αρτηρίας για (α) εγγραφή και (β) ανάγνωση μνήμης περίοδος ρολογιού περίοδος ρολογιού CLK CLK διεύθυνση έγκυρα δεδοµένα διεύθυνση έγκυρα δεδοµένα δεδοµένα έγκυρα δεδοµένα δεδοµένα έγκυρα δεδοµένα Read/Write Read/Write Memory select Memory select κύκλος αρτηρίας κύκλος αρτηρίας 18

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Η κεντρική μονάδα επεξεργασίας (CPU) ορίζει ουσιαστικά τις υπολογιστικές δυνατότητες που έχει ο μικροελεγκτής Το μέγεθος των καταχωρητών και των αρτηριών της CPU καθορίζουν το μέγεθος των δεδομένων που μπορεί να διαχειριστεί ο μικροελεγκτής Καταχωρητές Μία CPU διακρίνεται σε τρεις περιοχές: την αριθμητική και λογική μονάδα (Arithmetic and Logic Unit - ALU), τ η μ ο ν ά δ α ε λ έ γ χ ο υ (Control Unit) και τ ο υ ς κ α τ α χ ω ρ η τ έ ς (Registers) Μονάδα ελέγχου ALU 19

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Αριθμητική και Λογική Μονάδα (ALU) Είναι ένα συνδυαστικό κύκλωμα που εκτελεί όλες τις αριθμητικές και λογικές πράξεις πάνω στα δεδομένα του μικροελεγκτή Επιπλέον, στην έξοδο της ALU τα δεδομένα μπορούν να εισέλθουν σε έναν καταχωρητή ολίσθησης, που αποτελεί αναπόσπαστο μέρος της, όπου μπορεί να ολισθαίνουν ή να περιστραφούν αριστερά ή δεξιά κατά ένα ψηφίο με τη χρήση ή όχι κρατουμένου Το μέγεθός της συμφωνεί με το μήκος λέξης του μικροελεγκτή Καταχωρητές "0" κρατούµενο κρατούµενο χάνεται "0" Μονάδα ελέγχου ALU 20

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Ελέγχου Ο βασικός σκοπός της είναι η ανάγνωση των εντολών που είναι γραμμένες στη μνήμη προγράμματος, η αποκωδικοποίησή τους και η παραγωγή των κατάλληλων σημάτων ελέγχου για την εκτέλεσή τους Τα σήματα αυτά αποτελούν: σήματα ελέγχου της ALU, με βάση τα οποία εκτελείται μια συγκεκριμένη λειτουργία από το ρεπερτόριο των εντολών της, καθώς και σήματα που διαβιβάζονται μέσω της αρτηρίας ελέγχου στις υπόλοιπες μονάδες του μικροελεγκτή και τις συγχρονίζουν με τη λειτουργία της κεντρικής μονάδας επεξεργασίας Επιπλέον, λαμβάνει ως είσοδο και εξυπηρετεί τα σήματα ελέγχου που παράγουν οι υπόλοιπες μονάδες, Καταχωρητές Μονάδα ελέγχου ALU Βασικές λειτουργίες που είναι κοινές για όλους τους μικροελεγκτές: Επαναφορά (Reset): επαναθέτει τον μικροελεγκτή στην αρχική του κατάσταση Εγγραφή/Ανάγνωση (Read/Write ): καθορίζει αν η λειτουργία που εκτελείται είναι εγγραφής ή ανάγνωσης Έτοιμος (Ready): χρησιμοποιείται για τον έλεγχο της επικοινωνίας, μέσω χειραψίας (handshaking), του μικροελεγκτή με εξωτερικές συσκευές Αίτημα Διακοπής (Interrupt request - IRQ): οι εξωτερικές συσκευές μπορούν να αιτούνται τη διακοπή της λειτουργίας της CPU για να τις εξυπηρετήσει 21

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Καταχωρητές Γενικά χρησιμοποιούνται για την προσωρινή αποθήκευση ή τη μεταφορά δεδομένων Τα δεδομένα αποθηκεύονται στη μνήμη, από την οποία ανακαλούνται και τοποθετούνται στους καταχωρητές της CPU Οι διάφορες αριθμητικές και λογικές λειτουργίες μ ε τ α β ά λ λ ο υ ν τ α δ ε δ ο μ έ ν α σ τ ο υ ς κ α τ α χ ω ρ η τ έ ς, α π ό τ ο υ ς ο π ο ί ο υ ς μ ε τ α φ έ ρ ο ν τ α ι ξ α ν ά σ τ η μ ν ή μ η γ ι α αποθήκευση Καταχωρητές Μονάδα ελέγχου ALU Καταχωρητές γενικής χρήσης Οι λειτουργίες που επιτελούν είναι: μεταφορά δεδομένων από και προς τη μνήμη, μεταφορά δεδομένων από τον ένα καταχωρητή στον άλλο, αύξηση ή μείωση των περιεχομένων του καταχωρητή κατά μία μονάδα Καταχωρητές ειδικού σκοπού Καταχωρητής εντολών (Instruction Register - IR): αποθηκεύει τον κώδικα λειτουργίας (opcode) της προς εκτέλεση εντολής, που πρόκειται να αποκωδικοποιηθεί από τη μονάδα ελέγχου Μετρητής προγράμματος (Program counter - PC): περιέχει την διεύθυνση της επόμενης εντολής που πρόκειται να εκτελεστεί Καταχωρητής διεύθυνσης μνήμης (Memory Address Register - MAR): περιέχει τη διεύθυνση των δεδομένων στην μνήμη Συσσωρευτής (Accumulator - A): αποθηκεύει το ενδιάμεσο αποτέλεσμα των πράξεων (άθροιση, ολίσθηση, κλπ) της ALU 22

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Καταχωρητές γενικής χρήσης Επιπλέον οι καταχωρητές γενικής χρήσης μπορούν να οριστούν από το χρήστη για να επιτελέσουν μία από τις παρακάτω χρήσεις: Καταχωρητής κατάστασης (Status register - SREG): Καθένα από τα ψηφία που περιέχει ο καταχωρητής αυτός έχει μία διαφορετική σημασία Τα ψηφία του ονομάζονται και σημαίες (flags) Η κατάσταση κάθε λειτουργίας του μικροελεγκτή ορίζεται από τις σημαίες, που θέτουν ή επαναφέρουν την εσωτερική του λογική για να προσδιορίσουν την κατάσταση της συγκεκριμένης λειτουργίας (πχ αριθμητικής ή λογικής λειτουργίας) Σηµαίες κωδικών κατάστασης Δεσµευµένα ψηφία Ψηφία ελέγχου 31 30 29 28 27 8 7 6 5 4 3 2 1 0 Ν Ζ C V I F T M4 M3 M2 M1 M0 Υπερχείλιση Κρατούµενο Μηδενικό Αρνητικό/Μικρότερο Ψηφία λειτουργίας Ψηφίο κατάστασης Απενεργοποίηση ταχείας αίτησης διακοπής (FIQ) Απενεργοποίηση αίτησης διακοπής (IRQ) 23

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Καταχωρητές γενικής χρήσης Καταχωρητής ευρετηρίου (Index register): Ένας καταχωρητής ευρετηρίου χρησιμοποιείται σαν μετρητής για γενικές λειτουργίες αποθήκευσης δεδομένων Είναι ιδιαίτερα χρήσιμος με εντολές πρόσβασης σε δεδομένα με μορφή πίνακα ή συστοιχίας, για να τηρεί το μητρώο της διεύθυνσης Καταχωρητής δείκτης σωρού (Stack pointer register): Ο σωρός είναι ένας τρόπος αποθήκευσης δεδομένων που λειτουργεί στη βάση της αρχής εξυπηρέτησης LIFO (Last In First Out), δηλαδή τα δεδομένα που εισάγονται τελευταία στο σωρό εξάγονται πρώτα από αυτόν Push A Push B Pop B Pop A Σωρός C A B A C 24

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Λειτουργία Κεντρικής Μονάδας Επεξεργασίας (CPU) Ο Mετρητής Προγράμματος: Έχει αποθηκευμένη τη διεύθυνση για την επόμενη εντολή Η Μονάδα Ελέγχου: Φορτώνει την εντολή αυτή στον καταχωρητή εντολών Στην συνέχεια την αποκωδικοποιεί Ετοιμάζει το μονοπάτι δεδομένων για την εκτέλεσή της Αυτό περιλαμβάνει: Την επιλογή των κατάλληλων εισόδων για την αριθμητική και λογική μονάδα Την επιλογή της κατάλληλης λειτουργίας της Την επιλογή του κατάλληλου προορισμού για την εγγραφή του αποτελέσματος Ο Mετρητής Προγράμματος: Μεταβαίνει στην επόμενη κατά σειρά θέση ή σε μία νέα διεύθυνση μνήμης, αν υπάρχει διακλάδωση ή κλήση υπορουτίνας 25

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Κατηγορίες Κεντρικών Μονάδων Επεξεργασίας (CPU) Αρχιτεκτονική Von Neumann - το πρόγραμμα και τα δεδομένα αποθηκεύονται στην ίδια μνήμη, και προφανώς η προσπέλασή τους γίνεται από την ίδια αρτηρία - απλούστερη αλλά χαμηλότερης απόδοσης (ταχύτητας εκτέλεσης) Αρχιτεκτονική Harvard (επικρατέστερη) - το πρόγραμμα και τα δεδομένα αποθηκεύονται σε ξεχωριστή μνήμη, και προφανώς οι αντίστοιχες αρτηρίες είναι ξεχωριστές - μεγαλύτερης πολυπλοκότητας (απαιτείται μία επιπλέον αρτηρία) αλλά υψηλότερης απόδοσης (ταχύτητας εκτέλεσης) Λειτουργικό διάγραμμα τυπικής κεντρικής μονάδας επεξεργασίας Αριθµητική και Λογική µονάδα Καταχωρητής κατάστασης Ολίσθηση Συµπλήρωµα Λογική και πρόσθεση Καταχωρητής προσωρινής αποθήκευσης Αρτηρία δεδοµένων Καταχωρητές Καταχωρητές Καταχωρητές γενικής χρήσης γενικής γενικής χρήσης χρήσης Καταχωρητής διεύθυνσης µνήµη Μετρητής προγράµµατος Καταχωρητής εντολών Μονάδα ελέγχου 26

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Κατηγορίες Κεντρικών Μονάδων Επεξεργασίας (CPU) «Υπολογιστές σύνθετου σετ εντολών» (Complex Instruction Set Computer - CISC) υψηλότερης πολυπλοκότητας / χαμηλότερης απόδοσης (ταχύτητας εκτέλεσης) «Υπολογιστές μειωμένου σετ εντολών» (Reduced Instruction Set Computer - RISC) μικρότερης πολυπλοκότητας / υψηλότερης απόδοσης (ταχύτητας εκτέλεσης) Λειτουργικό διάγραμμα τυπικής κεντρικής μονάδας επεξεργασίας Αριθµητική και Λογική µονάδα Καταχωρητής κατάστασης Ολίσθηση Συµπλήρωµα Λογική και πρόσθεση Καταχωρητής προσωρινής αποθήκευσης Αρτηρία δεδοµένων Καταχωρητές Καταχωρητές Καταχωρητές γενικής χρήσης γενικής γενικής χρήσης χρήσης Καταχωρητής διεύθυνσης µνήµη Μετρητής προγράµµατος Καταχωρητής εντολών Μονάδα ελέγχου 27

Μικροελεγκτές - Κεντρική Μονάδα Επεξεργασίας (CPU) Λειτουργία Εισόδου/Εξόδου Μεταφορά δεδομένων μεταξύ του μικροελεγκτή και των εξωτερικών συσκευών Υπάρχουν τυπικά τρεις κύριες μέθοδοι: Προγραμματιζόμενης Ι/Ο, κατά την οποία ο μικροελεγκτής εκτελεί ένα πρόγραμμα που διεκπεραιώνει όλες τις μεταφορές μεταξύ του ιδίου και των εξωτερικών συσκευών και το βασικό χαρακτηριστικό της είναι ότι ο μικροελεγκτής έχει τον πλήρη έλεγχο για κάθε λειτουργία I/O με διακοπές, κατά την οποία μία εξωτερική συσκευή μπορεί να αιτηθεί από τη CPU του ελεγκτή να διακόψει προσωρινά το πρόγραμμα που εκτελεί για να εξυπηρετηθεί μία ανάγκη της εξωτερικής συσκευής Άμεσης πρόσβασης μνήμης (Direct Memory Access - DMA), κατά την οποία τα δεδομένα μπορούν να μεταφερθούν από τη μνήμη στην εξωτερική συσκευή με τη βοήθεια ενός ειδικού ελεγκτή, που καλείται ελεγκτής DMA, χωρίς την παρεμβολή της CPU 28

Μικροελεγκτές - Μνήμη Η μνήμη είναι η συσκευή εκείνη στην οποία μεταφέρονται δεδομένα για αποθήκευση και από την οποία λαμβάνονται προς επεξεργασία Υπάρχουν δύο γενικοί τύποι μνήμης που επικοινωνούν απευθείας με την κεντρική μονάδα επεξεργασίας: Η πτητική (RAM) όπου μπορούμε να εγγράψουμε πληροφορία όσες φορές θέλουμε Η μη πτητική (ROM) όπου η εγγραφή γίνεται άπαξ και συνεπώς τα δεδομένα στη μνήμη αυτή δεν μπορούν να μεταβληθούν Σε μία αρχιτεκτονική τύπου Harvard η μνήμη μπορεί να διαχωριστεί σε: μνήμη δεδομένων και μνήμη εντολών ενώ σε αρχιτεκτονικές Von Neumann δεν υπάρχει διάκριση μεταξύ μνήμης δεδομένων και εντολών Ανεξάρτητα από τον τύπο μνήμης, η πληροφορία διαβάζεται από τη CPU με μία εντολή ανάγνωσης, ενώ, ειδικά για την μνήμη RAM η πληροφορία αποθηκεύεται στη μνήμη με μια εντολή εγγραφής 29

Μικροελεγκτές - Μνήμη Κυψελίδα μνήμης - θεμελιώδης μονάδα μνήμης μεγέθους ενός δυαδικού ψηφίου ( 0 ή 1 ) Ανάγνωση/Εγγραφή Αν η μνήμη είναι μη πτητική δεν υπάρχει είσοδος δεδομένων Είσοδος ΚΜ Έξοδος Σε ορισμένους τύπους μνήμης η είσοδος και η έξοδος δεδομένων γίνεται από το ίδιο σημείο (αμφίδρομη) Επιλογή Oι συστοιχίες μνήμης είναι οργανωμένες σε m γραμμές των n ψηφίων, κάτι που απαιτεί m x n κυψελίδες μνήμης Ο αριθμός n είναι το μήκος λέξης σε μία μονάδα μνήμης Έτσι το μέγεθος της μνήμης καθορίζεται από τον αριθμό των λέξεων που περιέχει και από τον αριθμό ψηφίων της κάθε λέξης Διεύθυνση - ένας συγκεκριμένος δυαδικός κώδικας στην αρτηρία διευθύνσεων που μπορεί να επιλέξει μία μόνο λέξη από τη μνήμη (ένας μοναδικός αριθμός αναγνώρισης που αντιστοιχίζεται σε κάθε θέση μνήμης όπου είναι αποθηκευμένη μία λέξη) Οι διευθύνσεις εκτείνονται από το 0 έως το 2 k -1, όπου k είναι o αριθμός των ψηφίων της διεύθυνσης, και επομένως και ο αριθμός γραμμών της αρτηρίας διευθύνσεων 30

Μικροελεγκτές - Μνήμη Πολλαπλάσια μνήμης 31

Μικροελεγκτές - Μνήμη Οργάνωση κυψελίδων μνήμης σε συστοιχία 4x4 ΚΜ ΚΜ ΚΜ ΚΜ W0 ΚΜ ΚΜ ΚΜ ΚΜ A1 A0 Αποκωδικοποιητής 2-σε-4 W1 W2 ΚΜ ΚΜ ΚΜ ΚΜ ΚΜ ΚΜ ΚΜ ΚΜ W3 READ/WRITE CS Κύκλωµα λογικής ανάγνωσης/εγγραφής και επιλογής D3 D2 D1 D0 32

Μικροελεγκτές - Μνήμη Οργάνωση μνήμης σε συστοιχία αποτελούμενη από μπλοκ μνήμης των 512 kbytes A18A0 19 19 19 19 19 Αποκωδικοποιητής 2-σε-4 A20A19 8 8 8 8 Μπλοκ µνήµης 512kbytes D31D24 D23D16 D15D8 D7D0 33

Μικροελεγκτές - Μνήμη Αναπαράσταση μνήμης με μορφή Μονοδιάστατου Πίνακα με Ευρετήριο - Χάρτη Διευθύνσεων (Address Map) Διεύθυνση 0 Διεύθυνση 1 Διεύθυνση 2 Διεύθυνση n Δεδοµένα Δεδοµένα Δεδοµένα Δεδοµένα διεύθυνση περιεχόµενα δυαδικό δεκαεξαδικό δεκαδικό 00000000 00 0 0011001010110101 Χάρτης Διευθύνσεων μνήμης 256 θέσεων των 16bits 00000001 00000010 01 02 1 2 1011010100101010 0110101001010101 11111111 FF 255 1000101001010110 34

Μικροελεγκτές - Μνήμη Προσπέλαση μνήμης (α) ξεχωριστή διευθυνσιοδότηση μνήμης - (β) ενιαίο ευρετήριο μνήμης Ευρετήριο Μνήµη 1 (32Κ) 0000 0001 0000 0001 ΧΧ ΧΧ Μνήµη 1 (32Κ) 0000 0001 3FFF ΧΧ ΧΧ ΧΧ Μνήµη 2 (16Κ) 0000 0001 1FFF ΧΧ ΧΧ ΧΧ 3FFFF 4000 4001 5FFFF 6000 6001 7FFFF 3FFF 0000 0001 1FFF ΧΧ Μνήµη 2 (16Κ) 0000 0001 1FFF ΧΧ ΧΧ ΧΧ Μνήµη 3 (16Κ) ΧΧ ΧΧ ΧΧ 35

Μικροελεγκτές - Μνήμη Παράδειγμα Χάρτη Διευθύνσεων επεξεργαστή σε μία Μονάδα Επεξεργασίας Δεδομένων 36

Μικροελεγκτές - Πτητική Μνήμη Η Πτητική Μνήμη διατηρεί το περιεχόμενό της όσο το σύστημα είναι σε τροφοδοσία Παρουσιάζει χρόνους προσπέλασης της τάξης των μερικών nsec, κάτι που την καθιστά ιδιαίτερα χρήσιμη για εφαρμογές πραγματικού χρόνου, σε αντίθεση με τη μη πτητική μνήμη που είναι πιο αργή και ακριβότερη Η πτητική μνήμη καλείται συχνά και RAM (Random Access Memory), δηλαδή μνήμη τυχαίας προσπέλασης Αυτό σημαίνει πως η εγγραφή ή η ανάγνωση δεδομένων μπορεί να γίνει σε οποιαδήποτε (τυχαία) θέση και όχι στην αμέσως επόμενη ελεύθερη θέση, όπως συνέβαινε με την πτητική μνήμη στα πρώτα υπολογιστικά συστήματα Διακρίνεται σε στατική και δυναμική 37

Μικροελεγκτές - Πτητική Μνήμη Στατική Πτητική Μνήμη (Static RAM) Ανάγνωση/Εγγραφή R Βασική κυψελίδα SRAM υλοποιημένη με SR φλιπ-φλοπ Είσοδος S Q Έξοδος Επιλογή Απλοποιημένο διάγραμμα κυψελίδας SRAM W D D V DD Υλοποίηση σε επίπεδο τρανζίστορ W 38 D D

Μικροελεγκτές - Πτητική Μνήμη Δυναμική Πτητική Μνήμη (Dynamic RAM) Απλοποιημένο διάγραμμα κυψελίδας DRAM W D C Στην πραγματικότητα εξαιτίας της μη τέλειας απομόνωσης το στοιχείο χωρητικότητας, σε ένα πολύ μικρό διάστημα (της τάξης των μερικών msec), λόγω ρευμάτων διαρροής, χάνει τη φόρτισή του Το πρόβλημα αυτό απαιτεί την ύπαρξη ειδικού λογικού κυκλώματος, το οποίο ανανεώνει τη μνήμη σε χρόνους μικρότερους από αυτούς της εκφόρτισης η οποία διατηρεί έτσι το περιεχόμενό της Από άποψης ταχύτητας η DRAM είναι βραδύτερη της SRAM 39

Μικροελεγκτές - Μη Πτητική Μνήμη Η μη Πτητική Μνήμη διατηρεί τα περιεχόμενά της ακόμη και όταν διακοπεί η τροφοδοσία της Είναι πιο αργή και ακριβότερη από την πτητική μνήμη Απλοποιημένο διάγραμμα κυψελίδας μη πτητικής μνήμης P Όταν το σημείο επαφής Ρ είναι γεφυρωμένο το ψηφίο που είναι εγγεγραμμένο αντιστοιχεί σε λογικό 0, ενώ όταν είναι ανοικτοκυκλωμένο σε λογικό 1 Ανάλογα με τον τρόπο κατασκευής του σημείου βραχυκύκλωσης διακρίνεται σε: ROM (Read Only Memory) PROM (Programmable Read Only Memory) EPROM (Erasable Programmable Read Only Memory) EEPROM (Electrically Erasable and Programmable ROM) Flash NVRAM (Non-Volatile RAM) W D 40

Μικροελεγκτές - Εισόδοι/Έξοδοι Όλοι οι μικροελεγκτές διαθέτουν ακίδες για την επικοινωνία τους με εξωτερικά κυκλώματα Η επικοινωνία αυτή μπορεί να γίνει με σήματα τόσο σε ψηφιακή όσο και σε αναλογική μορφή Συνεπώς, οι ακίδες αυτές μπορεί να είναι για ψηφιακό ή για αναλογικό σήμα ή και τα δύο, με δυνατότητα διαμόρφωσης από τον προγραμματιστή του μικροελεγκτή Επίσης, οι ακίδες αυτές μπορεί να είναι εισόδου ή εξόδου, ενώ συνήθως είναι αμφίδρομες, με δυνατότητα διαμόρφωσης από τον προγραμματιστή του μικροελεγκτή Ένας τυπικός μικροελεγκτής διαθέτει 8, 16 ή 32 ακίδες για ψηφιακό σήμα, που ομαδοποιούνται ανά οκτώ σε θύρες (ή πόρτες) του ενός byte και είναι συνήθως αμφίδρομες Κάθε θύρα διαμορφώνεται από τους χαρτογραφημένους στη μνήμη καταχωρητές και έτσι καθίσταται δυνατή η πρόσβαση στις εξωτερικές ακίδες από διαφορετικές λειτουργίες, κάτι που αναφέρεται ως πολύπλεξη ακίδων Η προγραμματιζόμενη χρήση των ίδιων ακίδων για είσοδο και έξοδο οδηγεί σε οικονομία χώρου και ευκολία στη φυσική τοποθέτηση 41

Μικροελεγκτές - Εισόδοι/Έξοδοι Ψηφιακές Ι/Ο Καθορίζονται από τρεις καταχωρητές: τον καταχωρητή κατεύθυνσης δεδομένων (Data Direction Register - DDR), τον καταχωρητή θύρας (Port Register - PORT) και τον καταχωρητή εισόδου θύρας (Port Input Register - PIN) Κάθε ψηφίο σε αυτούς τους καταχωρητές αντιστοιχεί σε συγκεκριμένη ακίδα µc CPU 0 1 0 0 0 0 0 1 I O I I I I I O DDR Α PORT Α D Q 42

Ψηφιακές Ι/Ο Μικροελεγκτές - Εισόδοι/Έξοδοι Καταχωρητής κατεύθυνσης δεδομένων (DDR): Καθορίζει τη λειτουργία της κάθε ακίδας ως εισόδου ή εξόδου, ανάλογα με την τιμή του αντίστοιχου ψηφίου του ( 0 όταν η ακίδα χρησιμοποιείται για είσοδο και 1 για έξοδο) Καταχωρητής θύρας (PORT): Καθορίζει το επίπεδο της τάσης στις ακίδες που είναι διαμορφωμένες ως εξόδου (αν το ψηφίο στον PORT είναι 1, τότε η αντίστοιχη ακίδα τίθεται σε υψηλή λογική στάθμη, ενώ αν είναι 0 η αντίστοιχη ακίδα τίθεται σε χαμηλή λογική στάθμη) Καταχωρητής εισόδου θύρας (PIN): Περιέχει την τρέχουσα κατάσταση όλων των ακίδων είτε είναι διαμορφωμένες ως εισόδου, είτε ως εξόδου Χρησιμοποιείται για να διαβάζεται η κατάσταση των ακίδων εισόδου και να πιστοποιείται ότι η έξοδος έχει τεθεί ορθά στις ακίδες εξόδου µc CPU 0 1 0 0 0 0 0 1 DDR Α I O I I I I I O PORT Α D Q 43

Μικροελεγκτές - Εισόδοι/Έξοδοι Ψηφιακές Ι/Ο Αν κανείς θέλει σε μια ακίδα να αλλάξει τη λειτουργία από εισόδου σε εξόδου ή το αντίστροφο θα πρέπει να προσέξει ώστε να μην μεταβάλλει και τα υπόλοιπα ψηφία του καταχωρητή, επηρεάζοντας έτσι άθελα του την λειτουργία των υπόλοιπων ακίδων µc CPU 0 1 0 0 0 0 0 1 I O I I I I I O DDR Α PORT Α D Q 44

Αναλογικές Ι/Ο Μικροελεγκτές - Εισόδοι/Έξοδοι Οι περισσότεροι μικροελεγκτές διαθέτουν μία αναλογική μονάδα που διαχειρίζεται το αναλογικό σήμα, όταν μία ακίδα χρησιμοποιείται ως αναλογική είσοδος/έξοδος Το αναλογικό τμήμα αποτελείται από μετατροπείς σήματος (πχ ADC ή DAC), καθώς και τα αντίστοιχα κυκλώματα (πχ κύκλωμα δειγματοληψίας και συγκράτησης) Οι αναλογικές είσοδοι προσφέρουν κανονικά 4-16 πολυπλεγμένα αναλογικά κανάλια, που μεταβιβάζονται σε ένα μόνο εσωτερικό ADC MUX ADC Στους περισσότερους μικροελεγκτές οι αναλογικές και οι ψηφιακές θύρες συνυπάρχουν στις ίδιες ακίδες, για λόγους οικονομίας χώρου, αλλά και για τη μεγιστοποίηση του αριθμού των ψηφιακών εισόδων/εξόδων που είναι ιδιαίτερα χρήσιμες σε κάθε εφαρμογή ψηφίο DDR ψηφίο ANSEL ADC προς CPU 45

Μικροελεγκτές - Διακοπές Οι μικροελεγκτές χρησιμοποιούνται συνήθως σε συστήματα στα οποία διάφορα συμβάντα ή αλλαγές κατάστασης απαιτούν από αυτούς κάποιο είδος αντίδρασης Η αντίδραση μπορεί να είναι μία απλή απόκριση, όπως η αύξηση ενός μετρητή κάθε φορά που ένα προϊόν περνά από ένα φωτοηλεκτρικό αισθητήριο σε έναν ιμάντα μεταφοράς, ή μία κρίσιμη απόκριση, όπως η αναστολή της λειτουργίας ενός υποσυστήματος εάν έχει ανιχνευτεί υπέρβαση των ορίων της ασφαλούς λειτουργίας του Τα συμβάντα ή οι αλλαγές κατάστασης στο υπό έλεγχο/παρακολούθηση σύστημα συνήθως προκαλούν μεταβολή της κατάστασης μίας γραμμής εισόδου του μικροελεγκτή που θα πρέπει να ανιχνευτεί από αυτόν έγκαιρα 46

Μικροελεγκτές - Διακοπές Η ανίχνευση των μεταβολών αυτών από τον μικροελεγκτή μπορεί να επιτευχθεί: Παρακολουθώντας/ελέγχοντας (polling) περιοδικά από το κύριο πρόγραμμα για αλλαγή της κατάστασής του σήματος εισόδου Η μέθοδος αυτή προτιμάται όταν δεν απαιτείται ιδιαίτερη ακρίβεια στο χρονισμό μιας κατάστασης και τα γεγονότα εμφανίζονται συχνά Μειονεκτήματα: μεγάλη επιφόρτιση του μικροελεγκτή ο οποίος έχει να εκτελέσει πολλές διεργασίες ταυτόχρονα, καμία ευελιξία σε μεταβολές της διεργασίας, πιθανότητα απώλειας συμβάντων εξαιτίας της μικρής συχνότητας παρακολούθησης κλπ Διακόπτοντας (interrupting) την εκτέλεση του κύριου προγράμματος μόνο αν εντοπιστεί αλλαγή της κατάστασης του σήματος εισόδου Η μέθοδος αυτή προτιμάται για συμβάντα που δεν συμβαίνουν περιοδικά, είναι σπάνια και απαιτείται άμεση αντίδραση στην εμφάνισή τους Όσο δεν υπάρχει καμία αλλαγή κατάστασης, το κύριο πρόγραμμα εκτελείται απλά, ενώ με την εκδήλωση συμβάντος, ο μικροελεγκτής καλεί την ρουτίνα εκτέλεσης διακοπής (Interrupt Service Routine - ISR) που χειρίζεται το συμβάν 47

Μικροελεγκτές - Διακοπές Ρουτίνες εξυπηρέτησης διακοπής (Interrupt Service Routines - ISR) Μία ρουτίνα εξυπηρέτησης διακοπής περιέχει τον απαραίτητο κώδικα για την εξυπηρέτηση της διακοπής και συνήθως περιλαμβάνει και την επαναφορά/ καθαρισμό (reset) της σημαίας διακοπής (Interrupt Flag - IF) Κυρίως πρόγραµµα αίτηµα διακοπής Identify ISR Ρουτίνα εκτέλεσης διακοπής Start ISR Reset IF Return 48

Μικροελεγκτές - Διακοπές Η Διαχείριση Διακοπών από τον μικροελεγκτή περιλαμβάνει τα εξής βήματα: Θέση της σημαίας διακοπής IF Ολοκλήρωση εκτέλεσης της τρέχουσας εντολής Αποθήκευση όλων των στοιχείων (πχ των περιεχομένων καταχωρητών της CPU) που απαιτούνται για την επαναφορά του μικροελεγκτή στην εκτέλεση του κύριου προγράμματος μετά την εξυπηρέτηση της διακοπής Προσδιορισμός της ρουτίνας εξυπηρέτησης της διακοπής (ISR) Ο μικροελεγκτής μπορεί να έχει αιτήματα διακοπής από περισσότερες από μία πηγές, οπότε, θα πρέπει να προσδιορίσει την προτεραιότητα μεταξύ των αιτημάτων Κλίση και εκτέλεση της ρουτίνας εξυπηρέτησης της διακοπής Επαναφορά της εκτέλεσης του κύριου προγράμματος στη φάση που βρισκόταν τη στιγμή της διακοπής Κυρίως πρόγραµµα αίτηµα διακοπής Identify ISR Ρουτίνα εκτέλεσης διακοπής Start ISR Reset IF Return 49

Απενεργοποίηση Διακοπών Μικροελεγκτές - Διακοπές Οι κανονικές διακοπές ενός μικροελεγκτή μπορούν να απενεργοποιηθούν Η απενεργοποίηση διακοπών δεν σημαίνει απαραίτητα και απώλεια γεγονότων, καθώς, η εμφάνιση ενός συμβάντος ενεργοποιεί το αντίστοιχο IF, ανεξάρτητα από την ενεργοποίηση ή μη των διακοπών Επομένως, εάν ένα συμβάν εμφανιστεί σε μια περίοδο όπου η διακοπές ήταν απενεργοποιημένες, τότε θα κληθεί το αντίστοιχο ISR καθυστερημένα, μετά την επανενεργοποίηση των διακοπών Για να χαθούν συμβάντα πρέπει να εμφανιστούν περισσότερα από ένα μετά την εμφάνιση του πρώτου και το πρώτο να μην έχει εξυπηρετηθεί ακόμη Διακοπές που δεν απενεργοποιούνται Εκτός από τις κανονικές διακοπές, οι οποίες μπορούν να απενεργοποιηθούν, οι μικροελεγκτές συνήθως προσφέρουν μία διακοπή ή οποία δεν μπορεί να απενεργοποιηθεί (Non-Maskable Interrupt - NMI) Τέτοιες διακοπές είναι χρήσιμες για ιδιαίτερα σημαντικά γεγονότα, όταν η αντίδραση στο συμβάν δεν πρέπει να καθυστερήσει ανεξάρτητα από το αν επηρεάζει το κυρίως πρόγραμμα ή όχι 50

Μικροελεγκτές - Χρονιστές Όλοι οι μικροελεγκτές περιέχουν κυκλώματα χρονισμού, τα οποία είναι ιδιαίτερα σημαντικά, αφού στις περισσότερες από τις λειτουργίες που επιτελούν απαιτείται χρονική παρακολούθηση, συγχρονισμός, σήμανση χρόνου, εισαγωγή καθυστέρησης, παραγωγή κυματομορφών, κλπ Οι χρονιστές είναι κατά βάση κυκλώματα μετρητών, με ανάλυση συνήθως από 8 έως 16 ψηφία και διεύθυνση μέτρησης προς τα πάνω ή προς τα κάτω ελεγχόμενη από τον χρήστη Οι μετρητές μπορούν να παράξουν περιοδικά σήματα με περίοδο που καθορίζεται από το χρήστη με μία λειτουργία modulus Οι χρονιστές μπορεί να χρονίζονται από το ρολόι του ίδιου του μικροελεγκτή ή από άλλη πηγή Τέτοια μπορεί να είναι ένας εξωτερικός παλμός ή ένας εξωτερικός κρύσταλος ή ένας προδιαιρέτης (prescaler), δηλαδή ένας μετρητής που κάνει διαίρεση συχνότητας με έναν ακέραιο αριθμό 51

Μικροελεγκτές - Χρονιστές Οι μικροελεγκτές διαθέτουν τη δυνατότητα καταγραφής εισόδου (input capture) που τους καθιστά ικανούς να κάνουν χρονοσήμανση (timestamp) των γεγονότων Αυτό υλοποιείται με την αυτόματη καταγραφή του περιεχομένου του χρονιστή στον καταχωρητή καταγραφής εισόδου κάθε φορά που συμβαίνει ένα γεγονός Επιπλέον, τίθεται η σημαία καταγραφής εισόδου, ενώ μπορεί να γίνει αίτημα διακοπής, ώστε η εφαρμογή να είναι ενήμερη για το γεγονός που συμβαίνει και για τον ακριβή χρόνο που έγινε αυτό Έτσι το κυρίως πρόγραμμα είναι σε θέση να συνεχίσει την απρόσκοπτη εκτέλεσή του, ενώ είναι σε θέση να κάνει έναρξη γεγονότων βασισμένο στην ακριβή ώρα που ελήφθη η είσοδος που τα προκάλεσε εξωτερικό συµβάν χρονιστής καταχωρητής καταγραφής εισόδου 52

Μικροελεγκτές - Χρονιστές Η διαμόρφωση εύρους παλμού (Pulse Width Modulation - PWM) είναι μία μέθοδος κωδικοποίησης με παλμούς, κατά την οποία μία ψηφιακή τιμή χρησιμοποιείται για να ελέγξει τον κύκλο λειτουργίας ενός τετραγωνικού παλμού 5V 0V 5V 0V 5V 0V Διάφοροι κύκλοι λειτουργίας για διαμόρφωση PWM κύκλος λειτουργίας 25% κύκλος λειτουργίας 50% κύκλος λειτουργίας 75% Χρησιμοποιήθηκε αρχικά στις τηλεπικοινωνίες, έχει όμως βρει ευρεία εφαρμογή σε ενσωματωμένα συστήματα και συστήματα μηχανοτρονικής Στα συστήματα μηχανοτρονικής η διαμόρφωση PWM χρησιμοποιείται κυρίως στον έλεγχο ηλεκτρικών ενεργοποιητών (κινητήρων), καθώς και σε πλήθος άλλων εφαρμογών, όπως για καταμέτρηση σε DAC, για τη ρύθμιση του φωτός σε LED ή οθόνες 7 στοιχείων, ακόμη και σε φωτοβολταϊκούς φορτιστές μπαταριών και στο σύστημα ABS των αυτοκινήτων 53

Μικροελεγκτές - Επαναφορά Διάφορες περιβαλλοντικές ή άλλες συνθήκες μπορεί να προκαλέσουν δυσλειτουργία του μικροελεγκτή, τόσο σε επίπεδο λογισμικού όσο και σε επίπεδο υλικού Σε τέτοιες περιπτώσεις η επαναφορά (reset) του συστήματος αρχικοποιεί τις παραμέτρους και το επαναφέρει σε μία πλήρως γνωστή κατάσταση, η οποία του εξασφαλίζει ασφαλή λειτουργία Απλουστευμένο κύκλωμα επαναφοράς κατά την έναρξη τροφοδοσίας (Power On Reset - POR) V CC R reset Κατά την εκκίνηση θέτει τον μικροελεγκτή σε κατάσταση επαναφοράς μέχρι η τάση στο κύκλωμα RC (χαμηλοπερατό φίλτρο) να ξεπεράσει το κατώφλι που θέτει ο σκανδαλιστής Schmitt, έτσι ώστε η τάση στην είσοδο του κυκλώματος να έχει σταθεροποιηθεί, πριν την έναρξη λειτουργίας του C Απλουστευμένο κύκλωμα επιτήρησης τροφοδοσίας (Brown Out Detector - BOD) Παρακολουθεί την τάση τροφοδοσίας κατά την κανονική λειτουργία και αν αυτή πέσει κάτω από ένα συγκεκριμένο επίπεδο, τότε θέτει το σήμα επαναφοράς του μικροελεγκτή Το κύκλωμα BOD είναι ένας συγκριτής, που συγκρίνει την τάση τροφοδοσίας με ένα σταθερό επίπεδο τάσης V DD 1kΩ 2,25V V DD 1kΩ 1kΩ + V DD R Q 1 reset 54

Μικροελεγκτές - Αναστολή Λειτουργίας Η κατάσταση ύπνου (sleep mode) είναι ένας χρήσιμος μηχανισμός για την ελαχιστοποίηση της κατανάλωσης ισχύος (η οποία συνεπάγεται εξοικονόμηση κόστους, και επιμήκυνση της ζωής των ηλεκτρονικών στοιχείων), ιδίως σε εφαρμογές που χρησιμοποιούν μπαταρίες Στην κατάσταση αυτή αναστέλλεται η κανονική λειτουργία ενός μικροελεγκτή και ο ταλαντωτής ρολογιού είναι απενεργοποιημένος με αποτέλεσμα η κατανάλωση ισχύος να είναι χαμηλότερη σε αυτή την κατάσταση Οι μικροελεγκτές πέραν της γενικής παρέχουν αρκετές διαφορετικές ειδικές καταστάσεις ελαχιστοποίησης κατανάλωσης, οι οποίες διαφέρουν ως προς τα εξαρτήματα που απενεργοποιούνται Σε ορισμένες κλείνουν όλες οι εσωτερικές μονάδες, συμπεριλαμβανομένου του εξωτερικού ταλαντωτή Μόνο μερικά εξωτερικά συμβάντα μπορούν να ξυπνήσουν έναν ελεγκτή που έχει εισέλθει σε μια τέτοια κατάσταση, όπως πχ ένα σήμα επαναφοράς και ίσως μερικά αιτήματα εξωτερικών διακοπών 55

Μικροελεγκτές - Κύκλωμα Επιτήρησης Λειτουργίας Tο κύκλωμα επιτήρησης λειτουργίας (Watchdog Timer) ή αλλιώς ο υπολογιστής λειτουργεί σωστά (computer operates properly - COP), χρησιμοποιείται για την παρακολούθηση της ορθής εκτέλεσης του λογισμικού Η βασική ιδέα πίσω από αυτό το κύκλωμα, που είναι κατά βάση ένας χρονομετρητής, είναι ότι μόλις ενεργοποιηθεί αρχίζει να μετράει προς τα κάτω και όταν η τιμή μέτρησης φτάσει στο μηδέν, σκανδαλίζει την επανεκκίνηση του κύριου προγράμματος Για να αποφευχθεί η επαναφορά του μικροελεγκτή, το λογισμικό πρέπει να επαναφέρει το κύκλωμα επιτήρησης λειτουργίας πριν η μέτρησή του φθάσει στο μηδέν Κάθε φορά που το πρόγραμμα ξεφεύγει από την κανονική ροή εκτέλεσης, δηλαδή έχει εσφαλμένα μπει σε ένα ατέρμονο κύκλο επαναλήψεων (endless loop) και δεν επαναφέρει το κύκλωμα επιτήρησης λειτουργίας εγκαίρως, γίνεται επαναφορά του ελεγκτή με στόχο να λυθεί το πρόβλημα Λειτουργία κυκλώματος επιτήρησης προγράμματος (α) ενός σταδίου Επαναφορά CPU Εκκίνηση Λήξη Κύκλωµα επιτήρησης λειτουργίας Επαναφορά Έναρξη Λήξη Έναρξη Λήξη Έναρξη Λήξη (β) πολλαπλών σταδίων CPU Στάδιο 1 Στάδιο 2 Στάδιο 3 Κύκλωµα επιτήρησης λειτουργίας 56 Διορθωτική ενέργεια Διορθωτική ενέργεια

Μικροελεγκτές - Διεπαφές Επικοινωνίας Οι μικροελεγκτές περιλαμβάνουν διάφορες διεπαφές επικοινωνίας ολοκληρωμένες στο πλινθίο τους, ακόμη και πολλαπλές υλοποιήσεις της ίδιας διεπαφής, πχ δύο μονάδες UART Οι διεπαφές αυτές επιτρέπουν στο μικροελεγκτή την επικοινωνία του με άλλα συστήματα όπως περιφερειακά, άλλους μικροελεγκτές και έξυπνες συσκευές, και προφανώς τον υπολογιστή ανάπτυξης της εφαρμογής Διεπαφές Σειριακής Επικοινωνίας: UART (Universal Asynchronous Receiver Transmitter) SPI (Serial Peripheral Interface) Ι2C (Inter-integrated Circuit) CAN (Controller Area Network) 57

Μικροελεγκτές - Διεπαφές Επικοινωνίας - UART Bασική δομή της μονάδας UART (Universal Asynchronous Receiver Transmitter) Διαθέτει 2 γραμμές, μία για τη μετάδοση (TxD) και μία για την λήψη (RxD), επιτρέποντας έτσι την απλή, ημίδιπλη και πλήρως διπλή ασύγχρονη επικοινωνία του μικροελεγκτή με άλλες συσκευές, περιλαμβανομένου και του υπολογιστή ανάπτυξης της εφαρμογής Καταχωρητής Tx Tx Rx Καταχωρητής Rx M4 I M4 I MSB LSB MSB LSB γεννήτρια ρολογιού 1 γεννήτρια ρολογιού 2 M4 I Rx Tx M4 I LSB MSB LSB MSB Καταχωρητής Rx Καταχωρητής Tx 58

Μικροελεγκτές - Διεπαφές Επικοινωνίας - UART Μέσα στο μικροελεγκτή η UART επιτρέπει στην εφαρμογή να καθορίσει τον τρόπο με τον οποίο μορφοποιούνται τα δεδομένα Οι παράμετροι που μπορούν να διαμορφωθούν είναι: ο αριθμός των καθαρών δεδομένων, η ισοτιμία, τα ψηφία λήξης και ο ρυθμός μετάδοσης Η μονάδα UART υλοποιεί τον τρόπο με τον οποίο γίνεται η ασύγχρονη επικοινωνία αλλά δεν ορίζει το φυσικό μέσο της διεπαφής Ο μικροελεγκτής χαρτογραφεί τις λογικές καταστάσεις σε στάθμες τάσης, ενώ στη συνέχεια πρέπει να χρησιμοποιηθεί μία συσκευή μετατροπής των σταθμών αυτών στις τάσεις που υπαγορεύει το φυσικό μέσο (Driver) Η μετάδοση γίνεται με κωδικοποίηση μη επιστροφής στο μηδέν (Non Return to Zero - NRZ), δηλαδή το 1 κωδικοποιείται με την πιο υψηλή τάση (+12V στη περίπτωσή μας) και το 0 με την πιο αρνητική τάση (-12V στη περίπτωσή μας) τροφοδοσία +ve µc +12V -12V τροφοδοσία -ve TxD RxD 59

Μικροελεγκτές - Διεπαφές Επικοινωνίας - SPI Bασική δομή της μονάδας SPI (Serial Peripheral Interface) Απλή υψηλής ταχύτητας (πάνω από 10Mbps) διεπαφή σημείου προς σημείο που βασίζεται στην αρχή αφέντη-σκλάβου Παρέχει πλήρως διπλή επικοινωνία μεταξύ του αφέντη, που είναι συνήθως ο μικροελεγκτής, και του/των σκλάβου/ων, που είναι συνήθως οι περιφερειακές συσκευές Επιτρέπει μόνο έναν αφέντη στο δίαυλο αλλά υποστηρίζει έναν αυθαίρετο αριθμό σκλάβων, οποίος περιορίζεται μόνο από την ικανότητα οδήγησης των συσκευών και τον αριθμό των διαθέσιμων ακίδων Η διεπαφή αποτελείται από τέσσερις γραμμές, δύο για την μετάδοση δεδομένων, τις MOSI (Master Out Slave In) και MISO (Master In Slave Out), καθώς και δύο για έλεγχο, τις SCK (System Clock) και SS (Slave Select) Αφέντης MOSΙ Σκλάβος Καταχωρητής I MISO M4 Καταχωρητής MSB LSB MSB LSB γεννήτρια ρολογιού SCK SS 60

Μικροελεγκτές - Διεπαφές Επικοινωνίας - SPI SCΚ SS MOSI MISO Διασύνδεση SPI με πολλαπλές συσκευές σκλάβους (α) αλυσιδωτά (β) με διαφορετικές γραμμές ελέγχου SCK MOSΙ MISO SS SCK SDΙ SDO CS συσκευή (σκλάβος) 1 SCK MOSΙ MISO SS1 SCK SDΙ SDO CS συσκευή (σκλάβος) 1 SS2 µc (αφέντης) SCK SDΙ SDO CS συσκευή (σκλάβος) 2 SS3 µc (αφέντης SCK SDΙ SDO CS συσκευή (σκλάβος) 2 SCK SDΙ SDO CS συσκευή (σκλάβος) 3 SCK SDΙ SDO CS συσκευή (σκλάβος) 3 61

Μικροελεγκτές - Διεπαφές Επικοινωνίας - I2C Bασική δομή της μονάδας Ι2C (Inter-integrated Circuit) Απλή διεπαφή που βασίζεται στην αρχή αφέντη-σκλάβου Οι ταχύτητες με τις οποίες μπορούν να επικοινωνούν οι συσκευές κυμαίνονται μεταξύ 100kHz και 400kHz Yποστηρίζει πολύ μεγάλο αριθμό σκλάβων και πολλαπλούς αφέντες, με δύο μόνο γραμμές, μία για τη μεταφορά του ρολογιού συγχρονισμού (SCL) και μία για τη σύγχρονη μεταφορά δεδομένων (SDA) Οι γραμμές SCL and SDA είναι γραμμές ανοικτού απαγωγού, συνεπώς μπορούν να οδηγηθούν σε λογικό χαμηλό, όχι όμως σε λογικό υψηλό οπότε απαιτείται μία αντίσταση άνω έλξης για κάθεμια από αυτές +5V Αφέντης 4,7kΩ Σκλάβος Καταχωρητής SDA Καταχωρητής I +5V 4,7kΩ γεννήτρια ρολογιού SCK 62

Μικροελεγκτές - Διεπαφές Επικοινωνίας - I2C Ακολουθία μεταφοράς δεδομένων στη διεπαφή I2C SCL SDA D7 D6 D5 D4 D3 D2 D1 D0 ACK +5V Διασύνδεση συσκευών με I2C 4,7kΩ 4,7kΩ Συσκευή 1 Συσκευή 2 Συσκευή 3 SCL SDA SCL SDA SCL SDA 63

Μικροελεγκτές - Προγραμματισμός Τα μικροϋπολογιστικά συστήματα, όπως είναι οι μικροελεγκτές μπορούν να προγραμματιστούν: σε γλώσσα μηχανής [γλώσσα προγραμματισμού χαμηλού επιπέδου*, διαφορετική για κάθε επεξεργαστή κάτι που δεν καθιστά τη μεταφορά κώδικα μηχανής από τον ένα ελεγκτή στον άλλο άμεση - οι εντολές, οι οποίες αποτελούν ακολουθίες από μηδέν και ένα, είναι δύσκολο να απομνημονευτούν από τον προγραμματιστή] σε συμβολική γλώσσα (assembly - γλώσσα προγραμματισμού χαμηλού επιπέδου, διαφορετική για κάθε επεξεργαστή κάτι που δεν καθιστά τη μεταφορά του πηγαίου κώδικα από τον ένα ελεγκτή στον άλλο άμεση, ευκολότερη στην απομνημόνευσή της συγκριτικά με τη γλώσσα μηχανής γιατί χρησιμοποιούνται εκφράσεις της αγγλικής γλώσσας για τη διατύπωση των εντολών) σε μία γλώσσα υψηλού επιπέδου* πχ C, C ++, Java, κλπ, (ίδια ανεξάρτητα του επεξεργαστή κάτι που καθιστά τη μεταφορά του πηγαίου κώδικα από τον ένα ελεγκτή στον άλλο άμεση, πιο κατανοητή από το χρήστη και ευκολότερη στην απομνημόνευσή γιατί χρησιμοποιούνται εκφράσεις της αγγλικής γλώσσας για τη διατύπωση των εντολών και παρέχει περισσότερες ευκολίες/ εργαλεία προγραμματισμού) Η αρχιτεκτονική και ο μικροπρογραμματισμός της CPU καθορίζουν τις εντολές, το σύνολο των οποίων καλείται «σετ εντολών» * Χαμηλού επιπέδου λέγονται οι γλώσσες προγραμματισμού που είναι κοντά στο επίπεδο της μηχανής (χαμηλό), ενώ υψηλού επιπέδου αυτές που είναι κοντά στο επίπεδο του προγραμματιστή (υψηλό) 64

Μικροελεγκτές - Προγραμματισμός Σε όποια γλώσσα κι αν γίνει ο προγραμματισμός του, ο ελεγκτής αντιλαμβάνεται μόνο δυαδικό κώδικα ή αλλιώς γλώσσα μηχανής Συνεπώς σε κάθε περίπτωση ο κώδικας, είτε είναι υψηλού είτε χαμηλού επιπέδου, πρέπει να μεταφράζεται τελικά σε γλώσσα μηχανής Για τη μετάφρασή των εντολών αυτών σε γλώσσα μηχανής, ώστε να είναι εκτελέσιμες από τη CPU, απαιτείται η χρήση ειδικού προγράμματος μετάφρασης που ονομάζεται: συμβολομεταφραστής (assembler) αν ο «πηγαίος κώδικας» (source code) είναι γραμμένος σε συμβολική γλώσσα διερμηνέας (interpreters) ή μεταφραστής (compilers), αν ο «πηγαίος κώδικας» είναι γραμμένος σε γλώσσα υψηλού επιπέδου ένας διερμηνέας interpreter) διαβάζει τις υψηλού επιπέδου δηλώσεις και τις μετατρέπει μία προς μία σε κώδικα γλώσσας μηχανής χωρίς να παράγει αντικειμενικό κώδικα ένας μεταφραστής (compiler), μετατρέπει όλες τις δηλώσεις σε ένα σύνολο οδηγιών γλώσσας μηχανής και παράγει αντικειμενικό κώδικα που αποθηκεύεται στη μνήμη και μπορεί στη συνέχεια να εκτελείται από τον μικροελεγκτή Συνοπτικά, ένας διερμηνέας εκτελεί κάθε εντολή καθώς προχωρά, χωρίς να παράγει αντικειμενικό κώδικα, ενώ ένας μεταφραστής μετατρέπει τον πηγαίο κώδικα σε αντικειμενικό Μετά τη μετάφραση ο κώδικας, που συνήθως αναπαριστάται με δεκαεξαδικά στοιχεία, είναι εκτελέσιμος από τη CPU και ονομάζεται «αντικειμενικός κώδικας» (object code) 65

Μικροελεγκτές - Προγραμματισμός Ένας μικροελεγκτής χρησιμοποιείται κυρίως σε εφαρμογές πραγματικού χρόνου, όπου η κάθε εργασία απαιτείται να διεκπεραιωθεί σε καθορισμένο χρόνο χωρίς καθυστερήσεις Με γλώσσες υψηλού επιπέδου, όπως οι C, C ++ ή Java καλ, μπορούν να γραφτούν προγράμματα που περιλαμβάνουν εφαρμογές πραγματικού χρόνου και εκτεταμένους μαθηματικούς υπολογισμούς, αλλά τελικά θα παραχθεί αντικειμενικός εκτελέσιμος κώδικας μεγαλύτερου όγκου και μικρότερης ταχύτητας εκτέλεσης συγκριτικά με τον αντίστοιχο στην περίπτωση προγραμματισμού εξαρχής σε συμβολική γλώσσα Γενικά όσο μικρότερος είναι ο εκτελέσιμος κώδικας τόσο καλύτερα ανταποκρίνεται σε προδιαγραφές εκτέλεσης σε πραγματικό χρόνο Η κατεξοχήν γλώσσα που προτιμάται για τη σύνταξη αποδοτικών προγραμμάτων για εφαρμογές πραγματικού χρόνου είναι η συμβολική γλώσσα, παρά κάποια γλώσσα υψηλού επιπέδου 66

Μικροελεγκτές - Προγραμματισμός Για τον προγραμματισμό του μικροελεγκτή παρέχεται το αντίστοιχο πακέτο προγραμματισμού, το οποίο μπορεί να κατεβάσει κανείς από τον ιστότοπο του κατασκευαστή Ο προγραμματισμός γίνεται στο εργαλείο προγραμματισμού που χρησιμοποιεί συνήθως ο χρήστης και ο πηγαίος κώδικας αποθηκεύεται τοπικά στον υπολογιστή του Μέσω μιας θύρας επικοινωνίας (συνήθως USB ή COM) ο υπολογιστής επικοινωνεί με το μικροελεγκτή, ο οποίος είναι εγκατεστημένος σε μία πλακέτα ανάπτυξης Ο μεταφρασμένος κώδικας μεταφέρεται και αποθηκεύεται σε γλώσσα μηχανής στη μνήμη του μικροελεγκτή Αφού ελεγχθεί και δοκιμαστεί ότι εκτελείται σωστά ο κώδικας, ο μικροελεγκτής μπορεί να αποσπαστεί από την πλακέτα ανάπτυξης και να τοποθετηθεί στη μόνιμη θέση του, όπου θα χρησιμοποιείται στη μηχανοτρονική εφαρμογή Εναλλακτικά, ο μικροελεγκτής μπορεί να τοποθετηθεί εξ αρχής στη μόνιμη πλακέτα που χρησιμοποιείται από την εφαρμογή, η οποία διαθέτει ακροδέκτες για ενσύρματη επικοινωνίας με τον υπολογιστή δια του οποίου γίνεται ο προγραμματισμός (και κάθε επαναπρογραμματισμός που χρειάζεται κατά τη φάση ανάπτυξης του προϊόντος) 67

Μικροελεγκτές Μονής Πλακέτας Οι μικροελεγκτές μονής πλακέτας αποτελούν μικροϋπολογιστικά συστήματα μεικτού σχεδιασμού, στα οποία τη θέση του μικροεπεξεργαστή καταλαμβάνει ένας μικροελεγκτής Πέραν του μικροελεγκτή η πλακέτα αυτή περιλαμβάνει όλα τα κυκλώματα που είναι απαραίτητα για μία εφαρμογή ελέγχου, όπως κυκλώματα εισόδου/εξόδου, γεννήτρια ρολογιού, πρόσθετη μνήμη και άλλα ολοκληρωμένα κυκλώματα υποστήριξης Στην EEPROM είναι ήδη φορτωμένες ρουτίνες για την εκκίνηση του συστήματος και λοιπές βοηθητικές λειτουργίες Τα συστήματα αυτά στοχεύουν στο να είναι άμεσα αξιοποιήσιμα από το χρήστη, ώστε να μην κάνει ιδιαίτερο κόπο για την ανάπτυξη του υλικού σε εφαρμογές μηχαντρονικής και ελέγχου γενικότερα 68

Μικροελεγκτές Μονής Πλακέτας - Arduino Δημοφιλής σειρά μικροελεγκτών μονής πλακέτας που χρησιμοποιούν μικροελεγκτές AVR της σειράς ATmega Το πρωτότυπο, είχε σχεδιαστεί το 2003, με στόχο τη δημιουργία μίας ανοιχτού κώδικα πλατφόρμας που θα επέτρεπε σε αρχάριους και επαγγελματίες, να αναπτύξουν συστήματα που θα αλληλοεπιδρούσαν με το περιβάλλον, μέσω αισθητήρων και ενεργοποιητών Οι πιο δημοφιλείς υλοποιήσεις, είναι: το Arduino UNO*, το οποίο βασίζεται στον μικροελεγκτή ATmega328P το Arduino MEGA, που βασίζεται στον ATmega2560 Οι υλοποιήσεις αυτές συνοδεύονται από ένα πλήθος πρόσθετων πλακετών (shields), που προσαρμόζονται επάνω στην αρχική * Το Arduino UNO διαθέτει 14 ψηφιακές ακίδες εισόδου/εξόδου των 5V DC, εκ των οποίων οι 6 παρέχουν έξοδο PWM 8-bit Υποστηρίζει διεπαφή SPI, κάνοντας χρήση τεσσάρων εκ των ψηφιακών ακίδων ενώ τέλος διαθέτει 6 αναλογικές ακίδες εισόδου, οι οποίες παρέχουν ανάλυση 10-bit 69

Μικροελεγκτές Μονής Πλακέτας - Arduino Ο προγραμματισμός του μικροελεγκτή γίνεται μέσω σύνδεσης της πλακέτας με κάποιο άλλο υπολογιστικό σύστημα και με τη χρήση του ολοκληρωμένου περιβάλλοντος ανάπτυξης Arduino IDE, το οποίο είναι γραμμένο σε γλώσσα προγραμματισμού Java Ένα πρόγραμμα γραμμένο στο Arduino IDE ονομάζεται sketch και αποθηκεύεται ως αρχείο κειμένου με την επέκταση ino Το προγραμματιστικό περιβάλλον αυτό, υποστηρίζει τις γλώσσες C και C++, χρησιμοποιώντας ειδικούς κανόνες στη δομή του κώδικα 70

Μικροελεγκτής - ATmega328P Μικροελεγκτής χαμηλής κατανάλωσης ισχύος CMOS που βασίζεται στην RISC αρχιτεκτoνική AVR Διαθέτει: 32 KBytes Flash προγραμματιζόμμενη στο σύστημα (In-System Programmable - ISP), 2 KBytes SRAM, 1 KBytes EEPROM, 23 γενικής χρήσης Ι/Ο, 32 καταχωρητές γενικής χρήσης, τρεις χρονιστές, εσωτερικές και εξωτερικές διακοπές, διεπαφές USART, SPI και I2C και ένα εξακάναλο 10-bit ADC Διατίθεται σε 4 συσκευασίες: 28 ακίδων PDIP, 28 ακίδων MLF, 32 ακίδων ΤQFP και 32 ακίδων MLF EEPROM 1k Flash 32k SRAM 2k CPU Αρτηρία δεδοµένων Αρτηρία δεδοµένων SPI Χρονιστής2 (8 ψηφίων) Χρονιστής1 (16 ψηφίων) Χρονιστής0 (8 ψηφίων) USART0 I 2 C Αναλογικός συγκριτής ADC Αρτηρία δεδοµένων PORT B PORT D PORT C 71

Μικροελεγκτής - ATmega328P Λειτουργικό διάγραμμα της CPU του AVR Αρτηρία δεδοµένων Flash 32k PC SREG IR Αποκωδικοποιητής Εντολών Άµεση διευθυνσιοδότηση Άµεση διευθυνσιοδότηση 32 γενικής χρήσης καταχωρητές ALU SRAM 2k Αρτηρία δεδοµένων Αρτηρία ελέγχου 72

Μικροελεγκτής - ATmega328P Χάρτης μνήμης δεδομένων Ευρετήριο χώρου µνήµης ATmega328P 0000 χώρος καταχωρητών (32 θέσεις) 001F 0020 µνήµη εισόδου/εξόδου (64 θέσεις) 005F 0060 επεκτεταµένη µνήµη εισόδου/εξόδου (160 θέσεις) 00FF 0100 εσωτερική SRAM (2048 θέσεις) 08FF 73

Μικροελεγκτής - ATmega328P Διάταξη και λειτουργικότητα ακίδων του μικροελεγκτή ATmega328P σε συσκευασία PDIP 28 ακίδων (PCINT14/RESET) PC6 (PCINT16/RXD) PD0 (PCINT17/TXD) PD1 (PCINT18/INT0) PD2 (PCINT19/OC2B/INT1) PD3 (PCINT20/XCK/T0) PD4 VCC GND (PCINT6/XTAL1/TOSC1) PB6 (PCINT7/XTAL2/TOSC2) PB7 (PCINT21/OC0B/T1) PD5 (PCINT22/)C0A/AIN0) PD6 (PCINT23/AIN1) PD7 (PCINT0/CLKO/ICP1) PB0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 PC5 (ADC5/SCL/PCINT13) PC4 (ADC4/SDA/PCINT12) PC3 (ADC3/PCINT11) PC2 (ADC2/PCINT10) PC1 (ADC1/PCINT9) PC0 (ADC0/PCINT8) GND AREF AVCC PB5 (SCK/PCINT5) PB4 (MISO/PCINT4) PB3 (MOSI/OC2A/PCINT3) PB2 (SS/OC1B/PCINT2) PB1 (OC1A/PCINT1) τροφοδοσία γείωση προγραµµατισµός/απασφαλµάτωση ψηφιακή αναλογική κρύσταλλος/ταλαντωτή 74

Επιπλέον βιβλιογραφία ATMEL, 8-bit Microcontroller with 16K Bytes In-System Programmable Flash: ATmega16, ATmega16L, Preliminary, Atmel Corporation, 2002 ATMEL, 8-bit AVR Microcontrollers: ATmega328/P, Data Sheet Complete, Atmel Corporation, San Jose, 2016 Berger, AS, Embedded Systems Design: an introduction to processes, tools and techniques, CMP Books, San Francisco, 2002 Cetinkunt, S, Mechatronics with Experiments, 2 Edition, Wiley, New Delhi, 2015 nd Crisp, J, Introduction to Microprocessors and Microcontrollers, 2 Edition, Newnes, Burlington, 2004 nd Jouaneh, M, Fundamentals of Mechatronics, Cengage Learning, Stamford, 2013 Kamal R, Microcontrollers: Architecture, programming, interfacing and system design, 3rd Edition, Pearson Education, Delhi, 2009 Kani, N, Microprocessor and Microcontroller, MacGraw Hill, New Delhi, 2016 Rizvi, SR, Microcontroller Programming: An introduction, CRC Press, Boca Raton, 2012 van Dam, B, Microcontroller System Engineering, Elektor International Media, 2009 Warner, TL Hacking Rasbery Pi, Que Publishing, 2014 75