ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΘΕΩΡΗΤΙΚΗΣ ΗΛΕΚΤΡΟΤΕΧΝΙΑΣ ΚΑΙ ΠΑΡΑΓΩΓΗΣ Β ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Βλάχου Ελένη Αριθμός Μητρώου: 7226 Φοιτήτρια του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Θέμα: «Σύστημα ανίχνευσης κίνησης ατόμου με κατανεμημένους αισθητήρες» Επιβλέπων: Αντωνακόπουλος Θεόδωρος Αριθμός Διπλωματικής Εργασίας:
2 Πάτρα, 1 Ιουλίου 2015
ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα: «Σύστημα ανίχνευσης κίνησης ατόμου με κατανεμημένους αισθητήρες» Της φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Βλάχου Ελένης Αριθμός Μητρώου: 7226 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Αντωνακόπουλος Θεόδωρος, Καθηγητής Ο Διευθυντής του Τομέα Φακωτάκης Νικόλαος, Καθηγητής i
Αριθμός Διπλωματικής Εργασίας: Θέμα: «Σύστημα ανίχνευσης κίνησης ατόμου με κατανεμημένους αισθητήρες» Φοιτήτρια: Βλάχου Ελένη Επιβλέπων: Αντωνακόπουλος Θεόδωρος Καθηγητής ΠΕΡΙΛΗΨΗ Σκοπός της παρούσας διπλωματικής εργασίας είναι η μελέτη του πρωτοκόλλου ΒLE (Bluetooth Low energy) και η υλοποίηση ενός συστήματος για ανίχνευση κίνησης με κατανεμημένους αισθητήρες. Συγκεκριμένα, οι αισθητήρες που χρησιμοποιήθηκαν είναι μικρόφωνα. Με βάση το τελικό μοντέλο που αναπτύχθηκε, η ανίχνευση της θέσης πραγματοποιείται μέσω της ισχύος που εκπέμπεται από το κινούμενο σημείο και λαμβάνεται από τα γύρω συστήματα που βρίσκονται στον ίδιο χώρο.στο πρώτο κεφάλαιο παρουσιάζεται το πρωτόκολλο BLE (Bluetooth Low energy),οι βασικές αρχές λειτουργίας του καθώς και η αρχιτεκτονική του. Στο δεύτερο κεφάλαιο παρουσιάζεται η πλατφόρμα υλοποίησης (DA14580 Development Kit) και τα υπόλοιπα αναπτυξιακά με βάση τα οποία υλοποιήθηκε το τελικό σύστημα ανίχνευσης.στο τρίτο κεφάλαιο παρουσιάζεται το μικρόφωνο, η αρχή λειτουργίας του καθώς και ο ενισχυτής που υλοποιήθηκε με σκοπό την ορθή λειτουργία του συστήματος. Έπειτα στο τέταρτο κεφάλαιο παρουσιάζεται αναλυτικά το τελικό μοντέλο του συστήματος για τον εντοπισμό της θέσης και η υλοποίηση του συστήματος για την μέτρηση της ισχύος του ηχητικού σήματος, η επικοινωνία που πραγματοποιήθηκε και τα φίλτρα που χρησιμοποιήθηκαν. Στο πέμπτο κεφάλαιο παρουσιάζονται οι μετρήσεις που πραγματοποιήθηκαν για κάθε κομμάτι του συστήματος ξεχωριστά. Τέλος στο έκτο κεφάλαιο παρουσιάζονται τα συμπεράσματα που προέκυψαν από την υλοποίηση του συνολικού μοντέλου. iii
ABSTRACT The scope of this thesis is the study of the BLE (Bluetooth Low Energy) protocol and the implementation of a system for detecting movement with distributed sensors. Especially the implementation of this system is done with the use of microphones. The final model that was made detects the position of a moving object by the power that this system emits and also by the power that the other systems, which are around this, receive. In the first chapter there is a presentation of the BLE protocol, its basic concepts and its architecture. In the second chapter follows the presentation of the development kit (DA14580) and the other system that was used in order to create the whole system for detection. Next follows the basic concepts of the microphone sensor, the amplifier that was made so that the whole system will work properly. In the fourth chapter there is an analytical description of the final model for detecting the position of an object and also the implementation of the system for measuring the power of a sound wave. Also there is a description of the communication that was used and of the filters. Τhe fifth chapter presents the measurements that were made in each part of the system that was implemented. Finally, the sixth chapter presents the conclusions that accrued by the implementation of the whole model. iv
Ευχαριστίες Ευχαριστώ θερμά τον καθηγητή μου και επιβλέποντα της διπλωματικής μου εργασίας κ. Αντωνακόπουλο Θεόδωρο που με την υποστήριξή του, τις γνώσεις και την εμπειρία του με βοήθησε να ολοκληρώσω την παρούσα εργασία. Ευχαριστώ τον Πέτρο Δημόπουλο,τον Στέλιο Κορκοτσίδη και την Στέλλα Ζώτου για την βοήθειά τους κατά τη διάρκεια της εργασίας αυτής. Επίσης, ευχαριστώ τους φίλους μου που μου στάθηκαν όλο αυτό το διάστημα. Τέλος, ευχαριστώ ιδιαίτερα την οικογένειά μου για την αμέριστη στήριξη που μου προσέφεραν τόσα χρόνια. v
Περιεχόμενα 1 ΒLE (Bluetooth Low Energy) 1 1.1 Εισαγωγή................................ 1 1.2 Τύποι συσκευών............................ 1 1.3 Βασικές Αρχές Λειτουργίας...................... 2 1.4 Αρχιτεκτονική Πρωτοκόλλου..................... 5 1.4.1 Controller............................ 5 1.4.2 Host............................... 10 1.4.3 Application Layer....................... 17 2 Πλατφόρμα υλοποίησης Εργαλεία Λογισμικού 21 2.1 Εισαγωγή................................ 21 2.2 DA14580 Chip............................. 21 2.3 DA14580 Development Kit...................... 23 2.4 ADC Converter (AD7476A)...................... 24 2.5 ΡmodAD1................................ 25 2.6 PmodBB................................. 26 2.7 Logitech X100 Wireless Speaker................... 26 2.8 Software Tools............................. 27 3 Aισθητήρας μικροφώνου - Κύκλωμα ενισχυτή 29 3.1 Εισαγωγή................................ 29 3.2 Μικρόφωνα............................... 29 3.3 Hλεκτρικό Πυκνωτικό Μικρόφωνο CMA-4544 PF-W........ 31 3.4 Ενισχυτής μικροφώνου LM358.................... 33 3.5 Υλοποίηση ενισχυτή.......................... 34 3.6 Διαιρέτης τάσης............................ 35 4 Mοντέλο εντοπισμού θέσης - Μέτρηση ισχύος ηχητικού σήματος 37 4.1 Εισαγωγή................................ 37 4.2 Υλοποίηση μοντέλου ανίχνευσης κίνησης.............. 37 4.3 SPI Interface.............................. 43 4.4 FIR Φίλτρο............................... 47 4.5 Mέτρηση ισχύος ηχητικού σήματος.................. 49 5 Πειραματικά Αποτελέσματα 51 5.1 Εισαγωγή................................ 51 5.2 Μετρήσεις κυκλώματος ενισχυτή και μικροφώνου......... 51 5.3 Μετρήσεις Background Noise..................... 54 5.4 Μετρήσεις του συνολικού συστήματος................ 56 vi
ΠΕΡΙΕΧΟΜΕΝΑ 6 Συμπεράσματα 59 vii
Κατάλογος σχημάτων 1.1 Αύξηση ταχυτήτων........................... 2 1.2 Εκδόσεις Bluetooth και τύποι συσκευών.............. 2 1.3 Βutton - Cell Βattery.......................... 3 1.4 Αρχιτεκτονική πρωτοκόλλου..................... 6 1.5 Συχνότητες Καναλιών......................... 6 1.6 Δομή πακέτου επιπέδου ζεύξης................... 8 1.7 Active και Passive Scanning...................... 8 1.8 Connection Events........................... 9 1.9 Δομή πακέτου στο L2CAP...................... 10 1.10 Pairing και Bonding διαδικασίες................... 12 1.11 Ιεραρχία δεδομένων GATT...................... 14 1.12 Πολύπλοκες σχέσεις υπηρεσιών................... 15 1.13 Πολύπλοκες σχέσεις του προφίλ υπηρεσιών............ 19 2.1 Block Diagram DA14580....................... 22 2.2 DA14580 Development Kit...................... 23 2.3 Block diagram AD7476A....................... 24 2.4 PmodAD1................................ 25 2.5 Circuit diagram............................. 26 2.6 PmodBB................................. 26 2.7 Logitech X100............................. 27 2.8 SDK root directory........................... 27 3.1 Εσωτερικό πυκνωτικού μικροφώνου................. 30 3.2 Πυκνωτικό Μικρόφωνο........................ 30 3.3 Omnidirectional Microphone diagram................ 31 3.4 CMA-4544 PF-W............................ 32 3.5 Schematic Diagram........................... 33 3.6 Απόκριση συχνότητας......................... 33 3.7 LM358.................................. 33 3.8 Eνισχυτής................................ 34 3.9 Noninverting DC Gain......................... 34 3.10 Τελικός Ενισχυτής........................... 35 3.11 Απόκριση συχνότητας ενισχυτή.................... 35 3.12 Διαιρέτης Τάσης............................ 36 4.1 Σήμα πηγής χωρίς θόρυβο...................... 38 4.2 Σήμα πηγής με θόρυβο........................ 38 4.3 Διάγραμμα δέκτη........................... 39 viii
ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ 4.4 Υπολογισμός απόστασης πηγής από κόμβο............. 40 4.5 Υπολογισμός απόστασης πηγής για όλους τους κόμβους..... 40 4.6 Θέση πηγής στο (2,4)......................... 41 4.7 Απομάκρυνση πηγής λόγω θορύβου................. 41 4.8 Θέση πηγής στο (3,2)......................... 42 4.9 Απομάκρυνση πηγής λόγω θορύβου................. 42 4.10 Θέση πηγής στο (4,5)......................... 43 4.11 Απομάκρυνση πηγής λόγω θορύβου................. 43 4.12 Μaster-Slave.............................. 44 4.13 Circular Buffer............................. 45 4.14 SPI επικοινωνία............................ 45 4.15 SPI CPOL=0 and CPHA=0...................... 47 4.16 FIR Highpass Filter.......................... 47 4.17 Φιλτραρισμένο Σήμα.......................... 48 4.18 Κυκλικός buffer Βήμα 1........................ 48 4.19 Κυκλικός buffer Βήμα 2........................ 48 4.20 Κυκλικός buffer Βήμα 3........................ 49 4.21 Κυκλικός buffer Βήμα 4........................ 49 5.1 Απόκριση συχνότητας ενισχυτή.................... 52 5.2 Γραμμική περιοχή λειτουργίας ενισχυτή............... 52 5.3 Είσοδος ενισχυτή Έξοδος κυκλώματος μικροφώνου....... 53 5.4 Έξοδος ενισχυτή............................ 54 5.5 Είσοδος Έξοδος ενισχυτή...................... 54 5.6 Κέρδος ενισχυτή............................ 55 5.7 Background Noise το πρωί...................... 55 5.8 Background Noise το απόγευμα................... 56 5.9 Ντεσιμπέλ Απόσταση με χρήση ντεσιμπελόμετρου....... 57 5.10 Ντεσιμπέλ Απόσταση με χρήση Μatlab.............. 57 ix
Κεφάλαιο 1 ΒLE (Bluetooth Low Energy) 1.1 Εισαγωγή Το Bluetooth Low Energy είναι μια καινούργια τεχνολογία η οποία έχει σχεδιαστεί σαν μια συμπληρωματική τεχνολογία του κλασικού Bluetooth 4.0 καθώς και σαν την χαμηλότερης κατανάλωσης ασύρματη τεχνολογία που μπορεί να σχεδιαστεί.παρότι χρησιμοποιεί πολλά στοιχεία από την τεχνολογία του κλασικού Bluetooth, το Bluetooth Low Energy πρέπει να θεωρηθεί μια εντελώς διαφορετική τεχνολογία. Το κλασικό Bluetooth σχεδιάστηκε για να ενώσει τους κόσμους των υπολογιστών και των τηλεπικοινωνιών, συνδέοντας τα κινητά τηλέφωνα με τους προσωπικούς υπολογιστές. Η κορυφαία εφαρμογή για το Bluetooth αποδείχτηκε να είναι η ηχητική σύνδεση μεταξύ του κινητού τηλεφώνου και του ακουστικού γύρω από το αυτί. Όμως με την εξέλιξη της τεχνολογίας, όλο και περισσότερες εφαρμογές αναπτύσσονταν οι οποίες όμως απαιτούσαν περισσότερο εύρος ζώνης με αποτέλεσμα όλο και πιο γρήγορες συχνότητες να προστίθενται στο οικοσύστημα του Bluetooth. To Bluetooth Low Energy εστιάζει σε διαφορετική κατεύθυνση. Αντί να αυξάνει τα διαθέσιμα data rate, έχει βελτιστοποιηθεί για άκρος χαμηλή κατανάλωση ενέργειας. Αυτό σημαίνει ότι δεν θα υπάρχουν υψηλά data rate ή ακόμα διατήρηση της σύνδεσης για πολλές ώρες ή μέρες. Αυτό είναι αρκετά ενδιαφέρον καθώς οι περισσότερες ενσύρματες και ασύρματες επικοινωνίες αυξάνουν τις ταχύτητές τους όπως φαίνεται και στο σχήμα 1.1. Aυτή η διαφορετική κατεύθυνση του Bluetooth Low Energy προέκυψε από την κατανόηση ότι η κλασική τεχνολογία του Bluetooth δεν μπορεί να επιτύχει τις απαιτήσεις χαμηλής κατανάλωσης που απαιτούν οι συσκευές που λειτουργούν με μπαταρίες button-cell. Άρα, το θεμελιώδες σημείο στον σχεδιασμό με χαμηλή κατανάλωση είναι η χρήση μπαταριών button-cell, καθώς είναι οι πιο μικρές, οι πιο φθηνές και αυτές με την μεγαλύτερη διαθεσιμότητα. 1.2 Τύποι συσκευών Μέσω του Bluetooth Low Energy υπάρxoυν δύο τύποι συσκευών: dualmode και Single-mode [1]. Μια dual-mode συσκευή υποστηρίζει και το κλασικό Bluetooth και το Bluetooth low energy. Λόγω του ότι υποστηρίζει το 1
1.3. ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΑΣ Σχήμα 1.1: Αύξηση ταχυτήτων κλασικό Bluetooth, μπορεί να επικοινωνήσει με εκατομμύρια από τις υπάρχουσες Bluetooth συσκευές. Αυτού του τύπου οι συσκευές είναι καινούργιες και έτσι απαιτούν νέο hardware και firmware για το κομμάτι του Controller και νέο software για το κομμάτι του Host. Eπομένως είναι αδύνατο για ένα Controller και ένα Host που λειτουργούν με βάση το κλασικό Bluetooth να αναβαθμιστούν ώστε να υποστηρίζουν χαμηλή κατανάλωση. Mία single-mode συσκευή υποστηρίζει μόνο το Bluetooth low energy.λόγω αυτού δεν μπορεί να επικοινωνήσει με τις υπάρχουσες συσκευές Bluetooth, αλλά μπορεί να επικοινωνήσει με άλλες single-mode καθώς και dual-mode συσκευές. Οι single-mode συσκευές δεν μπορούν να χρησιμοποιηθούν σε περιπτώσεις που χρησιμοποιείται το κλασικό Bluetooth διότι το single-mode Bluetooth Low Energy δεν υποστηρίζει ήχο για ακουστικά και στερεοφωνική μουσική ή υψηλά data rate για την μεταφορά αρχείων. Στο Σχήμα 1.2 παρουσιάζονται οι διαθέσιμες εκδόσεις του Bluetooth και τύποι συσκευών, καθώς και οι βαθμίδες των πρωτοκόλλων που επιτρέπουν στις συσκευές να επικοινωνούν μεταξύ τους. Σχήμα 1.2: Εκδόσεις Bluetooth και τύποι συσκευών 1.3 Βασικές Αρχές Λειτουργίας Η κατανόηση του Bluetooth low energy βασίζεται στην κατανόηση του πως η χαμηλή κατανάλωση ενέργειας μπορεί να επιτευχθεί σε ένα μικρής εμβέ- 2
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) λειας ασύρματο σύστημα. Η βασική ιδέα βασίζεται στην χαμηλή κατανάλωση ενέργειας και έτσι οι βασικές αρχές λειτουργίας διαμορφώνονται ως εξής [2]: Button-Cell Μπαταρίες Oι μπαταρίες αυτού του τύπου (βλ. Σχήμα 1.3) έχουν πολύ αυστηρά κριτήρια σχετικά με το πως πρέπει να χρησιμοποιηθούν. Το Σχήμα 1.3 δείχνει μια μπαταρία τύπου CR2032. To CR κομμάτι της μπαταρίας δηλώνει ότι είναι μια μπαταρία 3 Volt, το 20 δηλώνει ότι η μπαταρία έχει 20mm διάμετρο και το 32 υποδηλώνει ότι το ύψος της είναι 3,2mm. Μια τυπική CR2032 μπαταρία έχει χωρητικότητα ενέργειας της τάξης των 230 mah στα 3Volt. Έτσι η διαθέσιμη ενέργεια εξαρτάται από την θερμοκρασία της μπαταρίας και από την είδος της χρήσης που της κάνουμε, καθώς βίαιη χρήση μιας μπαταρίας μειώνει την ενέργειά της. Σχήμα 1.3: Βutton - Cell Βattery Χρόνος Μια ακόμα βασική αρχή λειτουργίας είναι ότι ο χρόνος είναι ενέργεια. Άρα είναι σημαντικό να μειώσουμε το χρόνο που χρειάζεται για να γίνει οτιδήποτε σημαντικό. Ένας αριθμός από σημαντικές και επαναληπτικές ενέργειες πρέπει να βελτιστοποιηθούν. Αυτές είναι η ανακάλυψη συσκευών, η σύνδεση με άλλες συσκευές και η αποστολή δεδομένων. Μειώνοντας το χρόνο που χρειάζονται αυτές οι ενέργειες, η κατανάλωση ενέργειας μειώνεται, επιμηκύνοντας έτσι τη διάρκεια ζωής της μπαταρίας. Συγκεκριμένα η ευρεία ανίχνευση συσκευών απαιτεί ως ελάχιστο δύο συσκευές, μια συσκευή που ανιχνεύει άλλες συσκευές και μία ή περισσότερες συσκευές που είναι ανιχνεύσιμες. Στο Bluetooth Low Energy, για να είναι μια συσκευή ανιχνεύσιμη, πρέπει να μεταδίδει ένα πολύ μικρό μήνυμα τρείς φορές κάθε λίγα δευτερόλεπτα και αν χρειάζεται να δει εάν κάποια άλλη συσκευή θέλει να επικοινωνήσει μαζί της πρέπει να την ακούσει αμέσως αφότου μεταδώσει το μήνυμα της. Μια συσκευή που ανιχνεύει συσκευές ενεργοποιεί τον δέκτη της και ακούει τις συσκευές που μεταδίδουν. Οι μεταδόσεις είναι τρείς όπως και οι συχνότητες για λόγους κατανάλωσης και τέλος το πακέτο που μεταδίδεται είναι μικρό καθώς διαδοχικά μικρά πακέτα με επαρκές κενό μεταξύ που παραχωρούν στην μπαταρία χρόνο για να επανέλθει είναι προτιμότερο από το να χρησιμοποιούνται μεγαλύτερα πακέτα. Μνήμη Όπως είναι ευρέως γνωστό, όσο πιο πολύ μνήμη χρησιμοποιεί μια συσκευή, τόσο πιο πολύ ενέργεια απαιτεί για να λειτουργήσει. Η μνήμη 3
1.3. ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΑΣ 4 απαιτεί δυναμική ανανέωση οπότε αρκετά συχνά το chip της μνήμης ανανεώνεται. Αυτή η δυναμική ανανέωση απαιτεί ενέργεια. Έτσι, όσο περισσότερη μνήμη μια συσκευή χρησιμοποιεί, τόσο περισσότερη ενέργεια απαιτεί για να λειτουργήσει η συσκευή. Άρα μέσω του Bluetooth low energy πετυχαίνουμε μείωση του ποσοστού της μνήμης που χρησιμοποιείται. Αυτό το πετυχαίνουμε με την χρήση μικρότερων πακέτων καθώς και με την χρήση μόνο ενός πρωτοκόλλου. Το Attribute Protocol χρησιμοποιείται για ανακάλυψη συσκευών,services καθώς και για εγγραφή και ανάγνωση πληροφοριών ανάλογα με την περίπτωση κάθε φορά. Ασύμμετρος Σχεδιασμός Μία από τις εμφανείς σχεδιαστικές ιδέες του Bluetooth low energy είναι η ασυμμετρία που υπάρχει σε κάθε επίπεδο. Αυτός ο ασύμμετρος σχεδιασμός είναι πολύ σημαντικός διότι η συσκευή με την μικρότερη πηγή ενέργειας έχει λιγότερες ενέργειες να εκτελέσει. Ο ασύμμετρος σχεδιασμός βασίζεται στη θεμελιώδη υπόθεση ότι η συσκευή με τους περισσότερους περιορισμένους πόρους είναι αυτή με βάση την οποία θα βελτιστοποιηθούν και οι υπόλοιπες συσκευές. Αυτού του τύπου ο σχεδιασμός είναι εμφανής στο Φυσικό Επίπεδο, στο επίπεδο Ζεύξης, στο επίπεδο του Attribute πρωτοκόλλου καθώς και στην αρχιτεκτονική Ασφαλείας. Για παράδειγμα στο Φυσικό επίπεδο υπάρχει ο πομπός και ο δέκτης. Μια συσκευή μπορεί να είναι πομπός και δέκτης. Όμως,μια συσκευή μπορεί να λειτουργεί μόνο ως πομπός ή ως δέκτης. Εάν μια συσκευή έχει το ρόλο του πομπού και μια άλλη του δέκτη, τότε αυτό είναι ένα ασύμμετρο δίκτυο. Μοντέλο Καταστάσεων Μια από τις βασικές λειτουργίες του BLE είναι η ύπαρξη καταστάσεων για κάθε λειτουργία. Αυτές οι καταστάσεις είναι ορατές μέσω του Attribute Protocol σε ένα attribute server. Ως κατάσταση μπορεί να θεωρηθεί η τιμή της θερμοκρασίας, η κατάσταση της μπαταρίας μιας συσκευής καθώς και το όνομα μιας συσκευής. Η κατάσταση δεν χρειάζεται να είναι αναγνώσιμη, μπορεί να είναι αναγραφόμενη. Μέσω αυτών των καταστάσεων μπορούμε να καταλάβουμε την κατάσταση ενός state machine. Aυτό προσφέρει την ευκολία στους πελάτες (clients) να μπορούν να αποσυνδεθούν όποτε θέλουν, διότι όταν θα θελήσουν να συνδεθούν ξανά, θα μπορούν γρήγορα να αποφασίσουν την τρέχουσα κατάσταση διαβάζοντάς την. Αυτό το απλό μοντέλο καταστάσεων διευκολύνει την δημιουργία μιας client-server αρχιτεκτονικής. Επιπλέον, επιτρέπει μια αντικειμενοστραφή προσέγγιση των καταστάσεων που θα σχεδιαστούν στην εκάστοτε εφαρμογή, με επαναχρησιμοποιήσιμα δεδομένα και υπηρεσίες συμπεριφοράς. Αυτό με τη σειρά του μειώνει την ποσότητα του κώδικα που μια συσκευή χρειάζεται, και συνεπώς μειώνεται η κατανάλωση ενέργειας της συσκευής καθώς δεν χρειάζεται μνήμη γι αυτό το κομμάτι του κώδικα. Client-Server Αρχιτεκτονική Η διασύνδεση ανάμεσα στο Internet και σε χαμηλής ενέργειας slaves επιτυγχάνεται με την χρήση της client-server αρχιτεκτονικής. Ένας Server
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) λειτουργεί σαν χώρος δεδομένων και δεν ενδιαφέρεται για τον Client. Ο Client μπορεί να είναι απευθείας συνδεδεμένος με τον Server ή μπορεί να συνδεθεί μαζί του μέσω Internet από την άλλη πλευρά του πλανήτη. Το μοντέλο Client-Server gateway επιτρέπει τη χρήση ασφαλείας μέσω Internet από τον Client. Μοντέλο χωρίς σύνδεση Η βασική ιδέα με την χαμηλή κατανάλωση ενέργειας είναι ότι οι συνδέσεις είναι παροδικές. Όταν υπάρχει ανάγκη για να γίνει κάτι ή για να ελεγχθεί κάτι, μπορούμε εύκολα να ξεκινήσουμε μια σύνδεση, να εκτελέσουμε αυτό που θέλουμε και στη συνέχεια να αποσυνδεθούμε. Μέσω του Bluetooth Low Energy όλη αυτή η διαδικασία μπορεί να διαρκέσει μέχρι και 3 millisecond.aυτό σημαίνει ότι συσκευές που έχουν κάποια πληροφορία,αλλά μέχρι τώρα δεν μπορούσαν να χρησιμοποιήσουν ασύρματη τεχνολογία εξαιτίας του κόστους των ενεργειακών απαιτήσεων,μπορούν πλέον να χρησιμοποιήσουν Bluetooth Low Energy. 1.4 Αρχιτεκτονική Πρωτοκόλλου Η αρχιτεκτονική του πρωτοκόλλου Bluetooth Low Energy είναι θεμελιωδώς πολύ απλή [3]. Όπως φαίνεται και στο Σχήμα 1.4 είναι χωρισμένη σε τρία μέρη: Controller, Host και Αpplications. Ο Controller είναι μια συσκευή η οποία μεταδίδει και λαμβάνει ραδιοκύματα και προσπαθεί να καταλάβει πως αυτά τα σήματα μπορούν να ερμηνευτούν σαν πακέτα που περιέχουν πληροφορία. Ο Host αποτελεί μια στοίβα software η οποία διαχειρίζεται την επικοινωνία ανάμεσα σε δύο ή περισσότερες συσκευές καθώς και το πώς διάφορες υπηρεσίες μπορούν να παραχθούν την ίδια στιγμή. Οι εφαρμογές χρησιμοποιούν την στοίβα του software και επομένως τον Controller για την λειτουργία τους σε κάθε περίπτωση. Στον Controller υπάρχουν το Φυσικό επίπεδο και το επίπεδο Ζεύξης καθώς και το χαμηλότερο επίπεδο του Host Controller Interface. Στον Ηοst υπάρχουν τρία πρωτόκολλα: το Logical Link Control και το Adaptation πρωτόκολλο, το Attribute πρωτόκολλο και το πρωτόκολλο που αφορά το Security Manager. Eπιπλέον μέσα στον Host βρίσκονται το Generic Attribute Profile και το Generic Access Profile. 1.4.1 Controller O Controller αποτελείται εξίσου από αναλογικά και ψηφιακά μέρη των στοιχείων της συχνότητας καθώς και από hardware για την υποστήριξη της μετάδοσης και της λήψης πακέτων. Ο Controller επικοινωνεί με τον υπόλοιπο κόσμο μέσω μιας κεραίας και με τον Host μέσω του Host Controller Interface. Φυσικό Επίπεδο Το Φυσικό επίπεδο (PHY) περιέχει το κύκλωμα των αναλογικών επικοινωνιών, είναι ικανό για διαμόρφωση και αποδιαμόρφωση αναλογικών σημάτων και για την μετατροπή τους σε ψηφιακά σύμβολα. Η συχνότητα που χρησιμοποιείται για επικοινωνία είναι τα 2.4 GHz της ISM(Industrial, Scientific, and 5
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ Σχήμα 1.4: Αρχιτεκτονική πρωτοκόλλου Medical) ζώνης και χωρίζεται σε 40 κανάλια από 2.4000GHz έως 2.4835GHz. Oπως φαίνεται και στο Σχήμα 1.5, 37 από αυτά τα κανάλια χρησιμοποιούνται για δεδομένα σύνδεσης και τα τρία τελευταία (37, 38, 39) χρησιμοποιούνται για advertise, δηλαδή για να ξεκινήσουν συνδέσεις και να στείλουν δεδομένα. Σχήμα 1.5: Συχνότητες Καναλιών Το συγκεκριμένο πρότυπο χρησιμοποιεί μια τεχνική η οποία καλείται Frequency hopping spread spectrum, στην οποία η συχνότητα αλλάζει (hops) κανάλι σε κάθε σύνδεση με βάση την ακόλουθη σχέση 1.1: Channel = (curr_channel + hop)mod37 (1.1) H τιμή του hop λαμβάνεται την στιγμή που εγκαθίσταται μια σύνδεση και έτσι είναι διαφορετική για κάθε νέα σύνδεση. Μέσω αυτής της τεχνικής αποφεύγεται οποιαδήποτε παρεμβολή με συχνότητες που υπάρχουν στα 2.4 GHz. H διαμόρφωση που χρησιμοποιείται για την αποκωδικοποίηση είναι Γκαουσιανή και συγκεκριμένα Gaussian Frequency Shift Keying (GFSK) όπως συμβαίνει και στο κλασσικό Bluetooth. O ρυθμός διαμόρφωσης για το Bluetooth Low Energy είναι στα 1Mbit/sec. Eπίπεδο Zεύξης Το επίπεδο Ζεύξης είναι το πιο πολύπλοκο κομμάτι της Bluetooth Low Energy αρχιτεκτονικής. Αυτό το επίπεδο είναι υπεύθυνο για κοινοποίηση (advertising), σάρωση (scanning), και για να δημιουργεί και να διαχειρίζεται συνδέσεις. Είναι επίσης υπεύθυνο για να εξασφαλίζει ότι τα πακέτα είναι δομημένα με 6
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) τον κατάλληλο τρόπο, με τις ορθά υπολογισμένες τιμές ελέγχου και ακολουθίες κρυπτογράφησης. Για να συμβεί αυτό, ορίζονται τρείς βασικές έννοιες: τα κανάλια, τα πακέτα και οι διαδικασίες. Στο επίπεδο Ζεύξης ορίζονται οι εξής ρόλοι: Advertiser Mία συσκευή που στέλνει κοινοποιημένα πακέτα. Scanner Μια συσκευή που σαρώνει μια περιοχή για την εύρεση κοινοποιημένων πακέτων. Μaster Μια συσκευή που ξεκινά μια σύνδεση και την διαχειρίζεται στη συνέχεια. Slave Μια συσκευή που δέχεται μια αίτηση σύνδεσης και ακολουθεί τον χρονισμό του Master. Aυτοί οι ρόλοι μπορούν να ομαδοποιηθούν σε δύο ζεύγη: advertiser και scanner (όταν δεν βρίσκονται σε μια ενεργή σύνδεση) και master και slave (όταν βρίσκονται σε σύνδεση). Διεύθυνση Bluetooth συσκευών Το χαρακτηριστικό μιας Bluetooth συσκευής, παρόμοια με την MAC διεύθυνση είναι η Bluetooth device address.αυτός ο 48-bit ( 6 byte) αριθμός ταυτοποιεί μοναδικά μια συσκευή ανάμεσα στις υπόλοιπες. Υπάρχουν δύο τύποι διευθύνσεων και ένας ή και οι δύο χρησιμοποιούνται από μια συσκευή. Δημόσια διεύθυνση Πρόκειται για την προγραμματισμένη διεύθυνση μιας συσκευής. Είναι εγγεγραμμένη από την ΙΕΕΕ και δεν αλλάζει ποτέ κατά τη διάρκεια ζωής μιας συσκευής. Τυχαία διεύθυνση Αυτή είτε προγραμματίζεται στη συσκευή είτε παράγεται δυναμικά. Τύποι καναλιών Υπάρχουν δύο τύποι καναλιών στο επίπεδο ζεύξης: τα κανάλια για advertise και τα κανάλια δεδομένων. Τα advertising κανάλια χρησιμοποιούνται από συσκευές που δεν βρίσκονται σε σύνδεση στέλνοντας δεδομένα. Τα κανάλια που χρησιμοποιούνται για advertise είναι τρία και μέσω αυτών οι διάφορες συσκευές εκπέμπουν δεδομένα, αναφέρουν ότι είναι έτοιμες για σύνδεση και ανιχνεύσιμες, σαρώνουν μια περιοχή για εύρεση άλλων συσκευών και ξεκινούν συνδέσεις. Τα κανάλια δεδομένων χρησιμοποιούνται μόνο όταν μια σύνδεση έχει εγκατασταθεί και τα δεδομένα πρέπει να μεταδοθούν. Επιτρέπουν στα 7
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ δεδομένα να μεταδοθούν από την μια συσκευή στην άλλη, να αναγνωριστούν και αν είναι απαραίτητο να επαναμεταδοθούν. Για την αποστολή δεδομένων σε οποιοδήποτε από αυτά τα κανάλια ορίζονται μικρά πακέτα. Μέσα σε ένα πακέτο βρίσκονται δεδομένα τα οποία έχουν σταλεί από τον πομπό στο δέκτη μέσα σε ένα πολύ μικρή χρονική περίοδο. Η βασική δομή ενός πακέτου είναι ίδια τόσο στα advertising κανάλια όσο και στα κανάλια δεδομένων, με το ελάχιστο 80 Bits για διευθυνσιοδότηση, επικεφαλίδα και πληροφορία ελέγχου. Στο Σχήμα 1.6 παρουσιάζεται η δομή ενός πακέτου του επιπέδου ζεύξης. Σχήμα 1.6: Δομή πακέτου επιπέδου ζεύξης Για να ενισχυθεί η ισχύς του πακέτου εισάγονται αρχικά 8 bit (preamble) που επιτρέπουν στον δέκτη να συγχρονίζει τον χρονισμό των bit και να θέτει το κέρδος ελέγχου της συχνότητας, 32 bit που αποτελούν την διεύθυνση πρόσβασης, μια 8-bit επικεφαλίδα που περιγράφει τα περιεχόμενα του πακέτου, ένα 8-bit κομμάτι που περιγράφει το μήκος του φορτίου, ένα μεταβλητού μήκους φορτίο που περιλαμβάνει χρήσιμη πληροφορία από την εφαρμογή ή από την στοίβα της Ηοst συσκευής και τέλος μια 24-bit CRC (cyclic redundancy check) τιμή που εξασφαλίζει ότι δεν υπάρχουν bit με σφάλματα στο ληφθέν πακέτο. Διαδικασίες Σάρωσης Οι προδιαγραφές ορίζουν δύο βασικές διαδικασίες σάρωσης(scanning),την παθητική(passive) και την ενεργητική(active). Στο passive scanning, ο scanner προσπαθεί να ανιχνεύσει κοινοποιημένα πακέτα και ο advertiser δεν είναι σε θέση να γνωρίζει εάν ένα ή περισσότερα πακέτα έχουν ληφθεί από τον scanner. Από την άλλη, στο active scanning o scanner εκδίδει ένα πακέτο με αίτημα για σάρωση (Scan Request) αφότου έχει λάβει ένα κοινοποιημένο πακέτο. Ο advertiser το λαμβάνει και ανταποκρίνεται με ένα Scan Response πακέτο. Αυτό το επιπρόσθετο πακέτο διπλασιάζει το αποτελεσματικό φορτίο που ο advertiser είναι ικανός να στείλει στον scanner,αλλά είναι σημαντικό να σημειωθεί ότι αυτό δεν προϋποθέτει ότι ο scanner θα στείλει δεδομένα χρήστη στον advertiser. Στο Σχήμα 1.7 απεικονίζεται η διαφορά μεταξύ της Παθητικής και της Ενεργητικής Σάρωσης. Σχήμα 1.7: Active και Passive Scanning 8
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) Συνδέσεις Για να εγκατασταθεί μια σύνδεση, ο Μaster πρώτα ξεκινά να σαρώνει μια περιοχή για να ψάξει για advertisers οι οποίοι δέχονται αιτήματα σύνδεσης. Όταν ένας κατάλληλος advertising slave ανιχνευθεί, ο master στέλνει ένα πακέτο με αίτημα σύνδεσης στον slave και δεδομένου ότι ο slave απαντήσει, εγκαθιστά μια σύνδεση. Μια σύνδεση είναι απλά μια ακολουθία από ανταλλαγές δεδομένων ανάμεσα στο Slave και στο Master σε προκαθορισμένο χρόνο. Στο Σχήμα 1.8 φαίνεται μια σύνδεση και κάθε ανταλλαγή καλείται connection event. Σχήμα 1.8: Connection Events Oι ακόλουθες τρείς παράμετροι σύνδεσης είναι ένα σύνολο μεταβλητών που χρησιμοποιούνται από τον Master κατά τη διάρκεια της εγκατάστασης μιας σύνδεσης: Διάστημα σύνδεσης (Connection Interval) Ο χρόνος μεταξύ της έναρξης δύο διαδοχικών γεγονότων σύνδεσης. Αυτή η τιμή κυμαίνεται από 7.5 ms (υψηλή απόδοση) μέχρι 4s (χαμηλότερη πιθανή απόδοση αλλά ελάχιστη ανάγκη για ενέργεια. Slave Latency Ο αριθμός των γεγονότων σύνδεσης που ένας slave μπορεί να παραλείψει χωρίς να διακινδυνεύσει μια αποσύνδεση. Χρονικό όριο εποπτείας σύνδεσης (Connection Supervision Timeout) O μέγιστος χρόνος ανάμεσα σε δύο έγκυρα πακέτα δεδομένων πριν μια σύνδεση θεωρηθεί χαμένη. Ηοst / Controller Interface Το Ηοst/Controller Interface είναι ένα καθιερωμένο πρωτόκολλο το οποίο επιτρέπει επικοινωνία ανάμεσα στον Host και στον Controller δια μέσου μιας σειριακής διεπαφής. Επιτρέπει στον Host να στείλει εντολές και δεδομένα στον Controller και στον Controller να στείλει γεγονότα και δεδομένα στον Host. Oυσιαστικά το πρωτόκολλο αποτελείται από δύο ξεχωριστά μέρη: τη λογική διεπαφή (logical interface) και την φυσική διεπαφή (physical interface). Η λογική διεπαφή ορίζει τις εντολές, τα δεδομένα και την σχετική συμπεριφορά τους. Η φυσική διεπαφή ορίζει πως οι εντολές, τα γεγονότα και τα δεδομένα 9
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ μεταφέρονται μέσω διαφόρων τεχνολογιών σύνδεσης. Οι φυσικές διεπαφές που ορίζονται περιλαμβάνουν τις USB, SDIO και δύο παραλλαγές της UART. Eπειδή το Ηοst /Controller Interface πρέπει να υπάρχει τόσο στον Controller όσο και στον Host, το κομμάτι που βρίσκεται στον Controller καλείται Lowhost controller interface ενώ το κομμάτι που βρίσκεται στον Host καλείται Upper-host controller interface. 1.4.2 Host O Ηost έχει δημιουργηθεί πάνω από το Host Controller Interface. Πάνω από αυτό υπάρχει το Logical Link Control and Adaptation Protocol, ένα επίπεδο πολύπλεξης. Πάνω από αυτό τώρα υπάρχουν δύο θεμελιώδη επίπεδα, το Security Manager που ασχολείται με θέματα πιστοποίησης και με την δημιουργία ασφαλών συνδέσεων και το Attribute Protocol που αποκαλύπτει τα δεδομένα σε μια συσκευή. Με βάση το Attribute Protocol έχει δημιουργηθεί το Generic Attribute Profile που ορίζει πως το Attribute Protocol χρησιμοποιείται για να ενεργοποιήσει επαναχρησιμοποιήσιμες υπηρεσίες που εκθέτουν τα πρότυπα χαρακτηριστικά μιας συσκευής. Τέλος το Generic Attribute Profile ορίζει πως οι συσκευές μπορούν να βρουν και να συνδεθούν μεταξύ τους με ένα διαλειτουργικό τρόπο. Δεν υπάρχει Upper interface για τον Host. Logical Link Control and Adaptation Protocol (L2CAP) Το πρωτόκολλο Logical Link Control and Adaptation αποτελεί το επίπεδο πολύπλεξης για το Bluetooth Low Energy. Αυτό το επίπεδο ορίζει δύο βασικές έννοιες: το κανάλι L2CAP και τις L2CAP εντολές σηματοδότησης. Ένα κανάλι L2CAP είναι ένα μεμονωμένο δικατευθυντήριο κανάλι δεδομένων το οποίο τερματίζει σε ένα συγκεκριμένο πρωτόκολλο ή προφίλ στην άλλη συσκευή. Κάθε κανάλι είναι ανεξάρτητο και μπορεί να έχει τη δική του ροή ελέγχου καθώς και άλλες πληροφορίες που σχετίζονται με αυτό. Το κλασσικό Bluetooth χρησιμοποιεί τα περισσότερα χαρακτηριστικά του L2CAP, συμπεριλαμβανομένων των δυναμικών ταυτοποιητών καναλιών, των πολυπλεκτών πρωτοκόλλων υπηρεσιών, ενισχυμένη επαναμετάδοση και τρόπους ροής. Το Bluetooth Low Energy περιλαμβάνει το ελάχιστο από το L2CAP. Στο Bluetooth Low Energy, χρησιμοποιούνται προκαθορισμένα κανάλια: ένα για το κανάλι σήματος, ένα για διαχείριση ασφαλείας (Security Manager) και ένα για το Attribute πρωτόκολλο. Υπάρχει μόνο μία μορφή πλαισίου, το B-πλαίσιο. Αυτό έχει ένα πεδίο μήκους 2 byte και ένα πεδίο 2 byte για ταυτοποίηση καναλιού, όπως φαίνεται και στο Σχήμα 1.9. Σχήμα 1.9: Δομή πακέτου στο L2CAP 10
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) Security Manager Protocol H ασφαλείς διαχείριση ορίζει ένα απλό πρωτόκολλο για αντιστοίχιση (pairing) και για διανομή κλειδιού. Οι διαδικασίες ασφαλείας που τηρούνται από το πρωτόκολλο είναι οι εξής: Pairing Το pairing είναι η διαδικασία μέσω της οποίας μια συσκευή προσπαθεί να δείξει εμπιστοσύνη σε μια άλλη συσκευή, συνήθως ταυτοποιώντας την άλλη συσκευή. Η παραπάνω διαδικασία ακολουθείται με την κρυπτογράφηση της σύνδεσης και την διανομή του κλειδιού. Χρησιμοποιώντας διανομή κλειδιού, κοινά μυστικά μπορούν να διανεμηθούν από ένα slave σε ένα master έτσι ώστε όταν αυτές οι δύο συσκευές επανασυνδεθούν σε κάποια άλλη χρονική στιγμή, να μπορούν γρήγορα να αποδείξουν την ταυτότητα τους αποκρυπτογραφώντας, κάνοντας χρήση των προηγούμενων κοινών διανεμημένων μυστικών. Bonding Μια ακολουθία σαν το pairing που ακολουθείται από την παραγωγή και την ανταλλαγή μόνιμων κλειδιών ασφαλείας, προορισμένα να αποθηκευτούν σε μη πτητική μνήμη. Έτσι δημιουργείται ένας μόνιμος δεσμός ανάμεσα σε δύο συσκευές, ο οποίος θα τους επιτρέψει να ξεκινήσουν γρήγορα μια ασφαλή σύνδεση χωρίς να χρειαστεί να επιτελέσουν την διαδικασία του bonding ξανά. Encryption Re-establishment (επανεγκατάσταση κρυπτογράφησης) Μόλις ολοκληρωθεί μια διαδικασία Bonding, τα κλειδιά μπορεί να έχουν αποθηκευτεί και στις δύο πλευρές μιας σύνδεσης. Εάν τα κλειδιά έχουν αποθηκευτεί, αυτή η διαδικασία ορίζει πως να χρησιμοποιηθούν αυτά τα κλειδιά σε ακόλουθες συνδέσεις για να επανεγκατασταθεί μια ασφαλής, κρυπτογραφημένη σύνδεση χωρίς να χρειαστεί να μεταβούμε στην διαδικασία του pairing ξανά. To πρωτόκολλο αυτό ορίζει δύο ρόλους: Initiator Ανταποκρίνεται πάντα στον master του επιπέδου Δικτύου και άρα στο GAP Central. Responder Ανταποκρίνεται πάντα στον slave του επιπέδου Δικτύου και άρα στο GAP Peripheral. To πρωτόκολλο αυτό παρέχει εργαλεία ασφαλείας για την παραγωγή δεδομένων, για την παραγωγή επιβεβαιωτικών τιμών και για την παραγωγή βραχυπρόθεσμων κλειδιών (Short Term Key, STK) που χρησιμοποιούνται κατά τη διάρκεια του pairing. Στο Σχήμα 1.10 παρουσιάζονται δύο φάσεις επανεγκατασταθεί την διαδικασία του pairing και μια επιπρόσθετη φάση που απαιτείται επανεγκατασταθεί την διαδικασία του bonding. 11
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ Σχήμα 1.10: Pairing και Bonding διαδικασίες Αρχικά στην πρώτη φάση(phase 1), όλη η πληροφορία που απαιτείται για την παραγωγή ενός μόνιμου κλειδιού ανταλλάσσεται ανάμεσα σε δύο συσκευές. Στη συνέχεια στη δεύτερη φάση (Phase 2), το προσωρινό κλειδί κρυπτογράφησης (Short Term Key, STK) παράγεται και στις δύο πλευρές ανεξαρτήτως και έπειτα χρησιμοποιείται για να κρυπτογραφήσει την σύνδεση. Μόλις η σύνδεση είναι ασφαλής λόγω κρυπτογράφησης, και μόνο εάν εκτελείται η διαδικασία του bonding, τα μόνιμα κλειδιά διανέμονται για αποθήκευση και επαναχρησιμοποίηση σε κάποια άλλη χρονική στιγμή. Attribute Protocol Το πρωτόκολλο αυτό ορίζει ένα σύνολο κανόνων για πρόσβαση σε δεδομένα στην άλλη συσκευή. Τα δεδομένα αυτά αποθηκεύονται σε ένα διακομιστή χαρακτηριστικών (attribute server) ως attributes όπου ένας client μπορεί να διαβάσει και να γράψει. Ο client στέλνει αιτήματα στον διακομιστή και ο διακομιστής ανταποκρίνεται με μηνύματα. Ο client μπορεί να χρησιμοποιήσει αυτά τα αιτήματα για να βρει όλα τα attributes σε ένα διακομιστή και στη συνέχεια να διαβάσει και να γράψει αυτά τα attributes. To Attribute πρωτόκολλο ορίζει έξι τύπους μηνυμάτων:1) αιτήματα που στέλνονται από τον client στον server, 2) απαντήσεις που στέλλονται από τον server στον client ως απάντηση σε ένα αίτημα, 3) εντολές που στέλνονται από τον client στον server χωρίς να περιέχουν κάποια απάντηση, 4) ειδοποιήσεις που στέλνονται από τον server στον client χωρίς να περιέχουν κάποια επιβεβαίωση, 5) ενδείξεις που στέλνονται από τον server στον client και 6) επιβεβαιώσεις που στέλνονται από τον client στον server ως απάντηση σε μια ένδειξη. Έτσι, τόσο ο client όσο και ο server μπορούν να ξεκινήσουν επικοινωνία με μηνύματα που απαιτούν μια απάντηση ή με μηνύματα που δεν απαιτούν μια απάντηση. Τα attributes είναι διευθυνσιοδοτημένα bit από δεδομένα. Κάθε χαρακτηριστικό έχει ένα μοναδικό 16-bit handler ο όποιος προσδιορίζει το συγκεκριμένο attribute, ένα identifier (Universally unique identifier, UUID) ο οποίος προσδιορίζει τον τύπο και την φύση των δεδομένων που αποθηκεύονται σε αυτό το attribute, και μια τιμή. Για παράδειγμα, ένα attribute με τον τύπο θερμοκρασία που έχει την τιμή 20.5C μπορεί να περιέχεται μέσα σε ένα attribute με τον handler 0x01CE. To Attribute πρωτόκολλο δεν ορίζει τύπους χαρακτηριστικών παρόλο που ορίζει ότι μερικά χαρακτηριστικά μπορούν να ενωθούν σε ομάδες και ότι η σημασιολογία της ομάδας μπορεί να ανακαλυφθεί μέσω του πρωτοκόλλου. 12
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) Επιπλέον το πρωτόκολλο ορίζει ότι μερικά χαρακτηριστικά έχουν δικαιώματα, όπως για παράδειγμα δικαίωμα να επιτρέπουν σε ένα client να διαβάζει ή να γράφει την τιμή ενός attribute, ή μόνο να επιτρέπουν πρόσβαση στην τιμή του attribute εάν o client έχει πιστοποιήσει τον εαυτό του ή έχει εξουσιοδοτηθεί ανακαλυφθεί τον server. Δεν είναι δυνατό να ανακαλυφθεί ρητά το δικαίωμα ενός attribute. Αυτό μπορεί να συμβεί εμμέσως στέλνοντας ένα αίτημα και λαμβάνοντας ένα σφάλμα ως απάντηση, το οποίο δηλώνει γιατί το αίτημα δεν ολοκληρώθηκε. Το attribute πρωτόκολλο δεν περιέχει καταστάσεις. Κάθε μετάβαση, για παράδειγμα ένα μοναδικό αίτημα ανάγνωσης και μια απάντηση ανάγνωσης, δεν προκαλούν την αποθήκευση κάποιας κατάστασης στο server. Aυτό σημαίνει ότι το πρωτόκολλο ανακαλυφθεί μόνο του απαιτεί πολύ μικρή μνήμη. Υπάρχει όμως μια μικρή εξαίρεση σε αυτό, η προετοιμασία και η εκτέλεση των αιτημάτων εγγραφής. Αυτά δημιουργούν ένα σύνολο τιμών που πρόκειται να γραφθούν στον server και έπειτα να εκτελεστούν όλα σε μια σειρά, σε μια μοναδική μετάβαση. Generic Attribute Profile (GATT) To πρωτόκολλο αυτό βρίσκεται ακριβώς ανακαλυφθεί πάνω ανακαλυφθεί το Attribute πρωτόκολλο. Ορίζει τους τύπους των attributes και το πως αυτοί χρησιμοποιούνται. Εισάγει ένα αριθμό ανακαλυφθεί έννοιες, συμπεριλαμβανομένου των characteristics, services και των σχέσεων μεταξύ των services και των characteristic descriptors. Eπιπλέον ορίζει ένα αριθμό ανακαλυφθεί διαδικασίες που μπορούν να χρησιμοποιηθούν για να ανακαλυφθούν τα services, characteristics και οι σχέσεις μεταξύ των services καθώς και οι χαρακτηριστικές τιμές για εγγραφή και ανάγνωση. Στο Σχήμα 1.11 παρουσιάζεται μια ιεραρχία του προφίλ αυτού με βάση τις έννοιες που ορίζονται παραπάνω. Όπως σε κάθε άλλο πρωτόκολλο ή προφίλ του BLE, το GATT ξεκινά με το να ορίζει κι αυτό τους ρόλους που μπορούν να υιοθετήσουν οι συσκευές: Client Ο GATT client αντιστοιχεί στον ATT client.στέλνει αιτήματα σε ένα server και λαμβάνει απαντήσεις από αυτόν. Ο GATT client δεν γνωρίζει τίποτα εκ των προτέρων για τα attribute του server, έτσι ώστε να εξετάσει πρώτα την παρουσία και την φύση αυτών των attribute μέσω της εύρεσης υπηρεσιών. Αφότου ολοκληρωθεί ανακάλυψη υπηρεσιών, μπορεί στη συνέχεια να ξεκινήσει να γράφει και να διαβάζει τα attribute που έχει βρει στον server, καθώς και να λαμβάνει ενημερώσεις από τον server. Server O GATT server αντιστοιχίζεται στον ATT server.λαμβάνει αιτήματα από τον client και στέλνει απαντήσεις πίσω. Επίσης στέλνει ενημερώσεις από τον server όταν ρυθμιστεί για να κάνει κάτι τέτοιο και είναι αυτός ο ρόλος που είναι υπεύθυνος για αποθήκευση και για να καθιστά τον χρήστη διαθέσιμο για τον client και οργανωμένο σε attributes. Kάθε BLE συσκευή πρέπει να περιλαμβάνει τουλάχιστον ένα βασικό GATT server o οποίος θα ανταποκρίνεται στα αιτήματα του client, ακόμη και αν πρέπει να στείλει. 13
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ Σχήμα 1.11: Ιεραρχία δεδομένων GATT Μια υπηρεσία (service) είναι μια αμετάβλητη ενσωμάτωση της ατομικής συμπεριφοράς μιας συσκευής. Αμετάβλητη σημαίνει ότι από την στιγμή που μια υπηρεσία έχει δημοσιοποιηθεί, δεν μπορεί να αλλάξει. Αυτό είναι απαραίτητο διότι για να είναι μια υπηρεσία επαναχρησιμοποιήσιμη, πρέπει να μην μπορεί να αλλάζει. Εάν η συμπεριφορά μιας υπηρεσίας αλλάζει σύντομα, αριθμοί έκδοσης και άλλες διαδικασίες εκκίνησης και διαμόρφωσης απαιτούν περισσότερο χρόνο και άρα έρχονται σε αντίθεση με το μοντέλο που βασίζεται στην απουσία σύνδεσης, μια από τις βασικές έννοιες στις οποίες στηρίζεται το Bluetooth Low Energy. Eνσωμάτωση σημαίνει έκφραση των χαρακτηριστικών γνωρισμάτων ενός πράγματος συνοπτικά. Οτιδήποτε σχετικό με μια δεδομένη υπηρεσία περικλείεται και εκφράζεται από μια σειρά από attributes σε έναν attribute server. Aπό την στιγμή που είναι γνωστά τα όρια μιας υπηρεσίας σε έναν attribute server, γνωρίζουμε την πληροφορία που περιλαμβάνεται σε αυτήν την υπηρεσία. Ατομικός είναι αυτός που δημιουργεί μια ξεχωριστή αμείωτη μονάδα ή αποτελεί στοιχείο ενός μεγαλύτερου συστήματος. Οι ατομικές υπηρεσίες είναι διότι όσο μικρότερος είναι ο server, τόσο πιθανότερο είναι να επαναχρησιμοποιηθεί σε ένα άλλο πλαίσιο. Εάν δημιουργούσαμε πολύπλοκες υπηρεσίες οι οποίες είχαν πολλαπλές, και πιθανών συσχετιζόμενες συμπεριφορές, η πιθανότητα να επαναχρησιμοποιηθούν θα μειώνονταν. Η συμπεριφορά αναφέρεται στον τρόπο που κάτι αντιδρά ως απάντηση σε μια συγκεκριμένη κατάσταση ή ερέθισμα. Για τις υπηρεσίες, η συμπεριφορά έχει να κάνει με το τι συμβαίνει όταν κάποιος διαβάζει ή γράφει ένα χαρακτηριστικό (attribute), ή με το τι προκαλεί το χαρακτηριστικό να γνωστο- 14
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) ποιηθεί στον client. Eαν μια υπηρεσία έχει προσδιορίσει την συμπεριφορά της ακριβώς, ο κάθε client μπορεί να λειτουργήσει με ένα διαφορετικό τρόπο όταν αλληλεπιδρά με την υπηρεσία αυτή. Οι υπηρεσίες μπορεί έπειτα να δράσουν διαφορετικά εξαρτώμενες από το ποιος client είναι συνδεδεμένος, ή πιο σημαντικό, οι ίδιες υπηρεσίες σε διαφορετικές συσκευές θα δράσουν διαφορετικά. Μόλις αυτό παγιωθεί σε κάποιες συσκευές, η διαλειτουργικότητα καταστρέφεται. Άρα, ρητά ορισμένη συμπεριφορά η οποία είναι ελέγξιμη, ακόμα και για εσφαλμένες αλληλεπιδράσεις, προωθεί την διαλειτουργικότητα. Οι σχέσεις μεταξύ των διαφόρων υπηρεσιών είναι το κλειδί για τις πολύπλοκες συμπεριφορές μερικών συσκευών. Πολύπλοκες συμπεριφορές δεν πρέπει να εκτίθενται από μια μοναδική υπηρεσία. Για παράδειγμα, μια συσκευή μπορεί να μετράει την θερμοκρασία του δωματίου και να εκθέτει την υπηρεσία θερμοκρασίας. Η συσκευή μπορεί να λειτουργεί με την χρήση μπαταρίας επίσης και να εκθέτει μια υπηρεσία μπαταρίας. Όμως, εάν η μπαταρία έχει επιπλέον και ένα αισθητήρα θερμοκρασίας, πρέπει να μπορούμε να εκθέτουμε άλλη μια υπηρεσία με την θερμοκρασία στη συσκευή. Αυτή η δεύτερη υπηρεσία θερμοκρασίας χρειάζεται να σχετίζεται με την μπαταρία έτσι ώστε ο client να μπορεί να κατανοήσει αυτή τη σχέση. Αυτό φαίνεται και στο Σχήμα 1.12. Για να υπάρξει ένας διαχωρισμός ανάμεσα στις συμπεριφορές και στις σχέσεις που υπάρχουν μεταξύ των υπηρεσιών, οι υπηρεσίες χωρίζονται σε δύο τύπους: τις πρωταρχικές(primary) και τις δευτερεύουσες(secondary). H πρωταρχική υπηρεσία είναι αυτή που εκθέτει τη λειτουργία της συσκευής από την πλευρά του χρήστη. Η δευτερεύουσα υπηρεσία είναι αυτή που χρησιμοποιείται από την πρωταρχική ή από άλλη δευτερεύουσα υπηρεσία προκειμένου να παρέχει την πλήρη συμπεριφορά της. Στο προηγούμενο παράδειγμα, η πρώτη υπηρεσία θερμοκρασίας θα ήταν η πρωταρχική υπηρεσία, η υπηρεσία της μπαταρίας θα ήταν επίσης μια πρωταρχική υπηρεσία, ενώ η δεύτερη υπηρεσία θερμοκρασίας, η θερμοκρασία της μπαταρίας, θα ήταν η δευτερεύουσα υπηρεσία αναφερόμενη από την υπηρεσία μπαταρίας. Σχήμα 1.12: Πολύπλοκες σχέσεις υπηρεσιών 15
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ Generic Access Profile Tο Generic Access Profile ορίζει πως οι συσκευές ανακαλύπτουν, συνδέονται και παρουσιάζουν χρήσιμη πληροφορία στους χρήστες. Ορίζει επιπλέον πως οι συσκευές μπορούν να δημιουργήσουν μια μόνιμη σχέση η οποία καλείται Bonding.Για να συμβεί κάτι τέτοιο, το προφίλ ορίζει πως οι συσκευές μπορούν να χρησιμοποιήσουν διαδικασίες για να ανακαλύψουν άλλες συσκευές, για να συνδεθούν με άλλες συσκευές, να διαβάσουν το όνομα της συσκευής, και να κάνουν bonding με αυτές. Επίσης αυτό το επίπεδο εισάγει την έννοια του ιδιωτικού-προσωπικού κάνοντας χρήση ιδιωτικών διευθύνσεων. Η ιδιωτικότητα είναι σημαντική για τις συσκευές που δηλώνουν συνεχώς την παρουσία τους μέσω advertise έτσι ώστε οι άλλες συσκευές να μπορούν να τις ανακαλύψουν και να συνδεθούν μαζί τους. Οι συσκευές που θέλουν να είναι ιδιωτικές, όμως, πρέπει να εκπέμπουν χρησιμοποιώντας μια συνεχώς μεταβαλλόμενη τυχαία διεύθυνση έτσι ώστε οι άλλες συσκευές να μην μπορούν ακούγοντας να καταλάβουν ποια είναι η συσκευή ή ποια συσκευή κινείται παρακολουθώντας την τρέχουσα τυχαία διεύθυνσή της. Όμως, για να επιτρέπεται σε συσκευές που είναι έμπιστες να αποφασίσουν αν μια άλλη συσκευή είναι κοντά και να ξεκινούν συνδέσεις, η ιδιωτική διεύθυνση πρέπει να είναι ξεχωριστή. Το Generic Access Profile,άρα, ορίζει όχι μόνο πως οι ιδιωτικές διευθύνσεις είναι ξεχωριστές αλλά επίσης πως να γίνεται σύνδεση με άλλες συσκευές που είναι ιδιωτικές. Eπιπλεόν το GAP προφίλ ορίζει τέσσερις ρόλους που μια συσκευή πρέπει να υιοθετήσει για να συμμετάσχει στο δίκτυο του Bluetooth Low Energy: 16 Broadcaster Υιοθετείται από εφαρμογές που υλοποιούν μόνο μετάδοση και διανέμουν δεδομένα τακτικά. Με βάση αυτό το ρόλο στέλνονται περιοδικά advertising πακέτα και πρακτικά ανατίθεται σε συσκευές που είναι ικανές τόσο για μετάδοση όσο και για λήψη. Ένα θερμόμετρο που αναμεταδίδει τιμές θερμοκρασίας σε ενδιαφερόμενες συσκευές είναι ένα καλό παράδειγμα ενός broadcaster. Oι broadcasters στέλνουν δεδομένα ως advertising πακέτα και όχι σαν πακέτα δεδομένων σύνδεσης (connection data packets) και τα δεδομένα είναι προσβάσιμα από οποιαδήποτε συσκευή που ακούει. Ο ρόλος του broadcaster χρησιμοποιεί τον advertiser ρόλο του επιπέδου Δικτύου. Observer Υιοθετείται από εφαρμογές που υλοποιούν μόνο λήψη οι οποίες θέλουν να συλλέξουν δεδομένα από συσκευές που λειτουργούν σαν broadcaster. Ο ρόλος αυτός προσπαθεί να βρει δεδομένα ενσωματωμένα σε advertising πακέτα από άλλους broadcasters.για παράδειγμα, μια συσκευή με μια οθόνη είναι ένα τυπική εφαρμογή αυτού του ρόλου, όπως ένας υπολογιστής που απεικονίζει την θερμοκρασία από ένα αισθητήρα θερμοκρασίας σε broadcaster ρόλο. Central Ο ρόλος αυτός αντιστοιχεί στο ρόλο του master του επιπέδου Ζεύξης. Μια συσκευή ικανή να εγκαθιστά πολλαπλές συνδέσεις με άλλες συσκευές, ο
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) ρόλος του Central είναι να ξεκινά πρώτος τις συνδέσεις και ουσιαστικά να επιτρέπει την ύπαρξη άλλων συσκευών στο δίκτυο. Το BLE πρωτόκολλο είναι ασύμμετρο, που σημαίνει ότι οι υπολογιστικές απαιτήσεις του master του επιπέδου Δικτύου είναι μεγαλύτερες από αυτές του slave του ίδιου επιπέδου. Ο ρόλος του central αναλαμβάνεται συνήθως από ένα tablet ή smart phone σε δίκτυο διότι έτσι έχει πρόσβαση στη CPU και σε άλλους πόρους της μνήμης. Αυτό του επιτρέπει να διαχειρίζεται συνδέσεις με πολλαπλές συσκευές. Ο central ξεκινά με το αφουγκράζεται το δίκτυο για advertising πακέτα και να ξεκινά μια σύνδεση με μια επιλεγμένη συσκευή. Αυτή η διαδικασία μπορεί να επαναληφθεί έτσι ώστε να συμπεριλάβει πολλαπλές συσκευές σε ένα μόνο δίκτυο. Peripheral O ρόλος αυτός ανταποκρίνεται στον slave του επιπέδου Ζεύξης. Αυτός ο ρόλος χρησιμοποιεί τα advertising πακέτα για να επιτρέψει στους centrals να τον βρουν και έτσι να εγκαταστήσουν μια σύνδεση με αυτό. Το BLE πρωτόκολλο είναι βελτιστοποιημένο έτσι ώστε να απαιτεί λίγους πόρους για την εφαρμογή ενός peripheral, τουλάχιστον σχετικά με θέματα μνήμης και ενέργειας.αυτό βοηθά στην ύπαρξη μιας μεγάλης αγοράς με φθηνά BLE peripheral. Kάθε συσκευή μπορεί να λειτουργεί με έναν ή περισσότερους ρόλους σε κάποια χρονική στιγμή και οι προδιαγραφές δεν επιβάλλουν κανένα περιορισμό. Mερικοί developers προσπαθούν λανθασμένα να συσχετίσουν τους BLE GATT client και server ρόλους με τους GAP ρόλους. Όμως δεν υπάρχει καμία σύνδεση μεταξύ αυτών των δύο και κάθε συσκευή μπορεί να είναι ένας GATT client, server ή και τα δύο εξαρτώμενη από την εφαρμογή. 1.4.3 Application Layer Πάνω από τον Controller και τον Host βρίσκεται το επίπεδο Εφαρμογών. Αυτό το επίπεδο ορίζει τρείς τύπους προδιαγραφών: χαρακτηριστικά (characteristics), υπηρεσίες (services) και προφίλ (profile). Kάθε μια από αυτές τις προδιαγραφές έχει δημιουργηθεί πάνω από το Generic Attribute Profile. To Generic Attribute Profile ορίζει ομάδες από attributes για τα χαρακτηριστικά (characteristics) και για τις υπηρεσίες (services) και οι εφαρμογές (applications) ορίζουν προδιαγραφές οι οποίες χρησιμοποιούν τις ομάδες των attribute. Characteristics Ένα χαρακτηριστικό (characteristic) είναι ένα Bit δεδομένων το οποίο έχει μια γνωστή μορφή και εμφανίζεται με την ονομασία Universally Unique Identifier (UUID). Tα χαρακτηριστικά είναι σχεδιασμένα έτσι ώστε να είναι επαναχρησιμοποιήσιμα και άρα να μην έχουν συμπεριφορά. Μόλις η συμπεριφορά προστίθεται σε κάτι, τότε περιορίζεται η επαναχρησιμοποίηση του. Services Mία υπηρεσία είναι ένα σύνολο από χαρακτηριστικά και την σχετική συμπεριφορά τους. Η υπηρεσία απλά ορίζει την συμπεριφορά αυτών των χαρα- 17
1.4. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΟΥ κτηριστικών σε ένα διακομιστή, δεν ορίζει την συμπεριφορά ενός client. Για πολλές υπηρεσίες, η συμπεριφορά ενός client μπορεί να αποφασιστεί εμμέσως από την συμπεριφορά των υπηρεσιών του server. Παρόλα αυτά, για κάποιες υπηρεσίες, ίσως χρειάζεται να υπάρξουν πιο πολύπλοκες συμπεριφορές στον client που πρέπει να οριστούν. Αυτή η συμπεριφορά του client ορίζεται σε προφίλ και όχι σε υπηρεσίες. Κάποιες υπηρεσίες μπορεί να περιέχουν άλλες υπηρεσίες. Η πρωταρχική υπηρεσία μπορεί μόνο να ορίσει τις υπηρεσίες που θα συμπεριληφθούν, δεν μπορεί να αλλάξει τα χαρακτηριστικά σε αυτές τις συμπεριλαμβανόμενες υπηρεσίες ή να αλλάξει την συμπεριφορά αυτών των υπηρεσιών. Η συμπεριλαμβανόμενη υπηρεσία όμως, μπορεί να περιγράψει πως πολλαπλές συμπεριλαμβανόμενες υπηρεσίες αλληλεπιδρούν μεταξύ τους. Οι υπηρεσίες χωρίζονται σε δύο κατηγορίες: τις πρωταρχικές και τις δευτερεύουσες όπως αναφέρθηκε και παραπάνω. Η πρωταρχική ή η δευτερεύουσα φύση μιας υπηρεσίας μπορεί να οριστεί στις προδιαγραφές υπηρεσίας ή στο προφίλ ή στην εφαρμογή. Οι πρωταρχικές υπηρεσίες είναι αυτές που ενσωματώνουν τη λειτουργία μιας συσκευής και είναι αυτές μέσω των οποίων ο χρήστης θα καταλάβει τη λειτουργία της συσκευής. Οι δευτερεύουσες υπηρεσίες είναι αυτές που βοηθούν τις πρωταρχικές ή άλλες δευτερεύουσες υπηρεσίες. Οι υπηρεσίες δεν περιγράφουν το πως οι συσκευές συνδέονται μεταξύ τους για να βρουν και να χρησιμοποιήσουν τις υπηρεσίες. Αυτές περιγράφουν τι συμβαίνει όταν ένα χαρακτηριστικό διαβάζεται (read) ή γράφεται (write), ή όταν ειδοποιείται (notified) ή όταν υπάρχει κάποια ένδειξη (indicated). Οι υπηρεσίες δεν περιγράφουν τις διαδικασίες που χρησιμοποιούνται από το Generic Attribute Profile για την εύρεση μιας υπηρεσίας, τα χαρακτηριστικά μέσα σε μια υπηρεσία ή τα χαρακτηριστικά που χρησιμοποιούνται από έναν client. Profiles Tα προφίλ αποτελούν προδιαγραφές οι οποίες περιγράφουν δύο ή περισσότερες συσκευές, με μία ή περισσότερες υπηρεσίες σε κάθε συσκευή. Επιπλέον περιγράφουν πως οι συσκευές πρέπει να είναι ανιχνεύσιμες και συνδέσιμες και ως εκ τούτου ορίζουν την τοπολογία που είναι απαραίτητη σε κάθε συσκευή. Με βάση αυτά ορίζεται η συμπεριφορά του client για την εύρεση μιας υπηρεσίας, των χαρακτηριστικών μιας υπηρεσίας και για την χρήση της υπηρεσίας έτσι ώστε να επιτραπεί η λειτουργικότητα μιας εφαρμογής. Όπως φαίνεται και στο Σχήμα 1.13 υπάρχουν πολλοί τρόποι για να γίνει αντιστοίχιση των υπηρεσιών με τα προφίλ. Μια υπηρεσία μπορεί να χρησιμοποιηθεί από πολλά προφίλ για να βοηθήσει μια δεδομένη συμπεριφορά σε μια υπηρεσία. Η συμπεριφορά μιας υπηρεσίας είναι ανεξάρτητη από το ποιο προφίλ χρησιμοποιεί αυτή την υπηρεσία την δεδομένη χρονική στιγμή. Στα τμήματα εφαρμογών μπορεί να δοθεί μια λίστα με τις υπηρεσίες τις οποίες η συσκευή υποστηρίζει και να βρεθεί ένα σύνολο εφαρμογών από το τμήμα που χρησιμοποιεί τις υπηρεσίες. Αυτή η ευελιξία βοηθά στη δημιουργία ενός plug-and-play μοντέλου το οποίο δουλεύει πολύ καλά για το σειριακό δίαυλο. 18
ΚΕΦΑΛΑΙΟ 1. ΒLE (BLUETOOTH LOW ENERGY) Σχήμα 1.13: Πολύπλοκες σχέσεις του προφίλ υπηρεσιών 19
Κεφάλαιο 2 Πλατφόρμα υλοποίησης Εργαλεία Λογισμικού 2.1 Εισαγωγή O σχεδιασμός BLE προϊόντων επικεντρώνεται στις συσκευές που λειτουργούν ως peripherals και όχι σε αυτές που λειτουργούν ως central (τηλέφωνα, tablet ή προσωπικούς υπολογιστές). Έτσι το παρών κεφάλαιο παρουσιάζει το chip, τις πλατφόρμες και τα εργαλεία που χρησιμοποιήθηκαν στην παρούσα διπλωματική για την υλοποίηση του συστήματος ανίχνευσης κίνησης. 2.2 DA14580 Chip To DA14580 είναι ένα chip για χαμηλής ενέργειας Bluetooth, το οποίο δουλεύει με υπερβολικά χαμηλή κατανάλωση ενέργειας ενώ παράλληλα παρέχει μια παγκόσμιας κλάσης RF επίδοση και μια ευέλικτη περιφερειακή διαμόρφωση για ένα μεγάλο εύρος εφαρμογών [4]. O επεξεργαστής που χρησιμοποιείται είναι ο ARM Cortex M0 [5], o οποίος παρέχει 0.9 dmips/mhz και βοηθά στην εφαρμογή του Bluetooth Low Energy πρωτοκόλλου, παρέχοντας επεξεργαστική ισχύ για υπολογισμούς και για έλεγχο της ισχύς ολόκληρου του συστήματος. Από μνήμες περιέχει μια 32ΚB ΟΤΡ (One-Time-Programmable) μνήμη για την δημιουργία των Bluetooth προφίλ καθώς και για την δημιουργία του κώδικα εφαρμογής, μια 84KB ROM που περιέχει την στοίβα του πρωτοκόλλου BLE και τον κώδικα εκκίνησης, μια System SRAM των 42KB και τέσσερις Retention RAMS. Tέλος οι τρόποι επικοινωνίας με το chip είναι είτε σειριακά μέσω UART, είτε μέσω SPI είτε μέσω I2C. Eπιπλέον το συγκεκριμένο chip διαθέτει ένα γενικού σκοπού Αναλογικό-Ψηφιακό Μετατροπέα (ADC) των 21
2.2. DA14580 CHIP 10-bit με τέσσερα εξωτερικά κανάλια εισόδου καθώς και δύο Software Timers και ένα Wake-up Timer.Διαθέτει ακόμα ένα αποκωδικοποιητή Quadrature, ένα ελεγκτή Πληκτρολογίου καθώς και ένα κύκλωμα για την διαχείριση της κατανάλωσης με ένα Buck/Boost DCDC μετατροπέα. Στο Σχήμα 2.1 παρουσιάζεται ένα Block Diagram του συγκεκριμένου chip. Σχήμα 2.1: Block Diagram DA14580 Τρόποι λειτουργίας του Chip To DA14580 έχει βελτιστοποιηθεί για αμιγώς για ενσωματωμένες εφαρμογές όπως είναι παρακολούθηση της υγείας, αθλητικές μετρήσεις, συσκευές ανθρώπινης αλληλεπίδρασης κτλ.. Οι πελάτες μπορούν να αναπτύξουν και να ελέγξουν τις δικές τους εφαρμογές. Mόλις τελειώσει η ανάπτυξη του κώδικα, ο κώδικας της εφαρμογής μπορεί να προγραμματιστεί στην OTP μνήμη. Γενικά το σύστημα έχει τρείς τρόπους λειτουργίας: 22 Development Mode Κατά τη διάρκεια αυτού του τρόπου ανάπτυξης, ο κώδικας της εφαρμογής αναπτύσσεται στον επεξεργαστή ARM Cortex M0.Ο compiled κώδικας αποθηκεύεται στην System RAM ή στις Retention RAMs είτε μέσω του JATG είτε μέσω μιας σειριακής διεπαφής όπως είναι η UART. Normal Mode Όταν η εφαρμογή είναι έτοιμη, τότε ο κώδικας καίγεται στην ΟΤP μνήμη. Με την εκκίνηση του συστήματος, το DMA τμήμα του ελεγκτή της OTP αυτόματα αντιγράφει το πρόγραμμα στην System RAM. Έτσι με αυτόν το τρόπο το σύστημα είναι αυτόνομο, περιέχει το απαραίτητο Software μέσα στην ΟΤP και είναι έτοιμο για την ολοκλήρωση του τελικού προϊόντος. Αυτή είτε προγραμματίζεται στη συσκευή είτε παράγεται δυναμικά. Calibration Mode Aνάμεσα στους δύο προηγούμενους τρόπους λειτουργίας, υπάρχει ένα ενδιάμεσο στάδιο όπου το chip πρέπει να βαθμονομηθεί με βάση δύο συγκεκριμένα χαρακτηριστικά: Προγραμματισμό της διεύθυνσης της Bluetooth συσκευής Προγραμματισμό της τιμής για τον εξωτερικό κρύσταλλο των 16 MHz.
ΚΕΦΑΛΑΙΟ 2. ΠΛΑΤΦΟΡΜΑ ΥΛΟΠΟΙΗΣΗΣ ΕΡΓΑΛΕΙΑ ΛΟΓΙΣΜΙΚΟΥ Αυτός ο τρόπος λειτουργίας εφαρμόζεται στο τελικό προϊόν και πραγματοποιείται από τον πελάτη. 2.3 DA14580 Development Kit To DA14580 SDK είναι μια πλατφόρμα για την ανάπτυξη software σε singlemode BLE εφαρμογές [6]. Βασίζεται στο DA14580 chip το οποίο περιλαμβάνει τον άκρος χαμηλής κατανάλωσης ARM Cortex M0, ειδικό hardware για την εφαρμογή του BLE στο επίπεδο Δικτύου, ένα RF πομποδέκτη στα 2,4GHz, μια ROM των 84KB, μια One-Time-Programmable memory (OTP) των 32Κb για την αποθήκευση των Bluetooth προφίλ καθώς και του κώδικα της κάθε εφαρμογής, πάνω από 42KB μνήμης SRAM και ένα μεγάλο εύρος από διεπαφές περιφερειακών. Στο Σχήμα 2.2 παρουσιάζονται τα στοιχεία που αποτελούν το development kit. Σχήμα 2.2: DA14580 Development Kit Tα στοιχεία του Kit αυτά είναι τα εξής: DA14580 Motherboard DA14580 Daughterboard WLCSP or DA14580 Daughterboard QFN40 DA14580 USB Dongle Tα περιφερειακά του Kit είναι τα εξής: Segger JLink Debugger Flex Cable USB Cable RF Antenna Battery-Type AAA Battery-Type AAA 23
2.4. ADC CONVERTER (AD7476A) Αναλόγως την hardware διαμόρφωση που έχει ο επεξεργαστής της κάθε εφαρμογής, το DA14580 SDK προτείνει διαφορετικές software συνθέσεις: Integrated processor configuration H εφαρμογή και τα επίπεδα του BLE (control and host) εφαρμόζονται στο DA14580 chip.aυτή η σύνθεση βρίσκεται σε αντιστοιχία με την Fully Hosted σύνθεση. External processor configuration H εφαρμογή εφαρμόζεται σε έναν εξωτερικό επεξεργαστή ενώ το επίπεδο Δικτύου, τα πρωτόκολλα του Host και τα προφίλ εφαρμόζονται στο DA14580 chip. Aυτή η σύνθεση βρίσκεται σε αντιστοιχία με την Fully Embedded σύνθεση. Η συγκεκριμένη εφαρμογή για την υλοποίηση της χρησιμοποιεί την σύνθεση του Fully Hosted. 2.4 ADC Converter (AD7476A) Ο ΑD7476A είναι ένας μετατροπέας του αναλογικού σήματος σε ψηφιακό της Analog Devices [7]. Eίναι ένας 12-bit μετατροπέας υψηλής ταχύτητας και χαμηλής κατανάλωσης. Ο ρυθμός μετατροπής αποφασίζεται από το σειριακό ρολόι, επιτρέποντας στον χρόνο μετατροπής να μειωθεί μέσω της αύξησης της ταχύτητας του σειριακού ρολογιού. Διατίθεται υψηλό ρυθμό διεκπεραίωσης (throughput rate) στο 1ΜSPS και μεγάλο εύρος με 71 db SNR στα 100KHz. Επιπλέον, το εύρος της αναλογικής εισόδου κυμαίνεται από 0 έως 3V και η τροφοδοσία του chip κυμαίνεται από 2,35V έως 5,25V με το συγκεκριμένο να λειτουργεί στα 3V. Στο Σχήμα 2.3 φαίνεται το διάγραμμα του AD7476A. Σχήμα 2.3: Block diagram AD7476A Ο τρόπος επικοινωνίας που υλοποιήθηκε μεταξύ του AD7476A chip και του DA14580 Development kit είναι μέσω SPI. Aπό την πλευρά του AD7476A ισχύουν οι εξής προδιαγραφές: 24
ΚΕΦΑΛΑΙΟ 2. ΠΛΑΤΦΟΡΜΑ ΥΛΟΠΟΙΗΣΗΣ ΕΡΓΑΛΕΙΑ ΛΟΓΙΣΜΙΚΟΥ Το σήμα εισόδου Chip Select ενεργοποιείται στο low. Μέσω αυτού του σήματος επιτυγχάνεται η διπλή λειτουργία τόσο της εκκίνησης μιας μετατροπής όσο και της πλαισίωσης μια σειριακής μεταφοράς. Το σήμα εισόδου SCLK παρέχει το σειριακό ρολόι για την πρόσβαση στα δεδομένα. Επίσης χρησιμοποιείται και σαν ρολόι για την διαδικασία της μετατροπής. Το σήμα εξόδου SDATA παρέχει τα δεδομένα εξόδου στην πίπτουσα παρυφή του ρολογιού. Τα δεδομένα εξόδου που προκύπτουν από την μετατροπή αποτελούνται από τέσσερα μηδενικά στην αρχή και ακολουθούνται από 12 bits που αποτελούν τα δεδομένα που έχουν προκύψει από την μετατροπή. Το μέγεθος των λιγότερο σημαντικών ψηφίων στον ΑD7476A μετατροπέα είναι VDD/4096, όπου το VDD ισούται με 3V. Ιδιαίτερη προσοχή πρέπει να δοθεί ώστε το αναλογικό σήμα εισόδου να μην ξεπεράσει τα 300mV. Tέλος, για το συγκεκριμένο chip η μετατροπή απαιτεί 16 SCLK κύκλους για να ολοκληρωθεί. 2.5 ΡmodAD1 H χρήση του παραπάνω chip έγινε με την χρήση του PmodAD1 της Digilent [8]. Μέσω αυτού του board μετατράπηκε το σήμα με το μέγιστο ρυθμό δειγματοληψίας (sampling rate) του ενός εκατομμυρίου δειγμάτων το δευτερόλεπτο, δειγματοληψία αρκετά γρήγορη και για τις πιο απαιτητικές εφαρμογές ήχου. Στο Σχήμα 2.4 παρουσιάζεται το PmodAD1. Σχήμα 2.4: PmodAD1 Tο AD1 αποτελείται από δύο AD7476A 12-bits μετατροπείς σήματος αναλογικού σε ψηφιακό, ένα σύνδεσμο με έξι pin και ένα σύνδεσμο με υποδοχή για έξι pin. Επιπλέον, αποτελείται από δύο φίλτρα 2-pole Sallen-Key anti - alias, δύο κανάλια ταυτόχρονης μετατροπής αναλογικού σε ψηφιακό με πάνω από ένα MSa και παρέχει πολύ μικρή κατανάλωση ενέργειας. Στην συγκεκριμένη εφαρμογή μόνο ένα από τα δύο κανάλια χρησιμοποιείται από την στιγμή που υπάρχει μόνο ένας αισθητήρας, αυτός του μικροφώνου. Τέλος, το AD1 μετατρέπει ένα αναλογικό σήμα εισόδου με εύρος από 0-3V σε μια 12-bit ψηφιακή τιμή με εύρος από 0-4095. Στο Σχήμα 2.5 παρουσιάζεται το διάγραμμα του κυκλώματος του PmodAD1. 25
2.6. PMODBB Σχήμα 2.5: Circuit diagram 2.6 PmodBB Για την υλοποίηση του ενισχυτή και την τοποθέτηση του μικροφώνου για την τελική επικοινωνία με το PmodAD1 και κατ επέκταση με το DA14580 Development kit χρησιμοποιήθηκε το PmodBB της Digilent. Πρόκειται ουσιαστικά για ένα κομμάτι breadboard πάνω στο οποίο μπορεί να υλοποιηθεί οποιοδήποτε σύστημα και αποτελείται από δύο συνδέσμους των 16 pin. Στο Σχήμα 2.6 παρουσιάζεται το PmodBB. Σχήμα 2.6: PmodBB 2.7 Logitech X100 Wireless Speaker Για την υλοποίηση των μετρήσεων στο χώρο χρησιμοποιήθηκε το ασύρματο ηχείο της Logitech. Πρόκειται για ένα ηχείο που υποστηρίζει το προφίλ για ασύρματη σύνδεση ήχου (Advanced Audio Distribution Profile (A2DP)) και η έξοδoς του βρίσκεται στα 3.5mm. To εύρος σύνδεσης μεταξύ του ηχείου και οποιάσδήποτε άλλης συσκευής φτάνει τα δέκα μέτρα. Στο Σχήμα 2.7 παρουσιάζεται το ηχείο αυτό. 26
ΚΕΦΑΛΑΙΟ 2. ΠΛΑΤΦΟΡΜΑ ΥΛΟΠΟΙΗΣΗΣ ΕΡΓΑΛΕΙΑ ΛΟΓΙΣΜΙΚΟΥ 2.8 Software Tools Keil Σχήμα 2.7: Logitech X100 Η γλώσσα υλοποίησης του κώδικα για την παρούσα διπλωματική δεν θα μπορούσε να είναι άλλη από την C λόγω του επεξεργαστή ARM Cortex M0. Έτσι το περιβάλλον για την ανάπτυξη αυτού του κώδικα είναι το Keil και συγκεκριμένα η πέμπτη έκδοση του. Η δομή του κώδικα που ακολουθείται για το chip είναι συγκεκριμένη και βάση αυτή την προκαθορισμένη δομή αναπτύχθηκε και ο παρών κώδικας. Στο Σχήμα 2.8 παρουσιάζεται η δομή αυτή. Σχήμα 2.8: SDK root directory Aπό τα παραπάνω directories για τον συγκεκριμένο κώδικα χρησιμοποιήθηκε το Peripheral Examples. Είναι δομή για ανάπτυξη κώδικα για πολλά περιφερειακά καθώς και για τους drivers αυτών. Μatlab Για την επεξεργασία των δεδομένων που προέκυπταν κάθε φορά χρησιμοποιήθηκε η Μatlab. Με βάση των κώδικα που υλοποιήθηκε τόσο σε Matlab όσο και στο Keil πραγματοποιήθηκε επικοινωνία με το DA14580 SDK μέσω UART και αποστολή των δεδομένων για επεξεργασία. Επιπλέον, υλοποιήθηκαν διαγράμματα για την παρουσίαση των αποτελεσμάτων που προέκυπταν κάθε φορά και υπολογισμοί μαθηματικών εννοιών όπως η διασπορά των τιμών 27
2.8. SOFTWARE TOOLS της μέσης τιμής της ισχύος που αποστελλόταν. Πέρα από την επεξεργασία των δεδομένων που προέκυψαν, μέσω της Matlab και συγκεκριμένα με τη βοήθεια του Fdatool δημιουργήθηκε φίλτρο για την καλύτερη λειτουργία του συστήματος. Tέλος, έλεγχος της ορθότητας των δεδομένων σε πρωταρχικό στάδιο επιτεύχθηκε και μέσω του προγράμματος TeraTerm. LTspice Για την υλοποίηση του ενισχυτή του μικροφώνου χρησιμοποιήθηκε το πρόγραμμα LTspice. Mε βάση αυτό σχεδιάστηκε ένας ενισχυτής δύο σταδίων που προκαλεί την επιθυμητή ενίσχυση για το μικρόφωνο, με κατάλληλη ρύθμιση του κέρδους που δεν προκαλεί αποκοπή του σήματος στα επιθυμητά όρια εισόδου και με τους κατάλληλους πυκνωτές και αντιστάσεις. 28
Κεφάλαιο 3 Aισθητήρας μικροφώνου - Κύκλωμα ενισχυτή 3.1 Εισαγωγή Στο παρών κεφάλαιο παρουσιάζεται ο αισθητήρας του μικροφώνου, το σχηματικό του διάγραμμα καθώς και οι προδιαγραφές με βάση τις οποίες λειτουργεί. Επιπλέον, γίνεται αναφορά και στον ενισχυτή που υλοποιήθηκε για την ορθή λειτουργία του μικροφώνου και κατ επέκταση του τελικού συστήματος. Παρουσιάζεται αναλυτικά το κύκλωμα λειτουργίας του και η συνδεσμολογία που χρησιμοποιήθηκε για να υλοποιηθεί το τελικό σύστημα. 3.2 Μικρόφωνα Εισαγωγή Όλες οι πηγές ήχου έχουν διαφορετικά χαρακτηριστικά, οι κυματομορφές τους ποικίλουν, τα χαρακτηριστικά της φάσης τους ποικίλουν, το δυναμικό τους εύρος και ο χρόνος απόκρισης ποικίλει καθώς και η απόκριση συχνότητας [9]. Καμία πηγή ήχου δεν θα παρουσιάσει παρόμοια χαρακτηριστικά όπως τα παραπάνω με κάποια άλλη πηγή. Τα μικρόφωνα είναι ηλεκτροακουστικές συσκευές που μετατρέπουν ακουστική ενέργεια σε ηλεκτρική ενέργεια. Όλα τα μικρόφωνα έχουν ένα διάφραγμα ή μια κινούμενη επαφή η οποί επηρεάζεται από το ακουστικό σήμα. Η αντίστοιχη έξοδος είναι ένα ηλεκτρικό σήμα που αναπαριστά την ακουστική είσοδο. Τα μικρόφωνα ταξινομούνται είτε ανάλογα με τον τρόπο λειτουργίας τους είτε ανάλογα με την κατευθυντικότητά τους. Η ταξινόμηση με βάση τον τρόπο λειτουργίας διαχωρίζει τα μικρόφωνα σε τέσσερις κατηγορίες: Δυναμικά μικρόφωνα Μικρόφωνα ταινίας Πυκνωτικά μικρόφωνα Μικρόφωνα κρυστάλλων 29
3.2. ΜΙΚΡΟΦΩΝΑ Το συγκεκριμένο μικρόφωνο που χρησιμοποιήθηκε ανήκει στην κατηγορία των πυκνωτικών μικροφώνων. Το πυκνωτικό μικρόφωνο στηρίζει την λειτουργία του στις μεταβολές της χωρητικότητας ενός ενσωματωμένου πυκνωτή, σύμφωνα με τις μεταβολές τις πίεσης που προκαλούνται από τα ηχητικά κύματα. Στο Σχήμα 3.1 φαίνεται το εσωτερικό ενός πυκνωτικού μικροφώνου. Σχήμα 3.1: Εσωτερικό πυκνωτικού μικροφώνου Πιο αναλυτικά και με βάση το Σχήμα 3.2 που παρουσιάζεται παρακάτω, ένας πυκνωτής έχει δύο πλάκες με τάση ανάμεσα τους. Στο πυκνωτικό μικρόφωνο, μια απο αυτές τις δύο πλάκες είναι φτιαγμένη απο πολύ λεπτό υλικό και λειτουργεί σαν διάφραγμα. Το διάφραγμα δονέιται όταν έρχεται σε επαφή με ηχητικά κύματα, αλλάζοντας την απόσταση ανάμεσα στις δύο πλάκες και άρα αλλάζοντας και την χωριτηκότητα. Συγκεκριμένα, όταν οι πλάκες είναι πολύ κοντά, η χωριτηκότητα αυξάνεται και εμφανίζεται ρεύμα φόρτισης. Όταν οι πλάκες είναι απομακρισμένες η μια απο την άλλη, η χωριτηκότητα μειώνεται και το ρεύμα εκφόρτισης εμφανίζεται. Μια τάση διαμέσου του πυκνωτή απαιτείται για να δουλέψει το μικρόφωνο. Aυτή η τάση προέρχεται είτε απο μπαταρία είτε απο κάποια άλλη εξωτερική πηγή. Σχήμα 3.2: Πυκνωτικό Μικρόφωνο Η ταξινόμηση των μικροφώνων με βάση την κατευθυντικότητα τους διαχωρίζει τα μικρόφωνα σε πέντε κατηγορίες [10]: 30 Παντοκατευθυντικά (Omnidirectional) Δι-κατευθυντικά (Bidirectional)
ΚΕΦΑΛΑΙΟ 3. AΙΣΘΗΤΗΡΑΣ ΜΙΚΡΟΦΩΝΟΥ - ΚΥΚΛΩΜΑ ΕΝΙΣΧΥΤΗ Moνοκατευθυντικά (Unidirectional) Iδιαιτέρως-κατευθυντικά Μικρόφωνα με περισσότερα απο ένα πολικό διάγραμμα Το μικρόφωνο που χρησιμοποιήθηκε ανήκει στην κατηγορία των παντοκατευθυντικών μικροφώνων. Τα παντοκατευθυντικά μικρόφωνα είναι εξίσου ευαίσθητα σε όλα τα ηχητικά ερεθίσματα, ανεξάρτητα απο την κατεύθυνση που έρχονται και τη γωνία που έχει η πηγή τους σε σχέση με το διάφραγμά τους. Στο Σχήμα 3.3 φαίνεται αυτό το χαρακτηριστικό των μικροφώνων αυτών. Παρ όλα αυτά, ακόμα και τα καλύτερα παντοκατευθυντικά μικρόφωνα γίνονται κατευθυντικά σε υψηλές συχνότητες. Ετσι ήχος που προέρχεται απο πίσω απο το μικρόφωνο μπορεί να φανεί λίγο πιο καθαρός απο τον ήχο που προέρχεται απο το μπροστινό μέρος αν και οι δύο είναι εξίσου δυνατοί. Σχήμα 3.3: Omnidirectional Microphone diagram Tα παντοκατευθυντικά μικρόφωνα έχουν μια επίπεδη και χωρίς πολλές διακυμάνσεις απόκριση συχνότητας μέσα σε όλο το ηχητικό φάσμα διότι μόνο το μπροστινό μέρος του διαφράγματος εκτείθεται στην πηγή, εξαλείφοντας φασικές ακυρώσεις που παρατηρούνται στα μονοκατευθυντιά μικρόφωνα. Για πιο λεία απόκριση, τα μικρόφωνα πρέπει να έχουν όσο το δυνατόν μικρότερο μέγεθος. Το πρόβλημα συνήθως έγκειται στο μέγεθος του μικροφώνου, καθώς όσο πιο μικρό είναι το διάφραγμα τόσο πιο χαμηλή είναι η ευαισθησία του μικροφώνου και κατά συνέπεια τόσο πιο χαμηλό το SNR. 3.3 Hλεκτρικό Πυκνωτικό Μικρόφωνο CMA-4544 PF-W Το μικρόφωνο που χρησιμοποιήθηκε στην παρούσα διπλωματική ανήκει στην κατηγορία των ηλεκτρικών πυκνωτικών μικροφώνων και προέρχεται από την εταιρία CUI INC [11]. Η λειτουργία αυτού του τύπου των μικροφώνων έχει 31
3.3. HΛΕΚΤΡΙΚΟ ΠΥΚΝΩΤΙΚΟ ΜΙΚΡΟΦΩΝΟ CMA-4544 PF-W περιγραφεί και παραπάνω, οπότε στο παρών υποκεφάλαιο θα αναφερθούν οι τεχνικές προδιαγραφές του μικροφώνου αυτού. Στο Σχήμα 3.4 παρουσιάζεται το μικρόφωνο. Σχήμα 3.4: CMA-4544 PF-W Οι προδιαγραφές για τη ορθή λειτουργία του μικροφώνου συνοψίζονται στις εξής: Τάση λειτουργίας από 3V-10V Ευαισθησία στα -44 ± 2 db όπου για συχνότητα F = 1KHz και πίεση 1Pa ορίζονται τα 0db = 1V/Pa Mείωση ευαισθησίας στα -3 db όπου για συχνότητα F = 1 KHz και πίεση 1Pa η τάση κυμαίνεται από 3-2V Eμπέδηση εξόδου στα 2.2KΩ Συχνότητα λειτουργίας από 20 20000Hz Μέγιστη κατανάλωση ρεύματος στα 0.5 ma Λόγος σήματος προς θόρυβο (SNR) στα 60 db Θερμοκρασία λειτουργίας από -20 +70 C Στο Σχήμα 3.5 παρουσιάζεται τo κυκλωματικό διάγραμμα του μικροφώνου με βάση το οποίο πραγματοποιήθηκε και η συνδεσμολογία για την ορθή του λειτουργία. Mε βάση το παρακάτω σχηματικό διάγραμμα συνδέουμε το ένα άκρο του μικροφώνου με την τροφοδοσία που είναι στα 9V παρεμβάλλοντας ενδιάμεσα μια αντίσταση στα 2.2KΩ και συνδέουμε το άλλο άκρο με την γείωση. Στη συνέχεια η έξοδος του μικροφώνου συνδέεται με ένα πυκνωτή με τιμή 10μF και ακολουθεί το κύκλωμα του ενισχυτή που θα περιγραφεί στην συνέχεια. Τέλος, στο Σχήμα 3.6 παρουσιάζεται η απόκριση συχνότητας του μικροφώνου. Στο παρακάτω διάγραμμα παρατηρούμε πως η απόκριση συχνότητας του μικροφώνου είναι επίπεδη χωρίς διακυμάνσεις παρα μόνο στην περιοχή των 4-9ΚHz όπου παρουσιάζεται μια μκρή διακύμανση των 3db. 32
ΚΕΦΑΛΑΙΟ 3. AΙΣΘΗΤΗΡΑΣ ΜΙΚΡΟΦΩΝΟΥ - ΚΥΚΛΩΜΑ ΕΝΙΣΧΥΤΗ Σχήμα 3.5: Schematic Diagram Σχήμα 3.6: Απόκριση συχνότητας 3.4 Ενισχυτής μικροφώνου LM358 Για την υλοποίση του κυκλώματος του τελικού ενισχυτή χρησιμοποιήθηκε το chip LM358 της Texas Instruments [12]. H μορφή του chip φαίνεται στο Σχήμα 3.7. Σχήμα 3.7: LM358 Η σειρά LM358 αποτελείται απο δύο ανεξάρτητους ενισχυτές, υψηλού κέρδους και εσωτερικής αντιστάθμισης συχνότητας και είναι σχεδιασμένη για να λειτουργεί απο μια πηγή τάσης με μεγάλο εύρος τιμών τάσης. Έχει μεγάλο κέρδος DC τάσης στα 100db και το έυρος του κυμαίνεται στο 1MHz. Στο Σχήμα 3.8 παρουσιάζεται το κύκλωμα του κάθε ενισχυτή. Οι διαφορικές είσοδοι του κάθε ενισχυτή αποτελούνται απο μια μη αναστρέφουσα είσοδο (+IN) και απο μια αναστρέφουσα είσοδο (-ΙΝ). Ο ενισχυτής 33
3.5. ΥΛΟΠΟΙΗΣΗ ΕΝΙΣΧΥΤΗ Σχήμα 3.8: Eνισχυτής ενισχύει μόνο την διαφορά της τάσης μεταξύ των δύο εισόδων, το οποίο ονομάζεται διαφορική τάση εισόδου. Η τάση εξόδου του ενισχυτή Vout δίνεται απο την σχέση 3.1 : V out = AOL ((IN + ) (IN )) (3.1) όπου το AOL είναι το κέρδος του ενισχυτή, τυπικά κοντά στα 100 db. Στο Σχήμα 3.9 παρουσιάζεται η τοπολογία που χρησιμοποιήθηκε για την ορθή λειτουργία των ενισχυτών. Σχήμα 3.9: Noninverting DC Gain Πρόκειται για Μη αναστρέφουσα συνδεσμολογία. Αυτό το κύκλωμα παρέχει κέρδος κλειστού βρόχου ίσο με το λόγο του αθροίσματος του R1 με το R2 προς το R1 και ένα κλειστό βρόχο με εύρος 3db ίσο με την συχνότητα unity-gain του ενισχυτή διαραιμένη με το κέρδος του κλειστού βρόχου. Αυτή η υλοποίηση έχει το πλεονέκτημα της πολύ υψηλής εμπέδησης εισόδου, η οποία ισούται με την διαφορική εμπέδηση εισόδου πολλαπλασιασμένη με το κέρδος του βρόχου. (Κέρδος ανοιχτού βρόχου/κέρδος κλειστού βρόχου). 3.5 Υλοποίηση ενισχυτή Για το τελικό κύκλωμα του ενισχυτή χρησιμοποιήθηκε το chip LM358 με τους δύο εσωτερικούς ενισχυτές, δημιουργώντας έτσι ένα ενισχυτή δύο σταδίων. Στο Σχήμα 3.10 παρουσιάζεται το κύκλωμα του τελικού ενισχυτή. Η συνδεσμολογία κάθε ενισχυτή είναι αναστρέφουσα και η επιλογή των αντιστάσεων και των πυκνωτών πραγματοποιήθηκε με γνώμονα την ομαλή απόκριση συχνότητας του ενισχυτή αποφεύγοντας τις πολλές διακυμάνσεις. Το κέρδος του συνολικού ενισχυτή είναι 50,6 51 και αυτό προκύπτει από τον πολλαπλασιασμό των κερδών του κάθε ενισχυτή ξεχωριστά. Πιο αναλυτικά, 34
ΚΕΦΑΛΑΙΟ 3. AΙΣΘΗΤΗΡΑΣ ΜΙΚΡΟΦΩΝΟΥ - ΚΥΚΛΩΜΑ ΕΝΙΣΧΥΤΗ Σχήμα 3.10: Τελικός Ενισχυτής για τον πρώτο ενισχυτή έχουμε κέρδος Gain1 = R4/R3 + 1 = 1.2/1 +1 = 2.2 και για τον δεύτερο ενισχυτή το κέρδος είναι Gain2 = R8/R9 +1 = 22/1 +1 = 23. Οπότε το τελικό κέρδος προκύπτει να είναι Gain = Gain1 * Gain2 = 50.6 51. Για να γίνει περισσότερο κατανοητή η λειτουργία του ενισχυτή παρουσιάζεται στο Σχήμα 3.11 η απόκριση συχνότητάς του. Η απόκριση συχνότητας περιγράφει τον τρόπο λειτουργίας του ενισχυτή για ένα συγκεκριμένο εύρος συχνοτήτων δείχνοντας πως το κέρδος του αλλάζει με την συχνότητα. Σχήμα 3.11: Απόκριση συχνότητας ενισχυτή Όπως φαίνεται και από το Σχήμα 3.11 η απόκριση του συγκεκριμένου ενισχυτή είναι επίπεδη σε όλο το εύρος των συχνοτήτων εκτός από τις πολύ μικρές συχνότητες όπου παρουσιάζεται μια μικρή μεταβολή στο κέρδος. Αυτό συμβαίνει διότι στις μεσαίες συχνότητες οι πυκνωτές που βρίσκονται σε σειρά (coupling capacitors) λειτουργούν σαν βραχυκύκλωμα και οι shunt capacitors (παράμετροι μοντέλου συσκευής) λειτουργούν σαν ανοιχτό κύκλωμα κι έτσι το κέρδος της τάσης σε αυτό το εύρος των συχνοτήτων παραμένει σταθερό. Η καμπύλη της απόκρισης της συχνότητας πέφτει σε χαμηλές συχνότητες λόγω της αύξησης της εμπέδησης των coupling capacitors. 3.6 Διαιρέτης τάσης Ο διαιρέτης τάσης είναι μια κυκλωματική διάταξη που αποτελείται από δύο αντιστάσεις συνδεδεμένες σε σειρά, στα άκρα των οποίων εφαρμόζεται 35
3.6. ΔΙΑΙΡΕΤΗΣ ΤΑΣΗΣ η τάση εισόδου. Ως τάση εξόδου λαμβάνεται η διαφορά δυναμικού ανάμεσα στους ακροδέκτες της μίας εκ των δύο αντιστάσεις. Οι τιμές που μπορεί να πάρει η τάση εξόδου κυμαίνονται από το 0 έως την τάση εισόδου. Στο Σχήμα 3.12 παρουσιάζεται το κύκλωμα του διαιρέτη τάσης. Σχήμα 3.12: Διαιρέτης Τάσης Η ανάλυση του κυκλώματος ενός διαιρέτη τάσης είναι αρκετά απλή. Σύμφωνα με την θεωρία των ηλεκτρικών κυκλωμάτων, η ένταση του ρεύματος που διαρρέει το κύκλωμα των δύο αντιστατών εν σειρά προκύπτει από την διαίρεση της τάσης που εφαρμόζεται στα άκρα του κυκλώματος προς το άθροισμα των τιμών των εν σειρά αντιστάσεων. Η τάση εξόδου είναι ουσιαστικά η τάση που αναπτύσσεται στα άκρα της δεύτερης αντίστασης. Η τάση αυτή μπορεί να βρεθεί εάν πολλαπλασιάσουμε το ρεύμα που διαρρέει την αντίσταση επί την τιμή της. Ο συλλογισμός αυτός μπορεί να δοθεί μαθηματικά με τους ακόλουθους τύπους: Ρεύμα κυκλώματος από την σχέση 3.2 : I = Τάση εξόδου από την σχέση 3.3 : V in R 1 + R 2 (3.2) V out = I R 2 (3.3) Από την παραπάνω ανάλυση προκύπτει πως, με κατάλληλη εκλογή των ηλεκτρικών αντιστάσεων του κυκλώματος, μπορούμε να πάρουμε στην έξοδο οποιαδήποτε τιμή τάσης ανάμεσα στο 0 και την τάση εισόδου. Στο κύκλωμα που υλοποιήθηκε η τιμή των αντιστάσεων είναι στο 1MΩ. Επειδή οι τιμές της εξόδου του μικροφώνου είναι της τάξης των 30mV και οι τιμές εισόδου του PmodAD1 ανήκουν στο εύρος 0-3V, είναι δηλαδή θετικές, χρησιμοποιούμε διαιρέτη τάσης με τροφοδοσία 3V. Έτσι μετακινούνται οι τιμές μας γύρω από το 1.5V και ανήκουν στο επιθυμητό εύρος 0-3V. 36
Κεφάλαιο 4 Mοντέλο εντοπισμού θέσης - Μέτρηση ισχύος ηχητικού σήματος 4.1 Εισαγωγή Στο παρών κεφάλαιο παρουσιάζεται αναλυτικά το μοντέλο που υλοποιήθηκε στη Matlab για τον εντοπισμό της τυχαίας θέσης της πηγής κάθε φορά καθώς ο τρόπος που πραγματοποίθηκε η μέτρηση της ισχύος του ηχητικού σήματος. Γίνεται περιγραφή του τρόπου επικοινωνίας μεταξύ του κυκλώματος του ενισχυτή και του μικροφώνου με το DA14580 development kit. Τέλος, παρουσιάζεται η υλοποίηση του φίλτρου FIR στη τόσο στη Μatlab όσο και στο development kit. 4.2 Υλοποίηση μοντέλου ανίχνευσης κίνησης Στο περιβάλλον της Matlab υλοποιήθηκε το τελικό μοντέλο με βάση το οποίο ανιχνεύεται η θέση της πηγή σε ένα περιβάλλον με τέσσερις σταθερούς δέκτες. Το σύστημα που υλοποιήθηκε με βάση το μικρόφωνο,τον ενισχυτή και το DA14580 development kit αποτελεί το σύστημα του δέκτη το οποίο μπορεί να ενσωματωθεί στην παραπάνω προσομοίωση με αποτέλεσμα κάθε ένας από τους παραπάνω δέκτες να απαρτίζεται από τέτοια συστήματα τα οποία μέσω του μικροφώνου θα ανιχνεύουν την θέση της εκάστοτε πηγής [16], [17]. Αρχικά υλοποιήθηκε το κομμάτι για την παραγωγή του σήματος από την πηγή λαμβάνοντας υπόψη τόσο το θόρυβο που υπάρχει στο χώρο (background noise) όσο και το θόρυβο που έχει ο κάθε δέκτης ξεχωριστά. Το παραγόμενο σήμα δημιουργήθηκε με βάση τη μορφή που είχαν τα σήματα που έφταναν στο κύκλωμα του μικροφώνου από την πηγή,δηλαδή από το ασύρματο ηχείο της Logitech, έτσι όπως παρουσιαζόταν μέσω του παλμογράφου. Tο σήμα της πηγής χωρίς την προσθήκη θορύβου παρουσιάζεται στο Σχήμα 4.1 και μετά από την προσθήκη θορύβου στο Σχήμα 4.2. Ο θόρυβος που προστίθεται τόσο στην πηγή όσο και σε κάθε δέκτη όπως θα φανεί και από το Σχήμα 4.3 είναι στα 62dB για τον Background Noise και στα 16dB για τον θόρυβο που εισάγεται στο κάθε σύστημα. Ο τύπος του θορύβου που χρησιμοποιήθηκε είναι ο προσθετικός λευκός Γκαουσιανός θόρυβος με μέση τιμή είκοσι και διασπορά πέντε. Ο κάθε ένας από τους τέσσερις-εννία 37
4.2. ΥΛΟΠΟΙΗΣΗ ΜΟΝΤΕΛΟΥ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Σχήμα 4.1: Σήμα πηγής χωρίς θόρυβο Σχήμα 4.2: Σήμα πηγής με θόρυβο δέκτες λαμβάνει ένα μέρος του παραπάνω σήματος καθώς δεν λαμβάνουν όλοι το εκπεμπόμενο σήμα από την πηγή την ίδια χρονική στιγμή. Αυτό η καθυστέρηση για τον κάθε δέκτη προσομοιώνεται στη Matlab με την εντολή randi, όπου το σήμα φτάνει στο δέκτη μετά από τυχαίο αριθμό δειγμάτων Κ. Από την στιγμή που το σήμα φτάσει στο δέκτη ακολουθείται η διαδικασία που παρουσιάζεται στο Σχήμα 4.3. Με βάση το Σχήμα 4.15 και όσα αναφέρθηκαν παραπάνω παρατηρούμε πως το σήμα που φτάνει σε κάθε κόμβο υπόκειται σε μια καθυστέρηση, διαφορετική για τον κάθε κόμβο, και λαμβάνει ένα τυχαίο κομμάτι του σήματος κάθε φορά. Στη συνέχεια αυτό το σήμα εξασθενείτε με βάση το τετράγωνο της απόστασης που απέχει ο κάθε κόμβος από την πηγή. Σε αυτό το εξα- 38
ΚΕΦΑΛΑΙΟ 4. MΟΝΤΕΛΟ ΕΝΤΟΠΙΣΜΟΥ ΘΕΣΗΣ - ΜΕΤΡΗΣΗ ΙΣΧΥΟΣ ΗΧΗΤΙΚΟΥ ΣΗΜΑΤΟΣ Σχήμα 4.3: Διάγραμμα δέκτη σθενισμένο σήμα προστίθεται τόσο ο θόρυβος που έχει ο κάθε κόμβος όσο και ο θόρυβος που περιέχει ο χώρος μέσα στον οποίο βρίσκεται το σύστημα μας. Τέλος, έχοντας προσομοιώσει κατά ένα μεγάλο βαθμό το πραγματικό σήμα που εισέρχεται σαν είσοδος στο πραγματικό μας σύστημα υπολογίζεται η ισχύς του σήματος. Ο υπολογισμός της ισχύος προκύπτει ως εξής: υπολογίζεται για κάθε σαράντα χιλιάδες δείγματα η τιμή της ισχύος ως άθροισμα τετραγώνων των δειγμάτων διαιρεμένων με το πλήθος των δειγμάτων. Για κάθε ομάδα δειγμάτων συγκρίνεται η τιμή της ισχύος με ένα κατώφλι που είναι στα 5uW και αντιστοιχεί στο θόρυβο, και έτσι για το εντοπισμό της θέσης της ισχύος χρησιμοποιείται μόνο η ωφέλιμη τιμή της ισχύος. Έχοντας υπολογίσει με βάση την παραπάνω διαδικασία την τιμή της ισχύος σε κάθε ένα από τους τέσσερις-εννία κόμβους, υλοποιείται ο αλγόριθμος για τον εντοπισμό της θέσης της πηγής [18], [19]. Στην υλοποίηση με τους τέσσερις κόμβους, εντοπίζεται ο κόμβος με την μεγαλύτερη ισχύ καθώς έχοντας την μεγαλύτερη ισχύ σημαίνει ότι βρίσκεται και πιο κοντά στην πηγή. Στη συνέχεια υπολογίζεται η απόσταση του τυχαίου σημείου, δηλαδή της πηγής, από τον κόμβο αυτό με βάση τις παρακάτω εξισώσεις 4.1, 4.2, 4.3, 4.4 : P s P 1 = x 2 1 + y 2 1 (4.1), όπου x1 η απόσταση της πηγής από τον κόμβο ένα στον άξονα Χ και y1 η απόσταση της πηγής από τον κόμβο ένα στον άξονα Υ P s P 2 = (D x 1 ) 2 + y 2 1 (4.2) P s P 3 = x 2 1 + (D y 1 ) 2 (4.3) P s P 4 = (D x 1 ) 2 + (D y 1 ) 2 (4.4) Γνωρίζοντας την απόσταση D μεταξύ των κόμβων και την ισχύ τόσο σε κάθε κόμβο όσο και στην ίδια την πηγή μπορούμε με βάση τις εξισώσεις 4.1, 4.2 και 4.3, 4.4 να υπολογίσουμε την απόσταση x1 και y1 αντίστοιχα σε σχέση με τους γειτονικούς κόμβους δύο και τρία. Έτσι, με το τρίγωνο που δημιουργείται 39
4.2. ΥΛΟΠΟΙΗΣΗ ΜΟΝΤΕΛΟΥ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ οποίο φαίνεται και στο Σχήμα 4.4, μπορούμε να υπολογίσουμε την τελική απόσταση της πηγής από τον κόμβο ένα στην συγκεκριμένη περίπτωση. Σχήμα 4.4: Υπολογισμός απόστασης πηγής από κόμβο Mε βάση τις σχέσεις 4.5 και 4.6 μπορούμε να υπολογίσουμε την απόσταση της πηγής από κάθε κόμβο. x 1 = P s P 1 P s P 2 + D 2 2D (4.5) y 1 = P s P 1 P s P 3 + D 2 2D (4.6) Συνεχίζοντας αυτή τη διαδικασία και λύνοντας τις εξισώσεις όλων των τριγώνων που προκύπτουν γνωρίζουμε την απόσταση της πηγής από όλους τους κόμβους. Το τέλος του αλγορίθμου παρουσιάζεται σχηματικά από το Σχήμα 4.5. Σχήμα 4.5: Υπολογισμός απόστασης πηγής για όλους τους κόμβους Όπως βλέπουμε και στο Σχήμα 4.5 ο χώρος των τεσσάρων κόμβων έχει τριγωνοποιηθεί για κάθε κόμβο ξεχωριστά και έτσι εντοπίζεται η θέση της πηγής στο χώρο αυτό. Για την ορθή εκτίμηση της θέσης της πηγής πραγματοποιήθηκαν μετρήσεις για διαφορετικά επίπεδα θορύβου, συγκεκριμένα για θόρυβο 16dB και 2dB 40
ΚΕΦΑΛΑΙΟ 4. MΟΝΤΕΛΟ ΕΝΤΟΠΙΣΜΟΥ ΘΕΣΗΣ - ΜΕΤΡΗΣΗ ΙΣΧΥΟΣ ΗΧΗΤΙΚΟΥ ΣΗΜΑΤΟΣ σε κάθε κόμβο. Στα σχήματα που ακολουθούν παρουσιάζεται η προβλεπόμενη περιοχή εντοπισμού της πηγής με βάση την τυχαία θέση της κάθε φορά. Σχήμα 4.6: Θέση πηγής στο (2,4) Στο Σχήμα 4.6 η θέση της πηγής για θόρυβο στα 16dB βρίσκεται στο σημείο (2,4) και σε απόσταση 1,78108 από τον κόμβο ένα που είναι ο πιο κοντινός σε αυτή. Με βάση τις αποστάσεις της πηγής και από τους γύρω κόμβους σχηματίζονται οι κύκλοι με την συνεχόμενη γραμμή. Αλλάζοντας τον θόρυβο στα 2dB παρατηρούμε με την διακεκομμένη γραμμή την μεταβολή της θέσης της πηγής για κάθε σημείο απόσταση τώρα από τον κόμβο ένα είναι στα 1.938080. Με βάση τις καινούργιες αποστάσεις που προκύπτουν γίνεται η εκτίμηση πως το σημείο μετακινείται και απομακρύνεται περίπου κατά 0,15 πόντους από τους υπάρχοντες κύκλους στο παραπάνω γράφημα. Αυτό παρουσιάζεται πιο ξεκάθαρα στο Σχήμα 4.7 Σχήμα 4.7: Απομάκρυνση πηγής λόγω θορύβου Στο Σχήμα 4.7 παρατηρούμε την αρχική θέση του σημείου που είναι σχεδόν πάνω στην κίτρινη γραμμή και την μετέπειτα μετακίνηση του στην μπλε διακεκομμένη γραμμή εξαιτίας της αλλαγής του θορύβου που δέχεται ο κάθε κόμβος. Παρατηρούμε επίσης ότι το η πηγή απομακρύνεται από τον κόμβο ένα και τους γύρω κόμβους και ανήκει σε ένα ευρύτερο κύκλο μεγαλύτερο από τον προηγούμενο κατά 0.15 πόντους. 41
4.2. ΥΛΟΠΟΙΗΣΗ ΜΟΝΤΕΛΟΥ ΑΝΙΧΝΕΥΣΗΣ ΚΙΝΗΣΗΣ Αντίστοιχα στο Σχήμα 4.8 παρουσιάζεται η θέση της πηγής για τα 16dB να βρίσκεται στο σημείο (3,2) και να είναι σε απόσταση 2.714728 από τον κόμβο τέσσερα. Σχήμα 4.8: Θέση πηγής στο (3,2) Με την προσθήκη θορύβου στα 2dB παρατηρούμε στο Σχήμα 4.9 πάλι την απομάκρυνση του σημείου από την αρχική του θέση και τους γύρω κόμβους. Η απόσταση που βρίσκεται τώρα από τον κόμβο τέσσερα είναι στα 2.897179. Σχήμα 4.9: Απομάκρυνση πηγής λόγω θορύβου Παρατηρούμε την μετακίνηση της πηγής από την κίτρινη γραμμή στην μπλε διακεκομμένη γραμμή εξαιτίας της αλλαγής του θορύβου που δέχεται ο κάθε κόμβος. Παρατηρούμε επίσης ότι το η πηγή απομακρύνεται από τον κόμβο ένα και τους γύρω κόμβους και ανήκει σε ένα ευρύτερο κύκλο μεγαλύτερο από τον προηγούμενο κατά 0.18 πόντους. Τέλος στο Σχήμα 4.10 έχουμε την πηγή για τα 16dB να βρίσκεται στο σημείο (4,5) και σε απόσταση 0.331149 από τον κόμβο δύο, που βρίσκεται πιο κοντά της. Παρατηρούμε πάλι την αλλαγή στη θέση της πηγής με την προσθήκη θορύβου στα 2dB. H απόστασή της τώρα από τον κόμβο δύο είναι στους 0.462008 πόντους. Με βάση το Σχήμα 4.11 παρατηρούμε την αρχική θέση του σημείου που είναι σχεδόν πάνω στην κίτρινη γραμμή και την μετέπειτα μετακίνηση του στην μπλε 42
ΚΕΦΑΛΑΙΟ 4. MΟΝΤΕΛΟ ΕΝΤΟΠΙΣΜΟΥ ΘΕΣΗΣ - ΜΕΤΡΗΣΗ ΙΣΧΥΟΣ ΗΧΗΤΙΚΟΥ ΣΗΜΑΤΟΣ Σχήμα 4.10: Θέση πηγής στο (4,5) Σχήμα 4.11: Απομάκρυνση πηγής λόγω θορύβου διακεκομμένη γραμμή εξαιτίας της αλλαγής του θορύβου που δέχεται ο κάθε κόμβος. Παρατηρούμε επίσης ότι το η πηγή απομακρύνεται από τον κόμβο ένα και τους γύρω κόμβους και ανήκει σε ένα ευρύτερο κύκλο μεγαλύτερο από τον προηγούμενο κατά 0.13 πόντους. 4.3 SPI Interface Η επικοινωνία μεταξύ του μικροφώνου και του ενισχυτή του που ακολουθεί στο κύκλωμα γίνεται μέσω του PmodAD1 [13]. Tο Pmod αυτό περιέχει όπως έχει περιγραφεί και στο κεφάλαιο 2, δύο μετατροπείς του αναλογικού σήματος σε ψηφιακό από τους οποίους εμείς χρησιμοποιούμε μόνο τον ένα. To πρωτόκολλο επικοινωνίας που υλοποιήθηκε μεταξύ PmodAD1 και DA14580 development kit είναι μέσω SPI. Mέσω αυτής της σειριακής επικοινωνίας μεταδίδονται δεδομένα των 8-bit με τον τρόπο λειτουργίας Master-Slave. Aυτού του είδους η επικοινωνία ενισχύει την λειτουργικότητα της με την χρήση δικατευθυντήριων FIFOs των 2x16-bit. To ρολόι λειτουργίας αυτού του τρόπου επικοινωνίας είναι αρχικά στα 16 MHz αλλά για την καλύτερη λειτουργία του συστήματος έχει μειωθεί στα 8 MHz. Το Bus της SPI, το οποίο είναι δικατευθυντήριο (δηλαδή τα σήματα που μεταφέρουν δεδομένα μπορούν να μεταβούν προς οποιαδήποτε κατεύθυνση ταυτόχρονα), είναι ένας σύγχρονος τρόπος μετάδοσης δεδομένων με διεπαφές Master-Slave και μπορεί να υποστηρίζει παραπάνω από 10 Μbps ταχύτητα. Η SPI μπορεί να υποστηρίξει πρωτόκολλα τόσο Single-master όσο και Multi-master [14]. Γραμμές δεδομένων, ελέγχου της SPI και βασική συνδεσμολογία 43
4.3. SPI INTERFACE Το πρωτόκολλο της SPI αποτελείται από τέσσερα σήματα: Master Out Slave In (MOSI) To σήμα MOSI δημιουργείται από τον Master και λαμβάνεται από τον Slave. Master In Slave Out (MISO) O Slave δημιουργεί το σήμα MISO και παραλήπτης είναι ο Master. Serial Clock (SCLK or SCK) To σήμα αυτό δημιουργείται στον Master για να συγχρονίζει τα δεδομένα που μεταδίδονται από τον Master στον Slave. Slave Select (SS) από τον Μaster σε Chip Select (CS) στον Slave Το σήμα SS παράγεται από τον Master για να επιλέξει τις εκάστοτε slaveperipheral συσκευές. Το σήμα SS-CS ενεργοποιείται με την πίπτουσα παρυφή. Στο Σχήμα 4.12 παρουσιάζεται ένα πρότυπο σύνδεσης με SPI μεταξύ ενός Master και ενός Slave. Ανάμεσα σε αυτά τα τέσσερα σήματα, το MOSI και το MISO ανήκουν στις γραμμές δεδομένων και το SS με το SCLK στις γραμμές ελέγχου. Σχήμα 4.12: Μaster-Slave Στο Single-Master πρωτόκολλο, το οποίο υλοποιήθηκε και στην παρούσα διπλωματική, η μία συσκευή (το DA14580 development kit) λειτουργεί σαν Μaster και ελέγχει την ροή των δεδομένων δημιουργώντας σήμα ρολογιού (SCLK) και ενεργοποιώντας τον Slave με τον οποίο θέλει να επικοινωνήσει μέσω του σήματος SS. Στη συνέχεια λαμβάνει και μεταδίδει δεδομένα διάμεσο των δύο γραμμών δεδομένων. Ο Master, που συνήθως είναι ο host μικροελεγκτής, πάντα παράγει σήμα ρολογιού για όλες τις συσκευές στο δίαυλο επικοινωνίας είτε τις έχει επιλέξει είτε όχι. Τρόπος επικοινωνίας 44
ΚΕΦΑΛΑΙΟ 4. MΟΝΤΕΛΟ ΕΝΤΟΠΙΣΜΟΥ ΘΕΣΗΣ - ΜΕΤΡΗΣΗ ΙΣΧΥΟΣ ΗΧΗΤΙΚΟΥ ΣΗΜΑΤΟΣ Η επικοινωνία ξεκινάει από τον Μaster πάντα. Ο Master διαμορφώνει το ρολόι, χρησιμοποιώντας μια συχνότητα η οποία μικρότερη ή ίση με την μέγιστη συχνότητα που υποστηρίζει η συσκευή που λειτουργεί ως Slave. Στη συνέχεια ο Master επιλέγει τον επιθυμητό Slave για επικοινωνία ωθώντας το σήμα Chip Select του συγκεκριμένου Slave-περιφερειακού στην κατάσταση low. Εάν απαιτείται μια περίοδος αναμονής ( όπως για παράδειγμα για την μετατροπή από αναλογικό σε ψηφιακό) τότε ο Master πρέπει να περιμένει τουλάχιστον για την ίδια περίοδο χρόνου προτού αρχίσουν να επακολουθούν κύκλοι ρολογιού. Oι Slaves στο δίαυλο που δεν έχουν ενεργοποιηθεί από τον Μaster με το σήμα Slave Select, παραβλέπουν το ρολόι εισόδου και το σήμα MOSI που στέλνονται από τον Master και δεν οδηγούν το σήμα MISO. Με αυτό συμπεραίνουμε πως ο Master επιλέγει ένα Slave κάθε φορά. Σε κάθε κύκλο ρολογιού λαμβάνει χώρα μια δικατευθυντήρια μετάδοση δεδομένων. Αυτό σημαίνει πως ο Master στέλνει ένα Bit στη γραμμή MOSI, ο Slave την διαβάζει από την ίδια γραμμή και στέλνει ένα bit στην γραμμή MISO. Tέλος, ο Master το διαβάζει από την ίδια γραμμή. Η ανταλλαγή δεδομένων οργανώνεται με την χρήση Shift Register με δεδομένο μέγεθος λέξης όπως είναι τα 8-bit τόσο στην πλευρά του Master όσο και στου Slave. H σύνδεση μεταξύ Μaster και Slave γίνεται με τους δύο Shift Registers να δημιουργούν ένα κυκλικό Buffer. Στο Σχήμα 4.13 παρουσιάζεται η επικοινωνία με τον Circular Buffer. Σχήμα 4.13: Circular Buffer Όπως φαίνεται και στο Σχήμα 4.13 υπάρχει ένας 8bit shift register στον Master και στον Slave. Aυτοί οι καταχωρητές λειτουργούν με την τεχνική Serial- In/Serial-Out (SISO). H έξοδος του shift register του Master συνδέεται με την είσοδο του shift register του Slave, ενώ η έξοδος του shift register του Slave συνδέεται με την είσοδο του shift register του Master. Aυτό κάνει την σύνδεση να λειτουργεί σαν ένας κυκλικός buffer. Στο Σχήμα 4.14 παρουσιάζεται η μετάδοση ενός bit μεταξύ του Μaster και του Slave. Σχήμα 4.14: SPI επικοινωνία Στο Σχήμα 4.14 βλέπουμε πως πραγματοποιείται η μετάδοση ενός Bit. Αρχικά το δεδομένο στον shift register του Master βρίσκεται στις θέσεις Α7 45
4.3. SPI INTERFACE έως Α0 (MSB έως LSB) ενώ το δεδομένο στον shift register του Slave βρίσκεται στις θέσεις Β7 έως Β0 (MSB έως LSB). Αυτό είναι το αρχικό στάδιο πριν από κάποιο παλμό ρολογιού. Μόλις σταλθεί το σήμα του ρολογιού, οι shift registers ξεκινούν την λειτουργία τους και τα δεδομένα στους καταχωρητές ολισθαίνον κατά ένα Bit προς τα δεξιά. Μέσω αυτής της διαδικασίας το Bit Α0 φεύγει από τον Master και το bit Β0 από τον Slave. Εφόσον ο Master και ο Slave είναι συνδεδεμένοι έτσι ώστε να υλοποιούν ένα κυκλικό Buffer, το bit που φεύγει καταλαμβάνει την θέση με την μεγαλύτερη σημασία (MSB) στην άλλη συσκευή. Συγκεκριμένα, το bit Α0 που φεύγει από τον Μaster καταλαμβάνει την MSB θέση στον shift register του Slave ενώ το bit Β0 που φεύγει από τον Slave καταλαμβάνει την MSB θέση στο shift register του Master. Aυτή η διαδικασία συνεχίζεται για επτά ακόμα ρολόγια, έως ότου ο Master λάβει όλα τα δεδομένα του Slave και ο Slave αντίστοιχα του Master. Πολικότητα Ρολογιού και Φάση Έχοντας το συγχρονισμό κατά νου, ο Master δεν έχει ως μοναδικό ρόλο να παράγει παλμούς ρολογιού σε μια συγκεκριμένη συχνότητα (συνήθως μέσα στο εύρος των 10KHz έως 100MHz). Στην πραγματικότητα, o Master και ο Slave πρέπει να συμφωνούν σε κάποιο πρωτόκολλο συγχρονισμού διότι αλλιώς θα υπάρχει λανθασμένη επικοινωνία και τα δεδομένα θα χαθούν. Έτσι χρησιμοποιούνται οι αρχές της πολικότητας του ρολογιού (CPOL, clock polarity) και της φάσης του ρολογιού (CPHA, clock phase). CPOL Clock Polarity Aυτό το μέγεθος αποφασίζει την βασική τιμή του ρολογιού δηλαδή την τιμή του ρολογιού όταν ο δίαυλος της SPI είναι αδρανής. Όταν CPOL = 0, η βασική τιμή του ρολογιού είναι μηδέν, δηλαδή το σήμα SCK είναι Low όταν υπάρχει αδράνεια. Όταν CPOL = 1, η βασική τιμή του ρολογιού είναι ένα, δηλαδή το σήμα SCK είναι High όταν υπάρχει αδράνεια. CPHA Clock Phase Aυτό το μέγεθος αποφασίζει την μετάβαση του ρολογιού στην οποία τα δεδομένα δειγματοληπτούνται. Όταν CPHA = 0, τα δεδομένα δειγματοληπτούνται στην ανιούσα παρυφή του ρολογιού. Όταν CPHA = 1, τα δεδομένα δειγματοληπτούνται στην κατιούσα παρυφή του ρολογιού. Στην συγκεκριμένη υλοποίηση η SPI λειτουργεί με CPOL = 0 και CPHA = 0. Aυτό σημαίνει πως τα δεδομένα δειγματοληπτούνται στην ανιούσα παρυφή του ρολογιού. Στο Σχήμα 4.15 παρουσιάζεται η SPI επικοινωνία που υλοποιήθηκε. 46
ΚΕΦΑΛΑΙΟ 4. MΟΝΤΕΛΟ ΕΝΤΟΠΙΣΜΟΥ ΘΕΣΗΣ - ΜΕΤΡΗΣΗ ΙΣΧΥΟΣ ΗΧΗΤΙΚΟΥ ΣΗΜΑΤΟΣ 4.4 FIR Φίλτρο Σχήμα 4.15: SPI CPOL=0 and CPHA=0 Στα πλαίσια της παρούσας διπλωματικής υλοποιήθηκε ένα Highpass FIR φίλτρο για την αποκοπή χαμηλών συχνοτήτων από τα 50Hz και κάτω, συχνότητα που παρουσιάστηκε με την σύνδεση της γείωσης του PmodBB στο κύκλωμα του ενισχυτή [15]. Γενικά τα FIR φίλτρα είναι τα πλέον χρησιμοποιούμενα φίλτρα εξαιτίας της γραμμικής τους φάσης και του πεπερασμένου μήκους τους το οποίο εξασφαλίζει ευστάθεια κάτω από οποιεσδήποτε συνθήκες επεξεργασίες πεπερασμένης ακρίβειας. Με την χρήση του εργαλείου FDATool της Matlab σχεδιάστηκε το FIR φίλτρο 42ης τάξης έτσι ώστε να ανταποκρίνεται στις απαιτήσεις της εφαρμογής μας. Συγκεκριμένα, σχεδιάστηκε με συχνότητα δειγματοληψίας στα 9500 KHz καθώς η συχνότητα δειγματοληψίας του ADC μετατροπέα είναι στα 9000ΚHz και έτσι μέσω του φίλτρου αυτού η τελική συχνότητα δειγματοληψίας είναι στα 9300KHz. Λόγω της απαίτησης για αποκοπή των συχνοτήτων κάτω των 50Hz, σχεδιάστηκε να αποκλείει τις συχνότητες από 100Ηz και κάτω και να πέφτει με 40dB. H αριθμητική που χρησιμοποιήθηκε για τον υπολογισμό των συντελεστών είναι Fixed-point με μέγεθος λέξης 16-bits και ένα bit πρόσημο. Στο Σχήμα 4.16 φαίνεται η υλοποίηση του συγκεκριμένου φίλτρου. Σχήμα 4.16: FIR Highpass Filter Για την επαλήθευση της ορθής λειτουργίας του φίλτρου, oτι δηλαδή αποκόπτεται η συχνότητα των 50Hz, πραγματοποιήθηκε προσoμοίωση στην Matlab με χρήση ημιτονικής εισόδου στο σύστημα, με πλάτος στα 0.09V και συχνότητα δειγματοληψίας στα 9500ΚHz. Το αποτέλεσμα που προκύπτει φαίνεται στο Σχήμα 4.17. Παρατηρούμε πως από το αρχικό σήμα που απεικονίζεται με το μπλε χρώμα παρουσιάζει, εξαιτίας της συχνότητας των 50Hz, μια μεταβολή στο πλάτος του. Εφαρμόζοντας το FIR φίλτρο βλέπουμε πως αποκόπτεται αυτή η συχνότητα και το σήμα μας αποκτά σταθερό πλάτος. Η υλοποίηση του συγκεκριμένου φίλτρου πραγματοποιήθηκε και στον επεξεργαστή του συστήμα- 47
4.4. FIR ΦΙΛΤΡΟ Σχήμα 4.17: Φιλτραρισμένο Σήμα τος, τον Cortex M0. Χρησιμοποιώντας τους συντελεστές που προέκυψαν από το σχεδιασμό του φίλτρου μέσω της Matlab, αποθηκεύουμε τα δεδομένα που προκύπτουν μετά το φιλτράρισμα με χρήση κυκλικού buffer. H λειτουργία της συνάρτησης για την υλοποίηση του φίλτρου έχει ως εξής: Αρχικά, ο buffer είναι άδειος. Στην εισαγωγή του πρώτου δεδομένου οι pointers που δείχνουν την αρχή και το τέλος του buffer θα είναι όπως φαίνεται στο σχήμα 4.18. Σχήμα 4.18: Κυκλικός buffer Βήμα 1 Ο πρώτος πίνακας αποτελείται από τους συντελεστές του φίλτρου, ενώ ο δεύτερος από τα δεδομένα εισόδου. Το στοιχείο που δείχνει ο δείκτης start πολλαπλασιάζεται με τον συντελεστή a0, το επόμενο με τον a1 κ.ο.κ. Όταν εισαχθεί λοιπόν το δεύτερο δεδομένο ο buffer θα έχει τη μορφή του σχήματος 4.19 και η πράξη που θα εκτελεστεί θα είναι d2 a0+d1 a1+0 a3+0 a4+...+0 a0. Σχήμα 4.19: Κυκλικός buffer Βήμα 2 Λόγω της αριθμητικής που χρησιμοποιούμε η χειρότερη περίπτωση αποτελέσματος που προκύπτει από τον πολλαπλασιασμό ενός συντελεστή με ένα δεδομένο εισόδου είναι 2Q30 για δεδομένο εισόδου σε αριθμητική 1Q15. Για τον χειρισμό των υπερχειλίσεων που προκύπτουν από τα σταθμισμένα αθροίσματα χρησιμοποιήσαμε μία προσωρινή μεταβλητή εντός της συνάρτησης, η οποία είναι τύπου signed int. Εκεί αποθηκεύεται κάθε φορά το σταθμισμένο άθροισμα για κάθε δεδομένο εισόδου. Μετά από κάθε σταθμισμένο άθροισμα 48