Λ --------------------- ιτεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ / ΜΙΚΡΟΕΑΕΓΚΤΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ- ΕΛΕΓΚΤΗΣ - ΚΑ ΤΑΜΕΤΡΗΤΗΣ ΑΝΤΛΙΩΝ ΥΓΡΩΝ ΚΑ ΥΣΙΜΩΝ ΣΠΟ'ί- /^ΛΣΤΗΣ Ιωαννίδης Δημήτριος ΕΙΣΗΓΗΤΗΣ Μιχαήλ Β. Ανέστης Καθηγητής Εφ. ΚΑΒΑΛΑ ΙΑΝυ\ νριοσ 2003
Αυτή η τττνχιακή αφιερώνεται πρώτα στους Γονείς μου, σαν ένα μικρό δείγμα εκτίμησης για την αμέριστη κατανόηση και συμπαράσταση τους καθ' όλη την διάρκεια των σπουδών μου και σε όλα τα άλλα μέλη της οικογένειας μου. Ευχαριστώ επίσης θερμά τον εισηγητή μου, Υπεύθυνο Εργαστηρίων Ψηφιακών Συστημάτων και ΜικροΥπολογιστών και Μικροελεγκτών, καθηγητή εφαρμογών κ. Ανέστη Β. Μιχαήλ για την εμπιστοσύνη και τη βοήθεια του για την ολοκλήρωση της εργασίας. Καθώς επίσης ευχαριστώ θερμά τον κ. Λιάλια Νικόλαο ο οποίος μου παραχώρησε τον εξοπλισμό του και τις πολύτιμες γνώσεις του σχετικά με τις αντλίες υγρών καυσίμων για την πραγματοποίηση της κατασκευής αυτής.
ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή...... 2 2 Γενική Περιγραφή... 4 3 Γενικά Χαρακτηριστικά του P1C16C74A... 9 3.1 Η Αρχιτεκτονική του P1C16C74A... 9 3.2 Οργάνωση Μνημης Προγράμματος... 14 3.3 0 Σωρός... 14 3.4 Οργάνωση του Αρχείου Καταχωρητων... 16 3.5 Έμμεση Διευθυνσιοδοτηση Καταχωρητες INDF, FSR... 17 3.6 0 Καταχωρητης STATUS... 18 3.7 0 Καταχωρητης OPTION... 20 3.8 0 Καταχωρητης INTCON... 21 3.9 Αριθμητική Αογικη Μονάδά (ALU)... 22 3.10 0 Καταχωρητης W... 23 3.11 Τα Εσωτερικά Περιφερειακά του P1C16C74A... 23 3.12 Οι Καταχωρητες PORTA και TRJSA... 23 3.13 Οι Καταχωρητες POR ΓΒ και TR1SB... 25 3.14 Οι Καταχωρητες PORTC και TRISC... 28 3.15 Οι Καταχωρητες PORTD και TRISD... 28 3.16 Οι Καταχωρητες PORTE και TRISE... 30 3.17 Ο TMR0 και οι Εφαρμογές του... 30 4 Πρωτόκολλα Σειριακής Ετηκοινωνιας... 32 4.1 Πρωτόκολλο Σύγχρονης Σειριακής Επικοινωνίας... 32 4.2 Πρωτόκολλο Ασύγχρονης Σειριακής Επικοινωνίας... 34 4.3 Γεννήτρια Ρυθμου Μεταφοράς Δεδομένων... 35 4.4 Δειγματοληψία... 37 4.5 0 Καταχωρητης TXSTA... 39 4.6 Ασύγχρονος Εκπομπος Πρωτοκόλλου SCI... 40 4.7 Ο Καταχωρητης RCSTA... 42 4.8 Ασύγχρονος Δέκτης Πρωτοκόλλου SCI... 44 4.9 Ο Καταχωρητης PIR1... 46 4.10 Ο Καταχωρητιις ΡΙΕ1... 47 5 Οι Εντολές του P1C16C74 48 5.1 Οι Εντολές Αναλυτικά... 50 6 Σχέδια και Βιβλιογραφία... 64 6.1 Το Ηλεκτρονικό Κύκλωμα... 65 6.2 Το Τυπομένο Κύκλωμα... 66 6.3 Το Τοπογραφικο τιις πλακετας... 67 6.4 Υλικά της κατασκευής...... 67 6.5 Προγραμματισμός... 68 6.5.1 Το λογικό διάγραμμα... 68 6.5.2 Υπορουτίνες. 69 6.5.3 Το πρόγραμμα 86 6.6 Βιβλιογραφία...... 89
[ /.εγκτής-καταμίτρητής Αντλιών Υγρών καυσίμιον 1. ΕΙΣΑΓΩΓΗ Η ραγδαία ανάπτυξη της τεχνολογίας των ηλεκτρονικών συστημάτων έφερε πολλές αλλαγές σε όλες τους τομείς της ζωής μας. Έτσι τα ηλεκτρονικά συστήματα εισχώρησαν και στη βιομηχανία και ιδιαίτερα στη βιομηχανία πετρελαιοειδών. Με την αύξηση των τιμών στα καύσιμα κρίθηκε απόλυτη ανάγκη η αντικατάσταση των μηχανικών καταμετρητών μέτρησης υγρών καυσίμων με πολύπλοκα ηλεκτρονικά συστήματα μέτρησης ελέγχου και καταγραφής. Μετά τα διυλιστήρια και τις μεγάλες εγκαταστάσεις διακίνησης καυσίμων τα ηλεκτρονικά καταγραφικά συστήματα (ελέγχου και μέτρησης) βρέθηκαν και στην καθημερινή χρήση με την έννοια του πρατηρίου καυσίμων όπου γεμίζουμε τα ρεζερβουάρ των οχημάτων μας. Πριν 15 περίπου χρόνια στην Ελλάδα ξεκίνησε η αντικατάσταση των μηχανικών αντλιών στα πρατήρια και μέχρι σήμερα εξελίχθηκαν και τοποθετήθηκαν διάφορα συστήματα με σκοπό την ακρίβεια και αξιοπιστία της μέτρησης των καυσίμων καθώς και την εξυπηρέτηση του κοινού (πελατών). Η καταγραφή της μέτρησης στον μηχανικό καταμετρητή, γινόταν και γίνεται ακόμα μέσω μηχανικής σύνδεσης και με ένα σύστημα γραναζιών που μεταφέρει την κίνηση σε μια συστοιχία κυλίνδρων (Ράουλα) αριθμημένων από το (0-9) και η κίιηση είναι αυξητική από το μικρότερο σε αξία κύλινδρο (Ράουλο), προς το μεγαλύτερο σε αξία. Ο υπολογισμός γίνεται με γρανάζια Τιμή Λίτρου χ Λίτρα = Λξία σε Ευρώ. Είναι προφανές ότι οι φθορές της μηχανικής καταγραφής ήταν τεράστιες με αποτέλεσμα να διακινδυνεύεται η ακρίβεια της μέτρησης, καθώς και το κόστος συντήρησης ήταν μεγάλο. Στην Ηλεκτρονική καταγραφή της μέτρησης έχουν περιοριστεί όλα τα κινητά μέρη. Λυτό είχε σαν αποτέλεσμα : Μείωση κόστους συντήρησης Ακρίβεια και αξιοπιστία στην μέτρηση ακολουθώντας τις Διεθνείς προδιαγραφές της Υπηρεσίας Μέτρων Και Σταθμών Διαγνωστικά βλαβών τα οποία διευκολύνουν τους τεχνικούς, στον εντοπισμό της βλάβης και την γρήγορη αποκατάσταση της. Ιωαννίδης Δημήτρης
Ελεγκτής-Καταμετρητής Αντλιών Υγρών καικήμων 3 Ετήσης ο Ηλεκτρονικός καταμετρητής δίνει την δυνατότητα επικοινωνίας με άλλα ηλεκτρονικά συστήματα όπως είναι: Κονσόλα αντλίας (^κόνα 1), Ηλεκτρονικό Υπο>-ογιστή, για τον πλήρη έλεγχο των αντλιών (καταμετρητών) του πρατηρίου υγρών καυσίμων, παρέχοντας γενικά σύνολα, σύνολα βάρδιας ημέρας κλπ, καθώς και για την καλύτερη εξυττηρέτηση των πελατών με περισσότερες δυνατότητες (self service - χρήση κάρτας ή χαρτονομισμάτων) τις οποίες δεν παρείχαν οι μηχανικοί καταμετρητές. (Κονσόλα αντλία - Εικόνα 1) Η κατασκευή η οποία θα αναλυθεί και αναπτυχθεί παρακάτω είναι η βάση ενός ηλεκτρονικού συστήματος καταγραφής, υπολογισμού και ελέγχου αντλίας πρατηρίου υγρών καυσίμων. Η καρδιά της συσκευής αυτής είναι ένας μικροεπεξεργαστής της Microchip της οικογένειας PIC ο PIC16C74A. Περισσότερες πληροφορίες για αυτόν τον μικροεπεξεργαστή αναφέρονται στο κεφάλαιο 3. Ιοκιννίδης Δημήτρης
Ε/χ-^κτής-Κ-αταμειρητής Ανιλιών Υγρών καυσίμ<ην 2 Γενική Περιγραφή Η λειτουργία μιας αντλίας υγρών καυσίμων σχεδόν σε όλα τα μοντέλα είναι περίπου η ίδια. Μερικά μοντέλα αντλιών φαίνονται στην εικόνα 2. ΙωαννΙδης Δημήτρης Εικόνα 2 (Μοντέλα Αντλιών)
Ελ γκτής-καταμετρητής Αντλιών Υγρών καυσίμων Καθώς τραβάμε την τηστόλα (εικόνα 3) και την τοποθετούμε στο ρεζερβουάρ του αυτοκινήτου μας, ενεργοποιείτε ένας διακόπτης ο οποίος δίνει ψηφιακό σήμα στον υπολογιστή της αντλίας (καταμετρητή) ο οποίος μηδενίζει στην οθόνη απεικόνισης (εικόνα 4) τα λίτρα και την χρηματική αξία που είχαν καταγραφεί από την προηγούμενη μέτρηση ενώ αφήνει την τιμή του λίτρου (ανέπαφη). Εικόνα 4 (Οθόνη Απεικόνισης) Ιωαννίδης Δημήτρης
Ελεγκτής-Καταμετρητής Αντλιών Υγρών καυσίμων Αμέσως μετά οπλίζει το ρελέ του κινητήρα της αντλίας με την οποία θα φορτώσουμε καύσιμο στο όχημα μας και καθώς φορτώνουμε η ροή του καυσίμου διερχόμενη μέσω ενός μηχανικού συστήματος ογκομέτρησης (εικόνα 5) το οποίο δίδει κίνηση σε ένα ηλεκτρονικό παλμοδότη μέσω μηχανικής σύνδεσης, Εικόνα 5 (Ογκομετρητής και παλμοδότης) έχει σαν αποτέλεσμα τη συνεχή αύξηση στην οθόνη της αντλίας τα λίτρα και την αξία των λίτρων (εικόνα 6) ενώ η τιμή του λίτρου παραμένει σταθερή. (εικόνα 6) Ιωοννίδης Δημήτρης
Eλ^γ1cτής-Kαταμετpητής Αντλιών Υγρών καυσίμων 7 Ο κινητήρας παραμένει σε λειτουργία μέχρι να ξανατοποθετήσουμε την πιστόλα (ZVA) στη θέση της. Στην ακόνα 7 φαίνονται τα μηχανικά και ηλεκτρικά μέρη μιας διπλής αντλίας. Κινητήρες, κεντρόφυγες και σωληνώσεις. (Εικόνα 7) Ιωαννίδης Δημήτρης
Ελεγκτής-Καταμετρητής Ανιλκ&ν Υγρών καυσίμων 8 Η Κατασκευή αυτή (εικόνα 8) προσομοιώνη την λειτουργία ενός ηλεκτρονικού καταγραφέα μιας αντλίας. (εικόνα 8) Περιμένει δηλαδή να τραβηχτεί η τηστόλα (ο διακότττης 1 στην πλακέτα ) και μόλις τραβηχτεί ο μικροεπεξεργαστής το αναγνωρίζει, ο οποίος μηδενίζει την ποσότητα (λίτρα) και την αξία της ποσότητας (Ευρώ) στην οθόνη υγρών κρυστάλλων (LCD display) εκτός από την τιμή λίτρου. Αμέσως μετά οπλίζει το ρελέ της αντλίας για να ξεκινήσει ο κινητήρας (ανάβει το πράσινο LED) και ο μικροεπεξεργαστής είναι έτοιμος να καταγράψει την ποσότητα της φόρτωσης και να υπολογίσει την αξία της μέσω του παλμοδότη ο οποίος μας δίνει διπλό παλμό με αποτέλεσμα την μεγαλύτερη ακρίβεια και αξιοπιστία της μέτρησης, απεικονίζοντας ταυτόχρονα στην οθόνη υγρών κρυστάλλων την ποσότητα σε λίτρα, την αξία της σε Ευρώ, την τιμή ανά λίτρο, μέχρι να τοποθετηθεί η πιστόλα στη θέση της και να κλείσει ο κινητήρας (πράσινο LED σβήνει). Σε περίπτωση βλάβης του παλμοδότη (π.χ. ένα από τα κανάλια του παλμοδότη έχει χαλάσει ) ο μικροεπεξεργαστής το αντιλαμβάνεται αυτό και αμέσως σταματάει την λειτουργία του κινητήρα (πράσινο LED σβήνει, κόκκινο LED ανάβει). Ιωαννίδης Δημήτρης
Ι /χγχγτής-καταμπρητής Αντλιών Υγρών καυσίμων 9 3. ΓΕΝΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ PIC16C74A Ο PIC16C74A είναι ένας μικροεπεςεργαστής προηγμένης τεχνολογίας τον οποίο κατασκεύασε η M ICROCHIP και αποτελεί έναν από τους μικροεπεξεργαστές της σειράς των PIC16CXX. Η παραπάνω σειρά των μικροεπεξεργαστών στηρίζεται σε ένα τρόπο λειτουργίας, ο οποίος διεθνώς έχει χαρακτηριστεί ως τεχνολογία RISC. Ο PIC16C74A διαθέτει 33 pin, τα οποία μπορούν να λειτουργήσουν και ως είσοδος και ως έξοδος. Τα 33 pin I/O είναι κατανεμημένα σε 5 πόρτες, κάθε μια από τις οποίες λειτουργεί ως ξεχωριστή συσκευή. Έτσι η πόρτα A (ΡΟΡΤΑ) έχει 6 pin I/O, η πόρτα Β (PORTB) 8 pin I/O, η πόρτα C (POPTC) 8 pin I/O, η πόρτα D (POBTD) 8 pin I/O, και η πόρτα Ε (ΡΟΡΤΕ) 3 pin I/O. Ακόμη ο PIC16C74A διαθέτει 4Kbyte μνήμη EPROM και 192bytes μνήμη ΡΑΜ. Τρεις εσωτερικούς καταχωρητές TMR0, TMR1, TMR2, που μπορούν να λειτουργήσουν ως χρονιστές ή μετρητές, έναν χρονιστή επιτήρησης (WDT) ο οποίος διαθέτει και εσωτερικό κύκλωμα RC για αξιόπιστη λειτουργία, καθώς και έναν μετατροπέα analog to digital (A/D) των 8 bit. Ο PIC16C74A έχει την δυνατότητα να λειτουργήσει με δύο διαφορετικά πρωτόκολλα σειριακής επικοινωνίας. Πρόκειται για το πρωτόκολλο SCI/USART σύμφωνα με το οποίο γίνεται η σειριακή ασύγχρονη μετάδοση και το πρωτόκολλο SSP σύμφωνα με το οποίο γίνεται η σειριακή σύγχρονη μετάδοση. Η σειριακή μετάδοση γίνεται με την βοήθεια δύο pin της πόρτας C το RC6 (ΤΧ) και το RC7 (RX), ενώ ο επεξεργαστής διαθέτει και παράλληλη πόρτα των 8 bit, την πόρτα D. Επίσης ο PIC16C74A έχει φάσμα τροφοδοσίας από 3V έως 6V ενώ μέγιστη συχνότητα λειτουργίας τα 2ΘΜΗΖ, και ελάχιστο κύκλο μηχανής 200ns.Ο μικροελεγκτής έχει ακόμη 12 πηγές διακοττής (interrupt sources), σωρό 8 επιπέδων, άμεση ή έμμεση διευθυνσιοδότηση, κύκλωμα reset σε περίπτωση που δεν έχει σταθεροποιηθεί η τάση τροφοδοσίας, προστασία του λογισμικού με βοήθεια κώδικα και λειτουργία εξοικονόμησης ενέργειας (sleep). Τέλος για τον προγραμματισμό του χρειάζονται μόνο 35 εντολές, ενώ η εκτέλεση κάθε εντολής γίνεται σε έναν κύκλο μηχανής εκτός από τις εντολές διακλάδωσης όπου χρειάζονται δύο κύκλους μηχανής. 3.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ PIC16C74A Η υψηλή επίδοση του PIC16C74A μπορεί να αποδοθεί σε έναν αριθμό χαρακτηριστικών της αρχιτεκτονικής του που συνήθως συναντάμε σε μικροεπεξεργαστές τεχνολογίας RISC. Αρχικά ο PIC16C74A χρησιμοποιεί αρχιτεκτονική τύπου Harvard, κατά την οποία τα δεδομένα και το πρόγραμμα έχουν Ιοκιννίδης Δημήτρης
Ελ γκτής-καταμετρητής Αντλιών Υγρών καυοίμων 1_0 προστιέλαση σε ξεχωριστή μνήμη. Αυτό βελτιώνει το εύρος ζώνης και την ταχύτητα σε σχέση με την παραδοσιακή αρχιτεκτονική τύπου Uon-Neuman όπου το πρόγραμμα και τα δεδομένα καλούνται από την ίδια μνήμη. Επιπλέον διαχωρίζοντας την μνήμη προγράμματος και δεδομένων επιτρέπει στις εντολές να έχουν μήκος διαφορετικό των 8 bits των ψηφιολέξεων δεδομένων. Στον PIC16C74A ο κώδικας μηχανής έχει μήκος 14 bits δίνοντας την δυνατότητα να έχουμε εντολές που καταλαμβάνουν χώρο μιας ψηφιολέξεις των 14 bits. Σχήμα 1. Block Διάγραμμα Του PIC16C74A Η πρόσβαση στη μνήμη προγράμματος γίνεται με αρτηρία (BUS) μήκους επίσης 14 bits που επιτρέπει μια εντολή να διαβάζεται σε έναν μόνο κύκλο μηχανής. Ο 1674Α μπορεί να διευθυνσιοδοτήσει 4Κ X 14 συνολικό χώρο μνήμης προγράμματος που περιλαμβάνει μέσα στο ολοκληρωμένο κύκλωμα. Η εκτέλεση προγράμματος είναι μόνο εσωτερική, δηλαδή δεν μπορεί να δεχθεί εξωτερική μνήμη. Επίσης μπορεί να διευθυνσιοδοτήσει τους 192 καταχωρητές του ή την μνήμη αποθήκευσης δεδομένων. Όλοι οι καταχωρητές ειδικής λειτουργίας Ιωαννίδης Δημήτρης
Ε>.εγιαής-ΚαταμΕτρητής Αντλιών Υγρ<ί)ν καυσ<μϋ)ν Π συμπεριλαμβανομένου και του απαριθμητή προγράμματος είναι χαρτογραφημένοι στην μνήμη προγράμματος. Ακόμη έχει αρκετά συμμετρικό σετ εντολών που τον κάνει ικανό να εκτελέσει οποιαδήποτε εντολή πάνω σε οποιονδήποτε καταχωρητή. Αυτή η συμμετρική του φύση κάνει τον προγραμματισμό του πιο αποδοτικό και την εκμάθηση του ευκολότερη. Στο σχήμα 2 φαίνεται η διάταξη των ακροδεκτών του μικροεπεξεργαστή και δύο τύποι συσκευασίας του, ενώ ο πίνακας 1 αναφαίρετε στην περιγραφή των ακροδεκτών του. Σχήμα 2. Διάταξη Ακροδεκτών Του PIC16C74A tmitttit
ΐ;-Κσταμετρητής Αντλιών Υγρών καυσίμοη Πίνακας 1. Περιγραφή ακροδεκτών του PIC16C74A Όνομα DIP PLCC I/O Buffer type Περιγραφή No. No. Type OSC1/CLKIN 13 14 I ST/CMOS Είσοδος κρυστάλλου ταλάντωσης / εζωτερικό clock OSC2/CLKOUT 14 15 o Έζοδος κρυστάλλου ταλάντωσης 1 2 ST Είσοδος reset. Είσοδος τάσης MCLR/Vpp προγραμματισμού. Αμφίδρομη Πόρτα Α. RA0/AN0 2 3 I/O TTL Αναλογική είσοδος 0. RA1/AN1 3 4 I/O TTL Αναλογική είσοδος 1. RA2/AN2 4 5 υ ο TTL Αναλογική είσοδος 2. RA3/AN3A^ref 5 6 I/O TTL Αναλογική είσοδος 3. RA4/TOCKI 6 7 VO ST Αναλογική είσοδος 4. Μπορεί εττίσης να χρησιμοποιηθεί ως είσοδος clock για τον TMR0. RA5/AN4/SS 7 8 I/O TTL Αναλογική είσοδος 5. Μπορεί να χρησιμοποιηθεί ως επιλογή SLAVE συσκευής σειριακή πόρτα. Πόρτα Β. Αμφίδρομη VO πόρτα. RBO/INT 33 36 I/O TTL/ST Είσοδος/ Έξοδος. Μπορεί να προγραμματιστεί ως εξωτερικό ποδαράκι διακοπής. RBI 34 37 TTL Είσοδος /Εξοδος RB2 35 38 TTL Είσοδος /Εξοδος RB3 36 39 TTL Είσοδος /Εξοδος RB4 37 '41 I/O TTL Είσοδος / Έξοδος. Διακοπή σε αλλαγή λογικής στάθμης. RB5 38 42 I/O TTL Είσοδος / Έξοδος. Διακοπή σε αλλαγή λογικής στάθμης. RB6 39 43 I/O TTL/ST Είσοδος / Έξοδος. Διακοπή σε αλλαγή λογικής στάθμης. Χρησιμοποιείται και ως clock σειριακού προγραμματισμού. RB7 40 44 yo TTL/ST Είσοδος / Έξοδος. Διακοτιή σε αλλαγή λογικής στάθμης. Χρησιμοποιείται και ως data σειριακού προγραμματισμού. Πόρτα C. Αμφίδρομη ΕΟ πόρτα. RCO/TIOSO 15 16 y o ST Μπορεί να χρησιμοποιηθεί και ως /TICK! έξοδος ταλάντωσης. TMR1 ή είσοδος clock TMR1. RCI/TIOSI 16 18 y o ST ως είσοδος ταλάντωσηςτμρι Μπορεί /CCP2 να χρησιμοποιηθεί και ή έξοδος διαμόρφωσης PWM2. RC2/CCP1 17 19 yo ST Μπορεί να χρησιμοποιηθεί και ως έξοδος διαμόρφωσης PWM1. Ιωαννίδης Δημήτρης
Ελ γκτής-καταμετρητής Αντλκίν Υγρών καυσίμων RC3/SCK /SCL RC4/SDI /SDA 18 20 ΕΟ ST Μπορεί να χρησιμοποιηθεί και ως είσοδος clock και γία τα δύο είδη (SPI-SP) του πρωτοκόλλου σειριακής επικοινωνίας SSP. 23 25 ΕΟ ST Μπορεί να χρησιμοποιηθεί και ως είσοδος δεδομένων και είσοδος / έξοδος δεδομένων για τους παραπάνω τρόπους SPEIC αντίστοιγα. RC5/SDO 24 26 ΕΟ ST Μπορεί να χρησιμοποιηθεί ως έξοδος data του τρόπου SP1. RC6/TX/CK RC7/RX/DT 25 26 27 29 ΕΟ ΕΟ ST ST Μπορεί να χρησιμοποιηθεί και ως pin για μετάδοση δεδομένων ασύγχρονης λειτουργίας προτωκολλου SCI ή clock ασύγχρονης λειτουργίας πρωτοκόλλου SCI. Μπορεί να χρησιμοποιηθεί και ως ποδαράκι ασύγχρονης λήψης ή σύγχρονωνδεδομένων. RD0/PSP0 RD1/PSP1 19 20 21 22 ΕΟ ΕΟ ST/TTL ST/TTL Αμφίδρομη πόρτα D ή παράλληλη διασύνδεση με μικροελεκτή. RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 21 22 27 28 29 30 23 24 30 31 32 33 ΕΟ ΕΟ ΕΟ ΕΟ ΕΟ ΕΟ ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL RE0/RD/AN5 8 9 ΕΟ ST/TTL Αμφίδρομη πόρτα Ε. Μπορεί να διαβαστεί ως ψηφίο ελέγχου της πόρτας D ή παράλληλη πόρτα ή αναλογική είσοδος 5. RE1/WR/AN6 9 10 ΕΟ ST/TTL Μπορεί να γραφεί και ως ψηφίο ελέγχου της πόρτας D ως παράλληλη πόρτα ή αναλογική είσοδος 6. RE2/CS/AN7 10 11 ΕΟ ST/TTL Μπορεί να χρησιμοποιηθεί και ως ψηφίο ελέγχου ετηλογής για την πόρτα D ή αναλογικήείσοδος 7 Vss 12,3 1 13,34 Ρ Γείωση VDD 11,3 12,35 Ρ 2 Τροφοδοσία 1,17,28, NC 40 Δεν συνδέονται Σημείωση: I = Είσοδος Ο = Έξοδος I/O = Είσοδος / Έξοδος Ρ = Πηγή TTL = Είσοδος TTL ST = Είσοδος Schmitt Trigger ΙωαννΙδης Δημήτρης
ΐ :>χγκτής-καταμετρητής Αντλιών Υγρών καυσίμων 3.2 ΟΡΓΑΝΩΣΗ ΜΝΗΜΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ο PIC16C74A έχει σαν μετρητή προγράμματος μήκους 13 bits ικανό να διευθυνσιοδοτήσει 8Κ X 14 συνολικό χώρο μνήμης. Μόνο όμως στις πρώτες 4Κ X 14 (δεκαεξαδικές διευθύνσεις 0000-0FFF) μπορεί να έχει πρόσβαση. Προσπαθώντας να «δει» κάποια διεύθυνση πάνω από το όριο αυτό θα προκαλέσει κάποια ανακύκλωση στην περιοχή των πρώτων 4Κ. Το διάνυσμα επανεκκίνησης είναι στην διεύθυνση (OOOO)hex, ενώ το διάνυσμα διακοπών στην διεύθυνση (0004)hex. Αυτό σημαίνει ότι μετά από κάποια επανεκκίνηση ο μετρητής προγράμματος παίρνει αυτόματα την τιμή (OOOO)hex, ενώ μετά από κάποια διακοπή, εσωτερική ή εξωτερική, παίρνει την τιμή (0004)hex. 3.3 Ο ΣΩΡΟΣ Ο PIC16C74A έχει εσωτερικό σωρό 8 τμημάτων των 13 bits. Ο χώρος του σωρού δεν αποτελεί μέρος ούτε της μνήμης προγράμματος, ούτε της μνήμης δεδομένων και ο δείκτης σωρού δεν μπορεί να γραφεί ούτε να διαβαστεί. Ο μετρητής προγράμματος προωθείται στον σωρό όταν μία εντολή CALL εκτελείται ή όταν αναγνωρίζεται κάποια διακοπή. Ο σωρός επανέρχεται στην προηγούμενη του κατάσταση στην περίπτωση εκτέλεσης κάποιας εντολής από τις RETURN, RETLW, ή RETFIE. Ο καταχωρητής PCLATH δεν εττηρεάζεται από την εκτέλεση της λειτουργίας προώθησης στο σωρό την λειτουργία επαναφοράς του σωρού στην προηγούμενη του κατάσταση (PUSH - POP). Ιωαννίδης Δημήτρης
ία γ>:τής-καταμετρητής Αντλιών Υγρ<;)ν καυσίμοιν Σχήμα 3. Οργάνωση μνήμης προγράμματος και ο Σωρός Σωρός Επίπεδο 1 Σωρός Εττύτεδο 8 Σημείο επανεκκίνησης 0000 Η Σημείο διακοπής Μνήμη προγραμματισμού (Σελίδα 0) Μνήμη προγραμματισμού (Σελίδα 1) 0004 Η 0005 Η 07FFH 0800 Η 0FFFH 1000 Η 1FFF Η ΙωαννΙδης Δημήτρης
τής-καταμετρητής Αντλιών Υγρών καυσίμιον 3.4 ΟΡΓΑΝΩΣΗ ΤΟΥ ΑΡΧΕΙΟΥ ΚΑΤΑΧΩΡΗΤΩΝ Το αρχείο καταχωρητών έχει προαναφερθεί και σαν μνήμη δεδομένων. Στον PIC16C74A είναι οργανωμένο σαν τήνακας 128 X 8bits. Μπορούμε να έχουμε πρόσβαση σε οποιοδήποτε καταχωρητή έμμεσα, χρησιμοποιώντας τον καταχωρητή επιλογής αρχείου (FSR File Select Register), ή άμεσα. Στον καταχωρητή κατάστασης (STATUS) υπάρχουν 2 bits επιλογής κάποιας «σελίδας» από τις τέσσερις που περιλαμβάνει το αρχείο. Ωστόσο η μνήμη δεδομένων εκτείνεται μόνο μέχρι τη διεύθυνση (7F)hex. Οι πρώτες 32 θέσεις χρησιμοποιούνται από τους καταχωρητές ειδικών λειτουργιών. Οι θέσεις (20)hex ως (7F)hex είναι καταχωρητές γενικής χρήσης που χρησιμοποιούνται σαν στατική μνήμη τυχαίας προσπέλασης (Static RAM). Μερικοί καταχωρητές ειδικών λειτουργιών είναι χαρτογραφημένοι στη σελίδα ένα. Όταν βρισκόμαστε στην σελίδα 1 κάποια προσπάθεια πρόσβασης στις θέσεις (AO)hex - (FF)hex θα προσπελάσει την μνήμη της σελίδας 0. Πίνακας 2. Διεύθυνση Καταγωρητών Σελίδα 0 Σελίδα 1 Διεύθυνση Καταγωρητών 00 INDF INDF 80 01 TMR0 OPTION 81 02 PCL PCL 82 03 STATUS STATUS 83 04 FSR FSR 84 05 PORTA TRISA 85 06 PORTB TRISB 86 07 PORTC TRISC 87 08 PORTD TRISD 88 09 PORTE TRISE 89 ΟΑ PC LATH PCLATH 8A ΟΒ INTCON INTCON 8B 0C PIRl PIEl 8C 0D PIR2 PIE2 8D ΟΕ TMRIL PCON 8E OF TMRIH 8F 10 TICON 90 11 TMR2 91 12 T2CON PIR2 92 13 SSPBUF SSPADD 93 14 SSPCON SSPSTAT 94 15 CCPRIL 95 Ιωαννίδης Δημήτρης
ΕλΕγκτής-Καταμττρητής Αντλιών Υγρών καυσίμων Καταχωρητές Γενικής Χρήσης Καταχωρητές Γ ενικής Χρήσης 3.5 ΕΜΜΕΣΗ ΔΙΕΥΘΥΝΣΙΟΔΟΤΗΣΗ ΚΑΤΑΧΩΡΗΤΕΣ INDF, FSR Ο καταχωρητής INDF δεν είναι ένας φυσικός καταχωρητής. Η συνεργασία αυτού με τον καταχωρητή FSR μπορούν να μας προσφέρουν έμμεση διευθυνσιοδότηση. Πιο συγκεκριμένα ο καταχωρητής FSR λειτουργεί ως «δείκτης» ο οποίος προσδιορίζει την διεύθυνση του καταχωρητή INDF. Έτσι π.χ. με το παράδειγμα που δίνετε παρακάτω με την χρήση των δύο καταχωρητών καθαρίζουμε όλες τις θέσεις της μνήμης στις διευθύνσεις 20h- 2Fh. MOVLW 20Η MOVWF FSR ; Φόρτωμα του δείκτη με τη διεύθυνση 20 Η NEXT CLRF INDF ; Καθάρισμα του INDF INCF FSR ; Αύξηση κατά 1του δείκτη FSR BTFSS FSR,4 GOTO NEXT CONTINUE ; Έλεγχος του FSR ; Αν είναι 1το bit 4 πάνε στο NEXT ; Αλλιώς συνέχισε Ιωαννίδης Δημήτρης
Ρ/χγντής-ΚαταμΕτρητής Αντλιών Υγρών καυσίμοιν Σχήμα 4. Άμεση και Έμμεση Διευθυνσιοδότηση. 3.6 Ο ΚΑΤΑΧΩΡΗΤΗΣ STATUS Ο καταχωρητής αυτός περιέχει την αριθμητική κατάσταση της ALU, την κατάσταση του RESET και τα ψηφία προεπιλογής της σελίδας της μνήμης δεδομένων. Παρακάτω αναλύονται ένα προς ένα τα bits του καταχωρητή. R/W R/W RAV R R R R/W R/W IRP RP1 RPO ΤΟ PD Ζ DC C C: Ψηφίο κρατουμένου πρόσθεσης/ αφαίρεσης. Carry / Borrow bit Για τις εντολές ADDWF, SUBWF, ADDLW και SUBLW αυτό το bit γίνεται «1» όταν υπάρχει κρατούμενο μεταφοράς από το περισσότερο σημαντικό ψηφίο του αποτελέσματος της πράξης.η αφαίρεση εκτελείται προσθέτοντας το συμπλήρωμα ως προς 2 του δεύτερου τελεστή στον πρώτο. Στις εντολές περιστροφής RRF, RLF αυτό το bit φορτώνεται με την τιμή του περισσότερου ή λιγότερο σημαντικού ψηφίου του Ιωαννίδης Δημήτρης
ΕΧεγκτής-ΚαταμΕτρητής Αντλιών Υγρών καυσίμων καταχωρητή που αποτελεί την ττηγή της εκάστοτε λογικής πράξης. Το bit γίνεται «0» όταν δεν υπάρχα κρατούμενο μεταφοράς από το περισσότερο σημαντικό ψηφίο του αποτελέσματος της πράξης. DC: Κρατούμενο μισής πρόσθεσης / αφαίρεσης Digit Carry / Borrow bit Στις εντολές ADDWF, SUBWF, ADDLW και SUBLW αυτό το bit γίνεται «1» όταν υπάρχει κρατούμενο από τέταρτο χαμηλότερης σημασίας ψηφίο του αποτελέσματος. Ζ: Ψηφίο μηδενισμού. Zero bit Γίνεται «1» όταν το αποτέλεσμα μιας αριθμητικής ή λογικής πράξης είναι μηδέν. PD: Ψηφίο - δείκτης χαμηλής ισχύος. Power Down bit Τοποθετείται σε «1» με την αρχή τροφοδότησης καθώς και από την εντολή CLRWDT. Γίνεται «0» από την εντολή SLEEP. ΤΟ: Ψηφίο τέλος χρόνου. Time - Out bit Γίνεται «1» στην αρχή τροφοδότησης του ολοκληρωμένου ή από τις εντολές CLRWDT και SLEEP. Επανατοποθετείται στο «0» με το τέλος του κύκλου του χρονιστή επιτήρησης (watchdog timer). RPO. RPl: Ψηφία Επιλογής για άμεση διευθυνσιοδότηση Register Page select bits direct addressing. 00 Σελίδα 0 (OOhex - 7F hex) 01 Σελίδα 1 (80hex - FF hex) 10 Σελίδα 2 (1 OOhex-17F hex) 11 Σελίδα 3 (180hex-lFF hex) Κάθε σελίδα είναι 128 bytes. Μόνο το RPO χρησιμοποιείται στην ουσία. Το RP1 μπορεί να χρησιμοποιηθεί σαν ψηφίο μνήμης. 1(οανν(δης Δημήτρης
ΐ;/χγκτής-ΚαταμΕτρητής Αντλιών Υγρών καυσίμοιν 20 IRP: Ψηφίο επιλογής σελίδας καταχωριτών για έμμεση διευθυνσιοδότηση Register Page select bits indirect addressing IRP 0 Σελίδα 0,1 (00 hex - FF hex) 1 Σελίδα 2,3 (100 hex -1 FF hex) 3.7 O ΚΑΤΑΧΩΡΗΤΗΣ OPTION O καταχωρητής OPTION είναι ένας αναγνώσιμος και εγγράψιμος καταχωρητής όπου περιέχει διάφορα bits ελέγχου. Παρακάτω εξηγούνται ένα προς ένα κάθε bit του καταχωρητή. R/W R/W R/W R/W R/W RAV R/W R/W RBPU INTEDG TOCS TOSE PSA PS2 PSl PSO PS2 - PS0: Τα τρία αυτά bits ορίζουν σύμφωνα με ποια διαίρεση χρόνου θα συνδεθεί ο προδιαιρέτης (prescaler) Με τον TMR0 ή Με τον WDT. Τ ι μ ή τ ο υ p r e s c a l e r 0 Λ ό γ ο ς τ ο υ T M R O 0 Λ ό γ ο ς τ ο υ W D T P S 2 P S l P SO 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1 :1 6 1:8 1 0 0 1 :3 2 1 :1 6 1 0 1 1 :6 4 1:3 2 1 1 0 1 :1 2 8 1 :6 4 1 1 1 1 :2 5 6 1 :1 2 8 PSA: Ψηφίο ελέγχου αποστολής του Prescaler I = Ο prescaler συνδέεται με τον WDT 0 = 0 prescaler συνδέεται με τον TMR0 TOSE: Πλευρική διέγερση του TMR0 1 = High to Low 0 = Low to High ΙακιννΙδης Δημήτρης
ΐ:> γκτής-καταμπρητής Αντλιών Υγρών καυσίμων TOCS: Πηγή χρονισμού του TMR0 1 = Εξωτερικός χρονισμός από το RA4/TOCKI 0 = Εσωτερικός χρονισμός INTEDG: Ψηφίο επιλογής πλευρικής διακοττής από το RB0 1 = Low to High 0 = High to Low RBPU: Ενεργοποίηση των αντιστάσεων pull up της PORTB 1 = Απενεργοποίηση των αντιστάσεων 0 = Ενεργοποίηση των αντιστάσεων Οι αντιστάσεις pull up χρησιμοποιούνται για να αυξήσουνε το ρεύμα στην PORTB (Imax = 25ma) 3.8 Ο ΚΑΤΑΧΩΡΗΤΗΣ INTCON Ο INTCON είναι ένας αναγνώσιμος και εγγράψιμος καταχωρητής που περιέχει διάφορα bits ως σημαίες και ενεργοποιήσεις. Παρακάτω εξηγούνται ένα προς ένα τα bits. ΤΟΙΕ ΙΝΤΕ RBIE TOIF INTF RB1F RBIF: Σημαία διακοπής από την πόρτα Β 1 = Τουλάχιστον ένα από τα RB4-RB7 έχει αλλάξει κατάσταση. Το «καθαρίζουμε» στο λογισμικό. 0 = Καμία αλλαγή κατάστασης δεν έχει γίνει στα RB4-RB7. INTF: Σημαία εξωτερικής διακοπής. 1= Έχουμε σήμα εξωτερικής διακοπής (RB0/INT). Καθαρίζει με το λογισμικό. θ = Κανένα σήμα εξωτερικής διακοπής. TOIF: Σημαία διακοπής από υπερχείλιση του TMR0 1 = Υπερχείλιση του TMR0. Καθαρίζει στο λογισμικό. 0 = 0 TMR0 δεν έχει υπερχειλίσει. Ιωαννίδης Δημήτρης
Ι;>χγκτής-Καταμ τρητής Αντλιών Υγρών Kouoipojv RBIE: Ενεργοποίηση διακοπής από RB4-RB7 1 = Ενεργοποίηση διακοπής 0 = Απενεργοποίηση διακοπής ΙΝΤΕ: Ενεργοποίηση διακοπής RB0/INT. 1= Ενεργοποίηση διακοττής. 0 = Απενεργοποίηση διακοττής ΤΟΙΕ: Ενεργοποίηση διακοπής από τον TMR0 1= Ενεργοποίηση διακοπής. 0 = Απενεργοποίηση διακοπής ΡΕΙΕ: Ενεργοποίηση περιφερειακών διακοπών 1 = Ενεργοποίηση διακοττής. 0 = Απενεργοποίηση διακοπής GIE: Γενική ενεργοποίηση διακοπών 1 = Ενεργοποίηση διακοπών. 0 = Απενεργοποίηση διακοπών 3.9 ΑΡΙΘΜΗΤΙΚΗ ΛΟΓΙΚΗ ΜΟΝΑΔΑ (ALU) Ο μικροελεγκτής PIC16C74, διαθέτει μια αριθμητική μονάδα μήκους 8-bit. Είναι ικανή να εκτελεσει τόσο αριθμητικές όσο και λογικές λειτουργίες. Στις αριθμητικές λειτουργίες, περιλαμβάνονται πράξεις πρόσθεσης, αφαίρεσης, ολίσθησης ενώ στις λογικές λειτουργίες περιλαμβάνονται πράξεις λογικού OR, λογικού AND καθώς και λογικού XOR. Πρέπει να σημειωθεί ότι, οι αριθμητικές πράξεις εκτελούνται με συμπλήρωμα του 2. Σε εντολές που περιλαμβάνουν δυο τελεστές, ο ένας από τους δυο τυπικά είναι ο καταχωρητής W. ενώ ο άλλος μπορεί να είναι κάποιος άλλος καταχωρητής ή μια σταθερά. Αντίστοιχα σε εντολές που περιλαμβάνουν ένα τελεστή, αυτός ο τελεστής είναι ο W ή κάποιο καταχωρητής. Ανάλογα από την εντολή που εκτελείται, η ALU μπορεί να επηρεάσει την αξία των ψηφίων Carry ( C), Zero (Ζ ), Digital Carry (DC) του καταχωρητή STATUS. Ιωαννίδης Δημήτρης
ί:γκτής-καταμ τρητής Αντλιών Υγρών καυσίμων 3.10 Ο ΚΑΤΑΧΩΡΗΤΗΣ W Ο καταχωρητής W (working register), καταχωρητής εργασίας, είναι ένας 8-bit καταχωρητής με τον οποίο συνεργάζεται η ALU. Λαμβάνει μέρος σε όλες τις λειτουργίες με τις οποίες σχετίζεται η ALL). Είναι μη διευθυνσιοδοτήσιμος καταχωρητής. 3.11 ΤΑ ΕΣΩΤΕΡΙΚΑ ΠΕΡΙΦΕΡΕΙΑΚΑ ΤΟΥ PIC16C74 Ο μικροελεγκτής PIC16C74 έχει 33 ακροδέκτες Εισόδου / Εξόδου οργανωμένους σαν πέντε πόρτες εισόδου / εξόδου, την πόρτα A-PORTA - η οποία περιλαμβάνει 6 από τους 33 ακροδέκτες εισόδου / εξόδου, την πόρτα B-PORTB - η οποία έχει μήκος 8 ψηφία (8 bits), την πόρτα C- PORTC- η οποία έχει μήκος 8 ψηφίων, την πόρτα D-PORTD- η οποία έχει μήκος 8 ψηφίων και τέλος την πόρτα E-PORTE- η οποία έχει μήκος 3 ψηφίων. Επίσης έχει έναν 8-ψήφιο RTCC χρονιστή-απαριθμητή με έναν 8- ψήφιο προγραμματιζόμενο προδιαιρέτη, καθώς και ένα τμήμα μετατροπέα αναλογικής τάσης σε ψηφιακή λέξη (A/D converter). Ο αναλογικός ψηφιακός μετατροπέας έχει μέχρι οκτώ αναλογικές εισόδους, εσωτερική (τάση τροφοδοσίας) ή εξωτερική τάση αναφοράς και έναν τυπικό χρόνο μετατροπής στα 20μς. Ο συγκεκριμένος μικροελεγκτής, έχει την δυνατότητα παραγωγής σήματος εξόδου διαμορφωμένο κατά εύρος παλμού με μία διακριτικότητα 10 ψηφίων. Επίσης διαθέτει εσωτερικό τμήμα κατάλληλο για λειτουργία με τα δυο πρωτόκολλα σειριακής διασύνδεσης SCI και SSP. 3.12 ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ PORTA ΚΑΙ TRISA Η πόρτα A όπως αναφέρθηκε είναι μια πόρτα μήκους 6 ψηφίων με ακροδέκτες τα RA0 - RA5. Οι ακροδέκτες RA0 εώς RA3 είναι κοινές γραμμές διπλής κατευθύνσεως, ο ακροδέκτης RA4 είναι έξοδος ανοιχτού συλλέκτη και ο ακροδέκτης RA5 μπορεί να χρησιμοποιηθεί και ως είσοδος επιλογής συσκευής slave για το πρωτόκολλο SSP. Η πόρτα A αποτελεί τον καταχωρητή με δεκαεξαδική διεύθυνση θ5εοχ στην πρώτη σελίδα (σελίδα 0) του αρχείου καταχωρητών. Ο αντίστοιχος για την πόρτα αυτή καταχωρητής ελέγχου της κατεύθυνσης των δεδομένων, που καθορίζει ποιος από τους ακροδέκτες θα είναι είσοδος ή έξοδος, είναι ο TRISA καταχωρητής που βρίσκεται στην δεκαεξαδική διεύθυνση 85hex και είναι χαρτογραφημένος στην δεύτερη Ιιοαννίδης Δημήτρης
Ελεγκτής-Καταμετρητής Αντλιών Υγρών καυσιμίον ^ σελίδα (σελίδα 1) του αρχείου καταχωρητών. Ο καταχωρητής TRISA έχει και αυτός μήκος 6 ψηφίων. Οι τέσσερις ακροδέκτες RA0-RA3 είναι πολυπλεγμένοι με τα αναλογικά κανάλια εισόδου ΑΙΝ0-ΑΙΝ3 αντίστοιχα. Ο ακροδέκτης RA3 είναι επιπλέον πολυπλεγμένος με την εξωτερική τάση αναφοράς Vref που χρειάζεται για την μετατροπή αναλογικού σε ψηφιακό. Δύο ψηφία του καταχωρητή ελέγχου ADCON1 χρησιμοποιούνται για να ορίσουν την συμπεριφορά των ακροδεκτών αυτών σαν αναλογική ή ψηφιακή. Ο καταχωρητής TRISA ελέγχει την κατεύ&υνση των ακροδεκτών ακόμη και όταν αυτοί χρησιμοποιούνται ως αναλογικές είσοδοι, όπου όπως είναι αυτονόητο θα πρέπει να έχουν προγραμματιστεί ως είσοδοι. Ο ακροδέκτης RA4 θα πρέπει να είναι συνδεδεμένος είτε προς την τροφοδοσία (V dd) είτε προς την γείωση, ούτως ώστε να προσφέρει αρκετό ρεύμα το οποίο θα καταναλώνεται από την αιωρούμενη είσοδο του Shmitt Trigger απομονωτή. Σχήμα 4. Block διάγραμμα των ακροδεκτών RA0-RA3, RA5 ΙωαννΙδης Δημήτρης
Ι /χγκγτής-καταμπρητής Αντλιών Υγρών καυσίμων Σχήμα 5. Block διάγραμμα του ακροδέκτη RA4 Πίνακας 3: Καταχωρητές που σχετίζονται με την πόρτα A Όνομα Λειτουργία Διεύθυνση Τιμή στην αρχή τροφοδοσίας PORTA Ακροδέκτες πόρτας (R/W) 05h ΧΧΧΧΧ TRISA Καταχωρητής διεύθυνσης μεταφοράς 85h 1 1111 δεδομένων 0= έξοδος 1= είσοδος ADCONl Καταχωρητής ελέγχου αναλογικο- Ψηφιακής μετατροπής. 9Fh...00 3.13 ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ PORTB ΚΑΙ TR1SB Η πόρτα Β είναι μια διπλής κατευθύνσεως πόρτα με μήκος 8 ψηφίων και διεύθυνση στο αρχείο καταχωρητών 06hex. Ο αντίστοιχος καταχωρητής ελέγχου της κατεύθυνσης των δεδομένων για την πόρτα Β βρίσκεται στην διεύθυνση 86hex, και ονομάζεται TRISB. Η υψηλή λογική στάθμη 1 σε κάποιο ψηφίο αυτού του καταχωρητή, ορίζει τον αντιστοιχώ ακροδέκτη της πόρτας σαν είσοδο. Διαβάζοντας τον καταχωρητή PORTB, διαβάζουμε την κατάσταση των ακροδεκτών αυτής της πόρτας, ενώ γράφοντας σε αυτόν γράφουμε στα latch της πόρτας. Ιωαννίδης Δημήτρης
Ι >. γκτής-καταμετρητής Αντλιών Υγρών καυσίμων Σχήμα 6 Block διάγραμμα των ακροδεκτών RB0-RB3 Καθένας από του ακροδέκτες της πόρτας Β έχει μια εσωτερική pull-up αντίσταση (με τυπικό ρεύμα 250μΑ). Αυτή η αντίσταση τίθεται αυτόματα εκτός όταν ο αντίστοιχος ακροδέκτης της πόρτας ορίζεται ως έξοδος. Ετηπλέον το bit 7 του καταχωρητή OPTION μπορεί να θέσει εκτός λειτουργίας όλες τις pull-up αντιστάσεις αν του δώσουμε λογικό 1. Ακόμη απενεργοποίηση αυτών των pull-up αντιστάσεων έχουμε όταν υπάρχει επανατοποθέτηση λόγω αρχής της τροφοδότησης με τάση, (Power on Reset). Η πόρτα αυτή έχει ως χαρακτηριστικό ότι παράγει μια διακοπή όταν αλλάξει η κατάσταση ενός από τους τέσσερις ακροδέκτες RB4- RB7. Όταν ορίζεται ως είσοδος κάποιος από αυτούς τους ακροδέκτες, το σήμα εισόδου σε αυτόν δειγματοληπτείται και αποθηκεύεται σε κάθε πρώτο παλμό ρολογιού του κύκλου μηχανής. Η νέα είσοδος συγκρίνεται με την προηγούμενη αποθηκευμένη τιμή σε κάθε κύκλο μηχανής. Εάν υπάρχει διαφορά στην τιμή που υπάρχει στον ακροδέκτη και σε αυτή που είναι αποθηκευμένη τότε, παράγει μια υψηλή λογική στάθμη. Οι διαφορές αυτές από κάθε έναν από τους τέσσερις ακροδέκτες RB4-RB7 προσθέτονται λογικά (πράξη OR) όλες μαζί και παράγουν την σημαία διακοπής RBIF (RB Interrupt Flag) που αποθηκεύεται στο ψηφίο bit<0> του καταχωρητή INTCON (interrupt control). Κάθε ακροδέκτης που ορίζεται ω έξοδος αποκλείεται από αυτή την σύγκριση. Αυτό το είδος διακοπής είναι ικανό να «ξυπλησευ> τον μικροελεγκτή από την κατάσταση «ύπνου» (SLEEP MODE). Στην ρουτίνα εξυπηρέτησης των διακοπών, μπορούμε να καθαρίσουμε την διακοπή με έναν από τους δύο ακόλουθους τρόπους. Ιοοαννίδης Δημήτρης
ΕλΕγκτής-Καταμετρητής Αντλιών Υγρών καυσίμίΰν Με απενεργοποίηση των διακοπών δίνοντας λογικό 0 στο RBIF του καταχωρητή INTCON Διαβάζοντας την πόρτα Β. αυτή η ενέργεια τερματίζει την κατάσταση διαφοράς και έπειτα μπορούμε να καθαρίσουμε τη σημαία διακοπής RBIF του καταχωρητή INTCON. Σχήμα 7 Block διάγραμμα των ακροδεκτών RB4-RB7 Πίνακας 4 Καταχωρητές που σχετίζονται με την πόρτα Β Όνομα Λειτουργία Διεύθυνση Τιμή κατά την εκκίνηση PORTB Ακροδέκτες πόρτας (R/W) 06h χ χ χ χ χ χ χ χ TRISB Καταχωρητής διεύθυνσης μεταφοράς 86h 11111111 δεδομένων 0 = έξοδος 1 = είσοδος OPTION Έλεγχος on/off των εσωτερικών pull up αντιστάσεων από το bil7 (RBPU) 81h 1111 1111 Ιιοαννίδης Δημήτρης
Ι./χγκτής-Καταμετρητής Αντλιών Yyptiw καυσίμου 3.14 ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ PORTC ΚΑΙ TR1SC Η πόρτα C είναι μια αμφίδρομη πόρτα η οποία διαθέτει 8 ακροδέκτες RC0-RC7. Κάθε ακροδέκτης μπορεί να ρυθμιστεί ως είσοδος ή έξοδος από τον καταχωρητη TRISC. Η πόρτα C είναι πολυπλεγμένοι για διάφορες περιφερειακές λειτουργίες. Σχήμα 8 Block διάγραμμα της πόρτας C Πίνακας 5 Καταχωρητές που σχετίζονται με την πόρτα C Όνομα Λειτουργία Διεύθυνση Τιμή κατά Την εκκίνηση PORTC Ακροδέκτες πόρτας (R/W) 07h χ χ χ χ χ χ χ χ TRISC Καταχωρητής διεύθυνσης μεταφοράς Δεδομένων 0 = έξοδος 1 = είσοδος 87h 11111111 3.15 ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ PORTD ΚΑΙ TRISD Η πόρτα D, είναι μια πόρτα που διαθέτει 8 ακροδέκτες. Χαρακτηρίζεται από εισόδους που είναι σε συνδεσμολογία Shmitt Trigger. Η λειτουργία κάθε ακροδέκτη της πόρτας παρουσιάζει τα ίδια χαρακτηριστικά που παρουσιάζουν και οι άλλες πόρτες του μικροελεγκτή. Δηλαδή κάθε ακροδέκτης μπορεί να λειτουργήσει είτε ως είσοδος είτε ως έξοδος. Ι(οανν(δης Δημήτρης
Ελ^γκτής-Καταμπρητής Αντλιών Υγρών καυσίμοιν Μ Η πόρτα αυτή παρουσιάζει ακόμα ένα χαρακτηριστικό λειτουργίας. Έχει την δυνατότητα να λειτουργήσει και ως μια παράλληλη πόρτα, από την οποία βγαίνουν δεδομένα μήκους 8 bits. Το μόνο που χρειάζεται για αυτόν τον τρόπο λειτουργίας, είναι να γίνει 1 το bit PSPMODE του καταχωρητή TRISE. Σχήμα 9 Block διάγραμμα της πόρτας D Πίνακας 6 Καταχωρητές που σχετίζονται με την πόρτα D Όνομα Λειτουργία Διεύθυνση Τιμή κατά την εκκίνηση PORTD Ακροδέκτες πόρτας (R JW ) 08h ΧΧΧΧΧΧΧΧ TR1SD Καταχωρητής διεύθυνσης μεταφοράς δεδομένων 88h 1111 1111 0 = έξοδος 1 = είσοδος Ι(οσννίδης Δημήτρης
3.16 ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ PORTE ΚΑΙ TRISE Η πόρτα Ε που διαθέτει ο μικροεπεξεργαστής έχει τρεις ακροδέκτες RE0-RE2, οι οποίοι μπορούν να οριστούν τόσο ως είσοδοι όσο και ως έξοδοι, Η πόρτα Ε χαρακτηρίζεται από εισόδους που είναι σε συνδεσμολογία Schmitt Trigger. Η πόρτα Ε θέτει ως εισόδους τους ακροδέκτες της από το PSPMODE, bit4 και τα bit2-0 του TRISE και αν ο ADCON1 έχει οριστεί στην ψηφιακή λειτουργία. Οι ακροδέκτες της πόρτα Ε είναι πολυπλεγμένοι και με αναλογικές εισόδους οι οποίες ελέγχονται από τον ADCON1. Ο καταχωρητής TRISE ρυθμίζει την κατεύθυνση των ακροδεκτών I/O καθώς και την λειτουργία παράλληλης πόρτας. Σχήμα 10 Block διάγραμμα της πόρτας Ε 3.17 Ο TMR0 ΚΑΙ ΟΙ ΕΦΑΡΜΟΓΕΣ ΤΟΥ Ο TMR0 που είναι γνωστός ως RTCC είναι ένας απλός μετρητής υπερχείλισης των 8 bit. Το σύστημα χρονισμού μπορεί να είναι τόσο εσωτερικό όσο και εξωτερικό. Οταν η πηγή χρονισμού είναι εξωτερική, έχουμε το δικαίωμα να επιλέξουμε την διέγερση του TMR0 και στις δύο πλευρές του εξωτερικού σήματος. Ο TMR0 έχει ακόμη και έναν προγραμματιζόμενο προδιαιρέτη (prescaler), ο οποίος μπορεί να οριστεί τόσο με τον TMR0 όσο και με τον WatchDog Timer. To PSA, bits του καταχωρητή OPTION ορίζει τον
Ελ γκτής-καταμετρητής Αντλιών Υγρών καυσίμων προδιαιρέτη και τα PS0-PS2, bits<0-2> του καταχωρητή OPTION καθορίζουν την τιμή του προδιαιρέτη. Ένα άλλο σημαντικό χαρακτηριστικό του TMR0 είναι η διακοπή που προκαλεί όταν κάνει υπερχείλιση από FFh σε OOh. Όπως έχει αναφερθεί παραπάνω στην περιγραφή του καταχωρητή OPTION, η διακοπή από υπερχείλιση επιλέγεται αν δώσουμε λογικό 0 στο TOCS του OPTION. Αυτή η διακοττή θέτει το TOIF, bit2 του OPTION. Η σημαία αυτή πρέπει να καθαρίζεται στην ρουτίνα service και έπειτα να ενεργοποιείται και πάλι η διακοπή. Η διακοπή του TMR0 δεν μπορεί να επαναφέρει τον μικροεπεξεργαστή από την κατάσταση SLEEP γιατί είναι απενεργοποιημένη κατά την διάρκεια αυτής της λειτουργίας. Σχήμα 11. Block διάγραμμα του TMR0 Ι 3 RA4n-0CKI rose Fosc/4-------- 0 V TOCS PS2.PS1.PS0 f ^ 1 " l --------------1 syncwtm f t * o PSout / (2 cycle delay) I Note 1: TOCS, TOSE, PSA, PS2:PS0 (OPTION<5:0>). 2; The prescaler is shared with Watchdog Timer (refer to Figure 7-6 for detailed block diagram). PSA Set Interrupt flag bit TOIF on overflow Ο προδιαίρέτης (prescaler) είναι ένας μετρητής των 8 bit, είναι μοναδικός, και είναι πολυπλεγμένος τόσο με τον TMR0 όσο και με τον WDT. Όταν λοιπόν ορίζεται ο προδιαίρέτης με τον TMR0 ΤΟΤΕ δεν υπάρχει προδιαίρέτης για τον WDT. Το PSA, bits του καταχωρητή OPTION ορίζει τον προδιαιρέτη και τα PS0-PS2, bits<0-2> του καταχωρητή OPTION καθορίζουν την τιμή του προδιαιρέτη. ΙωαννΙδης Δημήτρης
ΕλΕγκτής-Καταμ τρηγής Αντλιών Υγρών καυσίμων Σχήμα 12, Block διάγραμμα του TMR0 με τον Prescaler 4. ΠΡΩΤΟΚΟΛΛΑ ΣΕΙΡΙΑΚΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ Ο μικροεπεξεργαστής PIC16C74 διαθέτει δύο πρωτόκολλα σειριακής επικοινωνίας. Το πρωτόκολλο σύγχρονης σειριακής μετάδοσης SSP (Synchronous Serial Port), και το πρωτόκολλο ασύγχρονης σειριακής ετηκοινωνίας USART (Universal Synchronous Asynchronous Receiver Transmitter) ή SCI (Serial Communication Interface) 4.1 TO ΠΡΩΤΟΚΟΛΛΟ ΣΥΓΧΡΟΝΗΣ ΣΕΙΡΙΑΚΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ To πρωτόκολλο σύγχρονης σειριακής επικοινωνίας SSP, χρησιμοποιείται για επικοινωνία με άλλες περιφερειακές συσκευές ή άλλου τύπου μικροεπεξεργαστές. Σαν περιφερειακές συσκευές μπορούν να χρησιμοποιηθούν σειριακές EEPROM, μετατροπείς A/D ή D/A και άλλα. Το πρωτόκολλο SSP μπορεί να λειτουργήσει με δύο διαφορετικούς τρόπους. Σειριακή διασύνδεση με περιφερειακά (SPI). Η επικοινωνία χρησιμοποιώντας τον τρόπο αυτό, επιτρέπει δεδομένα μήκους 8-bit να ΙακιννΙδης Δημήτρης
Βλεγκτής-Καταμετρητής Αντλιών Υγρών καυσίμων 33 μεταδοθούν σύγχρονα και να ληφθούν ταυτόχρονα. Αυτού του είδους η σειριακή μετάδοση δεδομένων μπορεί να γίνει χρησιμοποιώντας τρεις ακροδέκτες από την PORTC. 1. Ακροδέκτης RC5/SDO. Αυτός ο ακροδέκτης λειτουργεί ως σειριακή έξοδος δεδομένων SDO (Serial Data Out). 2. Ακροδέκτης RC4/SDI. Αυτός ο ακροδέκτης λειτουργεί ως σειριακή είσοδος δεδομένων SDI (Serial Data Input). 3. Ακροδέκτης RC3/SCK. Αυτός ο ακροδέκτης λειτουργεί ως χρονισμός της σειριακής διασύνδεσης, SCK (Serial Clock). Σειριακή διασύνδεση με ίδια ολοκληρωμένα (I^2C). Η επικοινωνία χρησιμοποιώντας τον τύπο αυτό, στηρίζεται στην υλοποίηση μιας διασύνδεσης μεταξύ δύο επεξεργαστών ή ελεγκτών, μέσω μιας διπλής σειριακής γραμμής. Η σειριακή επικοινωνία επιτυγχάνεται χρησιμοποιώντας συνδεσμολογία master-slave. Δηλαδή όταν η συσκευή master «ετηθυμεί» να αρχίσει μια μεταφορά δεδομένων, πρώτα μεταδίδει την διεύθυνση της συσκευής slave στην οποία θέλει να μεταδώσει τα τρέχοντα δεδομένα. Όλες οι συσκευές slave, στην αρχή «προσπαθούν» να αναγνωρίσουν τη μεταδιδόμενη διεύθυνση, σε περίπτωση που αφορά κάποιες από αυτές. Η μεταδιδόμενη διεύθυνση, περιέχει κάποιο bit το οποίο προσδιορίζει αν η συσκευή master «επιθυμεώ να στείλει δεδομένα για εγγραφή προς τη συσκευή slave ή να διαβάσει δεδομένα από αυτήν. Οι συσκευές slave-master μπορούν να λειτουργήσουν με δύο διαφορετικούς τρόπους: 1. Εκπομπός ως master και δέκτης ως slave. 2. Εκπομπός ως slave και δέκτης ως master. Πρωτόκολλο διασύνδεσης σειριακής επικοινωνίας (SCI). Αυτό το πρωτόκολλο σειριακής μετάδοσης δεδομένων, αποτελεί ένα από τα δύο πρωτόκολλα σειριακής διασύνδεσης σε μορφή I/O (Αήψης - Μετάδοσης Δεδομένων). Αυτό το πρωτόκολλο μπορεί να λειτουργήσει με τους παρακάτω τρόπους: Ασύγχρονη (διπλού καναλιού σειριακής διασύνδεσης). Χρησιμοποιείται για επικοινωνία με περιφερειακές συσκευές όπως υπολογιστές. Σύγχρονη Master ή Σύγχρονη Slave (Μονού καναλιού σειριακής διασύνδεσης). Χρησιμοποιείται για επικοινωνία με περιφερειακές συσκευές όπως A/D ή D/A ολοκληρωμένα κυκλώματα, σειριακές EEPROM και άλλα. ΙωαννΙδης Δημήτρης
Ι./χγχ-πίς-Καταμ τρητής Αντλιών Υγρ(ί)ν καυσίμιον 34 4.2 ΠΡΩΤΟΚΟΛΛΟ ΛΣΥΓΧΡΟΝΗΣ ΣΕΙΡΙΛΚΗΣ ΕΠΙΚΟΙΝΩΝΙΛΣ Όπως ανέφερα και παραπάνω, η πραγματοποίηση σειριακής επικοινωνίας χρησιμοποιώντας αυτής της μορφής πρωτόκολλο, μπορεί να υλοποιήσει μεταφορά δεδομένων από το μικροελεγκτή PIC16C74A προς ένα υπολογιστή ή την λήψη δεδομένων από τον υπολογιστή. Το πρωτόκολλο SCI, σε ασύγχρονο τρόπο λειτουργίας χρησιμοποιεί μια βάση δεδομένων για σειριακή επικοινωνία η οποία χαρακτηρίζεται ως μη επιστροφή στο μηδέν (NRZ FORMAT). Τα δεδομένα που αποστέλλονται κάθε φορά σε σχέση με το παραπάνω format, μπορεί να είναι δυαδικές «λέξεις» μήκους 10 ή 11 bit. Αυτά τα δεδομένα ακολουθούν τη παρακάτω σύνθεση: 1 bit χρησιμοποιείται ως σήμα έναρξη της μετάδοσης των δεδομένων, 8 bit τα οποία αποτελούν την κυρίως πληροφορία, Ibit ως σήμα λήξης της μετάδοσης των δεδομένων ενώ μπορεί να χρησιμοποιηθεί ένα επιπλέον bit το οποίο αποτελεί την υπολογισμένη ισοτιμία της πληροφορίας μας. Ο πιο συνηθισμένος αριθμός των bit, από τα οποία απαρτίζεται η κυρίως πληροφορία μας, είναι 8 bit. Δηλαδή δεν χρησιμοποιείται το bit της ισοτιμίας. Απαραίτητο για την λειτουργία της σειριακής επικοινωνίας SCI χρησιμοποιώντας τον μικροελεγκτή PIC16C74A, είναι η χρήση της εσωτερικής γεννήτριας που διαθέτει ο μικροελεγκτής, η οποία εργάζεται ως διαιρέτης συχνότητας χρονισμού του συστήματος μας και έχει την δυνατότητα να παράγει τον απαραίτητο ρυθμό αποστολής των δεδομένων, γνωστός ως baud rate. To πρωτόκολλο SCI, μεταδίδει και λαμβάνει πρώτα το λιγότερης σημαντικής αξίας ψηφίο της ολικής πληροφορίας, που μεταδίδει ή λαμβάνει αντίστοιχα. Ο εκπομπός και ο δέκτης, είναι λειτουργικά δύο ανεξάρτητα μέρη του μικροελεγκτή, αλλά χρησιμοποιούν την ίδια λογική της σύνθεσης των δεδομένων καθώς και τον ίδιο ρυθμό μεταφοράς τον δεδομένων. Όσων αφορά το επιπλέον bit που χρησιμοποιείται ως ψηφίο ισοτιμίας, το τελευταίο δεν μπορεί να υποστηριχθεί από την κατασκευαστική πλευρά του μικροελεγκτή, αλλά μπορεί να πραγματοποιηθεί μέσω προγραμματισμού του μικροελεγκτή ως το ένατο ψηφίο της εκπεμπόμενης πληροφορίας. Η ασύγχρονη λειτουργία του πρωτοκόλλου SCI, επιλέγεται μηδενίζοντας το bit4 του καταχωρητή TXSTA, ο οποίος είναι ένας από τους καταχωρητές ειδικής λειτουργίας που διαθέτει ο PIC16C74A. Αυτός ο καταχωρητής σχετίζεται με την ασύγχρονη σειριακή μετάδοση δεδομένων, και πρόκειται για ένα καταχωρητή των 8 bit. ΙιοαννΙδης Δημήτρης
Ελ^γκτής-Καταμετρητής Ανιλιών Υγρών καυσίμων 35 Τα cyημαvτικότεpα μέρη από τα οποία αποτελείται η ασύγχρονη σειριακή επικοινωνία, είναι τα παρακάτω: Γεννήτρια ρυθμού μεταφοράς δεδομένων (baud rate) Κύκλωμα δειγματισμού Ασύγχρονος εκπομπός Ασύγχρονος δέκτης 4.3 ΓΕΝΝΗΤΡΙΑ ΡΥΘΜΟΥ ΜΕΤΑΦΟΡΑΣ ΔΕΔΟΜΕΝΩΝ Η γεννήτρια μεταφοράς δεδομένων (Baud Rate Generator), υποστηρίζει τόσο την ασύγχρονη όσο και την σύγχρονη λειτουργία του πρωτοκόλλου SCI. Πρόκειται για ενσωματωμένη γεννήτρια των 8- που διαθέτει ο μικροελεγκτής. Τον τρόπο λειτουργίας της εν λόγω γεννήτριας, μπορούμε να τον ελέγχουμε χρησιμοποιώντας έναν καταχωρητή ειδικής χρήσης που διαθέτει ο μικροελεγκτής PIC16C74A, με όνομα SPBRG. Δίνοντας σε αυτόν τον καταχωρητή κάποια τιμή, μπορούμε να ελέγχουμε την περίοδο λειτουργίας ενός χρονιστή των 8 bit. Στον ασύγχρονο τρόπο λειτουργίας, το ψηφίο BRGH του καταχωρητή TXSTA, ελέγχει επίσης τον ρυθμό μεταφοράς των δεδομένων. Αντίθετα στον σύγχρονο τρόπο λειτουργίας, η αξία αυτού του ψηφιού δεν λαμβάνεται καθόλου υπόψη. Το παράδειγμα 1, μας δίνει την μαθηματική λογική που πρέπει να ακολουθεί για τον υπολογισμό του ρυθμού μεταφοράς των δεδομένων για διαφορετικούς τρόπους λειτουργίας του πρωτοκόλλου SCI. Ο ρυθμός που υπολογίζουμε, είναι εφαρμόσιμος μόνο όταν ο μικροελεγκτής εργάζεται ως master (εσωτερικός χρονισμός). Σε περίπτωση που ο ρυθμός μεταφοράς δεδομένων είναι γνωστός καθώς και η συχνότητα του κυκλώματος χρονισμού του συστήματος μας, η τιμή με την οποία πρέπει να φορτωθεί ο καταχωρητής SPBRG, μπορεί να υπολογιστεί χρησιμοποιώντας την ίδια μαθηματική λογική του παραδείγματος. Από το συγκεκριμένο παράδειγμα μπορούμε να υπολογίσουμε το ποσοστό (%) του σφάλματος, για τον συγκεκριμένο ρυθμό μεταφοράς δεδομένων. Ιίοαννίδης Δημήτρης
Γζ-Εγκτής-Καταμετρητής Αντλιών Υγρ<ί)ν καυσίμων Παράδειγμα 1. Έστω ότι: Συχνότητα κρυστάλλου 16ΜΗζ Ρυθμός μεταφοράς δεδομένων = 9600 Baud Rate BRGH=0 SYNC = 0 Baud rate = Fcrystal (64x(X+l)) 9600 = 16MHz /(64x(X+l)) X= [25,042] = 25. Με αυτήν την τιμή του καταχωρητή SPBRG = 2 5 ο ρυθμός μεταφοράς δεδομένων είναι: Baud Rate = 16ΜΗζ/(64Χ(25+1)) = 9615 Σφάλμα = [Υπολογισμένος ρυθμός - Επιθυμητός ρυθμός] / Επιθυμητός ρυθμός Σφάλμα = [9615-9600] / 9600 = 0,16 % Πολλές φορές, θα ήταν προτιμότερο να χρησιμοποιήσουμε υψηλή ταχύτητα μεταφοράς δεδομένων, δηλαδή ίο ψηφίο BRGH του καταχωρητή TXSTA να είναι 1 ακόμα και για χαμηλές τιμές της γεννήτριας BRG. Με αυτόν τον τρόπο μπορούμε να μειώσουμε το σφάλμα στο ρυθμό μετάδοσης δεδομένων. Πίνακας 7 Baud Rates για σύγχρονη λειτουργία Ιοκιννίδης Δημήτρης
Ι,^χγιαής-Καταμπρητής Αντλιών Υγρ(όν καυσίμοιν Πίνακας 8 Baud Rates για ασύγχρονη λειτουργία (BRGH = 0) Πίνακας 9 Baud Rates για ασύγχρονη λειτουργία (BRGH = 1) 4.4 ΔΕΙΓΜΑΤΟΛΗΨΙΑ Η δειγματοληψία, αποτελεί ένα από τα αναγκαία στοιχεία για την αξιόπιστη λειτουργία ενός δέκτη μίας πληροφορίας, ο οποίος είναι μέρος της σειριακής επικοινωνίας με πρωτόκολλο SCI. Η πληροφορία λαμβάνεται σειριακά στον μικροελεκτή μέσο του ακροδέκτη RX. Κάθε ψηφίο της πληροφορίας, δειγματοληπτείται 3 Ιωαννίδης Δημήτρης
Ι >χγκτής-καταμ τρητής Αντλιών Υγρών καυσίμοίν 38 φορές από το εσωτερικό κύκλωμα πού διαθέτει ο μικροελεγκτής. Ο έλεγχος στο αν το ληφθέν ψηφίο είναι το σωστό, εξετάζεται από τον μικροελεκτή ανάλογα με την πλειοψηφία της υψηλής ή χαμηλής στάθμης πού υπάρχει στον ακροδέκτη RX. Η δειγματοληψία κάθε ψηφίου της λαμβανόμενης πληροφορίας, εξαρτάται και από την επιλογή της ταχύτητας του ρυθμού μετάδοσης της πληροφορίας. Δηλαδή αν το ψηφίο BRGH του καταχωρητή PXSTA έχει προγραμματιστεί ως 0 (χαμηλή ταχύτητα), τότε η δειγματοληψία γίνεται κατά τη διάρκεια του χαμηλού μετώπου των παλμών 7-8-9 ενός 16xclock, Στην αντίθετη περίπτωση όπου επιλέγεται υψηλή ταχύτητα μεταφοράς δεδομένων, τότε η δειγματοληψία γίνεται σε διαφορετικούς παλμούς ενός 4xclock. Σχήμα 13. Δειγματισμός ακροδέκτη RX (BRGH = 0) ludclk-----;-----------------------' '----------' '----- \ First falling edge after goes low RX pin \ / /Secorxj rising edge k4 dk_ jn _ jq 4nJ7L jnjnjnjnjn -jnjn _rn 1 2 3 4 1 2 3 4 1 2 34d.jirmnniiJuuuiiuiriiiniinrL^^ Ιωαννίδης Δημήτρης
τής-καταμετρητής Αντλιών Υγρών καυσίμων 4.5 Ο ΚΑΤΑΧΩΡΗΤΗΣ TXSTA R/W-0 R/W-0 R/W-0 ΚΛν-Ο υ -0 R/W-0 R-1 RAV-0 CSRC ΤΧ9 ΤΧΕΝ SYNC BRGH TRMT TX9D bit? BitO CSRC: Επιλογή πηγής χρονισμού Ασύγχρονη λειτουργία. Αδιάφορο Σύγχρονη λειτουργία 1 = Αειτουργία Master (χρονισμός εσωτερικά από την BRG) 0 = Αειτουργία Slave (χρονισμός εξωτερικά) ΤΧ9: Επιλογή εκπομπής 9 bits 1 = Επιλογή εκπομπής 9 bits 0 = Επιλογή εκπομπής 8 bits ΤΧΕΝ: Επίτρεψη εκπομπής 1= Επίτρεψη εκπομπής 0 = Μη επίτρεψη εκπομπής SYNC: Επιλογή λειτουργίας USART 1 = Σύγχρονη λειτουργία 0 = Ασύγχρονη λειτουργία U: Α χρησιμοποίητο Διαβάζεται ως 0 BRGH; Επιλογή επιπέδου ταχύτητας του Baud Rate Ασύγχρονη λειτουργία 1 = Υψηλή ταχύτητα 0 = Χαμηλή ταχύτητα Σύγχρονη λειτουργία Αδιάφορο Ιωαννίδης Δημήτρης
Ι :>χγκτής-καταμετρητής Αντλιών Υγρ<ί;ν καυσίμων TRMT: Σημαία ελέγχου της κατάστασης του καταχωρητή εκπομπής 1 = Ο TSR άδειος 0 = 0 TSR γεμάτος TX9D: Το 9 bit των δεδομένων εκπομπής. Μπορεί να είναι bit ισοτιμίας 4.6 ΑΣΥΓΧΡΟΝΟΣ ΕΚΠΟΜΠΟΣ ΠΡΩΤΟΚΟΛΛΟΥ SCI Το σχηματικό διάγραμμα του ασύγχρονου εκττομττού φαίνεται στο παρακάτω σχήμα. Την «καρδία» του εκττομπού αποτελεί ο καταχωρητής σειριακής μετάδοσης δεδομένων TSR. Τα δεδομένα που κάθε φορά πρόκειται να μεταδώσει του τα τροφοδοτεί ο καταχωρητής TXREG. Αυτά τα δεδομένα τα φορτώνουμε εμείς στον TXREG μέσω προγράμματος. Η «τροφοδοσία» του TSR με κάποια δεδομένα για εκπομπή δεν εκτελείται μέχρις ότου εκπεμφθεί το ψηφίο τέλους της προηγούμενης πληροφορίας. Σχήμα 15 Block διάγραμμα ασύγχρονου εκπομπού Η μεταφορά δεδομένων από τον TXREG στον TSR, η οποία ολοκληρώνεται σε ένα κύκλο μηχανής, έχει ως αποτέλεσμα να γίνει 1 το bit TXIF του καταχωρητή PIR1. Αυτή η διακοπή μπορεί να ενεργοποιηθεί από το ΤΧΙΕ με 1 του καταχωρητή ΡΙΕ1. Η σημαία TXIF θα γίνει αμέσως 1 και θα επιστρέφει και πάλι σε 0 μόνο όταν νέα δεδομένα φορτωθούν στον καταχωρητή TXREG. Ενώ η σημαία TXIF εξαρτάται από την κατάσταση του καταχωρητή TXREG, μια άλλη σημαία TRMT του καταχωρητή TXSTA δηλώνει την κατάσταση του Ιωαννίδης Δημήτρης
Ελίγκτής-Καταμετρητής A' _ d i ί TSR. Η σημαία TRMT είναι μόνο αναγνώσιμη και είναι 1 όταν ο TSR είναι άδειος. Η εκπομττή ενεργοποιείται όταν γίνει 1 το ΤΧΕΝ. Η πραγματική εκπομπή αρχίζει από τη στιγμή που ο καταχωρητής TXREG φορτώνεται με τα δεδομένα και η γεννήτρια ρυθμού μετάδοσης BRG, παράγει το απαιτούμενο clock. Η εκπομττή ακόμα μπορεί να γίνει και αφού πρώτα φορτώσουμε τον καταχωρητή TXREG και έπειτα ενεργοποιούμε το TXREG. Κανονικά όταν αρχίζει η εκπομπή ο καταχωρητής TSR είναι άδειος, και η μεταφορά του καταχωρητή TXREG γίνεται ακαριαία με αποτέλεσμα ο τελευταίος να αδειάσει. Μηδενίζοντας την ενεργοποίηση ΤΧΕΝ κατά τη διάρκεια μιας εκπομπής μπορούμε να προκαλέσουμε την διακοπή αυτής. Ως αποτέλεσμα ο ακροδέκτης RC6/TX/CK έρχεται σε κατάσταση υψηλής αντίστασης. Σχήμα 16. Ασύγχρονη εκπομπή Master Ιωαννίδης Δημήτρης
Ελεγκτής-ΚαταμτΓριρής Αντλιών Υγρών καυσίμοίν Τα βήματα που πρόκειται να ακολουθηθούν από πλευράς λογισμικού για αξιόπιστη λειτουργία σειριακής μετάδοσης δεδομένων είναι τα παρακάτω: 1. Δίνουμε στον καταχωρητή SPBRG την υπολογισμένη τιμή για τον επιθυμητό αριθμό μεταφοράς δεδομένων. Αν χρησιμοποιήσουμε υψηλή ταχύτητα μετάδοσης δεδομένων πρέπει να δώσουμε την τιμή 1 στο ψηφίο BRGH του καταχωρητή TXSTA. 2. Ενεργοποιούμε την σειριακή πόρτα του μικροελεγκτή, προγραμματίζοντας τα ψηφία SYNC του καταχωρητή TXSTA καθώς και το ψηφίο SPEN του καταχωρητή RCSTA. 3. Αν χρειαζόμαστε διακοπές ενεργοποιούμε με 1 το ΤΧΙΕ. 4. Αν το 9 ψηφίο της εκπομπής απαιτείται τότε δίνουμε 1 στο ΤΧ9. 5. Ενεργοποιούμε την εκπομπή δίνοντας 1 στο ΤΧΕΝ το οποίο με τη σειρά του θέτει το ΤΧΙΡ 6. Αν το 9 ψηφίο επιλεγεί, για να εκπεμφθεί φορτώνεται στο TX9D. 7. Για να αρχίσει η εκπομπή φορτώνουμε τα δεδομένα που θα εκπεμφθούν στον καταχωρητή TXREG. 4.7 Ο ΚΑΤΑΧΩΡΗΤΗΣ RCSTA RAV-0 RAV-O RAV-0 RAV-0 U-0 R-0 R-0 R-X SPEN RX9 SREN CREN FERR OERR RX9D Bit? BitO SPEN: Ενεργοποίηση σειριακή πόρτας 1 = Ενεργοποίηση σειριακής πόρτας 0 = Απενεργοποίηση σειριακής πόρτας RX9: Ενεργοποίηση Λήψης 9 * bit 1 = Επιλογή λήψης πληροφορίας των 9 bits 0 = Επιλογή λήψης πληροφορίας των 8 bits Ιωαννίδης Δημήτρης
Ε>.εγιπής-Κ(παμετρητής Αντλιών Υγρών καυσίμοιν SREN: Ενεργοποίηση Απλής Λήψης Ασύγχρονη λειτουργία Αδιάφορο Σύγχρονη λειτουργία - master 1 = Ενεργοποίηση απλής λήψης 0 = Απενεργοποίηση απλής λήψης Σύνχρονη λειτουργία - slave Αχρησιμοποίητο σε αυτή τη λειτουργία CREN: Ενεργοποίηση συνεχόμενης Λήψης Ασύγχρονη λειτουργία 1 = Ενεργοποίηση συνεχόμενης λήψης 0 = Απενεργοποίηση συνεχόμενης λήψης Σύγχρονη λειτουργία 1 = Ενεργοποίηση συνεχόμενης λήψης 0 = Απενεργοποίηση συνεχόμενης λήψης U: Αχρησιμοποίητο Διαβάζεται ως 0 FERR: Ψηφίο Λειτουργικού λάθους 1 =Έχει γίνει λάθος 0 = Δεν έχει γίνει λάθος OERR: Ψηφίο Λάθους υπερχείλισης 1 = Δάθος λόγω υπερχείλισης 0 = Κανένα λάθος λόγω υπερχείλισης RX9D: 9 bit της πληροφορίας Λήψης. Μπορεί να είναι bit ισοτιμίας ΙωσννΙδης Δημήτρης