Περιεχόμενα
Είσοδος
Αναζήτηση
Ποιοι είναι εδώ
Δημοσκόπηση
Μικροελεγκτής Basic Stamp 2

ΠΕΡΙΕΧΟΜΕΝΑ
-
Εισαγωγή
-
Αρχιτεκτονική του Basic Stamp 2
-
Η Σύνδεση του Μικροελεγκτή με τον Basic Stamp 2
-
Ο Προγραμματισμός του Μικροελεγκτή Basic Stamp 2
Εισαγωγή
Ο μικροελεγκτής είναι ένα αυτόνομο υπολογιστικό σύστημα, με πολύ μικρό μέγεθος, σε ένα και μοναδικό ολοκληρωμένο κύκλωμα (computer on a chip). Όπως και όλα τα VLSI κυκλώματα, αποτελείται από μέρη που κατασκευάζονται με διάφορες λιθογραφικές μεθόδους πάνω σε πλάκες πυριτίου, τα λεγόμενα Silicon Wafers. Πάνω σε αυτά σχηματίζονται χιλιάδες έως εκατομμύρια τρανζίστορ και κατ’ επέκταση δημιουργούνται τα λεγόμενα ολοκληρωμένα κυκλώματα που είναι συνδυασμός λογικών πυλών. Συνδυάζοντας τις λογικές πύλες, δημιουργούνται υπομονάδες που επιτελούν ορισμένες πιο εξειδικευμένες λειτουργίες στον μικροελεγκτή. Μια κύρια διαφορά μεταξύ ενός μικροελεγκτή και ενός μικροεπεξεργαστή είναι πως στον μικροελεγκτή υπάρχει ενσωματωμένη μνήμη και μονάδες ελέγχου περιφερειακών συσκευών. Οι μικροελεγκτές έχουν ως κύριο σκοπό τους να επικοινωνούν με άλλες ηλεκτρονικές διατάξεις και όχι με τον άνθρωπο. Eίναι αρκετά βεβαρημένοι με υπολογιστικό φόρτο υπολογιστές, κρυμμένοι σε διάφορες ηλεκτρονικές συσκευές και οι λειτουργίες τους είναι από περιορισμένες έως πολύπλοκες εργασίες ελέγχου. Κάποιες από τις καθημερινές συσκευές, που ελέγχονται εν μέρει ή και πλήρως ακόμη από κάποιον μικροελεγκτή, είναι ηλεκτρονικά ρολόγια, φούρνοι μικροκυμάτων, ηλεκτρικά πλυντήρια, «εγκέφαλοι» αυτοκινήτων κτλ. Επιπλέον, εκτός από εφαρμογές καθημερινής χρήσης, οι μικροελεγκτές χρησιμοποιούνται και κατά κόρον σε πληθώρα από επιστημονικούς τομείς για πειραματισμό και έρευνα.
Ο προγραμματισμός αυτών των συσκευών γίνεται με ένα σετ εντολών που έχουν συγκεκριμένη σύνταξη και χρησιμοποιούν δύο καταστάσεις το 1 και το 0.
Η γλώσσα που αντιλαμβάνεται ένας μικροελεγκτής όπως και ένας μικροεπεξεργαστής ονομάζεται γλώσσα μηχανής. Στην πράξη ο χρήστης προγραμματίζει τον μικροελεγκτή σε μνημονική γλώσσα Assembly. Η γλώσσα Assembly γενικά θεωρείται χαμηλού επιπέδου καθώς βρίσκεται πολύ κοντά στην γλώσσα μηχανής. Είναι δυνατόν να γράψουμε προγράμματα σε αυτή τη γλώσσα με την βοήθεια εργαλείων που ονομάζονται assemblers. Έτσι, όταν ο προγραμματιστής δώσει εντολές όπως την MOV, ADD, LD, (Μετακίνηση, Πρόσθεση, Φόρτωση) ο assembler αντιστοιχεί την εντολή με μια ακολουθία 0 και 1 που είναι κατανοητή από τον μικροελεγκτή και τα υποσυστήματα του. Ωστόσο, ακόμη και με αυτή την διευκόλυνση που προσφέρουν τα εργαλεία αυτά, είναι αρκετά οδυνηρό από άποψη χρόνου να γραφεί ένα πρόγραμμα τέτοιου επιπέδου. Οι εντολές της γλώσσας μηχανής επιτελούν περιορισμένες διεργασίες και πολλές φορές χρειάζεται εκατοντάδες εντολών για να εκτελέσουν πράξεις και λειτουργίες πιο σύνθετες από τις συνηθισμένες. Υπάρχει όμως η δυνατότητα να γράψουμε το πρόγραμμα σε γλώσσα προγραμματισμού υψηλού επιπέδου.
Οι γλώσσες υψηλού επιπέδου μπορούν να μεταφραστούν σε γλώσσα χαμηλού επιπέδου με τη βοήθεια μεταφραστικών εργαλείων, όπως είναι ο compiler (μεταγλωττιστής) και ο interpreter (διερμηνέας). Το πρώτο είναι εργαλείο λογισμικού, το οποίο δέχεται τις εντολές υψηλού επιπέδου που δίνει ο χρήστης και τις μετατρέπει σε γλώσσα μηχανής. Ο διερμηνέας από την άλλη, είναι υλικό (hardware) μέσα στον μικροελεγκτή το οποίο αποκωδικοποιεί τη γλώσσα υψηλού επιπέδου άμεσα σε γλώσσα μηχανής. Αυτό απαιτεί βεβαίως επεξεργαστική ισχύ από το μέρος του μικροελεγκτή και έχει την τάση να τρέχει πιο αργά από ένα πρόγραμμα που «μεταγλωττίστηκε» (μέσω compiler) σε γλώσσα μηχανής. Ωστόσο έχει το πλεονέκτημα της αμεσότητας, καθώς ο προγραμματιστής μπορεί να αλλάξει ένα σημείο στον κώδικα του και να δει τα αποτελέσματα χωρίς το βήμα της μεταγλώττισης.
Στο κείμενο αυτό μελετήθηκε ο μικροελεγκτής Basic Stamp 2, που είναι κατασκευή της εταιρίας Parallax. Η καρδιά του Basic Stamp ΙΙ είναι ο μικροελεγκτής PIC16C57C-20/SS της εταιρείας Microchip, στον οποίο υπάρχει ενσωματωμένος ο διερμηνέας (Interpreter) PBASIC. Ο μικροελεκτής δέχεται χρονισμό στα 20MHz. Η PBASIC είναι μια γλώσσα που αποτελεί παραλλαγή της γνωστής σε όλους Βasic αλλά έχει διαμορφωθεί για τις ανάγκες του Basic Stamp. Το κόστος του μικροελεγκτή είναι γύρω στα 50$. Όταν η εταιρία Parallax Inc με έδρα την California το 1993 παρουσίασε τον Basic Stamp 1, βρήκε άμεση ανταπόκριση στο καταναλωτικό κοινό επειδή ο Basic Stamp παρουσίαζε δυνατότητες αντίστοιχες με τους βιομηχανικούς (industrials) μικροελεγκτές, ήταν φθηνότερος από αυτούς και προγραμματιζόταν σε υψηλό επίπεδο. Στην αρχή κατασκευάστηκε για να απευθύνεται σε χομπίστες, εκπαιδευτικούς, και σπουδαστές. Το όνομά του οφείλεται στην γλώσσα προγραμματισμού του (που είναι τύπου Basic) και στις διαστάσεις του, που είναι περίπου όσο ένα γραμματόσημο. Επιπλέον οι δημιουργοί του θέλησαν να βρουν ένα φιλικό όνομα που να χαρακτηρίζει την ευκολία χρήσης του προϊόντος τους.
Σταδιακά η χρήση του εξαπλώθηκε και χρησιμοποιήθηκε για εκπαιδευτικούς σκοπούς σε πολλά πανεπιστημιακά ιδρύματα. Συχνά οργανώνονται διαγωνισμοί όπου παίρνουν μέρος φοιτητές, παρουσιάζοντας πρωτότυπες εφαρμογές (projects) που βασίζονται στον Basic Stamp. Επίσης, σε μόνιμη βάση στο Internet λειτουργεί forum όπου φοιτητές αλλά και χομπίστες ανταλλάσσουν ιδέες, εφαρμογές και προγράμματα.
O Basic Stamp 2 είναι διαθέσιμος σε δύο διαφορετικούς τύπους: με τη μορφή ολοκληρωμένου DIP (Dual In Line Package) και ως μικρή πλακέτα SOIC (Small Outline Integrated Circuit). Έχει 16 pins για εφαρμογές ΕΙΣΟΔΟΥ/ΕΞΟΔΟΥ και μπορεί να επικοινωνήσει απευθείας με την σειριακή θύρα ενός ηλεκτρονικού υπολογιστή για τον προγραμματισμό του, χωρίς να μεσολαβούν EEPROM προγραμματιστές και δύσκολες συνδεσμολογίες. Όλα αυτά τον καθιστούν πολύ ελκυστικό, καθώς ακόμη και η εκσφαλμάτωση του κώδικα που γράφεται σε αυτόν γίνεται απλούστερα σε σχέση με άλλους μικροελεγκτές. Η οικογένεια των ΒΑSIC STAMP περιλαμβάνει και τους Basic Stamp 2P, 2E, 2I και 2SX που είναι ισχυρότεροι από την απλή έκδοση και χρησιμοποιούνται κυρίως σε βιομηχανικές εφαρμογές και στον κλάδο της επιστημονικής έρευνας.
Αρχιτεκτονική του Basic Stamp 2
Γενικά χαρακτηριστικά του Basic Stamp
Όλη η οικογένεια των Stamps έχει τα εξής παρακάτω γνωρίσματα:
- Μικρό μέγεθος
- Διερμηνευτή (Interpreter) της Basic σαν υλικολογισμικό (Firmware) στην ROM
- Tροφοδοσία με 9V και μικρή κατανάλωση.
- Μνήμη μόνιμης αποθήκευσης, η οποία μπορεί να υποστεί διαγραφή. Όποτε ο μικροελεγκτής είναι συνδεδεμένος με μια πηγή ή με μία μπαταρία τρέχει το πρόγραμμα το οποίο είναι στην μνήμη του. Ο επαναπρογραμματισμός του γίνεται οποιαδήποτε στιγμή, με σύνδεσή του με έναν Η/Υ και με τη βοήθεια ενός απλού περιβάλλοντος προγραμματισμού που η εταιρεία προσφέρει για το σκοπό αυτό. Ο χρήστης γράφει τον κώδικα και αυτός μεταφέρεται στην μνήμη του Basic Stamp με το πάτημα ενός κουμπιού .
- Θύρες εισόδου - εξόδου (pins Ι/Ο) που επιτρέπουν στον μικροελεγκτή να επικοινωνήσει με άλλες ψηφιακές συσκευές, αισθητήρια όργανα ή ακόμα και να οδηγήσει μικρά φορτία.
Είναι διαθέσιμοι σε μορφή απλής πλακέτας (Σχήμα 1.1α), για πιο εξειδικευμένες κατασκευές και για την μείωση κόστους, ή σε μορφή προκατασκευασμένων modules (αναπτυγμάτων), όπως στο Σχήμα 1.1β.
(α) BS2-IC (β) BS2-OEM
Σχήμα 1.1 Ο Μικροελεγκτής Basic Stamp 2 με μορφή ολοκληρωμένου κυκλώματος ΙC και με μορφή πλακέτας για άμεση χρήση σε εφαρμογή.
Στo παρακάτω Σχήμα 1.2 φαίνονται τα στοιχεία του μικροελεγκτή Basic Stamp 2. Τα βασικά μέρη που τον αποτελούν είναι:
- Ένας κατάλληλα τροποποιημένος μικροελεγκτής PIC
- H εξωτερική μνήμη EEPROM 24LC16B, όπου φυλάσσεται το πρόγραμμα της PBasic με μορφή “Tokens”
- To κύκλωμα τροφοδοσίας που στηρίζεται σε ηλεκτρονικό σταθεροποιητή
- Οι συνδέσεις προς τα εξωτερικά Pins
Tα μέρη αυτά του Basic Stamp 2, φαίνονται παρακάτω.
Σχήμα 1.2
Η Σύνδεση του Μικροελεγκτή με τον Basic Stamp 2
Ο προγραμματισμός των μικροελεγκτών της εταιρίας Parallax γίνεται με τη βοήθεια του ηλεκτρονικού υπολογιστή, με κατάλληλο πρόγραμμα (θα αναλυθεί σε επόμενο κεφάλαιο). Ο χρήστης έχει την δυνατότητα να γράψει και να κατεβάσει τον κώδικα του στον Basic Stamp, χωρίς να απαιτείται η σύνδεση ειδικού προγραμματιστή, όπως συμβαίνει συνήθως με τους άλλους μικροελεγκτές που έχουν εμπορική ή βιομηχανική χρήση. Δηλαδή ο προγραμματισμός του Basic Stamp γίνεται με απευθείας διασύνδεση της πλακέτας και του υπολογιστή, μέσω της σειριακής θύρας.
Η επικοινωνία στη σειριακή θύρα γίνεται με το πρωτόκολλο RS232 που χρησιμοποιεί τάσεις +12V και -12V για χαμηλή και υψηλή στάθμη αντίστοιχα. Ωστόσο οι μικροελεγκτές, όπως συμβαίνει γενικά με τα ολοκληρωμένα κυκλώματα, για τη μεταξύ τους επικοινωνία και τον προγραμματισμό τους, δέχονται τις στάθμες TTL (Transistor-Transistor Logic) στις οποίες το λογικό 0 αντιστοιχεί στα 0 Volts και το λογικό 1 αντιστοιχεί στα 5 Volts (οι νεότερες εκδοχές τις τεχνολογίας TTL λειτουργούν από 0 έως 3.3 Volts). Συνεπώς δεν μπορεί να υπάρξει επικοινωνία μεταξύ ενός μικροελεγκτή και της σειριακής θύρας άμεσα, καθώς τα σήματα των +12Volts είναι πολύ υψηλά για τις στάθμες TTL και τα σήματα των -12Volt δεν υπάρχει τρόπος να αξιοποιηθούν.
Η μετατροπή της στάθμης TTL σε RS232 και αντίστροφα, μπορεί να γίνει με ολοκληρωμένα κυκλώματα, όπως το ΜΑΧ232, όμως στην πλακέτα του Basic Stamp 2, η μετατροπή γίνεται με τρανζίστορ. Όπως φαίνεται και στο σχηματικό διάγραμμα στο Σχήμα 1.2, χρησιμοποιούνται 3 PNP τρανζίστορ ως απομονωτές (buffers) για την τάση 12 Volt της σειριακής θύρας, ώστε να υποβιβαστεί στην τάση 5 V που χρησιμοποιεί ο μικροελεγκτής PIC. Με τον ακροδέκτη SIN o Basic Stamp 2 έχει την δυνατότητα να λαμβάνει δεδομένα από την σειριακή θύρα, ενώ με τον ακροδέκτη SOUT ο Basic Stamp 2 έχει τη δυνατότητα να στέλνει δεδομένα προς την σειριακή θύρα. Αυτές οι δύο γραμμές καταλήγουν στις γραμμές RΧ και ΤΧ του μικροελεγκτή/διερμηνέα PIC16C57C-20/SS. O ακροδέκτης ΑΤΝ (Attention) χρησιμοποιείται από το πρόγραμμα του χρήστη στον Η/Υ για να «προσελκύσει» την προσοχή του Basic Stamp 2 για προγραμματισμό. Υπάρχουν και άλλες δύο συνδέσεις, οι οποίες δεν φαίνονται στο σχηματικό διάγραμμα, που ενημερώνουν το πρόγραμμα του χρήστη, σε ποια σειριακή θύρα είναι συνδεδεμένος ο Basic Stamp 2. (Σχήμα 1.3)
Σχήμα 1.3 Σύνδεση του Basic Stamp 2 με τον υπολογιστή μέσω του σειριακού καλωδίου
Σχήμα 1 .7 Το ανάπτυγμα του Basic Stamp 2 (1) ο μικροελεγκτής (2) η σύνδεση με τον υπολογιστή μέσω της σειριακής θύρας (3)-(4) η τροφοδοσία
Ο Προγραμματισμός του Μικροελεγκτή Basic Stamp 2
Το ανάπτυγμα του Basic Stamp 2 συνδέεται στον ηλεκτρονικό υπολογιστή μέσω της σειριακής θύρας ή της θύρας USB και προγραμματίζεται με ειδικό πρόγραμμα που προσφέρεται από την εταιρεία Parallax (διανέμεται σε cd-rom ή βρίσκεται ελεύθερο στο site της εταιρείας). Το πρόγραμμα ονομάζεται Basic Stamp Editor. Μέσα από προτυποποιημένες λειτουργίες, ο Basic Stamp Editor αναγνωρίζει σε ποια σειριακή θύρα είναι συνδεδεμένος ο μικροελεγκτής, ελέγχει τον κώδικα που γράφει ο χρήστης σε γλώσσα PBASIC, τον συμπιέζει και μετατρέπει τις εντολές του σε μια κωδικοποιημένη μορφή (tokens). Επίσης στέλνει τα δεδομένα στην EEPROM μνήμη του μικροελεγκτή και κάνει επιβεβαίωση ότι τα δεδομένα φορτώθηκαν με επιτυχία. Ο Basic Stamp 2 από την άλλη, όταν δεχτεί πρόγραμμα από τον Editor, σταματάει την εκτέλεση οποιουδήποτε άλλου προγράμματος τρέχει και απασχολείται με τη λήψη του προγράμματος. Δέχεται τα νέα δεδομένα, τα κατεβάζει στην EEPROM και συνεργάζεται στέλνοντας σήματα επιβεβαίωσης σχετικά με την αποστολή. Στον Basic Stamp Editor υπάρχει μια ειδική οθόνη DEBUG όπου εμφανίζονται μηνύματα που στέλνει ο μικροελεγκτής. Αυτά ελέγχονται από μια αντίστοιχη εντολή (εντολή DEBUG) και μέσω αυτής ο χρήστης λαμβάνει μηνύματα εκσφαλμάτωσης, πληροφορίες για το τι εκτελείται, βλέπει αποτελέσματα ή τιμές των μεταβλητών κτλ. Επίσης μέσα από το πρόγραμμα υπάρχει η δυνατότητα να φανεί - σε εικονικό περιβάλλον- και ο χώρος της EEPROM και της RAM.
Το ίδιο πρόγραμμα χρησιμοποιείται για τον προγραμματισμό όλων των μικροελεγκτών της οικογένειας Basic Stamp, αρκεί ο προγραμματιστής να επιλέξει μέσα από αυτό, τον τύπο του μικροελεγκτή που θα προγραμματίσει και την έκδοση της γλώσσας PBASIC που θα χρησιμοποιήσει. Ο Basic Stamp Εditor αποτελείται από το κεντρικό παράθυρο, όπου ο προγραμματιστής μπορεί να γράψει τον πηγαίο κώδικα και δύο πλαϊνά παράθυρα όπου μπορεί να δει τον τρέχον κατάλογο στον οποίο βρίσκονται τα αρχεία προγραμμάτων. Στον editor μπορεί κάποιος να φορτώσει έως και 16 διαφορετικά αρχεία προς επεξεργασία ταυτόχρονα. Τα προγράμματα για τον Basic Stamp 2 έχουν κατάληξη .bs2 και για τους υπόλοιπους μικροελεγκτές .bs1, .bsx, .bsp, .bspe κ.τλ. Το πρόγραμμα μπορεί να διαχειριστεί και δύο μικροελεγκτές συνδεδεμένους ταυτόχρονα, αν επιλεγούν οι κατάλληλες ρυθμίσεις.
Τα προγράμματα για τον μικροελεγκτή Basic Stamp 2 γράφονται σε γλώσσα προγραμματισμού PBASIC. Η εταιρία Parallax ενσωμάτωσε επάνω στον Basic Stamp 2 έναν διερμηνευτή PBASIC. Η γλώσσα PBASIC είναι ένα δημιούργημα της εταιρείας και βασίζεται στην γλώσσα BASIC. Οι εντολές της γλώσσας PBASIC είναι οι κλασικές εντολές της BASIC, μαζί με δομές επανάληψης, επιλογής και εντολών τύπου GOTO κτλ. Υπάρχουν όμως και κάποιες επιπλέον εντολές, κυρίως για την υλοποίηση ρουτινών Εισόδου/ Εξόδου όταν ο μικροελεγκτής επικοινωνεί με περιφερειακές συσκευές. Ο χρήστης γράφει τα προγράμματα στο ειδικό λογισμικό που διατίθεται μαζί με τους μικροελεγκτές (Basic Stamp Editor) και στη συνέχεια τα κατεβάζει στον Basic Stamp 2 μέσω της σειριακής θύρας.

