Αρχιτεκτονική & Προγραμματισμός
του Μικροελεγκτή AVR

Π. ΠΑΠΑΖΟΓΛΟΥ (2017)



Π. ΠΑΠΑΖΟΓΛΟΥ (2017), Αρχιτεκτονική & Προγραμματισμός του Μικροελεγκτή AVR, Εκδόσεις ΤΖΙΟΛΑ, Θεσσαλονίκη, ISBN 978-960-418-712-6, σελίδες: 536, Κωδικός ΕΥΔΟΞΟΥ: 59396174

Download

Γενικά

  
   Το πιο πρόσφατο βιβλίο (25 Σεπτεμβρίου 2017) «Αρχιτεκτονική & Προγραμματισμός του Μικροελεγκτή AVR» των εκδόσεων ΤΖΙΟΛΑ (ISBN 978-960-418-712-6, σελίδες: 536), πραγματεύεται την αξιοποίηση του μικροελεγκτή
AVR. Πρόκειται για το πιο πλήρες βιβλίο στην ελληνική βιβλιογραφία.

Το βιβλίο αυτό αποτελεί ένα πλήρες εκπαιδευτικό βοήθημα που ξεκαθαρίζει, απομυθοποιεί και προσφέρει σημαντική γνώση γύρω από τον προγραμματισμό του μικροελεγκτή AVR της Atmel. Η διάρθρωση, η σύνθεση και η παρουσίαση του υλικού, έγινε με γνώμονα τις πραγματικές ανάγκες των φοιτητών, των εκπαιδευτικών αλλά και όλων εκείνων που θέλουν να αναπτύξουν αντίστοιχες εφαρμογές.

Όλα τα προγράμματα και οι εφαρμογές του βιβλίου, έχουν αναπτυχθεί και δοκιμαστεί σε πραγματικό μικροελεγκτή, σε αντίθεση με άλλα βιβλία που παρουσιάζουν αντίστοιχο υλικό το οποίο δεν έχει δοκιμαστεί ποτέ στην πράξη.

Από την άλλη πλευρά, ο καθηγητής μπορεί να χρησιμοποιήσει το υλικό του βιβλίου για να οργανώσει τις θεωρητικές διαλέξεις και παρουσιάσεις, καθώς και τις αντίστοιχες εργαστηριακές ασκήσεις.

Δείγματα σελίδων

Η διάρθρωση του βιβλίου

Το βιβλίο αποτελείται από 13 κεφάλαια τα οποία είναι πλαισιωμένα με ασκήσεις επανάληψης, καθώς και εργαστηριακές ασκήσεις.

Το πρώτο κεφάλαιο περιλαμβάνει μια γενική εισαγωγή στους μικροελεγκτές ως προς τα χαρακτηριστικά και τις δυνατότητες τους. Το κεφάλαιο ολοκληρώνεται με παραδείγματα εφαρμογών, δίνοντας έμφαση στα συστατικά που τις αποτελούν.

Τα χαρακτηριστικά του μικροελεγκτή AVR όπως, η εσωτερική αρχιτεκτονική, το σύστημα μνήμης και οι καταχωρητές, παρουσιάζονται στο δεύτερο κεφάλαιο. Η παρουσίαση αυτών των χαρακτηριστικών έχει γίνει με το κατάλληλο επίπεδο λεπτομέρειας, προκειμένου να είναι περισσότερο κατανοητά στον αναγνώστη, χωρίς να κουράζουν σε αυτή τη φάση με περιττές λεπτομέρειες.

Στο τρίτο κεφάλαιο, παρουσιάζεται αναλυτικά και με πλούσια σχήματα το ρεπερτόριο εντολών Assembly του μικροελεγκτή, που αποτελεί και το βασικό εργαλείο ανάπτυξης των εφαρμογών. Για να αποφύγουμε όμως μια ανούσια τυπική αναγραφή εντολών, παρουσιάζουμε και την αντίστοιχη σχηματική ανάλυση λειτουργίας, καθώς και ένα τουλάχιστον ενδεικτικό παράδειγμα. Με αυτό τον τρόπο, ο αναγνώστης γίνεται γνώστης της φιλοσοφίας και της ουσίας λειτουργίας των εντολών, τις οποίες θα κληθεί αργότερα να χρησιμοποιήσει.

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

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

