ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Βοηθητικό Σύστημα Παρκαρίσματος Αυτοκινήτου» Κοτίτσα Κωνσταντία ΕΠΙΒΛΕΠΩΝ Καθηγητής
ΕΥΧΑΡΙΣΤΙΕΣ θα θέλαμε να ευχαριστήσουμε θερμά τον επιβλέποντα καθηγητή μας, Δρ. Δημήτρη Πογαρίδη για την καθοδήγηση, την υποστήριξη και την πολύτιμη βοήθεια του. Επίσης θα θέλαμε να ευχαριστήσουμε τον κ. Τσαγκαλίδη Ηλία του οποίου η συμβολή ήταν καθοριστική για την ολοκλήρωση της εργασίας μας. Τέλος ένα μεγάλο ευχαριστώ οφείλουμε στις οικογένειές μας, για την στήριξη και την κατανόηση της προσπάθειάς μας να πραγματοποιήσουμε το στόχο μας.. 2
Σχήμα 1 Το βοηθητικό σύστημα παρκαρίσματος τοποθετημένο σε τηλεκατευθυνόμενο όχημα. 3
ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ 1.1 Περίληψη αντικειμένου της εργασίας 6 ΚΕΦΑΛΑΙΟ 2. Ο ΜΙΚΡΟΕΛΕΓΚΤΗΣ AVR ATMEGA8515 2.1 Γενική περιγραφή του ATmega8515 7 2.2 Χαρακτηριστικά του ATmega8515 7 2.3 Περιγραφή ακίδων 10 2.4 O μικροεπεξεργαστής του ATmega8515 12 2.4.1 H αριθμητική λογική μονάδα(alu) 12 2.4.2 Προσπέλαση μνήμης και εκτέλεση εντολών 12 2.4.3 Καταχωρητής κατάστασης 13 2.5 Υποσύστημα μνήμης του ATmega8515 14 2.5.1 Μνήμη EEPROM 14 2.5.2 Καταχωρητές γενικής χρήσης του ATmega8515 15 2.5.3 Στατική μνήμη RAM (SRAM) 16 2.5.4 Σωρός 17 2.6 Σειριακή επικοινωνία 18 2.7 Αρχιτεκτονική δομή των AVR 20 ΚΕΦΑΛΑΙΟ 3. ΑΠΑΙΤΗΣΕΙΣ ΠΡΟΔΙΑΓΡΑΦΕΣ 3.1 Απαιτήσεις του συστήματος 22 3.2 Ανάλυση απαιτήσεων κατά FURPS+ 23 3.3 Ανάλυση απαιτήσεων του συστήματος κατά FURPS+ 24 3.4 Προδιαγραφές Συστήματος 25 3.5 Ανάλυση επικινδυνότητας 32 3.6 Διαδικασία λειτουργίας του συστήματος 33 ΚΕΦΑΛΑΙΟ 4. ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ 4.1 Αρχιτεκτονικό Σχέδιο του συστήματος 35 4.2 Διάγραμμα Ροής 36 4.3 Ηλεκτρονικό Σχέδιο του συστήματος 37 4.3.1 Κατανομή ακίδων των Μικροελεγκτών ATmega8515 38 4.3.1.1 Συνδεσμολογία του Μικροελεγκτή ATmega8515. Υποσύστημα αποστολής απόστασης 38 4.3.1.2 Συνδεσμολογία του Μικροελεγκτή ATmega8515. Υποσυστήματος λήψης απόστασης 39 4
4.3.2 Ηλεκτρονικό σχέδιο αισθητηρίου υπερήχων 40 4.3.3 Ηλεκτρονικό σχέδιο του Buffer (HC7404s) πομπού 41 4.3.4 Ηλεκτρονικό σχέδιο του Buffer (HC7404s) δέκτη 41 4.3.5 Ηλεκτρονικό σχέδιο πομπού 42 4.3.6 Ηλεκτρονικό σχέδιο δέκτη 43 4.3.7 Ηλεκτρονικό σχέδιο οθόνης (LCD) 44 4.3.8 Ηλεκτρονικό σχέδιο των διακοπτών (Buttons) 44 4.3.9 Ηλεκτρονικό σχέδιο του βομβητή (Buzzer) 45 4.4 Ηλεκτρονικό σύστημα επιβράδυνσης οχήματος 45 ΚΕΦΑΛΑΙΟ 5. ΕΛΕΓΧΟΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ 5.1 Έλεγχος κλειστού κουτιού 46 5.2 Έλεγχος ανοικτού κουτιού 50 5.3 Έλεγχος Προδιαγραφών 54 5. 4 Έλεγχος υλικού που χρησιμοποιήθηκε (Hardware) 56 5.4.1 Σκοπός του ελέγχου 56 5.4.2 Γενικό σχέδιο ελέγχου 57 5.4.3 Έλεγχος των υλικών 57 ΚΕΦΑΛΑΙΟ 6. ΣΥΜΠΕΡΑΣΜΑ-ΒΙΒΛΙΟΓΡΑΦΙΑ 6.1 Συμπέρασμα 58 6.2 Βιβλιογραφία 59 ΠΑΡΑΡΤΗΜΑ 1.Κώδικας σε γλώσσα προγραμματισμού C. Υποσύστημα μκροελεγκτή αποστολής απόστασης 60 2.Κώδικας σε γλώσσα προγραμματισμού C. Υποσύστημα μικροελεγκτή λήψης απόστασης 64 5
ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1 Περίληψη αντικειμένου της εργασίας Σκοπός του βοηθητικού συστήματος παρκαρίσματος είναι να μετράει και να εμφανίζει σε μια οθόνη, η οποία βρίσκεται μπροστά στον οδηγό, την απόσταση ενός εμποδίου, στο πίσω μέρος του οχήματός του. Επιπλέον παράγει έναν επαναλαμβανόμενο βόμβο, ώστε να τον βοηθάει να σταθμεύσει, χωρίς να αποσπάται η προσοχή του. Κατά τη διάρκεια εκτέλεσης της παρούσας εργασίας, δόθηκε έμφαση στο ότι το σύστημα θα πρέπει να έχει σχετική ακρίβεια, να δέχεται βελτιώσεις και να είναι σε μεγάλο βαθμό χρήσιμο. Το σύστημα υλοποιήθηκε με τη χρήση δύο μικροελεγκτών ATmega8515 οι οποίοι επικοινωνούν μεταξύ τους ασύρματα. Ο ένας μικροελεγκτής είναι τοποθετημένος στο πίσω μέρος του οχήματος και είναι συνδεδεμένος με ένα αισθητήριο υπερήχων, που αναγνωρίζει εμπόδια σε αποστάσεις από τρία εκατοστά μέχρι τρία μέτρα. Εκπέμπει παλμούς μέσω του αισθητηρίου υπερήχων και μετράει το χρόνο επιστροφής τους. Στη συνέχεια μετατρέπει τη χρονική διάρκεια του παλμού σε απόσταση, χρησιμοποιώντας ένα μαθηματικό τύπο. Η απόσταση του οχήματος από το εμπόδιο μεταφέρεται μέσω του πομπού στον δεύτερο μικροελεγκτή ATmega8515 ασύρματα, ο οποίος είναι συνδεδεμένος με ένα δέκτη. Εκτός από τον δέκτη, ο δεύτερος μικροελεγκτής είναι συνδεδεμένος με μια οθόνη (LCD) και ένα βομβητή. Στην οθόνη εμφανίζεται η απόσταση σε εκατοστά και ο βομβητής παράγει βόμβο, ανάλογο με την απόσταση του εμποδίου. Τέλος, ο μικροελεγκτής που βρίσκεται στο μπροστινό μέρος του οχήματος είναι συνδεδεμένος με τρεις διακόπτες. Ο πρώτος ρυθμίζει την αρχική απόσταση, ο δεύτερος διαγράφει την αρχική απόσταση και ο τρίτος ενεργοποιεί και απενεργοποιεί αντίστοιχα τον βομβητή, σε περίπτωση που γίνει ενοχλητικό για τον οδηγό. Το βοηθητικό σύστημα παρκαρίσματος, είναι τοποθετημένο σε ένα τηλεκατευθυνόμενο όχημα. Με την χρήση του τηλεχειριστηρίου ο χρήστης έχει τη δυνατότητα να το μετακινεί στην επιθυμητή κατεύθυνση. 6
ΚΕΦΑΛΑΙΟ 2 2.1 Γενική περιγραφή του ATmega8515. Ο ΜΙΚΡΟΕΛΕΓΚΤΗΣ AVR ATMEGA8515 Ο ATmega8515 είναι ένας χαμηλής κατανάλωσης CMOS 8-bit επεξεργαστής βασισμένος πάνω στην ενισχυμένη RISC αρχιτεκτονική των AVR. Εκτελώντας τις δυναμικές του εντολές σε ένα κύκλο μηχανής επιτρέπει στον σχεδιαστή να βελτιστοποιήσει την κατανάλωση σε σχέση με την επεξεργαστική ισχύ. Ο σχεδιασμός του ATmega8515 προβλέπει ένα πλούσιο σετ εντολών συνδεδεμένο με 32 καταχωρητές γενικής χρήση. Όλοι οι καταχωρητές συνδέονται άμεσα με την αριθμητική λογική μονάδα ( ALU ) επιτρέποντας τις εντολές μεταξύ καταχωρητών να εκτελεστούν σε ένα κύκλο μηχανής πετυχαίνοντας έτσι μέχρι και δέκα φορές μεγαλύτερο throughput από τις CISC αρχιτεκτονικές. Επιπλέον ο AΤmega8515 έχει ένα πλήθος περιφερειακών έτσι ώστε να έχει την δυνατότητα να ελέγξει ένα ολόκληρο σύστημα με περιφερειακά μόνος του. 2.2 Χαρακτηριστικά του ATmega8515 Ο μικροεπεξεργαστής κατασκευάζεται χρησιμοποιώντας την τεχνολογία μη-πτητικής μνήμης υψηλής πυκνότητας της Atmel. Η ενεργοποίηση μνήμης ISP Flash επιτρέπει στη μνήμη προγράμματος να επαναπρογραμματιστεί είτε μέσω της σειριακής πόρτας SPI, είτε ενός συμβατικού προγραμματιστή μη πτητικής μνήμης, είτε μέσω ενός ενσωματωμένου προγράμματος εκκίνησης που τρέχει στον πυρήνα του AVR. Το ενσωματωμένο πρόγραμμα εκκίνησης μπορεί να χρησιμοποιήσει οποιαδήποτε μορφή διασύνδεσης προκειμένου να φορτώσει το πρόγραμμα εφαρμογής στη μνήμη εφαρμογών flash. Το λογισμικό στην περιοχή μνήμης flash εκκίνησης θα συνεχίσει να τρέχει ενώ η περιοχή flash εφαρμογών ενημερώνεται παρέχοντας έτσι την πραγματική λειτουργία ανάγνωσης ενώ ταυτόχρονα γίνεται εγγραφή. Συνδυάζοντας έναν επεξεργαστή 8 ψηφίων αρχιτεκτονικής RISC με μια εσωτερικά προγραμματιζόμενη ταχεία μνήμη (flash memory) σε ένα ολοκληρωμένο κύκλωμα, ο ATmega8515 είναι ένας δυνατός μικροελεγκτής, που παρέχει μια εναλλακτική και φθηνή λύση στις εφαρμογές ενσωματωμένων συστημάτων. Ο AVR υποστηρίζετε από ένα πλήρες πρόγραμμα και ένα αναπτυξιακό πακέτο το οποίο περιέχει: μεταγλωττιστές (compilers) C, macro συμβολομεταφραστές (macro assemblers), πρόγραμμα εκσφαλμάτωσης-προσομοίωσης (program debugger-simulators), εσωτερικούς προσομοιωτές (in-circuit emulators), και πακέτο αξιολόγησης (evaluation kit). 7
Η αρχιτεκτονική αυτή είναι αποτελεσματικότερη καθώς επιτρέπει εκτέλεση κώδικα έως 10 φορές ταχύτερα από ένα συμβατικό μικροελεγκτή CISC. Ο ATmega8515 έχει τα παρακάτω χαρακτηριστικά: Χαρακτηριστικά του ATmega8515: 1.Επεξεργαστής που αποτελείται από : a. Αριθμητική Λογική μονάδα συνδεδεμένη με 32 ενεργούς καταχωρητές γενικού σκοπού. b. Μετρητή προγράμματος. c. Καταχωρητή κατάστασης. d. Δείκτη σωρού. e. Καταχωρητή εντολών. f. Αποκωδικοποιητή εντολών. g. Μονάδα ελέγχου. 2. Υποσύστημα μνήμης αποτελούμενο από: a. 8 byte προγραμματιζόμενης μέσα στο σύστημα ταχείας μνήμης (ISP flash) από την οποία μπορεί να γίνει ανάγνωση και εγγραφή ταυτόχρονα. b. 512 byte EEPROM. c. 512 στατικής RAM (Static RAM ή SRAM). d. Δυνατότητα διασύνδεσης εξωτερικής μνήμης χωρητικότητας έως και 32 Kbyte. e. 32 ενεργούς καταχωρητές γενικού σκοπού. f. 32 γραμμές I/O γενικού σκοπού. 3. Υποσύστημα παράλληλης και σειριακής επικοινωνίας: a. Παράλληλη επικοινωνία διαμέσου 5 πορτών εισόδου/εξόδου πολλαπλών λειτουργιών. b. Σειριακή επικοινωνία δια μέσου ενός σειριακού προγραμματιζόμενου UART και μιας σειριακής διασύνδεσης περιφερειακών SPI. 4. Υποσύστημα χρονιστών-μετρητών αποτελούμενο από δύο ευέλικτους μετρητές-χρονιστές με μορφές σύγκρισης. 5. Υποσύστημα διακοπών με δυνατότητα εσωτερικών και εξωτερικών διακοπών. 6. Έναν αναλογικό συγκριτή. 7. Έναν προγραμματιζόμενο επιτηρητή χρονιστή (WDT) οδηγούμενο από ταλαντωτή. 8. Τις παρακάτω 3 μορφές εξοικονόμησης ενέργειας που επιλέγονται μέσα από το πρόγραμμα. a. Την κατάσταση αδράνειας κατά την οποία ο μικροελεγκτής σταματάει ενώ ταυτόχρονα επιτρέπεται στους μετρητές-χρονιστές, την SRAM, την πόρτα SPI και το σύστημα διακοπών να συνεχίσουν να λειτουργούν. b. Τη μορφή διακοπής της τροφοδοσίας κατά την οποία τα περιεχόμενα των καταχωρητών σώζονται, αλλά σταματά ο ταλαντωτής απενεργοποιώντας κάθε άλλη διεργασία, μέχρι τη επόμενη διακοπή ή το κυκλωματικό reset. c. Τη μορφή αναμονής κατά την οποία ο ταλαντωτής κρυστάλλου τρέχει ενώ η υπόλοιπη συσκευή κοιμάται. Αυτό επιτρέπει μεγάλη ταχύτητα εκκίνησης σε συνδυασμό με μικρή κατανάλωση ενέργειας. 8
Σχήμα 2.1 Διάγραμμα Βαθμίδας του ATmega8515. 9
2.3 Περιγραφή ακίδων: Στο Σχήμα 2.2, φαίνονται οι ακίδες του μικροελεγκτή ATmega8515, που περιγράφονται παρακάτω. Κάθε ακίδα έχει τουλάχιστον δύο λειτουργίες, οι οποίες επιλέγονται από τους εσωτερικούς καταχωρητές του μικροελεγκτή, εκτός από μερικές εξαιρέσεις. Οι ακίδες του ATmega8515 είναι: 1. VCC: Ψηφιακή τάση τροφοδοσίας. 2. GRD: Ψηφιακή γείωση. 3. Οι πόρτες Α (PA7 έως PA0), B (PB7 έως PB0), C (PC7 έως PC0), D (PD7 έως PD0), είναι αμφίδρομες πόρτες εισόδου-εξόδου 8 ψηφίων. Οι γραμμές κάθε πόρτας εμπεριέχουν ενσωματωμένες αντιστάσεις αναρρίχησης (pull up) στα 5V. Οι απομονωτές εξόδου της πόρτας έχουν συμμετρικά χαρακτηριστικά με ικανότητα υψηλής απορρόφησης και παροχής ρεύματος. Όταν οι ακίδες της πόρτας χρησιμοποιούνται ως είσοδοι και οδηγούνται εξωτερικά σε λογικό 0 θα απορροφήσουν ρεύμα αν ενεργοποιηθούν οι εσωτερικές αντιστάσεις αναρρίχησης. Οι γραμμές της πόρτας είναι τριών καταστάσεων όταν ενεργοποιείται το reset ακόμη και αν το ρολόι είναι σταματημένο. Η πόρτα E (PE7 έως PE0) είναι μία πόρτα τριών ψηφίων που λειτουργεί όπως και οι προηγούμενες.οι γραμμές των πορτών αυτών μπορούν να προγραμματιστούν και για εναλλακτικές χρήσεις. 4. RESET : Λογικό 0 στην είσοδο αυτή για χρόνο μεγαλύτερο από την ελάχιστη περίοδο του παλμού χρονισμού θα δημιουργήσει RESET ακόμα και αν το ρολόι είναι σταματημένο. 5. XTAIL1: Είσοδος στον ενισχυτή αναστραμμένης εισόδου του ταλαντωτή, και είσοδος στο κύκλωμα λειτουργίας στο εσωτερικό ρολόι. 6. XTAIL2: Έξοδος από τον ενισχυτή αναστραμμένης εισόδου του ταλαντωτή. 10
Σχήμα 2.2 Ακίδες του μικροελεγκτή ATmega8515. 11
2.4 O μικροεπεξεργαστής του ATmega8515 2.4.1 H αριθμητική λογική μονάδα(alu). Η υψηλής απόδοσης αριθμητική λογική μονάδα (ALU) λειτουργεί σε απευθείας σύνδεση με τους 32 καταχωρητές γενικής χρήσης. Σε ένα κύκλο ρολογιού εκτελούνται οι αριθμητικές πράξεις μεταξύ δύο καταχωρητών ή μεταξύ ενός καταχωρητή και ενός ορίσματος από την μνήμη. Οι λειτουργίες της αριθμητικής λογικής μονάδας (ALU) διακρίνονται σε αριθμητικές, λογικές και λειτουργίες ψηφίου. Μερικές αρχιτεκτονικές παρέχουν τη δυνατότητα πολλαπλασιασμού τόσο σε προσημασμένους και μη προσημασμένους αριθμούς. 2.4.2 Προσπέλαση μνήμης και εκτέλεση εντολών Ο επεξεργαστής AVR οδηγείται από ένα εξωτερικό ρολόι ή ένα εσωτερικό ρολόι RC. Το ρολόι του συστήματος, χωρίς καμία διαίρεση, χρησιμοποιείται για όλες τις προσπελάσεις μέσα στον επεξεργαστή. Ο επεξεργαστή έχει διαδοχική διοχέτευση δύο σταδίων και η ανάκληση και εκτέλεση μιας εντολής εκτελούνται ταυτόχρονα με την εκτέλεση της εντολής, όπως φαίνετε στο Σχήμα 2.3. Σχήμα 2.3. Κύκλοι ανάκλησης/αποκωδικοποίησης και εκτέλεσης εντολών. Από τη στιγμή που θα γίνει η ανάκλαση της εντολής, και αν αυτή είναι μία εντολή που σχετίζεται με την αριθμητική λογική μονάδα, τότε αυτή θα εκτελείται σε ένα κύκλο ρολογιού, όπως απεικονίζεται παρακάτω στο Σχήμα 2.4. 12
Σχήμα 2.4 Εκτέλεση εντολής από την αριθμητική λογική μονάδα, που συνίσταται στην ανάκλαση, εκτέλεση και εγγραφή του αποτελέσματος στον καταχωρητή προορισμού. 2.4.3 Καταχωρητής κατάστασης Ο καταχωρητής κατάστασης όπως φαίνετε στο σχήμα 2.5, αποτελείτε από 8 ανεξάρτητα flip-flop, που ονομάζονται δείκτες ή σημαίες. Όλοι οι δείκτες μαζί δείχνουν την κατάσταση του μικροεπεξεργαστή μετά την εκτέλεση μιας εντολής. Σχήμα 2.5 Καταχωρητής κατάστασης. Οι δείκτες του καταχωρητή είναι οι εξής: Δείκτης κρατουμένου C (Carry flag), Δείκτης μηδενισμού Z (Zero flag), Δείκτης άρνησης N (Negative flag), Δείκτης υπερχείλισης V (Overflow flag), Δείκτης πρόσημου S (Sign flag). Δείκτης κρατουμένου H (Half Carry flag), Δείκτης αποθήκευσης αντιγραφής ψηφίουt (Bit Copy Storage), Δείκτης διακοπής I (Interrupt flag). 13
2.5 Υποσύστημα μνήμης του ATmega8515. Ο ATmega8515 έχει δύο χώρους μνήμης. Το χώρο μνήμης προγράμματος που αποτελέιται από την ταχεία μνήμη προγράμματος (flash memory) και το χώρο μνήμης δεδομένων που αποτελείται από το αρχείο 32 καταχωρητών, τη στατική μνήμη RAM, τη μνήμη EEPROM και τους καταχωρητές I/O. 2.5.1 Μνήμη EEPROM Ο ATmega8515 εμπεριέχει τη μνήμη EEPROM μεγέθους 512 byte όπου μπορούν να εγγραφούν κα να διαβαστούν μεμονωμένα byte και διαθέτει τη δυνατότητα έως και 100.000 κύκλων εγγραφής και σβησίματος. Η προσπέλαση στον στην μνήμη EEPROM γίνεται δια μέσου των καταχωρητών προσπέλασης της EEPROM που είναι, ο καταχωρητής διεύθυνσης της EEPROM, ο καταχωρητής δεδομένων της EEPROM και ο καταχωρητής ελέγχου της EEPROM. Ο καταχωρητής διεύθυνσης της EEPROM EEAR είναι στην ουσία δύο καταχωρητές EEARL και ο EEARH. Ο EEAR είτε ως ένας απλός καταχωρητής είτε ως ένας διπλός καταχωρητής χρησιμοποιείται για τον καθαρισμό της διεύθυνσης από την οποία θα γίνει ανάγνωση ή στην οποία θα γίνει εγγραφή. Ο καταχωρητής δεδομένων της EEPROM EEDR είναι ένας καταχωρητής ανάγνωσης και εγγραφής. Τα δεδομένα φορτώνονται στον καταχωρητή EEDR πριν από την εγγραφή και ο καταχωρητής EEDR διαβάζει μετά την ανάγνωση. Ο καταχωρητής ελέγχου EEPROM EECR έχει τα ψηφία ελέγχου που αφορούν τη διαδικασία ανάγνωσης και εγγραφής. Σχήμα 2.6 Χαρτογράφηση μνήμης του ATmega8515. 14
2.5.2 Καταχωρητές γενικής χρήσης του ATmega8515. Το αρχείο καταχωρητών περιέχει 32 καταχωρητές 8 ψηφίων γενικού σκοπού και είναι κατασκευασμένοι έτσι ώστε να υποστηρίζουν το ενισχυμένο RISC σετ εντολών. Στο σχήμα 2.7 φαίνονται οι καταχωρητές γενικής χρήσης: Σχήμα 2.7 Καταχωρητές γενικής χρήσης του AVR Οι περισσότερες από τις εντολές που λειτουργούν στο αρχείο καταχωρητών έχουν άμεση πρόσβαση σε όλους τους καταχωρητές, και οι περισσότερες από αυτές εκτελούνται σε ένα κύκλο. Σε κάθε καταχωρητή ορίζεται επίσης μια διεύθυνση μνήμης δεδομένων, χαρτογραφώντας τους άμεσα στις πρώτες 32 θέσεις του διαστήματος δεδομένων. Αν και όχι φυσικά ως θέσεις SRAM, αυτή η οργάνωση μνήμης παρέχει τη μεγάλη ευελιξία στην πρόσβαση των καταχωρητών, όπως το Χ -, Υ -, και οι καταχωρητές Ζ-δεικτών μπορούν να τεθούν ως δείκτης για να συντάξουν ευρετήριο σε οποιοδήποτε καταχωρητή στο αρχείο. 15
Σχήμα 2.8 Οι διπλοί καταχωρητές X-, Y-, Z- του AVR 2.5.3 Στατική μνήμη RAM (SRAM) H στατική μνήμη SRAM έχει μέγεθος 512x8 και μαζί με τους 32 καταχωρητές γενικού σκοπού και τους καταχωρητές I/O καταλαμβάνουν τις 608 χαμηλότερες διευθύνσεις της μνήμης δεδομένων.υπάρχει εσωτερική και εξωτερική SRAM. Όταν γίνετε προσπέλαση στην εσωτερική SRAM οι ακίδες PD7 και PD6 που παίζουν το ρόλο των σημάτων ανάγνωσης και εγγραφής, είναι απενεργοποιημένες καθ όλο τον κύκλο προσπέλασης. Ενώ η προσπέλαση στην εξωτερική SRAM ενεργοποιείται με το να γίνει 1 το ψηφίο SRE(SRAM Enable) του καταχωρητή ελέγχου του μικροελεγκτή MCUCR (MicroControler Unit Control Register ). Σχήμα 2.9 Μνήμη δεδομένων SRAM. 16
Σχήμα 2.10 Κύκλωμα διασύνδεσης της SRAM στον ATmega8515. 2.5.4 Σωρός Ο σωρός είναι μια περιοχή μνήμης στην οποία αποθηκεύονται προσωρινά τα περιεχόμενα των εσωτερικών καταχωρητών του μικροελεγκτή. Σχήμα 2.11 Δείκτης σωρού. Ο δείκτης σωρού του σχήματος 2.11 είναι ένας αύξων/φθίνων μετρητής 16 ψηφίων που το περιεχόμενο του αυξομειώνετε κάθε φορά που γίνετε προσπέλαση στο σωρό δείχνοντας πάντα την επόμενη θέση προς πλήρωση. Ο δείκτης σωρού είναι ανάγνωσης και εγγραφής και μπορεί να προσπελαστεί στο χώρο I/O. Η μνήμη δεδομένων SRAM μπορεί να προσπελαστεί μέσω των πέντε διαφορετικών μεθόδων διευθυνσιοδότησης που διαθέτει ο AVR. Στο Σχήμα 2.12 φαίνετε ο τρόπος οργάνωσης του σωρού. 17
Σχήμα 2.12 Τρόπος οργάνωσης του σωρού. 2.6 Σειριακή επικοινωνία Στη σειριακή επικοινωνία το ένα ψηφίο εκπέμπεται μετά το άλλο διαμέσου μιας μόνο γραμμής. Η σειριακή επικοινωνία διακρίνετε σε σύγχρονη και ασύγχρονη.η σύγχρονη δεν προτιμάται και τόσο γιατί αν και πιο αποδοτική, χρειάζεται τα δεδομένα να εκπέμπονται σε ομάδες των 256 η περισσοτέρων byte κάθε φορά. Το σήμα που εκπέμπεται είναι μια ακολουθία παλμών όπου κάθε παλμός παριστάνει και ένα ψηφίο όπως φαίνετε στο σχήμα 2.13(α). Ένα σήμα εξόδου σειριακών δεδομένων μπορεί να παραχθεί με τη χρήση ενός καταχωρητή ολίσθησης όπως φαίνετε στο σχήμα 2.13(β). Η λογική κατάσταση του λιγότερο σημαντικού ψηφίου του καταχωρητή χρησιμοποιείται για να οδηγήσει τη γραμμή εισόδου/εξόδου διαμέσου μιας οδηγού βαθμίδας εξόδου. Στη συνέχεια ο καταχωρητής ξαναγυρίζει στη λειτουργία της ολίσθησης για ένα μικρό προκαθορισμένο διάστημα, έως ότου τα δεδομένα να ολισθύνουν ένα ψηφίο προς τα δεξιά, φέροντας έτσι στη γραμμή εξόδου το επόμενο ψηφίο. 18
Σχήμα 2.13(α) Μορφή απλής ψηφιακής σειριακής πληροφορίας,όπου τα ψηφία ακολουθούν το ένα μετά το άλλο. (β) Η χρήση του καταχωρητή ολίσθησης για μετατροπή παράλληλης πληροφορίας σε σειριακή. 19
2.7 Αρχιτεκτονική δομή των AVR. Με σκοπό να μεγιστοποιήσει την απόδοση και τον παραλληλισμό στην εκτέλεση των εντολών ο AVR χρησιμοποιεί μία ειδικά σχεδιασμένη παραλλαγή της αρχιτεκτονικής Harvard με ξεχωριστή μνήμη και διαύλους (buses) για το πρόγραμμα και τα δεδομένα. Ο AVR χρησιμοποιεί στάθμες διοχέτευσης (pipeline) ενός σταδίου. Ενώ μία εντολή εκτελείται η επόμενη ανακαλείται από την μνήμη προγράμματος. Αυτό οδηγεί στην εκτέλεση των εντολών σε ένα κύκλο μηχανής (οι περισσότερες από αυτές). Η μνήμη του προγράμματος είναι μια ταχεία μνήμη (flash memory) που προγραμματίζεται μέσα στο σύστημα. Έτσι ο AVR εμπεριέχει : 32 καταχωρητές εργασίας 8 ψηφίων με χρόνο προσπέλασης ίσο με ένα κύκλο ρολογιού, Την Αριθμητική Λογική Μονάδα (ALU). Ενσωματωμένη (On-chip) μνήμη ταχείας αποθήκευσης. Ενσωματωμένη μνήμη δεδομένων τύπου EEPROM και SRAM. Πηγές εσωτερικών και εξωτερικών διακοπών. Προγραμματιζόμενο χρονιστή επιτήρησης (WDT) οδηγούμενο από ταλαντωτή. Λειτουργίες ηρεμίας (Sleep) και διακοπής τροφοδοσίας(power down). Εσωτερικό κύκλωμα επανατοποθέτησης κατά την εφαρμογή της τάσης τροφοδοσίας. Μηχανισμό συνεχούς διοχέτευσης εντολών μέσω του οποίου η ανάκληση, η αποκωδικοποίηση και η εκτέλεση των εντολών απότελούν διαδικασίες οι οποίες εκτελούνται ταυτόχρονα. 20
Σχήμα 2.14 Αρχιτεκτονική δομή του πυρήνα των μικροελεγκτών. 21
ΚΕΦΑΛΑΙΟ 3 3.1 Απαιτήσεις του συστήματος. ΑΠΑΙΤΗΣΕΙΣ ΠΡΟΔΙΑΓΡΑΦΕΣ 1. Δυνατότητα μέτρησης της απόστασης μεταξύ οχήματος και εμποδίου σε ακτίνα μικρότερη των τριών μέτρων. 2. Δυνατότητα προσαρμογής της μετρούμενης απόστασης ανάλογα με τη θέση του αισθητηρίου επάνω στο όχημα, με το πάτημα ενός διακόπτη και εμφάνιση μηνύματος στην οθόνη. 3. Δυνατότητα διαγραφής της προσαρμοσμένης απόστασης με το πάτημα διακόπτη και εμφάνιση μηνύματος στην οθόνη. 4. Δυνατότητα ενεργοποίησης του βομβητή με το πάτημα διακόπτη και εμφάνιση μηνύματος στην οθόνη. 5. Δυνατότητα απενεργοποίησης του βομβητή με το πάτημα διακόπτη και εμφάνιση μηνύματος στην οθόνη. 6. Δυνατότητα αύξησης της συχνότητας του βόμβου όσο το όχημα πλησιάζει το εμπόδιο. 7. Δυνατότητα εμφάνισης της απόστασης στην οθόνη. 8. Καμία ενέργεια όταν πατηθούν ταυτόχρονα περισσότεροι από ένα διακόπτη. 9. Φωτεινή ένδειξη (LED) κατά την ενεργοποίηση του συστήματος. 10. Δυνατότητα εμφάνισης μηνύματος στην οθόνη κατά την ενεργοποίηση του συστήματος. 11. Τροφοδοσία στα 5 volt. 12. Ευκολία στη χρήση. 13. Δυνατότητα κίνησης του τηλεκατευθυνόμενου οχήματος με τη χρήση του τηλεχειριστηρίου. 14. Δυνατότητα μείωσης της ταχύτητας του τηλεκατευθυνόμενου οχήματος για μεγαλύτερη ακρίβεια στο παρκάρισμα. 22
3.2 Ανάλυση απαιτήσεων κατά FURPS+ Η κατηγοριοποίηση των απαιτήσεων περιγράφετε με το μοντέλο FURPS (Functionality Usability Reliability Performance Supportability), χρησιμοποιώντας το ακρωνύμιο FURPS για να περιγράψει τις μεγαλύτερες κατηγορίες απαιτήσεων με υποκατηγορίες, όπως φαίνεται παρακάτω: Fuctionality (Λειτουργικότητα) Οι λειτουργικές απαιτήσεις μπορεί να περιλαμβάνουν: Σύνολα χαρακτηριστικών γνωρισμάτων. Ικανότητες. Ασφάλεια. Usability (Χρησιμοποιησιμότητα) Οι απαιτήσεις χρησιμοποιησιμότητας μπορεί να περιλαμβάνουν υποκατηγορίες όπως: Ανθρώπινοι παράγοντες. Αισθητική. Συνέπεια στη διεπαφή χρήστη. Βοήθεια μέσω διαδικτύου (online help) βάσει της εργασίας που επιτελεί ο χρήστης (context-sensitive). Οδηγοί(wizards) και πράκτορες(agents). Έγγραφα για το χρήστη. Εκπαιδευτικό υλικό. Reliability (Αξιοπιστία) Οι απαιτήσεις αξιοπιστίας που πρέπει να ληφθούν υπόψη είναι: Συχνότητα και σοβαρότητα αποτυχίας. Δυνατότητα ανάκτησης. Δυνατότητα πρόβλεψης. Ακρίβεια. Μέσος χρόνος μεταξύ αποτυχιών(mean Time Between Failure-MTBF). Performancy (Απόδοση) Μία απαίτηση απόδοσης επιβάλλει όρους στις λειτουργικές απαιτήσεις. Για παράδειγμα, για μια δεδομένη ενέργεια, μπορεί να προσδιορίσει παραμέτρους απόδοσης για: Ταχύτητα. Αποτελεσματικότητα. Διαθεσιμότητα. Ακρίβεια. Απόδοση (throughput). Χρόνος απόκρισης (response time). Χρόνος ανάκτησης (recovery time). Χρήση πόρων. 23
Supportability (Υποστηριξιμότητα) Οι απαιτήσεις υποστηριξιμότητας μπορεί να περιλαμβάνουν τις δυνατότητες: Δοκιμής. Ανάπτυξης. Προσαρμογής. Συντήρησης. Συμβατότητας. Ρυθμίσεων. Υπηρεσιών. Εγκατάστασης. Προσαρμογής στις τοπικές / διεθνείς αγορές (localizability / internationalization). 3.3 Ανάλυση απαιτήσεων του συστήματος κατά FURPS+ Λειτουργικότητα (Functionality) Δυνατότητα μέτρησης της απόστασης μεταξύ οχήματος και εμποδίου σε ακτίνα μικρότερη των τριών μέτρων. Δυνατότητα προσαρμογής της μετρούμενης απόστασης, ανάλογα με τη θέση του αισθητηρίου επάνω στο όχημα, με το πάτημα ενός διακόπτη και εμφάνιση μηνύματος στην οθόνη. Δυνατότητα διαγραφής της προσαρμοσμένης απόστασης με το πάτημα διακόπτη και εμφάνιση μηνύματος στην οθόνη. Δυνατότητα ενεργοποίησης του βομβητή με το πάτημα διακόπτη και εμφάνιση μηνύματος στην οθόνη. Δυνατότητα απενεργοποίησης του βομβητή με το πάτημα διακόπτη και εμφάνιση μηνύματος στην οθόνη. Δυνατότητα αύξησης της συχνότητας του βομβητή όσο το όχημα πλησιάζει το εμπόδιο. Δυνατότητα εμφάνισης της απόστασης στην οθόνη σε εκατοστά. Φωτεινή ένδειξη (LED) κατά την ενεργοποίηση του συστήματος. Μήνυμα κατά την ενεργοποίηση του συστήματος. Καμία ενέργεια όταν πατηθούν ταυτόχρονα περισσότεροι από ένα διακόπτη. Τροφοδοσία στα 5 volt. Δυνατότητα κίνηση του τηλεκατευθυνόμενου οχήματος με τη χρήση του τηλεχειριστηρίου. Δυνατότητα μείωσης της ταχύτητας του τηλεκατευθυνόμενου οχήματος για μεγαλύτερη ακρίβεια στο παρκάρισμα. 24
Ευχρηστία (Usability) Ευκολία στη χρήση. Φωτεινή ένδειξη (LED) κατά την ενεργοποίηση του συστήματος. Εμφάνιση μηνύματος στην οθόνη κατά την ενεργοποίηση του συστήματος. Αξιοπιστία (Reliability) Καμία ενέργεια όταν πατηθούν ταυτόχρονα περισσότεροι από ένα διακόπτη. Επίδοση (Performance) Τροφοδοσία στα 5 volt. 3.4 Προδιαγραφές Συστήματος Στον Πίνακα 1 αναλύεται η διαδικασία μέτρησης της απόστασης μεταξύ του οχήματος και του εμποδίου. Ο μικροελεγκτής εκπέμπει παλμό μέσω του αισθητηρίου υπερήχων και μετράει το χρόνο επιστροφής του. Το αισθητήριο αναγνωρίζει εμπόδια σε αποστάσεις από τρία εκατοστά μέχρι τρία μέτρα. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: Πλευρικά Φαινόμενα: Προϋπόθεση: Έξοδοι: Προορισμός: ΠΙΝΑΚΑΣ 1 Μέτρηση απόστασης μεταξύ οχήματος και εμποδίου Αισθητήριο υπερήχων Παλμοί If ενεργοποίηση παλμών, then εκκίνηση μέτρησης, Else τίποτα Απενεργοποίηση, Απόσταση μικρότερη των 3 εκατοστών ή μεγαλύτερη των 3 μέτρων. Ενεργοποίηση, Απόσταση μικρότερη των 3cm ή μεγαλύτερη των 3m. Απόσταση Μικροελεγκτής 25
Στον πίνακα 2 περιγράφεται η διαδικασία προσαρμογής της μετρούμενης απόστασης ανάλογα με τη θέση του αισθητηρίου επάνω στο όχημα. Με το πάτημα του αντίστοιχου κουμπιού, αποθηκεύεται η τρέχουσα απόσταση ως αρχική ενώ ταυτόχρονο εμφανίζεται μήνυμα στην οθόνη. Η διαδικασία θα σταματήσει εάν πατηθούν ταυτόχρονα δύο ή περισσότεροι διακόπτες. Τίτλος: ΠΙΝΑΚΑΣ 2 Προσαρμογή της μετρούμενης απόστασης ανάλογα με τη θέση του αισθητηρίου επάνω στο όχημα Προέλευση εισόδου: Αντίστοιχος διακόπτης (Button 7) Δεδομένα Εισόδου: Λογικό 1 ή Λογικό 0 Λειτουργία: Πλευρικά Φαινόμενα: Ιf διακόπτης πατημένος, Τhen αποθήκευση της τρέχουσας τιμής, Else τίποτα. Ενεργοποίηση 2 δαικοπτών ταυτόχρονα Προϋπόθεση: Ενεργοποίηση του διακόπτη (button 7) Έξοδοι: Προορισμός: Δεδομένα EEPROM μικροελεγκτή Στον Πίνακα 3 αναλύεται η διαδικασία διαγραφής της προτοποθετημένης ελάχιστης απόστασης του οχήματος από το εμπόδιο. Πατώντας τον αντίστοιχο διακόπτη, διαγράφεται η αποθηκευμένη τιμή και εμφανίζεται ανάλογο μήνυμα στην οθόνη. Η διαδικασία είναι απαραίτητη σε περίπτωση που ο χρήστης επιθυμεί να ορίσει νέα αρχική ελάχιστη απόσταση. Επειδή η τιμή αποθηκεύεται στην μνήμη EEPROM του μικροελεγκτή, δεν διαγράφεται με την απενεργοποίηση του συστήματος. Τίτλος: ΠΙΝΑΚΑΣ 3 Διαγραφή της μετρούμενης απόστασης Προέλευση εισόδου: Αντίστοιχος διακόπτης (button 6) Δεδομένα Εισόδου: Λογικό 1 ή λογικό 0 Λειτουργία: Πλευρικά Φαινόμενα: If διακόπτης πατημένος, then διαγραφή της υπάρχουσας τιμής, Else τίποτα. Ενεργοποίηση 2 διακοπτών ταυτόχρονα Προϋπόθεση: Ενεργοποίηση του αντίστοιχου διακόπτη (button 6) Έξοδοι: Προορισμός: Δεδομένα EEPROM Μικροελεγκτή 26
Στον Πίνακα 4 αναλύεται η διαδικασία ενεργοποίησης του βομβητή. Πατώντας τον αντίστοιχο διακόπτη ενεργοποιείται ο βομβητής ενώ ταυτόχρονο εμφανίζεται ανάλογο μήνυμα στην οθόνη. Τίτλος: ΠΙΝΑΚΑΣ 4 Ενεργοποίηση βομβητή Προέλευση εισόδου: Αντίστοιχος διακόπτης (button 4) Δεδομένα Εισόδου: Λογικό 1 ή λογικό 0 Λειτουργία: Πλευρικά Φαινόμενα: Ιf βομβητής απενεργοποιημένος, then( If διακόπτης πατημένοσ then ενεργοποίηση,),else τίποτα Ενεργοποίηση 2 διακοπτών ταυτόχρονα Προϋπόθεση: Ενεργοποίηση αντίστοιχου διακόπτη (button 4) Έξοδοι: Προορισμός: Δεδομένα Βομβητής Στον Πίνακα 5 αναλύεται η διαδικασία απενεργοποίησης του βομβητή. Πατώντας τον αντίστοιχο διακόπτη απενεργοποιείται ο βομβητής ενώ ταυτόχρονα εμφανίζεται ανάλογο μήνυμα στην οθόνη. Τίτλος: ΠΙΝΑΚΑΣ 5 Απενεργοποίηση βομβητή Προέλευση εισόδου: Αντίστοιχος διακόπτης (button 4) Δεδομένα Εισόδου: Λογικό 1 ή λογικό 0 Λειτουργία: Πλευρικά Φαινόμενα: if βομβητής ενεργοποιημένος, then( If διακόπτης ενεργοποιημένος then απενεργοποίηση ),Else τίποτα Ενεργοποίηση 2 διακοπτών ταυτόχρονα Προϋπόθεση: Ενεργοποίηση αντίστοιχου διακόπτη (button 4) Έξοδοι: Προορισμός: Δεδομένα Βομβητής 27
Στον Πίνακα 6 αναλύεται η διαδικασία αύξησης της συχνότητας του βόμβου όσο το όχημα πλησιάζει το εμπόδιο. Πατώντας τον διακόπτη ενεργοποίησης του βομβητή, η συχνότητα παλμών γίνεται ανάλογη με την απόσταση του οχήματος από το εμπόδιο. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: ΠΙΝΑΚΑΣ 6 Αύξηση συχνότητας του βομβητή όσο το όχημα πλησιάζει το εμπόδιο Μικροελεγκτής Χρονική διάρκεια παλμού If βομβητής ενεργός Then βόμβος= χρονική διάρκεια παλμού, Else τίποτα Πλευρικά Φαινόμενα: Απόσταση μικρότερη των 3cm ή μεγαλύτερη των 3m. Προϋπόθεση: Ενεργοποίηση αντίστοιχου διακόπτη (button 4) Έξοδοι: Προορισμός: Δεδομένα Βομβητής Στον Πίνακα 7 αναλύεται η διαδικασία εμφάνισης της απόστασης στην οθόνη σε εκατοστά. Μόλις ο χρόνος επιστροφής του παλμού μετατραπεί σε απόσταση, αποστέλλεται μέσω ενός συστήματος πομποδέκτη στον δεύτερο μικροελεγκτή ATmega8515 και στη συνέχεια εμφανίζεται στην οθόνη σε εκατοστά. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: Πλευρικά Φαινόμενα: Προϋπόθεση: Έξοδοι: Προορισμός: ΠΙΝΑΚΑΣ 7 Εμφάνιση της απόστασης στην οθόνη σε εκατοστά Σύστημα πομποδέκτη Απόσταση Ιf υπάρχουν δεδομένα στον μικροελεγκτή τhen εμφάνισε την απόσταση σε εκατοστά, Else τίποτα Λάθος στην αρχικοποίηση της οθόνης Η χρονική διάρκεια του παλμού να μετατραπεί σε απόσταση μέσω μαθηματικών πράξεων Απόσταση σε εκατοστά Οθόνη 28
Στον Πίνακα 8 αναλύεται η διαδικασία αδρανοποίησης του συστήματος όταν πατηθούν ταυτόχρονα δύο διακόπτες. Μόλις γίνει η ενεργοποίηση δύο διακοπτών ταυτόχρονα δεν γίνετε καμία ενέργεια. Το σύστημα αντιδρά σαν να μην έχει πατηθεί κανένας διακόπτης. Τίτλος: Προέλευση εισόδου: ΠΙΝΑΚΑΣ 8 Καμία ενέργεια όταν πατηθούν ταυτόχρονα περισσότεροι από ένα διακόπτη. Πάτημα 2 διακοπτών Δεδομένα Εισόδου: Λογικό 1 ή λογικό 0 Λειτουργία: If ενεργοποίηση 2 διακοπτών ταυτόχρονα Then καμία ενέργεια, Else τίποτα Πλευρικά Φαινόμενα: ----------- Προϋπόθεση: Έξοδοι: Προορισμός: Να ενεργοποιηθούν 2 διακόπτες ταυτόχρονα Στον Πίνακα 9 αναλύεται η διαδικασία φωτεινής ένδειξης (LED) κατά την ενεργοποίηση του συστήματος. Μόλις γίνει η ενεργοποίηση του συστήματος μέσω του διακόπτη, η τάση μεταφέρεται στον Vcc ακροδέκτη του Led με αποτέλεσμα να ενεργοποιείται η φωτεινή ένδειξη. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: Πλευρικά Φαινόμενα: Προϋπόθεση: Έξοδοι: Προορισμός: ΠΙΝΑΚΑΣ 9 Φωτεινή ένδειξη (LED) κατά την ενεργοποίηση του συστήματος. Διακόπτης Τάση If τάση = 1 Then ενεργοποίηση LED, Else τίποτα Ενεργοποίηση του διακόπτη Τάση LED 29
Στον Πίνακα 10 αναλύεται η διαδικασία εμφάνισης μηνύματος στην οθόνη κατά την ενεργοποίηση του συστήματος. Μόλις γίνει η ενεργοποίηση μέσω του διακόπτη, τάση μεταφέρετε στον μικροελεγκτή όπου γίνετε η αρχικοποίηση, και στη συνέχεια εμφανίζετε στην οθόνη το μήνυμα init done (initialization-αρχικοποίηση). Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: ΠΙΝΑΚΑΣ 10 Μήνυμα κατά την ενεργοποίηση του συστήματος Διακόπτης Τάση Λειτουργία: Πλευρικά Φαινόμενα: Προϋπόθεση: Έξοδοι: Προορισμός: If τάση = 1 Then αρχικοποίηση μικροελεγκτή και εμφάνιση στην οθόνη, Else τίποτα Ενεργοποίηση του διακόπτη Τάση Μικροελεγκτής Στον Πίνακα 11 αναλύεται η διαδικασία τροφοδοσίας του συστήματος με 5 Volt. Μόλις γίνει η ενεργοποίηση μέσω του διακόπτη, τάση μεταφέρετε στην Vcc ακίδα του μικροελεγκτή. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: Πλευρικά Φαινόμενα: Προϋπόθεση: Έξοδοι: Προορισμός: ΠΙΝΑΚΑΣ 11 Τροφοδοσία στα 5 Volt. Διακόπτης Τάση If τάση = 1 Then ενεργοποίηση μικροεελεγκτή Else τίποτα Ενεργοποίηση του διακόπτη Τάση Μικροελεγκτής 30
Στον Πίνακα 12 αναλύεται η διαδικασία κίνησης του τηλεκατευθυνόμενου οχήματος με τη χρήση του τηλεχειριστηρίου. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: ΠΙΝΑΚΑΣ 12 Δυνατότητα κίνηση του τηλεκατευθυνόμενου οχήματος με τη χρήση του τηλεχειριστηρίου. Κεραία οχήματος Ασύρματη επικοινωνία If όχημα ενεργοποιημένο Then αρχικοποίηση στον μικροελεγκτή και εμφάνιση στην οθόνη, Else τίποτα Πλευρικά Φαινόμενα: --- Προϋπόθεση: Έξοδοι: Προορισμός: Ενεργοποίηση του διακόπτη Τάση Μικροελεγκτής Στον Πίνακα 13 αναλύεται η διαδικασία μείωσης της ταχύτητας του τηλεκατευθυνόμενου οχήματος για μεγαλύτερη ακρίβεια στο παρκάρισμα. Τίτλος: Προέλευση εισόδου: Δεδομένα Εισόδου: Λειτουργία: Πλευρικά Φαινόμενα: Προϋπόθεση: Έξοδοι: Προορισμός: ΠΙΝΑΚΑΣ 13 Δυνατότητα μείωσης της ταχύτητας του τηλεκατευθυνόμενου οχήματος για ακρίβεια στο παρκάρισμα Κεραία οχήματος Ασύρματη επικοινωνία If όχημα ενεργοποιημένο Then μείωση της ταχύτητας του κινητήρα, Else τίποτα Ενεργοποίηση του διακόπτη Τάση Μικροελεγκτής 31
3.5 Ανάλυση επικινδυνότητας Οι κίνδυνοι που μπορεί να προκληθούν στο σύστημα μπορεί να προκληθούν τόσο από το εξωτερικό περιβάλλον όσο και από τον ανθρώπινο παράγοντα. Στον Πίνακα που ακολουθεί αναφέρονται οι δύο βασικότεροι κίνδυνοι. ΠΙΝΑΚΑΣ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ ΚΙΝΔΥΝΩΝ ΚΑΤΗΓΟΡΙΑ ΚΙΝΔΥΝΟΥ Μηχανικές Καταπονήσεις Ανθρώπινος παράγοντας Περιβαλλοντολογικές συνθήκες ΚΙΝΔΥΝΟΣ Σύγκρουση Κλοπή συστήματος, Κακόβουλες ενέργειες Αυξημένη υγρασία, ακραίες θερμοκρασίες, απότομες αλλαγές θερμοκρασίας ΖΗΜΙΑ ΠΟΥ ΠΡΟΚΑΛΕΙ Βλάβη συστήματος Απώλεια συστήματος Δυσλειτουργία ηλεκτρονικών συστημάτων Παρακάτω απεικονίζεται το διάγραμμα ανάλυσης επικινδυνότητας για την κρισιμότητα του κινδύνου (ασήμαντος έως καταστροφικός) και την πιθανότητα εμφάνισής του (απίστευτη έως συχνή). Πιθανότητα Απαράδεκτη περιοχή Συχνή Πιθανή Καμία φορά ALARM Απόμακρη Απίθανη Απίστευτη Γενικώς αποδεκτή περιοχή Μείωση επικινδυνότητας Δριμύτητα Ασήμαντη Μέτρια Σημαντική Καταστροφική Σχήμα 3.1 Γράφημα Ανάλυσης Επικινδυνότητας. 32
3.6 Διαδικασία λειτουργίας του συστήματος Στο σύστημα χρησιμοποιούνται δύο μικροελεγκτές ATmega8515 οι οποίοι επικοινωνούν μέσω ενός πομποδέκτη. Στο πίσω μέρος του αυτοκινήτου είναι τοποθετημένο ένα αισθητήριο υπερήχων (SRF04 - Ultrasonic Range Finder) το οποίο έχει τη δυνατότητα να αναγνωρίζει εμπόδια σε αποστάσεις από τρία εκατοστά μέχρι τρία μέτρα. Για να ενεργοποιηθεί το αισθητήριο, ο μικροελεγκτής στέλνει ένα παλμό σ αυτό, χρονικής διάρκειας 10 μsec. Μόλις ενεργοποιηθεί το αισθητήριο, στέλνει έναν ηχητικό παλμό στο πίσω μέρος του αυτοκινήτου για να ανιχνεύσει πιθανό εμπόδιο, ταυτόχρονα όμως το αισθητήριο στέλνει και ένα παλμό (λογικό 0) στην είσοδο του μικροελεγκτή (PE0) προκειμένου να ενεργοποιηθεί ο μετρητής (Timer1). Ο μετρητής (Timer1) του παραπάνω μικροελεγκτή μετρά, όσο υπάρχει λογικό (0) στο PE0 τη χρονική διάρκεια του παλμού που δέχεται από την έξοδο του αισθητηρίου, και την αποθηκεύει σε μία μεταβλητή μέσα στη RAM του μικροελεγκτή. Στη συνέχεια η μεταβλητή μετατρέπεται με την κατάλληλη συνάρτηση σε απόσταση. Αφού μετράμε το χρόνο σε κύκλους ρολογιού, πολλαπλασιάζουμε τον χρόνο με 29/2 για να πάρουμε την ακριβή απόσταση σε εκατοστά (η ταχύτητα του ήχου, είναι 29 μsec/cm). Σε περίπτωση που η διαδικασία της μέτρησης ξεκινήσει και ο παλμός δεν επιστρέψει στο αισθητήριο σε χρονικό διάστημα 18 msec, ο χρόνος που μετρήθηκε θα αγνοηθεί και θα ενεργοποιηθεί νέος παλμός (το εμπόδιο είναι σε απόσταση μεγαλύτερη των 3 m). Στη συνέχεια η απόσταση μετατρέπεται σε ένα 16bit αριθμό με σκοπό να μεταφερθούν όλα τα bits σειριακά, μέσω ενός buffer (HC7404s), στο RxD (PD1) του μικροελεγκτή. Για επιβεβαίωση ότι ο δέκτης θα λάβει και τα δύο bytes θέτουμε τον μικροελεγκτή σε κατάσταση λειτουργίας 9-bit. Πρώτα μεταφέρεται το περισσότερο σημαντικό byte (MSB) με 1 στο 9 ο bit, και στη συνέχεια ακολουθεί το λιγότερο σημαντικό byte (LSB) με 0 στο 9 ο bit. Η παραπάνω διαδικασία πραγματοποιείται γιατί αν σταλεί μόνο 1 byte και χαθεί κατά τη μεταφορά του, θα δημιουργήσει πρόβλημα στην επόμενη μεταφορά. Αν η αποστολή δεδομένων δεν γίνει ορθά, σταματά η μεταφορά. Αφού η μεταφορά γίνεται με ταχύτητα 4 MHz, μερικά δεδομένα κατά τη διάρκεια αυτής, μπορεί να χαθούν, χωρίς να γίνει αντιληπτό από τον χρήστη. Η ασύρματη επικοινωνία γίνεται σε συχνότητα 433 MHz. Ο πομπός έχει ενσωματωμένη κεραία ενώ ο δέκτης έχει εξωτερική κεραία μεγέθους 13 εκατοστών. Ο πομπός στέλνει την απόσταση στον δέκτη, χρησιμοποιώντας μια έτοιμη συνάρτηση. Η Port D.1 (TXD) του πίσω μικροελεγκτή είναι συνδεδεμένη με τον buffer (HC7404s), ο οποίος με τη σειρά του βοηθά τον πομπό να έχει σταθερή ροή δεδομένων. Ο δέκτης είναι συνδεδεμένος μέσω ενός άλλου buffer (HC7404s) στην Port D.0 (RXD), του μικροελεγκτή που βρίσκεται στο μπροστινό μέρος του αυτοκινήτου. Μόλις ολοκληρωθεί η λήψη, ο μικροελεγκτής μέσω του προγράμματος αναλαμβάνει να απεικονίσει την μετρούμενη απόσταση του εμποδίου στην οθόνη (LCD). 33
Επίσης στην πόρτα D του μπροστινού μικροελεγκτή συνδέονται τρεις διακόπτες. Στην ακίδα PD7 είναι συνδεδεμένος ο διακόπτης που επιτρέπει στο χρήστη να ρυθμίσει τη μετρούμενη απόσταση του αισθητηρίου πάνω στο όχημα. Στην ακίδα PD6 είναι συνδεδεμένος ο διακόπτης που διαγράφει την μετρούμενη απόσταση. Η ύπαρξή του οφείλεται στο γεγονός ότι η τιμή αποθηκεύεται στη μνήμη EEPROM και διατηρείται μετά την απενεργοποίηση του συστήματος. Τέλος στην ακίδα PD4 είναι συνδεδεμένος ο διακόπτης που ενεργοποιώντας τον εκπέμπεται ένας βόμβος από τον βομβητή που είναι συνδεδεμένος στο PA2. Όταν ο βομβητής είναι ενεργοποιημένος, εκπέμπει έναν βόμβο, με συχνότητα ανάλογη με την απόσταση του οχήματος από το εμπόδιο. Στη μέγιστη απόσταση εμποδίου, η παύση ανάμεσα στους ηχητικούς βόμβους κρατάει ένα δευτερόλεπτο. Όταν το όχημα πλησιάσει το εμπόδιο, ο χρόνος της παύσης μειώνεται ανάμεσα στους επαναλαμβανόμενους βόμβους. Σε απόσταση δέκα εκατοστών ο ηχητικός βόμβος γίνεται συνεχόμενος. 34
ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ 4.1 Αρχιτεκτονικό Σχέδιο του συστήματος Στο αρχιτεκτονικό σχέδιο απεικονίζονται όλα τα υποσυστήματα καθώς και το κυρίως σύστημα. Περιλαμβάνει τις κύριες ροές πληροφοριών μεταξύ των υποσυστημάτων και του κυρίως συστήματος και παρουσιάζεται συνήθως ως ένα διάγραμμα κουτιών. Αποτελείται από πέντε εισόδους, τους μικροελεγκτές ATmega8515 και δύο εξόδους. Είσοδοι είναι το αισθητήριο υπερήχων (Ultrasonic Ranger),τρεις διακόπτες (button 4,6,7) και δύο κεραίες επικοινωνίας μεταξύ πομπού και δέκτη. Έξοδοι είναι μία οθόνη LCD και ένας βομβητής (Buzzer), για την παραγωγή βόμβων. Σχήμα 4.1 Αρχιτεκτονικό Σχέδιο του συστήματος. 35
4.2 Διάγραμμα Ροής Στο παρακάτω σχήμα απεικονίζεται το Διάγραμμα Ροής του συστήματος. Τα υποσυστήματα αναπαριστώνται σε κουτιά και τα βέλη δείχνουν τη ροή τους. Σχήμα 4.2 Διάγραμμα Ροής του συστήματος. 36
4.3 Ηλεκτρονικό Σχέδιο του συστήματος Το ηλεκτρονικό σχέδιο όπως απεικονίζεται παρακάτω περιλαμβάνει τη συνδεσμολογία ολόκληρου του συστήματος. Στη συνέχεια του κεφαλαίου περιγράφεται αναλυτικά η συνδεσμολογία για το κάθε υποσύστημα ξεχωριστά. Σχήμα 4.3 Ηλεκτρονικό Σχέδιο του συστήματος. 37
4.3.1 Κατανομή ακίδων των Μικροελεγκτών ATmega8515 Για την υλοποίηση του συστήματος χρησιμοποιήθηκαν δύο μικροελεγκτές ATmega8515. Στα ακόλουθα σχήματα διακρίνεται η κατανομή των ακίδων κάθε πόρτας. Οι λευκές ακίδες δεν έχουν χρησιμοποιηθεί κατά την υλοποίηση. 4.3.1.1 Συνδεσμολογία του Μικροελεγκτή ATmega8515. Υποσύστημα αποστολής απόστασης (μικροελεγκτής στο πίσω μέρος του αυτοκινήτου) Είσοδος του μικροελεγκτή ATmega8515: 1) Πόρτα E στην ακίδα PE0. Είναι συνδεδεμένο το αισθητήριο υπερήχων το οποίο στέλνει στην ακίδα ένα παλμό ανάλογο με το χρόνο επιστροφής του. Έξοδοι του μικροελεγκτή ATmega8515: 1) Πόρτα C στην ακίδα PC3. Είναι συνδεδεμένο το αισθητήριο υπερήχων το οποίο δέχεται ένα παλμό από την ακίδα διάρκειας 10 μsec προκειμένου ο αισθητήρας να ξεκινήσει τη διαδικασία. 2) Πόρτα D στην ακίδα PD1. Είναι συνδεδεμένος ο buffer (HC7404s) στον οποίο αποθηκεύεται προσωρινά η μετρούμενη τιμή της απόστασης. Σχήμα 4.4 Απεικόνιση συνδεσμολογίας μικροελεγκτή ATmega8515. Υποσύστημα αποστολής της απόστασης. 38
4.3.1.2 Συνδεσμολογία του Μικροελεγκτή ATmega8515. Υποσυστήματος λήψης της απόστασης (μικροελεγκτής στο μπροστά μέρος του αυτοκινήτου) Είσοδοι του μικροελεγκτή ATmega8515: 1) Πόρτα D στην ακίδα PD0. Είναι συνδεδεμένος ο buffer (HC7404s) στον οποίο αποθηκεύεται προσωρινά η μετρούμενη τιμή της απόστασης. 2) Πόρτα B στις ακίδες PB4, PB6, PB7. Είναι συνδεδεμένοι οι διακόπτες ελέγχου του βομβητή, διαγραφής μνήμης, και ρύθμισης ελάχιστης απόστασης. Έξοδοι του μικροελεγκτή ATmega8515: 1) Πόρτα Α στην ακίδα PΑ2. Είναι συνδεδεμένος ο βομβητής. 2) Πόρτα C Είναι συνδεδεμένη η οθόνη (LCD). Σχήμα 4.5 Απεικόνιση συνδεσμολογίας μικροελεγκτή ATmega8515. Υποσύστημα λήψης απόστασης. 39
4.3.2 Ηλεκτρονικό σχέδιο αισθητηρίου υπερήχων Το αισθητήριο υπερήχων είναι συνδεδεμένο με τον μικροελεγκτή ATmega8515 σε συγκεκριμένες ακίδες της πόρτας C και E. Στα Σχήματα 4.6 και 4.7 απεικονίζονται αναλυτικά το ηλεκτρονικό σχέδιο του αισθητηρίου υπερήχων και οι ακροδέκτες του. Σχήμα 4.6 Ηλεκτρονικό σχέδιο αισθητηρίου υπερήχων. Σχήμα 4.7 Απεικόνιση ακροδεκτών αισθητηρίου υπερήχων. 40
4.3.3 Ηλεκτρονικό σχέδιο του Buffer (HC7404s) πομπού Στο υποσύστημα χρησιμοποιείται ένας buffer (HC7404s) ο οποίος αποτελεί ένα προσωρινό αποθηκευτικό χώρο δεδομένων προκειμένου να εξασφαλισθεί η απαιτούμενη σταθερή ροής αυτών. Σχήμα 4.8 Ηλεκτρονικό σχέδιο του Buffer υποσυστήματος ασύρματης επικοινωνίας. 4.3.4 Ηλεκτρονικό σχέδιο του Buffer (HC7404s) δέκτη Στο υποσύστημα χρησιμοποιείται ένας buffer (HC7404s) ο οποίος αποτελεί ένα προσωρινό αποθηκευτικό χώρο δεδομένων προκειμένου να εξασφαλισθεί η απαιτούμενη σταθερή ροής αυτών. Σχήμα 4.9 Ηλεκτρονικό σχέδιο του Buffer υποσυστήματος ασύρματης επικοινωνίας. 41
4.3.5 Ηλεκτρονικό σχέδιο πομπού Ο πομπός δέχεται τα δεδομένα από τον buffer και τα αποστέλλει ασύρματα στον δέκτη. Στα Σχήματα 4.10 και 4.11 απεικονίζονται το ηλεκτρονικό σχέδιο του πομπού και οι ακροδέκτες του. Σχήμα 4.10 Ηλεκτρονικό σχέδιο πομπού. Ακροδέκτης Σύνδεση 1,4,7,10,13 Γείωση (GND) 2 Είσοδοι Vc 8Volt 3 Είσοδοι Vc 8Volt 15 Τροφοδοσία από +4Volt μέχρι +12Volt Σχήμα 4.11 Ακροδέκτες πομπού. 42
4.3.6 Ηλεκτρονικό σχέδιο δέκτη Στο σύστημα χρησιμοποιείτε ένας δέκτης, ο οποίος μέσω ενός buffer λαμβάνει ασύρματα τα δεδομένα από τον πομπό, και τα οδηγεί στον μικροελεγκτή. Στα Σχήματα 4.12 και 4.13 απεικονίζονται το ηλεκτρονικό σχέδιο τ Σχήμα 4.12 Ηλεκτρονικό σχέδιο δέκτη. Ακροδέκτης Σύνδεση Ακροδέκτης Σύνδεση 1 RF + Vcc 8,9 Καμία σύνδεση 2 RF GND 10 AF + Vcc 3 Είσοδος δεδομένων (ANT) 11 AF + GRD 4 Καμία σύνδεση 12 AF + Vcc 5 Καμία σύνδεση 13 TEST POINT 6 Καμία σύνδεση 14 Έξοδος δεδομένων 7 RF GND 15 AF + Vcc Σχήμα 4.13 Ακροδέκτες δέκτη. 43
4.3.7 Ηλεκτρονικό σχέδιο οθόνης (LCD) Η οθόνη διαθέτει 3 ακροδέκτες για έλεγχο της μετάδοσης των bits που συνδέονται στους ακροδέκτες 1,2,3 της πόρτας C του μικροελεγκτή. Επίσης οι ακροδέκτες τροφοδοσίας, μπορούν να ρυθμιστούν για 0 έως 5V( ρύθμιση αντίθεσης). Ακόμη διαθέτει 4 ακροδέκτες που συνδέονται στην πόρτα C στους ακροδέκτες 4,10,11,12 για τη μετάδοση των δεδομένων. Σχήμα 4.14 Ηλεκτρονικό σχέδιο οθόνης (LCD). 4.3.8 Ηλεκτρονικό σχέδιο των διακοπτών (Buttons) Το σύστημα αποτελείται από τρείς διακόπτες (Buttons) τα οποία συνδέονται στην πόρτα B του μικροελεγκτή που βρίσκεται στο μπροστινό μέρος του αυτοκινήτου. Σχήμα 4.15 Ηλεκτρονικό σχήμα των διακοπτών. 44
4.3.9 Ηλεκτρονικό σχέδιο του βομβητή (Buzzer) Το σύστημα χρησιμοποιεί ένα βομβητή ο οποίος συνδέεται στην πόρτα Α (PORTA) του αντίστοιχου μικροελεγκτή ATmega8515. Σχήμα 4.16 Ηλεκτρονικό σχέδιο του βομβητή. 4.4 Ηλεκτρονικό σύστημα επιβράδυνσης οχήματος Για να επιβραδυνθεί η ταχύτητα του οχήματος συνδέθηκε ένα κύκλωμα στον κινητήρα των τροχών. Το κύκλωμα αυτό αποτελείται από ένα ποτενσιόμετρο και ένα τρανζίστορ BDX53. Με τη μείωση της τάσης (Volt) επιτεύχθηκε η επιθυμητή ταχύτητα. Έτσι ο αισθητήρας είναι ικανός να ανιχνεύσει την απόσταση από το εμπόδιο με μεγαλύτερη ακρίβεια. Σχήμα 4.17 Κύκλωμα αυξομείωσης ταχύτητας κινητήρα τροχών. 45
5.1 Έλεγχος κλειστού κουτιού ΚΕΦΑΛΑΙΟ 5 ΕΛΕΓΧΟΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ Ο έλεγχος κλειστού κουτιού είναι απαραίτητος για την ολοκλήρωση του έργου. Συγκεκριμένα ελέγχονται ένα προς ένα τα υλικά του συστήματος με σκοπό τη διόρθωση των λαθών στα στάδια ανάπτυξης του συστήματος. TEST 1 Έλεγχος λειτουργίας αισθητηρίου υπερήχων. TEST 2 Έλεγχος μεταφοράς δεδομένων από το αισθητήριο υπερήχων στον μικροελεγκτή ATmega8515. TEST 3 Έλεγχος μεταφοράς δεδομένων από τον μικροελεγκτή στον buffer. TEST 4 Έλεγχος μεταφοράς δεδομένων από τον buffer στο πομπό. TEST 5 Έλεγχος επικοινωνίας πομπού και δέκτη TEST 6 Έλεγχος μεταφοράς δεδομένων από τον δέκτη στον buffer. TEST 7 Έλεγχος μεταφοράς δεδομένων από τον buffer στο μικροελεγκτή. TEST 8 Έλεγχος εμφάνισης της απόστασης στην οθόνη. TEST 9 Έλεγχος λειτουργίας διακόπτη προσαρμογής μετρούμενης απόστασης TEST 10 Έλεγχος λειτουργίας διακόπτη ενεργοποίησης/απενεργοποίησης βομβητή. TEST 11 Έλεγχος λειτουργίας διακόπτη διαγραφής μετρούμενης απόστασης TEST 1 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος λειτουργίας αισθητηρίου υπερήχων Αποστολή παλμών, αναμονή επιστροφής τους Παλμοί Ένδειξη τάσης στον ακροδέκτη εξόδου του αισθητηρίου Θετικό Θετικό 46
TEST 2 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος μεταφοράς δεδομένων από το αισθητήριο υπερήχων στον μικροελεγκτή. Αναμονή επιστροφής των παλμών, παραγωγή παλμού στην ακίδα εισόδου του μικροελεγκτή Παλμοί Ένδειξη τάσης στον ακροδέκτη εισόδου του μικροελεγκτή Θετικό Θετικό TEST 3 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος μεταφοράς δεδομένων από τον μικροελεγκτή στο buffer Αποθήκευση μετρούμενης απόστασης στη μνήμη του μικροελεγκτή, Αποστολή στο buffer Δεδομένα σε δυαδική μορφή Ένδειξη τάσης στον ακροδέκτη εισόδου του buffer Θετικό Θετικό TEST 4 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος μεταφοράς δεδομένων από τον buffer στο πομπό Λήψη μεταβλητής από το buffer, αποστολή στο πομπό Δεδομένα Ένδειξη τάσης στον ακροδέκτη του πομπού Θετικό Θετικό 47
TEST 5 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος επικοινωνίας πομπού και δέκτη Ασύρματη αποστολή δεδομένων (πομπός), αναμονή λήψης (δέκτης) Ασύρματη επικοινωνία Ένδειξη τιμής στον δέκτη Θετικό Θετικό TEST 6 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος μεταφοράς δεδομένων από τον δέκτη στον buffer Λήψη δεδομένων, αποστολή μεταβλητής απόστασης Μεταβλητή απόστασης Ένδειξη τάσης στον ακροδέκτη του buffer Θετικό Θετικό TEST 7 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος μεταφοράς δεδομένων από τον buffer στον μικροελεγκτή Λήψη μεταβλητής απόστασης, αποστολή στον μικροελεγκτή Μεταβλητή απόστασης Ένδειξη τάσης στον ακροδέκτη εισόδου του μικροελεγκτή Θετικό Θετικό 48
TEST 8 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος εμφάνισης της απόστασης στην οθόνη Λήψη μεταβλητής απόστασης από τον μικροελεγκτή, μαθηματικές πράξεις, αποστολή στην οθόνη Δεδομένα από τον μικροελεγκτή Ένδειξη της απόστασης στην οθόνη σε εκατοστά Θετικό Θετικό TEST 9 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος λειτουργίας διακόπτη προσαρμοσμένης μετρούμενης απόστασης Ενεργοποίηση διακόπτη (PB7) Τάση από την συνδεδεμένη πόρτα του μικροελεγκτή Αποθήκευση της τρέχουσας απόστασης στη μνήμη, ανάλογο μήνυμα στην οθόνη Θετικό Θετικό TEST 10 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος λειτουργίας διακόπτη ενεργοποίησης/ Απενεργοποίησης βομβητή Ενεργοποίηση διακόπτη (PB4) Τάση από την συνδεδεμένη πόρτα του μικροελεγκτή Ενεργοποίηση/Απενεργοποίηση βομβητή Θετικό Θετικό TEST 11 Έγκυρη κλάση Είσοδοι Αναμενόμενα αποτελέσματα Αποτέλεσμα Αποδοχή Έλεγχος λειτουργίας διακόπτη διαγραφής μετρούμενης απόστασης Ενεργοποίηση διακόπτη (PB6) Τάση από την συνδεδεμένη πόρτα του μικροελεγκτή Διαγραφή της τρέχουσας απόστασης στη μνήμη, μήνυμα στην οθόνη Θετικό Θετικό 49
5.2 Έλεγχος ανοικτού κουτιού Ο έλεγχος ανοικτού κουτιού είναι απαραίτητος για την εξέταση των αποτελεσμάτων του λογισμικού. Ελέγχονται οι συναρτήσεις αρχικοποίησης, οι συναρτήσεις μέτρησης και οι κόμβοι του πηγαίου κώδικα. Ακολουθούν όλοι οι έλεγχοι ανοικτού κουτιού του συστήματος. ΠΙΝΑΚΑΣ 1 ΑΠΑΙΤΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΚΩΔΙΚΑΣ ΣΥΣΤΗΜΑΤΟΣ Παραμετροποίηση για αποστολή μέτρησης void init() UCR = 0x08 0x04; UBRR = 207; DDRC = 0xff; TCNT0 = reload0; TCCR0 = 3; TIMSK = 0x02 0x08 0x80; TCCR1B = 0x00; #asm sei; #endasm ΑΝΑΜΕΝΟΜΕΝΟ ΑΠΟΤΕΛΕΣΜΑ ΑΠΟΤΕΛΕΣΜΑ ΕΞΟΔΟΥ ΕΛΕΓΧΟΣ Παραμετροποίηση για αποστολή μέτρησης Παραμετροποίηση για αποστολή μέτρηση Επιτυχής ΠΙΝΑΚΑΣ 2 Μέτρηση χρονικής διάρκειας ΑΠΑΙΤΗΣΗ ΣΥΣΤΗΜΑΤΟΣ παλμού void measure() TCNT1 = 0; PORTC = 0xff; ΚΩΔΙΚΑΣ ΣΥΣΤΗΜΑΤΟΣ waiting = 1; delay_us(11); PORTC = 0x00; TCCR1B = 0x01; ΑΝΑΜΕΝΟΜΕΝΟ ΑΠΟΤΕΛΕΣΜΑ ΑΠΟΤΕΛΕΣΜΑ ΕΞΟΔΟΥ ΕΛΕΓΧΟΣ Μέτρηση χρονικής διάρκειας παλμού Μέτρηση χρονικής διάρκειας παλμού Επιτυχής 50
ΠΙΝΑΚΑΣ 3 ΑΠΑΙΤΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΚΩΔΙΚΑΣ ΣΥΣΤΗΜΑΤΟΣ ΑΝΑΜΕΝΟΜΕΝΟ ΑΠΟΤΕΛΕΣΜΑ ΑΠΟΤΕΛΕΣΜΑ ΕΞΟΔΟΥ ΕΛΕΓΧΟΣ Αποστολή μέτρησης void TransmitDistance(void) while(!usr.5) ; UCR.0 = 1; UDR = currdist >> 8; while(!usr.5) ; UCR.0 = 0; UDR = currdist & 0xff; Αποστολή μέτρησης Αποστολή μέτρησης Επιτυχής ΠΙΝΑΚΑΣ 4 ΑΠΑΙΤΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΚΩΔΙΚΑΣ ΣΥΣΤΗΜΑΤΟΣ Παραμετροποίηση για λήψη μέτρησης void init() UCR = 0x80 0x10 0x04; UBRR = 207 lcd_init(16); lcd_clear(); PORTB = 0xff; DDRA = 0xff; DDRD = 0x02; DDRB = 0x00; TCNT0=reload0; TCCR1B = 0x01 0x08; OCR1A = 4000; TIMSK = 0x40 0x02; lcd_putsf("initdone"); delay_ms(500); lcd_clear(); #asm sei #endasm 51
ΑΝΑΜΕΝΟΜΕΝΟ ΑΠΟΤΕΛΕΣΜΑ Παραμετροποίηση για λήψη μέτρησης ΑΠΟΤΕΛΕΣΜΑ ΕΞΟΔΟΥ ΕΛΕΓΧΟΣ Παραμετροποίηση για λήψη μέτρησης Επιτυχής ΑΠΑΙΤΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΚΩΔΙΚΑΣ ΣΥΣΤΗΜΑΤΟΣ ΠΙΝΑΚΑΣ 5 Λήψη απόστασης και εμφάνιση στην οθόνη void main(void) init(); while(1) if(pollcount <= 0) pollcount = POLL_TIME; calbuttonscan(); if(rxflag) rxflag = 0; distance = hbyte; distance <<= 8; distance = lbyte; distarray[currdistindex++] = distance - calibrationdist; currdistindex %= 7; calibrateddist = 0; for(i=0;i<8;i++) calibrateddist += distarray[i] calibrateddist >>= 3; if(calibrateddist > 0) soundreload = calibrateddist << 2; else soundreload = PULSE_DURATION; sprintf(lcd_string,"%- dcm",calibrateddist); lcd_clear(); lcd_puts(lcd_string); 52
ΑΝΑΜΕΝΟΜΕΝΟ ΑΠΟΤΕΛΕΣΜΑ ΑΠΟΤΕΛΕΣΜΑ ΕΞΟΔΟΥ ΕΛΕΓΧΟΣ Λήψη απόστασης και εμφάνιση στην οθόνη Λήψη απόστασης και εμφάνιση στην οθόνη Επιτυχής ΠΙΝΑΚΑΣ 6 ΑΠΑΙΤΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΚΩΔΙΚΑΣ ΣΥΣΤΗΜΑΤΟΣ Ανάγνωση διακοπτών void calbuttonscan(void) switch(pollstate case RELEASE: button = (PINB & 0xf0); if(button!= 0xf0) pollstate = DEBOUNCE; break; case DEBOUNCE: if(button!= (PINB & 0xf0)) pollstate = RELEASE; else pollstate = STILLPRESSED; switch(button) case 0x70: calibrationdist = distance; lcd_clear(); delay_ms(250); lcd_putsf("calibrated"); delay_ms(250); sprintf(lcd_string,"%dcm",calibrateddist); delay_ms(250); break; case 0xb0: calibrationdist = 0; lcd_clear(); delay_ms(250); lcd_putsf("distzeroed"); delay_ms(250); break; case 0xe0: soundenabled =!(soundenabled); lcd_clear(); delay_ms(250); lcd_putsf("snd toggled"); delay_ms(250); 53
break; default: pollstate = RELEASE; break; case STILLPRESSED: if(button!= (PINB & 0xf0)) pollstate = RELEASE; break; default: ΑΝΑΜΕΝΟΜΕΝΟ ΑΠΟΤΕΛΕΣΜΑ Ενέργεια ανάλογα με τον διακόπτη που ενεργοποιήθηκε ΑΠΟΤΕΛΕΣΜΑ ΕΞΟΔΟΥ ΕΛΕΓΧΟΣ Ενέργεια ανάλογα με τον διακόπτη που ενεργοποιήθηκε Επιτυχής 5.3 Έλεγχος Προδιαγραφών Τίτλος: Έλεγχος ενεργοποίησης διακόπτη μετρούμενης απόστασης ανάλογα με τη θέση του αισθητηρίου πάνω στο όχημα (Διακόπτης 7). Εικασίες Λαθών: Τι θα συμβεί αν ενεργοποιηθούν ταυτόχρονα δύο διακόπτες; Υπάρχει περίπτωση να μην αποθηκευτεί η επιθυμητή απόσταση ώστε σε αυτό το σημείο να είναι μηδέν (Calibration), παρόλο που έχει ενεργοποιηθεί ο διακόπτης 7; Υπάρχει περίπτωση να μην υπάρχει επικοινωνία του διακόπτη 7 με τον μικροελεγκτή; Διαδικασίες Τεστ: Έλεγχος σωστής λειτουργίας του λογισμικού στο σημείο που αφορά την περίπτωση να ενεργοποιηθούν δύο διακόπτες ταυτόχρονα έτσι ώστε να γίνει η ρύθμιση μόνο όταν ενεργοποιηθεί ο διακόπτης 7. Έλεγχος του λογισμικού στο σημείο που αφορά την ενεργοποίηση του διακόπτη 7. Έλεγχος της επικοινωνίας του διακόπτη 7 με τον μικροελεγκτή. Σε περίπτωση κάποιου σφάλματος θα πρέπει να αποκαθίσταται η επικοινωνία άμεσα. 54