Οι μονάδες απεικόνισης (μονάδες απεικόνισης επτά τμημάτων, οθόνες LCD) παρουσιάζονται αναλυτικά στο έκτο κεφάλαιο. Η λειτουργία της απεικόνισης είναι πολύ βασική, τόσο για την αλληλεπίδραση με το χρήση της εφαρμογής, όσο και για τον έλεγχο λειτουργίας από το σχεδιαστή.

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

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

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

Ένα ακόμα πλεονέκτημα του μικροελεγκτή (σε πολλά από τα διαθέσιμα μοντέλα), είναι ο χειρισμός αναλογικών σημάτων που προέρχονται από αισθητήρες και άλλες παρόμοιες διατάξεις. Η μετατροπή των αναλογικών σημάτων σε ψηφιακά, είναι το αντικείμενο ανάλυσης του δέκατου κεφαλαίου. Η παρουσίαση είναι αναλυτική, προκειμένου ο αναγνώστης να κατανοήσει πλήρως τη λειτουργία της αντίστοιχης μονάδας μετατροπής που διαθέτει ο μικροελεγκτής και να την αξιοποιήσει κατάλληλα. Το κεφάλαιο αυτό ολοκληρώνεται με την παρουσίαση μιας εξίσου σημαντικής διαδικασίας, που είναι η παραγωγή αναλογικών κυματομορφών (σημάτων).

Η αποτελεσματική διαχείριση και έλεγχος πολλαπλών συσκευών και διατάξεων που βρίσκονται στο ίδιο κύκλωμα, γίνεται μέσα από απλές και τυποποιημένες μεθόδους επικοινωνίας. Το πλεονέκτημα αυτών των προσεγγίσεων, είναι η ευκολία ανάπτυξης του κυκλώματος και ο αντίστοιχος προγραμματισμός τους. Πιο συγκεκριμένα, στο ενδέκατο κεφάλαιο παρουσιάζονται οι γνωστές μέθοδοι σειριακής επικοινωνίας SPI και I2C (TWI).

Μια διαφορετική προσέγγιση στον προγραμματισμό που σχετίζεται με την ανάπτυξη απλών αλλά και σύνθετων εφαρμογών, είναι η χρήση της γλώσσας προγραμματισμού AVR C. Ένα πολύτιμο εργαλείο που προσφέρει και αυτό τα πλεονεκτήματά του, ενώ αποτελεί μια ακόμα επιλογή για το σχεδιαστή μηχανικό. Ο προγραμματισμός του μικροελεγκτή σε γλώσσα C παρουσιάζεται στο δωδέκατο κεφάλαιο.

Τέλος, το δέκατο τρίτο κεφάλαιο αναφέρεται σε ακόμα πιο πρακτικά ζητήματα όπως, ο φυσικός προγραμματισμός του μικροελεγκτή, η ανάπτυξη και προσομοίωση εφαρμογών σε ολοκληρωμένα περιβάλλοντα, η αξιοποίηση αναπτυξιακών κιτ της αγοράς, κλπ. Το κεφάλαιο ολοκληρώνεται με την παρουσίαση μιας απλής μεθοδολογίας για την ανάπτυξη μιας προσαρμοσμένης πειραματικής πλακέτας.

Το βιβλίο είναι διαθέσιμο στα ιδρύματα της τριτοβάθμιας εκπαίδευσης μέσω του συστήματος ΕΥΔΟΞΟΣ (κωδικός 59396174)


Γιατί χρειάζεται όμως ένα ακόμα βιβλίο για τους μικροελεγκτές;


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

Έτσι, αυτό που λείπει από την εκπαίδευση των φοιτητών μηχανικών, είναι ένα πραγματικά εκπαιδευτικό βιβλίο το οποίο να περιλαμβάνει την κατάλληλη θεωρία, την αντίστοιχη υλοποίηση πρακτικών εφαρμογών, καθώς και τις κατάλληλες εργαστηριακές ασκήσεις. Κυρίως όμως, λείπει ένα βιβλίο που να καθοδηγεί σωστά το φοιτητή και να του μαθαίνει τον τρόπο σκέψης για την ανάπτυξη εφαρμογών με τον μικροελεγκτή. Παράλληλα, μεγάλη πρόκληση αποτελεί για το συγγραφέα, τόσο η απομυθοποίηση, όσο και η απλοποίηση της παρουσίασης των χαρακτηριστικών και των λειτουργιών του μικροελεγκτή που αντικειμενικά παρουσιάζουν μεγάλες δυσκολίες στην κατανόηση, κάνοντας πολλούς φοιτητές να εγκαταλείπουν αυτό το αντικείμενο. Συνοψίζοντας όλα τα παραπάνω, ορισμένα από τα βασικά χαρακτηριστικά αυτού του βιβλίου, είναι:

(α) Έχει καθαρά εκπαιδευτικό χαρακτήρα, χωρίς να απαιτεί εξειδικευμένες γνώσεις

(β) Περιλαμβάνει κατάλληλη θεωρητική παρουσίαση και πρακτική υλοποίηση των εφαρμογών

(γ) Η παρουσίαση γίνεται με πλούσια και αναλυτικά σχήματα, ενώ τα σύνθετα χαρακτηριστικά παρουσιάζονται με πολύ απλό τρόπο

(δ) Περιλαμβάνει βασικές και εργαστηριακές ασκήσεις, οργανωμένες για κάθε κεφάλαιο ξεχωριστά

Τα «μοναδικά» χαρακτηριστικά του βιβλίου που δεν υπάρχουν στην αντίστοιχη ελληνική βιβλιογραφία (και κατέστησαν την ανάγκη συγγραφής ενός νέου βιβλίου επιβεβλημένη), είναι:

  • Η παρουσίαση της θεωρίας γίνεται μέσα από πρακτικές εφαρμογές

  • Περιλαμβάνονται κεφάλαια με αναλυτική παρουσίαση προχωρημένων χαρακτηριστικών όπως οι χρονιστές/μετρητές

  • Καλύπτει τα περισσότερα χαρακτηριστικά του μικροελεγκτή σε σχέση με οποιοδήποτε άλλο βιβλίο

  • Περιλαμβάνει εργαστηριακές ασκήσεις σε βήματα που μπορούν άμεσα να υλοποιηθούν στο αντίστοιχο εργαστήριο (10.364, 11.397)

  • Περιλαμβάνει 60% κάλυψη με σχήματα που βοηθούν τους φοιτητές να κατανοούν καλύτερα το αντίστοιχο θέμα που παρουσιάζεται

  • Παρουσιάζει τις απαραίτητες αλγοριθμικές δομές προκειμένου οι φοιτητές να «μαθαίνουν» με το σωστό τρόπο και τον προγραμματισμό (αυτό είναι ιδιαίτερα χρήσιμο σε φοιτητές τμημάτων που δεν σχετίζονται με την πληροφορική) (12.408)

  • Ο προγραμματισμός του μικροελεγκτή παρουσιάζεται τόσο σε γλώσσα Assembly, όσο και σε γλώσσα C

  • Όλο το θεωρητικό υλικό μπορεί να χρησιμοποιηθεί στη μορφή που είναι στην αντίστοιχη διδασκαλία της θεωρίας

  • Ο κώδικας των εφαρμογών αναπτύσσεται και παρουσιάζεται σταδιακά

      Υπάρχει μια καλή ισορροπία μεταξύ θεωρίας και εφαρμογών (να μην είναι κουραστική και υπέρμετρη χωρίς νόημα και χωρίς να συνδέεται με την αντίστοιχη εφαρμογή)

  • Σε επιλεγμένες εφαρμογές, γίνεται χρήση διαγραμμάτων ροής για να τονιστεί ο τρόπος σκέψης και σύνθεσης στην κατεύθυνση ανάπτυξης ενός αποδοτικού και λειτουργικού κώδικα (6.219)

  • Παρουσιάζεται ο φυσικός προγραμματισμός με τις αντίστοιχες διαθέσιμες τεχνολογίες και μεθοδολογίες, καθώς και το αντίστοιχο λογισμικό (13.494)

  • Γίνεται αναφορά στα πιο γνωστά αναπτυξιακά κιτ, ενώ περιλαμβάνονται και αναλυτικές οδηγίες για τη σχεδίαση και υλοποίηση πειραματικής πλακέτας(13.498, 13.510)


Δείγματα σελίδων














(C) Παναγιώτης Μ. Παπάζογλου