Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής & Υπολογιστών



Σχετικά έγγραφα
WIRELESS SENSOR NETWORKS (WSN)

ZigBee. Φοιτητής: Μόσχογλου Στυλιανός Επιβλέπων καθηγητής: κ. Δοκουζγιάννης Σταύρος

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Κεφάλαιο 3 Πολυπλεξία

Δεύτερη Σειρά Ασκήσεων

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

Δίκτυα Τηλεπικοινωνιών. και Μετάδοσης

RobotArmy Περίληψη έργου

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Δίκτυα ΙΙ. Κεφάλαιο 7

Τεχνολογία Πολυμέσων. Ενότητα # 15: Συγχρονισμός πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

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

T.E.I. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Εισαγωγή. Λύση: Λύση:

devolo dlan powerline technology Σύντομη παρουσίαση dlan WiFi ac

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

Εφαρμογές Υπολογιστικής Νοημοσύνης στις Ασύρματες Επικοινωνίες

ιαδίκτυα & Ενδοδίκτυα Η/Υ

A1. Φυσικό επίπεδο 1. Αντιπαραθέσετε (κάνετε τη σύγκριση) με 2-3 προτάσεις την στατιστική πολυπλεξία και την πολυπλεξία με διαίρεση χρόνου.

ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ

Τμήμα Μηχανικών Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 3

FIRE PROTECTION NETWORK

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Ευρυζωνικά δίκτυα (2) Αγγελική Αλεξίου

Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων

ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS

1.1 Επαναλήπτες (repeaters ή regenerators)

Αρχές επικοινωνίας με ήχο και εικόνα

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

Μαρία Μακρή Α.Ε.Μ: 3460

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Πτυχιακή Εργασία. Ασύρματα Δίκτυα της Τεχνολογίας Hot Spot

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

7 η διάλεξη Ακολουθιακά Κυκλώματα

Εγχειρίδιο χρήσης. Ασύρματο εσωτερικό ραντάρ GSC-P829

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Βασίλειος Κοντογιάννης ΠΕ19

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Ομάδα εργασίας Ιονίου Πανεπιστημίου στο Πρόγραμμα ΛΑΕΡΤΗΣ. Εργαστήριο Υπολογιστικής Μοντελοποίησης (CMODLAB)

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Πρωτόκολλα Διαδικτύου

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Εγγυημένη ποιότητα υπηρεσίας

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα

ΚΕΦΑΛΑΙΟ ΠΕΜΠΤΟ ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ

Λύσεις για έξυπνο σπίτι

Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1 ΛΥΣΗ ΑΣΚΗΣΗ 2

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος

1.8 Το μοντέλο OSI 1 / 33

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

Επαναληπτικές Ασκήσεις Μαθήματος

ΕΝΟΤΗΤΑ 7: ΑΙΣΘΗΤΗΡΕΣ ΥΠΕΡΥΘΡΩΝ

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

Δίκτυα Θεωρία

ΚΕΦΑΛΑΙΟ 3: Τοπολογίες Δικτύων Εισαγωγή

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις στα Τοπικά Δίκτυα

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΠΤΙΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΟΠΤΙΚΑ ΔΙΚΤΥΑ

ΜΕΛΕΤΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΡΗΣΗΣ ΑΤΜΟΣΦΑΙΡΙΚΩΝ ΠΑΡΑΜΕΤΡΩΝ ΠΟΥ ΕΠΗΡΕΑΖΟΥΝ ΤΗΝ ΔΙΕΝΕΡΓΕΙΑ ΑΣΤΡΟΝΟΜΙΚΩΝ ΠΑΡΑΤΗΡΗΣΕΩΝ ΚΑΙ ΜΕΤΡΗΣΕΩΝ.

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Δίκτυα Μεταγωγής & Τεχνικές Μεταγωγής Σε Δίκτυα Ευρείας Περιοχής

Επίπεδο Δικτύου: Διαδικτύωση

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Transcript:

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής & Υπολογιστών Διπλωματική εργασία Συγχρονισμός δικτύου ασύρματων έξυπνων αισθητήρων και εφαρμογές Κωνσταντίνος Καραϊλανίδης Επιβλέπων Καθηγητής Πέτρου Λουκάς Οκτώβριος 2010

2

Ευχαριστίες Ευχαριστώ τον επιβλέποντα καθηγητή κ.λουκά Πέτρου για τις συμβουλές και την καθοδήγησή του, τον κ. Σεραφείμ Κατσικά, διευθυντή του τμήματος έρευνας και ανάπτυξης της Πρίσμα, για την πρόθυμη συνεργασία του, και τον κ. Γιώργο Βουκαλή, υπεύθυνο του εργαστηρίου αρχιτεκτονικής υπολογιστών, για την βοήθειά του στο εργαστήριο. Επίσης ευχαριστώ τον συμφοιτητή Μαλακούδη Δημήτρη για την βοήθειά του και την πολύ καλή διπλωματική του εργασία, η οποία ήτανε η βάση και για την παρούσα. Η εργασία αυτή αφιερώνεται στους φίλους μου, που μου έδειξαν πως ο κόσμος είναι πολύ μικρός για να τον χωρίζουμε σε κομμάτια. Θεσσαλονίκη, 1 Οκτωβρίου 2010 i

ii

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

iv

Περιεχόμενα I Εισαγωγικές Πληροφορίες 1 1 Ασύρματα δίκτυα αισθητήρων 3 1.1 Γενικά περί WSN................................. 3 1.1.1 Σύντομος ορισμός............................. 3 1.1.2 Δυνατότητες................................ 3 1.1.3 Εφαρμογές................................. 4 1.1.4 Μελλοντική Εξέλιξη............................ 5 1.2 Σημερινές τεχνολογίες που χρησιμοποιούνται.................. 5 1.2.1 Μικροελεγκτές............................... 5 1.2.2 Αισθητήρια................................. 5 1.2.3 Ασύρματη επικοινωνία........................... 6 1.2.4 Πηγή ενέργειας............................... 7 2 Το ασύρματο δίκτυο αισθητήρων PrismaSense 9 2.1 Ασύρματη επικοινωνία.............................. 10 2.1.1 Το πρότυπο 802.15.4............................ 10 2.1.2 Το πρωτόκολλο ZigBee.......................... 10 2.1.3 Η μονάδα MaxStream Xbee Pro..................... 11 2.2 Μικροελεγκτής και αισθητήρια.......................... 13 2.2.1 Ο MSP430 F1611............................. 13 2.2.2 Αισθητήρια................................. 13 2.3 Το λειτουργικό σύστημα ISOS της Prisma................... 14 v

vi ΠΕΡΙΕΧŸΟΜΕΝΑ II Συγχρονισμός του δικτύου 17 3 Πρωτόκολλα συγχρονισμού 19 3.1 Το πρόβλημα του συγχρονισμού......................... 19 3.1.1 Ρολόγια................................... 19 3.1.1.1 Ρολόι Υλικού(hardware clock).................. 19 3.1.1.2 Ρολόι Λογισμικού(software clock)................ 20 3.1.2 Ακρίβεια.................................. 21 3.1.3 Πηγές συγχρονισμού............................ 21 3.1.4 Εφαρμογές που απαιτούν ρολόι...................... 22 3.2 Πρωτόκολλα πομπού/δέκτη............................ 22 3.2.1 LTS-Lightweight Time Synchronization................. 23 3.2.1.1 Διαδικασία............................. 23 3.2.1.2 Υπολογισμός διαφοράς...................... 24 3.2.1.3 Επέκταση στο υπόλοιπο δίκτυο.................. 25 3.2.2 TPSN-Timesync Protocol for Sensor Networks............. 25 3.2.2.1 Διαδικασία............................. 25 3.2.2.2 Υπολογισμός διαφοράς...................... 27 3.2.2.3 Επέκταση στο υπόλοιπο δίκτυο.................. 27 3.3 Πρωτόκολλα δέκτη/δέκτη............................ 28 3.3.1 RBS-Reference Broadcast Synchronization............... 28 3.3.1.1 Διαδικασία............................. 28 3.3.1.2 Υπολογισμός διαφοράς...................... 29 3.3.1.3 Επέκταση στο υπόλοιπο δίκτυο.................. 29 3.3.2 HRTS-Hierarchy Referencing Time Synchronization.......... 30 3.3.2.1 Διαδικασία............................. 30 3.3.2.2 Υπολογισμός διαφοράς...................... 32 3.3.2.3 Επέκταση στο υπόλοιπο δίκτυο.................. 32 4 Υλοποίηση του πρωτοκόλλου συγχρονισμού 33 4.1 Περιγραφή..................................... 33

ΠΕΡΙΕΧŸΟΜΕΝΑ vii 4.1.1 Διαδικασία................................. 33 4.1.2 Υπολογισμός διαφοράς........................... 35 4.1.3 Επέκταση στο υπόλοιπο δίκτυο...................... 35 4.1.4 Ανάλυση.................................. 36 4.2 Λεπτομέρειες Υλοποίησης............................ 36 4.2.1 Υλοποίηση Ρολογιού............................ 37 4.2.2 Υλοποίηση υπολογισμών.......................... 37 4.2.3 Υλοποίηση μηνυμάτων επικοινωνίας.................... 38 4.2.4 Υλοποίηση της χρονοσήμανσης...................... 38 4.2.5 Λοιπές πληροφορίες και σχόλια...................... 39 4.2.6 Ελεγχος και επιβεβαίωση καλής λειτουργίας............... 39 III Παράδειγμα Εφαρμογής και Συμπεράσματα 43 5 Ενα ασύρματο δίκτυο εντοπισμού πυρκαγιάς 45 5.1 Εισαγωγή..................................... 45 5.1.1 Το πρόβλημα................................ 45 5.1.2 Το δίκτυο-οφέλη.............................. 47 5.1.3 Το δίκτυο-απαιτήσεις............................ 47 5.1.4 Το πρόβλημα στη δομή ενός δικτύου ZigBee - Αντιμετώπιση...... 48 5.2 Περιγραφή της εφαρμογής............................ 49 5.2.1 Εφαρμογή επίδειξης............................ 49 5.2.2 Προβλεπόμενη χρήση........................... 50 5.3 Υλοποίηση..................................... 51 5.3.1 Ελεγχος του ρολογιού........................... 51 5.3.2 Εκτέλεση προγραμματισμένων λειτουργιών................ 51 6 Προβλήματα 53 6.1 Προβλήματα στην υλοποίηση του πρωτοκόλλου συγχρονισμού......... 54 6.1.1 Συνεργασία με το λειτουργικό....................... 54 6.1.2 Επανάληψη εκπομπής........................... 54

viii ΠΕΡΙΕΧŸΟΜΕΝΑ 6.1.3 Δένδρο δρομολόγησης........................... 54 6.2 Προβλήματα στην υλοποίηση της εφαρμογής-παραδείγματος.......... 55 6.2.1 Διορθώσεις Ρολογιού........................... 55 6.2.2 Συνεργασία με το λειτουργικό....................... 55 7 Παρατηρήσεις και Συμπεράσματα 57 7.1 Παρατηρήσεις................................... 57 7.1.1 Γενικά στο θέμα του συγχρονισμού.................... 57 7.1.2 Δυνατότητες και περιορισμοί του πρωτοκόλλου συγχρονισμού...... 58 7.1.3 Παρατηρήσεις για την εφαρμογή-παράδειγμα............... 61 7.2 Σύνοψη και Συμπεράσματα............................ 61 7.2.1 Περί συγχρονισμού............................. 61 7.2.2 Περί εφαρμογής.............................. 62 IV Παράρτημα 63 ΑʹΚώδικας πρωτοκόλλου συγχρονισμού 65 Αʹ.1 Συγχρονισμός: Time_sync.h.......................... 65 Αʹ.2 Συγχρονισμός: Time_sync.c........................... 66 Αʹ.3 Συγχρονισμός: Application.h.......................... 73 Αʹ.4 Συγχρονισμός: Application.c.......................... 73 Βʹ Κώδικας εφαρμογής-παραδείγματος 79 Βʹ.1 Εφαρμογή:Application.h............................. 79 Βʹ.2 Εφαρμογή:Application.c............................. 79 Βιβλιογραφία 81

Κατάλογος Σχημάτων 1.1 Δίκτυα ασύρματων αισθητήρων (πηγή: αναφορά [2]).............. 4 1.2 Πρωτογενής Μπαταρία Λιθίου, LiMnO2 (πηγή: αναφορά [3]).......... 7 2.1 Ενας αισθητήρας Quax του πακέτου PrismaSense (πηγή: αναφορά [13])... 9 2.2 Η στοίβα πρωτοκόλλων του ZigBee. (πηγή: αναφορά [9])............ 11 2.3 Τοπολογίες δικτύου ZigBee (πηγή: αναφορά [10])................ 12 3.1...κάθε συσκευή έχει το δικό της ρολόι... (πηγή: αναφορά [14])....... 20 3.2 Το πρωτόκολλο LTS............................... 23 3.3 Το πρωτόκολλο TPSN (πηγή: αναφορά [16]).................. 26 3.4 Το πρωτόκολλο RBS (πηγή: αναφορά [16])................... 28 3.5 Δρομολόγηση πακέτου σε δίκτυο με RBS (πηγή: αναφορά [16])........ 30 3.6 Το πρωτόκολλο HRTS (πηγή: αναφορά [16]).................. 31 4.1 Το προτεινόμενο πρωτόκολλο.......................... 34 4.2 Λήψη μετρήσεων................................. 41 5.1 Χρήση WSN για παρακολούθηση δάσους (πηγή: αναφορά [18])........ 46 6.1 Debugging..................................... 53 7.1 Μετρήσεις ανά 10 δευτ. με συγχρονισμό αρχικά ανά 30 και τελικά ανά 100 δευτ. 59 7.2 Μετρήσεις ανά 30 δευτ. με συγχρονισμό αρχικά ανά 2 λεπτά και τελικά ανά 1 ώρα......................................... 60 ix

x ΚΑΤŸΑΛΟΓΟΣ ΣΧΗΜŸΑΤΩΝ

Μέρος I Εισαγωγικές Πληροφορίες 1

ΚΕΦŸΑΛΑΙΟ 1 Ασύρματα δίκτυα αισθητήρων 1.1 Γενικά περί WSN 1.1.1 Σύντομος ορισμός Ενα ασύρματο δίκτυο αισθητήρων (WSN, Wireless Sensor Network[1]) αποτελείται από ένα μεγάλο αριθμό αισθητήρων ικανών να λαμβάνουν μετρήσεις και να επικοινωνούν ασύρματα μεταξύ τους. Συνήθως έχουν μικρό μέγεθος, μπορούν να κάνουν κάποιους υπολογισμούς, και είναι τροφοδοτούμενοι από μπαταρίες. 1.1.2 Δυνατότητες Ενα τέτοιο ασύρματο δίκτυο μπορεί να παρακολουθεί το περιβάλλον με εύκολο και αποδοτικό τρόπο. Το μικρό μέγεθος των αισθητήρων, σε συνδυασμό με την ενεργειακή τους αυτονομία και έλλειψη καλωδίων, επιτρέπει την εύκολη τοποθέτησή τους οπουδήποτε. Το μικρό τους κόστος διευκολύνει την τοποθέτηση μεγάλου αριθμού αισθητήρων. Ετσι, με σωστή σχεδίαση, το δίκτυο είναι απρόσβλητο από βλάβες και λανθασμένες μετρήσεις. Η αποκεντρωμένη 3

4 1. ΑΣŸΥΡΜΑΤΑ ΔŸΙΚΤΥΑ ΑΙΣΘΗΤŸΗΡΩΝ Σχήμα 1.1: Δίκτυα ασύρματων αισθητήρων (πηγή: αναφορά [2]) λογική του το κάνει ένα ιδιαίτερα ευέλικτο και χρήσιμο εργαλείο. 1.1.3 Εφαρμογές Τα WSN έχουν ένα ευρύτατο πεδίο εφαρμογών[1], όπως φαίνεται σχηματικά στο σχήμα 1.1. Ενα τέτοιο δίκτυο μπορεί να παρακολουθεί ένα βιομηχανικό εργαλείο, μετρώντας θερμοκρασίες, δονήσεις, τάσεις σύνθλιψης ή έκτασης κ.α., μέσω των οποίων μπορεί να διαγνωστεί η κατάστασή του και να γίνει συντήρηση πριν παρουσιαστεί κάποια βλάβη. Μπορεί να παρακολουθεί θερμοκρασία, υγρασία και ηλιοφάνεια στο εξωτερικό και εσωτερικό ενός κτιρίου, επιτρέποντας τον αποδοτικό κλιματισμό του. Μπορεί σε ακόμη μεγαλύτερη κλίμακα, να παρακολουθεί την χημική σύσταση του εδάφους σε μεγάλα χωράφια, για το σωστό πότισμα και χρήση λιπάσματος στις κατάλληλες περιοχές και με τις ποσότητες που χρειάζονται. Τέλος, μια εφαρμογή η οποία θα χρησιμοποιηθεί και για παράδειγμα στο τέλος της εργασίας, μπορεί να παρακολουθεί τις θερμοκρασίες σε ένα δάσος και να σημάνει τον συναγερμό σε περίπτωση πυρκαγιάς.

1.2. ΣΗΜΕΡΙΝŸΕΣ ΤΕΧΝΟΛΟΓŸΙΕΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟŸΥΝΤΑΙ 5 1.1.4 Μελλοντική Εξέλιξη Οι ασύρματοι αισθητήρες προβλέπεται στο μέλλον να έχουν ακόμη μικρότερο μέγεθος, κόστος και κατανάλωση, ενώ παράλληλα μεγαλύτερες δυνατότητες. Η τεχνολογία συγκλίνει προς την υλοποίηση του λεγόμενου smart dust, αισθητήρες μικροί όσο κόκκοι άμμου. Η εξέλιξη τείνει προς την ανάπτυξη του πανταχού παρόντος υπολογιστή (Ubiquitous Computing)[4] και της διάχυτης νοημοσύνης (Ambient Intelligence)[5] 1.2 Σημερινές τεχνολογίες που χρησιμοποιούνται 1.2.1 Μικροελεγκτές Για να είναι εφικτή η υλοποίηση έξυπνων αισθητήρων, είναι απαραίτητη η ύπαρξη ικανών μικροελεγκτών με χαμηλή κατανάλωση ισχύος. Οι σύγχρονοι μικροελεγκτές έχουν ταχύτητα στην περιοχή των MIPS (Million Instructions Per Second), με κατανάλωση μικρότερη του 1mW, ενώ υποστηρίζουν διάφορες καταστάσεις οικονομικής λειτουργίας ( sleep modes) και έναν ικανό αριθμό περιφερειακών. Στον πίνακα 1.1 αναφέρονται ενδεικτικά ορισμένοι μικροελεγκτές που προορίζονται για χρήση και σε έξυπνους αισθητήρες. Πίνακας 1.1: Μικροελεγκτές για έξυπνους αισθητήρες Κατασκευαστής Μοντέλο Κατανάλωση Μέγ. Ταχύτητα Atmel ATmega128L 1mW 1MHz (1MIPS) Cypress CY8C21*** 15mW 24MHz (4MIPS) Microchip PIC16F87*A 22mW 20MHz (5MIPS) TI MSP430 1mW 8MHz (2MIPS) Silicon Labs C8051F92*-F93* 10mW 25MHz (25MIPS) 1.2.2 Αισθητήρια Η βασική λειτουργία ενός WSN είναι η παρακολούθηση του περιβάλλοντος και πιθανόν η λήψη αποφάσεων για κάποια δράση. Αισθητήρια με μικρό μέγεθος και χαμηλή κατανάλωση είναι απαραίτητα για τέτοιες εφαρμογές. Η τεχνολογία των αισθητηρίων έχει ωριμάσει

6 1. ΑΣŸΥΡΜΑΤΑ ΔŸΙΚΤΥΑ ΑΙΣΘΗΤŸΗΡΩΝ από τις προηγούμενες δεκαετίες, και υπάρχουν σε μεγάλη ποικιλία και με ιδιαίτερα καλά χαρακτηριστικά ακρίβειας και κατανάλωσης. Ενδεικτικά αναφέρονται στον πίνακα 1.2 τύποι αισθητηρίων και τυπικές επιδόσεις. Πίνακας 1.2: Αισθητήρια χαμηλής κατανάλωσης Κατασκευαστής Μοντέλο Τύπος Κατανάλωση ST STLM20 θερμοκρασίας (αναλογικό) 0.02mW Sensirion SHT21 σχετικής υγρασίας (ψηφιακό) 1mW ROHM Semiconductor BH1780GLI φωτός (ψηφιακό) 0.3mW VTI Technologies SCP1000 απόλυτης πίεσης (ψηφιακό) 0.07mW Bosch Sensortec SMB380 επιτάχυνσης (ψηφιακό) 0.7mW 1.2.3 Ασύρματη επικοινωνία Η ασύρματη επικοινωνία είναι ένα από τα πιο αδύνατα σημεία των δικτύων WSN. Είναι ο μεγαλύτερος καταναλωτής ενέργειας σε έναν αισθητήρα, και ο κυριότερος λόγος που καθυστέρησε την επέκταση των δικτύων αυτών μέχρι σήμερα. Με την αλματώδη ανάπτυξη των ασύρματων επικοινωνιών τα τελευταία 20 χρόνια, έγινε δυνατή η υλοποίησή τους. Ευαίσθητοι δέκτες, αποδοτικές κεραίες, και ασύρματα πρωτόκολλα χαμηλής κατανάλωσης είναι βασικά στοιχεία των σημερινών WSN. Ενδεικτικά πρωτόκολλα ασύρματης επικοινωνίας φαίνονται στον πίνακα 1.3. Πίνακας 1.3: Πρωτόκολλα ασύρματης επικοινωνίας Ονομα Τύπος Μέγ. Εμβέλεια Μέγ. Ταχύτητα Κατανάλωση WiFi WAN 250m 600Mbit/s μεγάλη WiMAX WAN 10km 70Mbit/s μεγάλη Bluetooth(v3.0+) PAN 100m 3(24)Mbit/s μικρή(μέτρια) ZigBee PAN 1.5km 0.25Mbits/s μικρή

1.2. ΣΗΜΕΡΙΝŸΕΣ ΤΕΧΝΟΛΟΓŸΙΕΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟŸΥΝΤΑΙ 7 1.2.4 Πηγή ενέργειας Το τελευταίο συστατικό στοιχείο ενός έξυπνου αισθητήρα είναι η πηγή ενέργειας. Συνήθως οι ασύρματοι αισθητήρες τροφοδοτούνται από μπαταρίες, συχνά μικρού μεγέθους ό- πως η μπαταρία της εικόνας 1.2, και έτσι έχουν περιορισμένο ποσό ενέργειας στην διάθεσή τους. Η εξέλιξη των μπαταριών προχωράει με αργά βήματα συγκριτικά με άλλους τομείς της τεχνολογίας, και έτσι δίνεται πολύ μεγάλο βάρος στην εξοικονόμηση ενέργειας στα άλλα υποσυστήματα ενός αισθητήρα. Επίσης ερευνώνται λύσεις που αξιοποιούν την ενέργεια του περιβάλλοντος, όπως φωτοβολταϊκά, θερμοστήλες και άλλες πηγές. Στον πίνακα 1.4 φαίνονται οι πυκνότητες ισχύος ορισμένων τύπων μπαταριών. Πίνακας 1.4: Τεχνολογίες μπαταρίας Ονομα Τύπος Ενεργειακή Πυκνότητα Αλκαλική (ZnMnO 2 ) πρωτογενής 0.4-0.59MJ/kg Λιθίου (LiMnO 2 ) πρωτογενής 0.83-1.01MJ/kg Ψευδαργύρου-αέρος (Zinc air) πρωτογενής 1.59MJ/kg Νικελίου-Καδμίου (NiCd) επαναφορτιζόμενη 0.14MJ/kg Νικελίου-Υδριδίου Μετάλλου (NiMH) επαναφορτιζόμενη 0.36MJ/kg Ιόντων Λιθίου (Li ion) επαναφορτιζόμενη 0.46MJ/kg Σχήμα 1.2: Πρωτογενής Μπαταρία Λιθίου, LiMnO2 (πηγή: αναφορά [3])

8 1. ΑΣŸΥΡΜΑΤΑ ΔŸΙΚΤΥΑ ΑΙΣΘΗΤŸΗΡΩΝ

ΚΕΦŸΑΛΑΙΟ 2 Το ασύρματο δίκτυο αισθητήρων PrismaSense Οι αισθητήρες Prismasense (εικόνα 2.1) παρουσιάζονται αναλυτικά στην αναφορά [6], και εδώ θα γίνει μόνο μια συνοπτική παρουσίαση. Σχήμα 2.1: Ενας αισθητήρας Quax του πακέτου PrismaSense (πηγή: αναφορά [13]) 9

10 2. ΤΟ ΑΣŸΥΡΜΑΤΟ ΔŸΙΚΤΥΟ ΑΙΣΘΗΤŸΗΡΩΝ PRISMASENSE 2.1 Ασύρματη επικοινωνία Οι αισθητήρες Prismasense επικοινωνούν μέσω της μονάδας MaxStream Xbee Pro, η οποία υλοποιεί το πρωτόκολλο ZigBee, βασισμένο στο πρότυπο 802.15.4. 2.1.1 Το πρότυπο 802.15.4 Η ομάδα εργασίας 802.15 της IEEE έχει σαν αντικείμενο την ανάπτυξη προτύπων για δίκτυα προσωπικής περιοχής ή ασύρματα δίκτυα μικρής απόστασης. Χωρίζεται σε διάφορες υποομάδες, εκ των οποίων η 802.15.4[7] έχει στόχο να βρει λύσεις ασύρματης επικοινωνίας χαμηλής ταχύτητας και πολυπλοκότητας με μικρή κατανάλωση ενέργειας. Το πρότυπο 802.15.4 καθορίζει δύο φυσικά επίπεδα (PHY), ένα στην ζώνη των 868/915MHz και έ- να στην ζώνη των 2.4GHz. Επίσης καθορίζει το επίπεδο ελέγχου πρόσβασης στο μέσο (MAC), που χρησιμοποιεί πρόσβαση καναλιού CSMA-CA, και προαιρετικά μπορεί να εκπέμψει πακέτα-φάρους(beacon Frames), να αναλάβει τον συγχρονισμό και να παρέχει έναν αξιόπιστο μηχανισμό μετάδοσης μηνυμάτων. Χαρακτηριστικά του προτύπου είναι η εξαιρετικά χαμηλή κατανάλωση ενέργειας, η ευελιξία στην μορφή του δικτύου και η αξιόπιστη επικοινωνία, με κόστος τις χαμηλές ταχύτητες. 2.1.2 Το πρωτόκολλο ZigBee Το πρωτόκολλο ZigBee[8] υλοποιεί το πρότυπο 802.15.4 και προσθέτει δύο επιπλέον επίπεδα, το επίπεδο δικτύου(zigbee Network Layer) και το επίπεδο εφαρμογής (ZigBee Application Layer), όπως φαίνεται στο σχήμα 2.2. Χρησιμοποιεί τεχνολογία δικτυωτής δικτύωσης ( mesh networking), δυναμικής δρομολόγησης και επιβεβαίωσης λήψης πακέτου σε διάφορα επίπεδα, με αποτέλεσμα να μπορεί να σχηματίσει αξιόπιστα, ευέλικτα δίκτυα, με καλή ανοχή σε σφάλματα και εύκολα επεκτάσιμα. Οι δυνατές τοπολογίες φαίνονται στο σχήμα 2.3. Το πρωτόκολλο χωρίζει τις συσκευές στις εξής κατηγορίες: Συντονιστής (ZigBee coordinator, ZC) Ο συντονιστής είναι η ρίζα του δένδρου του δικτύου, η πιο ικανή συσκευή, και είναι υπεύθυνη για τον σχηματισμό του. Υπάρχει πάντα μόνο ένας συντονιστής σε κάθε δίκτυο. Απαιτεί συνεχή τροφοδοσία.

2.1. ΑΣŸΥΡΜΑΤΗ ΕΠΙΚΟΙΝΩΝŸΙΑ 11 Δρομολογητής (ZigBee Router, ZR ή Full Function Device) Οι δρομολογητές μπορούν να προωθούν μηνύματα από τις υπόλοιπες συσκευές στους αντίστοιχους προορισμούς τους. Παράλληλα μπορούν να εκτελούν την εκάστοτε εφαρμογή που τρέχει στο δίκτυο. Απαιτεί συνεχή τροφοδοσία. Τελική συσκευή (ZigBee End Device, ZED ή Reduced Function Device) Οι τελικές συσκευές είναι πολύ βασικές με λιγότερες δυνατότητες, και απαραίτητα συνδέονται σε έναν γονέα, είτε δρομολογητή είτε τον συντονιστή. Δεν προωθούν μηνύματα, αλλά μπορούν να περνάνε πολύ χρόνο στην αναμονή, εξοικονομώντας ενέργεια και έτσι μπορούν να λειτουργούν με μπαταρίες. Σχήμα 2.2: Η στοίβα πρωτοκόλλων του ZigBee. (πηγή: αναφορά [9]) 2.1.3 Η μονάδα MaxStream Xbee Pro Η μονάδα που υλοποιεί το πρωτόκολλο ZigBee είναι η Xbee Pro της MaxStream. Τα βασικότερα τεχνικά χαρακτηριστικά[11] της φαίνονται στον πίνακα 2.1.

12 2. ΤΟ ΑΣŸΥΡΜΑΤΟ ΔŸΙΚΤΥΟ ΑΙΣΘΗΤŸΗΡΩΝ PRISMASENSE Σχήμα 2.3: Τοπολογίες δικτύου ZigBee (πηγή: αναφορά [10]) Πίνακας 2.1: Τεχνικά Χαρακτηριστικά του MaxStream XBee Pro Εμβέλεια Εσωτ.Χώρου 100m Εμβέλεια Εξωτ.Χώρου Ισχύς Εκπομπής Ευαισθησία Λήψης Ρεύμα Λειτουργίας (Εκπομπή) Ρεύμα Λειτουργίας (Λήψη) 1500m 100mW(20dB) -100dB μέγ.215ma@3.3v 55mA

2.2. ΜΙΚΡΟΕΛΕΓΚΤŸΗΣ ΚΑΙ ΑΙΣΘΗΤŸΗΡΙΑ 13 Εδώ να σημειωθεί πως ενώ το πρωτόκολλο ZigBee υποστηρίζει ακριβή συγχρονισμό μεταξύ των πομπών μέσω δεδομένων (Superframes) που υπάρχουν σε κάθε πακέτο, το χαρακτηριστικό αυτό είναι προαιρετικό και χρησιμοποιείται σε δίκτυα με φάρο ( beacon-enabled networks). Η παραπάνω μονάδα δεν το υποστηρίζει στην παρούσα έκδοση του firmware, με συνέπεια οι πομποί να μην συγχρονίζονται από μόνοι τους. Στην εργασία αυτή θα παρουσιαστούν διάφορα πρωτόκολλα συγχρονισμού, η υλοποίηση ενός πρωτοκόλλου και μια ενδεικτική εφαρμογή όπου αξιοποιείται ο συγχρονισμός αυτός, για ακριβώς την περίπτωση αυτή όπου η μονάδα δεν παρέχει δεδομένα συγχρονισμού από μόνη της. 2.2 Μικροελεγκτής και αισθητήρια 2.2.1 Ο MSP430 F1611 Ο μικροελεγκτής που χρησιμοποιείται στους αισθητήρες είναι ο MSP430 F1611 της Texas Instruments. Είναι σχεδιασμένος ειδικά για τέτοιου είδους χαμηλής κατανάλωσης εφαρμογές, και έχει πολύ καλά χαρακτηριστικά([12]): ˆ Χαμηλή κατανάλωση ισχύος ( 1mW). ˆ Καταστάσεις λειτουργίας χαμηλής κατανάλωσης (με ελάχιστη κατανάλωση 0.2 µw). ˆ Καλή ταχύτητα επεξεργασίας, που φτάνει τα 2 MIPS. ˆ Υψηλής ακρίβειας 12-bit ADC. ˆ Δύο UART (Universal Asynchronous Receiver/Transmitter) συνδέσεις για σύνδεση με διάφορα αισθητήρια. 2.2.2 Αισθητήρια Οι έξυπνοι αισθητήρες έχουν αισθητήρια θερμοκρασίας, υγρασίας, φωτισμού και επιτάχυνσης [13]. Επίσης, έχουν την δυνατότητα να επικοινωνήσουν με οποιοδήποτε εξωτερικό αισθητήριο μέσω σύνδεσης UART.

14 2. ΤΟ ΑΣŸΥΡΜΑΤΟ ΔŸΙΚΤΥΟ ΑΙΣΘΗΤŸΗΡΩΝ PRISMASENSE Αισθητήριο θερμοκρασίας Το TMP101 της Burr-Brown μετρά θερμοκρασίες -55-150, με ακρίβεια 0.0625 και τις μεταδίδει ψηφιακά μέσω του διαύλου I2C (Inter- Integrated Circuit 1 ). Αισθητήριο υγρασίας Το SHT11 της Sensirion μετρά θερμοκρασία και σχετική υγρασία, με μέγιστη ακρίβεια 14 και 12 bit αντίστοιχα, και μεταδίδει ψηφιακά την μέτρηση μέσω μιας δισύρματης σειριακής σύνδεσης. Αισθητήριο φωτός Το TSL2550 της TAOS μετρά την ένταση του φωτός σε Lux και έχει απόκριση παρόμοια με του ανθρώπινου ματιού. Μεταδίδει την μέτρηση, μέγιστης ακρίβειας 12 bit, μέσω της δισύρματης σύνδεσης SMBus. Επιταχυνσιόμετρο Το ADXL320 της Analog Devices είναι ένα χαμηλού κόστους και κατανάλωσης επιταχυνσιόμετρο δύο αξόνων, με εύρος μέτρησης -5 με 5 g και αναλογικές εξόδους. Είναι ικανό να μετρήσει στατικές (βαρύτητα) και δυναμικές (κραδασμοί) επιταχύνσεις. 2.3 Το λειτουργικό σύστημα ISOS της Prisma Οι αισθητήρες έρχονται εξοπλισμένοι με το λειτουργικό σύστημα ISOS της Prisma. Το ISOS είναι ένα λειτουργικό σύστημα πραγματικού χρόνου, που επιτρέπει πολλές εφαρμογές να τρέχουν ταυτόχρονα αν έχουν την μορφή καταστάσεων μηχανής ( finite state machine). Αυτό είναι απαραίτητο σε εφαρμογές έξυπνων αισθητήρων, καθώς πολύς χρόνος ξοδεύεται σε αναμονή, είτε τάξης msec για να είναι έτοιμα τα αποτελέσματα κάποιας μέτρησης, είτε τάξης λεπτών, για να ληφθεί η επόμενη μέτρηση. Το λειτουργικό σύστημα έχει μια λίστα με εργασίες που πρέπει να γίνουν στις κατάλληλες χρονικές στιγμές με την κατάλληλη προτεραιότητα. Μια συνοπτική περιγραφή του λειτουργικού συστήματος βρίσκεται στην αναφορά [6]. Το πρωτόκολλο συγχρονισμού που παρουσιάζεται σε αυτήν την διπλωματική εργασία υλοποιείται στη μορφή μιας τέτοιας εφαρμογής, και κρατάει ενημερωμένο ένα εικονικό ρολόι 1 Υλοποιείται πάνω από μία σύνδεση UART.

2.3. ΤΟ ΛΕΙΤΟΥΡΓΙΚŸΟ ΣŸΥΣΤΗΜΑ ISOS ΤΗΣ PRISMA 15 (software clock), το οποίο συγχρονίζεται με μια κεντρική πηγή, στην περίπτωση αυτή τον συντονιστή του δικτύου.

16 2. ΤΟ ΑΣŸΥΡΜΑΤΟ ΔŸΙΚΤΥΟ ΑΙΣΘΗΤŸΗΡΩΝ PRISMASENSE

Μέρος II Συγχρονισμός του δικτύου 17

ΚΕΦŸΑΛΑΙΟ 3 Πρωτόκολλα συγχρονισμού 3.1 Το πρόβλημα του συγχρονισμού Σε δίκτυα ασύρματων συσκευών, κάθε συσκευή έχει το δικό της ρολόι. Τα ρολόγια αυτά δεν είναι απαραίτητα συγχρονισμένα, ούτε λειτουργούν με την ίδια ακρίβεια. Αν η εφαρμογή χρειάζεται να γνωρίζει τον χρόνο, τότε είναι απαραίτητη κάποια μορφή συγχρονισμού. 3.1.1 Ρολόγια Το ρολόι μπορεί να υλοποιείται είτε με λογισμικό είτε με υλικό, αλλά το πιο συνηθισμένο είναι με συνδυασμό και των δύο. 3.1.1.1 Ρολόι Υλικού(hardware clock) Σε υλικό τα ρολόγια υλοποιούνται με έναν ταλαντωτή και έναν απαριθμητή. Ο ταλαντωτής μπορεί να είναι ένας κρύσταλλος ή ένα κύκλωμα RC. Οι κρύσταλλοι έχουν υψηλή ακρίβεια και καλή σταθερότητα στον χρόνο και στην θερμοκρασία, ενώ τα κυκλώματα RC είναι πολύ 19

20 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ Σχήμα 3.1:...κάθε συσκευή έχει το δικό της ρολόι... (πηγή: αναφορά [14]) φθηνότερα και ενσωματώνονται εύκολα στον μικροελεγκτή χωρίς κανένα εξωτερικό εξάρτημα. Ο απαριθμητής μετράει τους παλμούς που παράγει ο ταλαντωτής. Η ανάλυση του ρολογιού εξαρτάται από την ταχύτητα του ταλαντωτή, ενώ η μέγιστη χρονική περίοδος που μπορεί να μετρήσει εξαρτάται από τον αριθμό των bits του απαριθμητή. Τυπικές τιμές είναι για τον κρύσταλλο τα 32,768kHz και τα 16-bit για τον απαριθμητή, που δίνουν ανάλυση περίπου 30µsec και περίοδο 2sec. 3.1.1.2 Ρολόι Λογισμικού(software clock) Σε λογισμικό το ρολόι δεν είναι τίποτα παραπάνω από ένα ακέραιο αριθμό. Ο αριθμός αυτός, που έχει τον ρόλο του απαριθμητή, δηλώνει την χρονική στιγμή, σύμφωνα με μια σύμβαση. Για παράδειγμα, ο τύπος Unix Time μετρά τα δευτερόλεπτα από τα μεσάνυχτα της 1 Ιανουαρίου 1970 (UTC), και έτσι ο αριθμός 1.000.000.000 συμβολίζει την ώρα 9 Σεπτεμβρίου 2001, 01:46:40 (UTC). Τον ρόλο του ταλαντωτή τον έχουν διάφορα γεγονότα, όπως π.χ. η εκτέλεση 1.000 εντολών, ή κάποιο σήμα, που συμβαίνουν ανά τακτά χρονικά διαστήματα. Το πιο συνηθισμένο είναι ένα σήμα που προέρχεται από ένα ρολόι υλικού.

3.1. ΤΟ ΠΡŸΟΒΛΗΜΑ ΤΟΥ ΣΥΓΧΡΟΝΙΣΜΟŸΥ 21 3.1.2 Ακρίβεια Η ακρίβεια ενός ρολογιού μπορεί να οριστεί ως εξής: L t < δ, όπου L το τοπικό ρολόι, t το ρολόι αναφοράς και δ η ακρίβεια. Χαρακτηριστικά της ακρίβειας ενός ρολογιού είναι: ˆ Ολίσθηση(Clock Drift): Η συχνότητα του ταλαντωτή δεν είναι η ονομαστική, αλλά κάποια κοντά στην ονομαστική. Η απόκλιση αυτή μετριέται συνήθως σε ppm. Για παράδειγμα, η πραγματική συχνότητα ενός κρυστάλλου 32.768Hz με ±20ppm ακρίβεια (τυπική τιμή, βλέπε αναφορά [15]) είναι μεταξύ 32.767,345Hz και 32.768,655Hz. Η τιμή της ολίσθησης εξαρτάται όχι μόνο από τις κατασκευαστικές ατέλειες, αλλά και από την θερμοκρασία περιβάλλοντος και την γήρανση των υλικών. ˆ Τρεμόπαιγμα(Clock Jitter): Η συχνότητα του ταλαντωτή δεν είναι πάντα σταθερή, αλλά κυμαίνεται σε μια περιοχή τιμών με απρόβλεπτο και ευμετάβλητο τρόπο. Το φαινόμενο αυτό ονομάζεται τρεμόπαιγμα. Σε έναν τυπικό κρύσταλλο 32.768 Hz με Jitter 10ps p p (δηλαδή αλλαγή του ρολογιού μπορεί να γίνει οποτεδήποτε μέσα σε ένα χρονικό διάστημα ±5ps από την σωστή στιγμή), η συχνότητα μεταβάλλεται ανάμεσα στις τιμές 32.767,995Hz και 32.768,005Hz. ˆ Θόρυβος Κβαντοποίησης(Quantization Noise): Καθώς το ρολόι μετρά τον χρόνο σε διακριτά διαστήματα, υπάρχει πάντα το σφάλμα κβαντοποίησης. Αυτό είναι κατά μέσο όρο ίσο με την μισή περίοδο του ταλαντωτή, δηλαδή σε έναν κρύσταλλο των 32.768Hz είναι ίσο με 15,258µs. 3.1.3 Πηγές συγχρονισμού Ολα τα ρολόγια συγχρονίζονται ως προς ένα ρολόι αναφοράς. Αυτό το ρολόι μπορεί να προέρχεται από διάφορες πηγές, όπως: ˆ GPS ˆ Ραδιοφωνικά Σήματα Ρολογιού (WWV, DCF77, TDF, BPC και πολλά άλλα ανάλογα με την χώρα και περιοχή) ˆ Internet (Network Time Protocol)

22 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ Μερικές φορές δεν χρειάζεται να είναι όλα τα ρολόγια συγχρονισμένα στην σωστή ώρα, απλά να είναι συγχρονισμένα μεταξύ τους. Σε τέτοιες περιπτώσεις το ρολόι αναφοράς μπορεί να είναι ένα οποιοδήποτε, σχετικά σταθερό, ρολόι. 3.1.4 Εφαρμογές που απαιτούν ρολόι Ανάλογα με την εφαρμογή, απαιτείται μια ελάχιστη ακρίβεια του ρολογιού. Για παράδειγμα: ˆ Εφαρμογές μικρής ακρίβειας Παρακολούθηση θερμοκρασίας (ή άλλων χαρακτηριστικών περιβάλλοντος) για πρόβλεψη καιρού. Χρειάζεται μόνο προσεγγιστικά η ώρα της ημέρας. ˆ Εφαρμογές μέσης ακρίβειας Παρακολούθηση φωτισμού, θερμοκρασίας και χρόνου για οικιακούς αυτοματισμούς (άνοιγμα/κλείσιμο παραθύρων ανάλογα με ώρα της ημέρας και εξωτερικών συνθηκών) Χρονοπρογραμματισμένες λειτουργίες αισθητήρων, όπως π.χ. αναφορά κατάστασης αισθητήρα κάθε μία ώρα. ˆ Εφαρμογές υψηλής ακρίβειας Υπολογισμός τροχιάς κινούμενου αντικειμένου. Ο υπολογισμός της ταχύτητας σύμφωνα με δεδομένα από διαφορετικούς αισθητήρες απαιτεί ακριβείς μετρήσεις του χρόνου. Μετρήσεις Doppler όπου συμμετέχουν πολλαπλοί αισθητήρες. Η απαιτούμενη ακρίβεια στην μέτρηση του χρόνου καθορίζει την απαιτούμενη ποιότητα του ρολογιού, όπως επίσης και την συχνότητα και ακρίβεια του συγχρονισμού. 3.2 Πρωτόκολλα πομπού/δέκτη Μία κατηγορία πρωτοκόλλων συγχρονισμού είναι τα πρωτόκολλα πομπού/δέκτη, όπου ο δέκτης συγχρονίζει το εσωτερικό του ρολόι με αυτό του πομπού. Θα παρουσιαστούν ενδει-

3.2. ΠΡΩΤŸΟΚΟΛΛΑ ΠΟΜΠΟŸΥ/ΔŸΕΚΤΗ 23 κτικά δύο πρωτόκολλα, το LTS και το TPSN. Μια πιο λεπτομερής περιγραφή βρίσκεται στην αναφορά [16]. 3.2.1 LTS-Lightweight Time Synchronization 3.2.1.1 Διαδικασία Σχήμα 3.2: Το πρωτόκολλο LTS Η όλη διαδικασία φαίνεται συνοπτικά στο σχήμα 3.2. Σύμφωνα με το πρωτόκολλο αυτό, τον συγχρονισμό τον ξεκινάει ο δέκτης i με την αποστολή ενός πακέτου έναρξης, το οποίο

24 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ περιέχει τον χρόνο δημιουργίας του L i (t 1 ). Το πακέτο παραδίδεται στο λειτουργικό σύστημα και αποστέλλεται την άγνωστη χρονική στιγμή t 2. Λαμβάνεται από τον πομπό j την στιγμή t 3, και το λειτουργικό του σύστημα το αντιλαμβάνεται την στιγμή t 4. Την στιγμή t 5 το πακέτο χρονοσημαίνεται με την τιμή L j (t 5 ) και η απάντηση σχηματίζεται την στιγμή t 6 και χρονοσημαίνεται με L j (t 6 ). Το πακέτο απάντησης, που περιέχει επίσης τους χρόνους L i (t 1 ) και L j (t 5 ), παραδίδεται στο λειτουργικό σύστημα για αποστολή στον δέκτη. Ο δέκτης λαμβάνει την απάντηση και ειδοποιεί το λειτουργικό σύστημα την στιγμή t 7. Τέλος, το ληφθέν πακέτο απάντησης χρονοσημαίνεται την στιγμή t 8 με την τιμή L i (t 8 ). 3.2.1.2 Υπολογισμός διαφοράς Ο δέκτης, έχει τώρα στην διάθεσή του όλους τους παραπάνω χρόνους. Γνωρίζουμε επίσης πως: 1. Ο χρόνος L j (t 5 ) είναι ανάμεσα στον t 1 και στον t 8. 2. Ο χρόνος μετάδοσης t p και ο χρόνος εκπομπής ενός πακέτου τ είναι ίσοι και προς τις δύο κατευθύνσεις επικοινωνίας, και μάλιστα t t = t 3 t 2 = t p + τ. 3. Ο μέσος χρόνος που περνά από την αποστολή του στο λειτουργικό σύστημα μέχρι την έναρξη εκπομπής είναι t s = t 2 t 1. 4. Ο μέσος χρόνος που περνά από την λήψη ενός πακέτου μέχρι την ενημέρωση του λειτουργικού συστήματος είναι t r = t 4 t 3. 5. Ισχύει η σχέση t 8 t 6 = t s + t t + t r αν οι μέσοι χρόνοι t s, t t και t r είναι ίσοι για τον πομπό και τον δέκτη. Επίσης t 5 t 1 = t s + t t + t r = t 8 t 6. 6. Το διάστημα t 6 t 5 είναι γνωστό. Από τα παραπάνω συμπεραίνουμε πως L i (t 5 ) = L i(t 8 )+L i (t 1 ) (L j (t 6 ) L j (t 5 )) 2, και ο χρόνος που πρέπει να προστεθεί στο ρολόι του δέκτη είναι O = L i (t 5 ) L j (t 5 ) = L i(t 8 )+L i (t 1 ) L j (t 6 ) L j (t 5 ) 2. Μετά από πολλές τέτοιες μετρήσεις της διαφοράς φάσης των ρολογιών, είναι εύκολο να υ- πολογιστεί και ο ρυθμός ολίσθησης (Drift Rate).

3.2. ΠΡΩΤŸΟΚΟΛΛΑ ΠΟΜΠΟŸΥ/ΔŸΕΚΤΗ 25 3.2.1.3 Επέκταση στο υπόλοιπο δίκτυο Η παραπάνω διαδικασία συγχρονίζει έναν αισθητήρα με το ρολόι ενός δεύτερου. Ο συγχρονισμός μπορεί να επεκταθεί στο υπόλοιπο δίκτυο με συγκεντρωτική ή με διανεμημένη μέθοδο. Σύμφωνα με την συγκεντρωτική μέθοδο, κατασκευάζεται ένα δέντρο ελάχιστου βάθους, με την πηγή του συγχρονισμού στην ρίζα. Η πηγή συγχρονίζει τα παιδιά της, τα οποία συγχρονίζουν τα δικά τους παιδιά, μέχρι όλο το δέντρο να είναι συγχρονισμένο. Σύμφωνα με την διανεμημένη μέθοδο, αν ο κόμβος 4 χρειάζεται να συγχρονιστεί με την ρίζα 0, και το μονοπάτι (που δημιουργείται από το πρωτόκολλο δρομολόγησης) περνάει από τους κόμβους 3, 2 και 1 για να φτάσει στην ρίζα 0, τότε συγχρονίζεται πρώτα ο 1 με τον 0, έπειτα ο 2 με τον 1 κ.ο.κ. μέχρι να συγχρονιστεί ο 4. Παρενέργεια αυτού του συγχρονισμού είναι ο συγχρονισμός των ενδιάμεσων κόμβων. 3.2.2 TPSN-Timesync Protocol for Sensor Networks 3.2.2.1 Διαδικασία Η ανταλλαγή μηνυμάτων για το πρωτόκολλο TPSN φαίνεται συνοπτικά στο σχήμα 3.3. Ο δέκτης ξεκινά τον συγχρονισμό, όμοια με το πρωτόκολλο LTS που αναλύθηκε προηγουμένως. Ομως το πακέτο δεν χρονοσημαίνεται όταν σχηματίζεται, αλλά αμέσως πριν την αποστολή, την στιγμή t 2 με την τιμή L i (t 2 ). Ο πομπός δέχεται το πακέτο και ειδοποιεί το λειτουργικό σύστημα. Την ίδια στιγμή t 4, το πακέτο χρονοσημαίνεται με την τιμή L j (t 4 ). Αργότερα σχηματίζεται το πακέτο απάντησης, που περιέχει τις τιμές L i (t 2 ) και L j (t 4 ), και αμέσως πριν σταλεί χρονοσημαίνεται με την τιμή L j (t 6 ). Τέλος, ο δέκτης χρονοσημαίνει το πακέτο απάντησης το νωρίτερο δυνατό, δηλαδή μόλις το λειτουργικό ενημερωθεί για την λήψη του πακέτου, με την τιμή L i (t 7 ). Η συνολική διαδικασία είναι όμοια με του πρωτοκόλλου LTS, με βασική διαφορά πως η χρονοσήμανση των πακέτων γίνεται όσο το δυνατόν πιο κοντά στην αποστολή και στην λήψη τους, παρακάμπτοντας τις καθυστερήσεις του λειτουργικού συστήματος και του πρωτοκόλλου MAC.

26 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ Σχήμα 3.3: Το πρωτόκολλο TPSN (πηγή: αναφορά [16])

3.2. ΠΡΩΤŸΟΚΟΛΛΑ ΠΟΜΠΟŸΥ/ΔŸΕΚΤΗ 27 3.2.2.2 Υπολογισμός διαφοράς Ο δέκτης έχει στην διάθεσή του τους παραπάνω χρόνους και θα υπολογίσει την διαφορά του από το ρολόι του πομπού γνωρίζοντας ότι: 1. Αν O = L i (t) L j (t) η ζητούμενη διαφορά των ρολογιών, έχουμε: L j (t 4 ) = L i (t 2 ) + O + τ + t p + δ s,i + δ r,j (3.1) όπου τ ο χρόνος εκπομπής ενός πακέτου και t p ο χρόνος μετάδοσης του σήματος στον αέρα, και δ s,i, δ r,j οι χρόνοι από την χρονοσήμανση του πακέτου ως την έναρξη εκπομπής και από την ολοκλήρωση της λήψης ως την χρονοσήμανσή του αντίστοιχα. 2. Για την λήψη του πακέτου απάντησης έχουμε: L i (t 7 ) = L j (t 6 ) O + τ + t p + δ s,j + δ r,i (3.2) Αφαιρώντας την δεύτερη σχέση από την πρώτη, καταλήγουμε πως: και τελικά: L j (t 4 ) L i (t 7 ) = L i (t 2 ) + 2 O + (δ s,i δ s,j ) + (δ r,j δ r,i ) (3.3) O = (L j(t 4 ) L i (t 2 )) (L i (t 7 ) L j (t 6 )) 2 δ s,i δ s,j 2 δ r,j δ r,i 2 (3.4) Οι διαφορές δ s,i δ s,j και δ r,j δ r,i είναι ιδιαίτερα μικρές, συνήθως τάξης µs και εύκολα αγνοούνται. Ετσι μένουν μόνο οι γνωστές τιμές, και η διαφορά Ο των δύο ρολογιών υπολογίζεται με ακρίβεια. Το πρωτόκολλο αυτό φέρνει αρκετά καλύτερα αποτελέσματα από το LTS, αλλά απαιτεί πρόσβαση σε χαμηλότερα επίπεδα της στοίβας πρωτοκόλλων για να υλοποιηθεί. 3.2.2.3 Επέκταση στο υπόλοιπο δίκτυο Το πρωτόκολλο TPSN επεκτείνει τον συγχρονισμό στο υπόλοιπο δίκτυο με συγκεντρωτικό τρόπο. Ο κόμβος με το ρολόι αναφοράς κατασκευάζει ένα δένδρο, το οποίο είναι προσεγγιστικά ελάχιστου βάθους. Ο κάθε γονέας συγχρονίζει τα παιδιά του. Σύμφωνα με το πρωτόκολλο, η κατασκευή του δένδρου και ο συγχρονισμός είναι συνυφασμένα, και έτσι αν ένας κόμβος δεν μπορέσει να συγχρονιστεί με τον γονέα, πράγμα που δηλώνει ότι ίσως ο γονέας δεν λειτουργεί πια, το δένδρο τροποποιείται για να βρεθεί εναλλακτικός γονέας.

28 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ 3.3 Πρωτόκολλα δέκτη/δέκτη Στα πρωτόκολλα δέκτη/δέκτη πολλοί δέκτες συγχρονίζονται μεταξύ τους, λαμβάνοντας ένα χρονοσημασμένο πακέτο από έναν πομπό. Θα παρουσιαστούν δύο ενδεικτικά πρωτόκολλα, το RBS και το HRTS. Περισσότερες πληροφορίες μπορούν να βρεθούν στην αναφορά [16]. 3.3.1 RBS-Reference Broadcast Synchronization 3.3.1.1 Διαδικασία Σχήμα 3.4: Το πρωτόκολλο RBS (πηγή: αναφορά [16]) Η βασική ιδέα, που φαίνεται στο σχήμα 3.4, είναι η εξής: ένας πομπός εκπέμπει ένα πακέτο, το οποίο όλοι οι δέκτες χρονοσημαίνουν. Επειτα ανταλλάζουν αυτήν την πληροφορία μεταξύ τους, και έτσι γνωρίζει ο καθένας τα ρολόγια των υπολοίπων. Το ρολόι δεν διορθώνεται, αλλά σχηματίζεται ένας πίνακας που μετατρέπει το ρολόι το τοπικού δέκτη στις τιμές των γειτονικών δεκτών. Συγκεκριμένα, ο πομπός R εκπέμπει ένα πακέτο την χρονική στιγμή t 0. Ο δέκτης i λαμβάνει το πακέτο την στιγμή t 1,i, ενώ ο δέκτης j την στιγμή t 2,j. Η λήψη ανακοινώνεται στο λειτουργικό μέσω διακοπής τις στιγμές t 2,i και t 2,j αντίστοιχα, και τα πακέτα χρονοσημαίνονται τις στιγμές t 3,i και t 3,j. Οι δέκτες ανταλλάζουν αυτές τις πληρο-

3.3. ΠΡΩΤŸΟΚΟΛΛΑ ΔŸΕΚΤΗ/ΔŸΕΚΤΗ 29 φορίες, και θεωρώντας ότι οι στιγμές t 3,i και t 3,j αντιστοιχούν στον ίδιο χρόνο υπολογίζεται η διαφορά των ρολογιών. 3.3.1.2 Υπολογισμός διαφοράς Η διαφορά των ρολογιών υπολογίζεται πολύ απλά ως εξής:o(t 3,i ) = L i (t 3,i ) L j (t 3,j ). Η τιμή αυτή αν αφαιρεθεί από ρολόι του κόμβου i δίνει το ρολόι του j. Η ακρίβεια αυτής της διαδικασίας είναι αρκετά καλή, καθώς ο χρόνος μετάδοσης και εκπομπής του πακέτου αναφοράς είναι πρακτικά ο ίδιος για όλους τους δέκτες, και ο χρόνος που μεσολαβεί από την λήψη του πακέτου ως την σήμανσή του είναι στατιστικά επίσης ίδιος σε δέκτες με όμοιο υλικό. 3.3.1.3 Επέκταση στο υπόλοιπο δίκτυο Η επέκταση της παραπάνω διαδικασίας στο υπόλοιπο δίκτυο είναι πιο περίπλοκη από ότι στα πρωτόκολλα πομπού/δέκτη. Η προώθηση ενός πακέτου είναι σχετικά απλή: Κάθε κόμβος που προωθεί ένα πακέτο, μετατρέπει την χρονοσήμανση του πακέτου στο ρολόι του δέκτη. Ετσι, μετά από μια σειρά προωθήσεων, το πακέτο φτάνει στον προορισμό του με την σωστή χρονοσήμανση. Για να είναι αυτό δυνατό, πρέπει ο κάθε κόμβος να έχει στοιχεία για το ρολόι των γύρω κόμβων, που σημαίνει πως πρέπει να ανήκουν στην ίδια περιοχή εκπομπής (broadcast domain). Για να υπάρχει μονοπάτι όπου μπορεί να γίνει η διόρθωση του χρόνου, πρέπει να υπάρχουν κόμβοι που ανήκουν σε δύο ή περισσότερες περιοχές εκπομπής κατά μήκος του μονοπατιού, για να υπάρχει συνέχεια στην διαδρομή καθώς το πακέτο αλλάζει περιοχές. Ο τρόπος κατασκευής τέτοιων περιοχών δεν ορίζεται στο πρωτόκολλο, έχουν προταθεί όμως αρκετοί. Μία λύση είναι να υπάρχουν εξειδικευμένοι πομποί, οι οποίοι επίσης κατασκευάζουν τους πίνακες μετατροπής για την περιοχή εκπομπής τους, με βάση τα δεδομένα που λαμβάνουν από τους γύρω κόμβους. Ετσι, όταν ο κόμβος i θέλει να στείλει ένα πακέτο στον κόμβο j, αν είναι γειτονικοί απλά το μετατρέπει και το στέλνει, αλλιώς το στέλνει στον πομπό ο οποίος αναλαμβάνει το μετατρέψει και να το στείλει μέσω ενός κατάλληλου μονοπατιού. Στο σχήμα 3.5 φαίνεται η πρώτη περίπτωση με καμπύλη γραμμή και η δεύτερη με ευθεία. Για να λειτουργήσει αυτή η διαδικασία, πρέπει να δημιουργηθούν περιοχές εκπομπής τέτοιες, που

30 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ οι γειτονικές να έχουν τουλάχιστον έναν κόμβο-πύλη, για να μπορούν να δημιουργηθούν μονοπάτια. Αυτό όμως αποτελεί ένα πρόβλημα ομαδοποίησης κόμβων με αλληλεπικάλυψη ομάδων, που αντιμετωπίζεται συχνά σε δίκτυα ασύρματων αισθητήρων. Σχήμα 3.5: Δρομολόγηση πακέτου σε δίκτυο με RBS (πηγή: αναφορά [16]) Μια δεύτερη λύση είναι ο περιορισμός των περιοχών εκπομπής αυστηρά στην άμεση γειτονιά του πομπού. Αυτό σημαίνει όμως πως για να έχουμε αλληλεπικάλυψη, πρέπει όλοι οι κόμβοι να είναι και πομποί. Ο κάθε κόμβος διαλέγει για την προώθηση του πακέτου του κάποιον κόμβο με τον οποίο μοιράζεται τουλάχιστον μία περιοχή εκπομπής, και έτσι μπορούν να γίνουν οι μετατροπές της χρονοσήμανσης. Γενικά, όσο λιγότερες είναι οι μετατροπές, τόσο μικρότερη απώλεια ακρίβειας υπάρχει, αλλά αυτό απαιτεί μεγάλες περιοχές εκπομπής. Οι μεγάλες περιοχές εκπομπής χρειάζονται μεγαλύτερη ισχύ εκπομπής, και πρέπει να ανταλλαχθούν περισσότερα πακέτα για την κατασκευή των πινάκων μετατροπής. 3.3.2 HRTS-Hierarchy Referencing Time Synchronization 3.3.2.1 Διαδικασία Το πρωτόκολλο αυτό καταφέρνει να συγχρονίσει ένα δίκτυο με ανταλλαγή πολύ λίγων πακέτων. Συγκεκριμένα, σύμφωνα με το σχήμα 3.6, ο αρχικός κόμβος αναφοράς R εκπέμπει σε όλους το πακέτο έναρξης συγχρονισμού την στιγμή t 1, το οποίο περιέχει μια μεταβλητή επίπεδο και το όνομα ενός από τους άμεσους γείτονες του R, για παράδειγμα τον i. Ο κόμβος i χρονοσημαίνει το πακέτο την στιγμή t 2 με L i (t 2 ), ενώ ένας άλλος (άμεσος γείτονας του R) κόμβος π.χ. j το χρονοσημαίνει την στιγμή t 2 με L j(t 2). Ο κόμβος i που βλέπει το όνομά του στο πακέτο, σχηματίζει την απάντηση στον R και την χρονοσημαίνει με L i (t 3 ). Την στιγμή t 4 ο κόμβος R λαμβάνει και χρονοσημαίνει την απάντηση με L R (t 4 ).

3.3. ΠΡΩΤŸΟΚΟΛΛΑ ΔŸΕΚΤΗ/ΔŸΕΚΤΗ 31 Σχήμα 3.6: Το πρωτόκολλο HRTS (πηγή: αναφορά [16])

32 3. ΠΡΩΤŸΟΚΟΛΛΑ ΣΥΓΧΡΟΝΙΣΜΟŸΥ 3.3.2.2 Υπολογισμός διαφοράς Ο κόμβος αναφοράς μπορεί να υπολογίσει την διαφορά του από τον κόμβο i όπως ακριβώς στα πρωτόκολλα LTS καιtpsn, σύμφωνα με τον τύπο: O R,i = (L i(t 2 L R (t 1 )) (L R (t 4 ) L i (t 3 )) 2 (3.5) Μόλις υπολογίσει την διαφορά, εκπέμπει προς όλους ένα πακέτο με τις τιμές L i (t 2 ) και O Ri. Ο κόμβος i απλά αφαιρεί το O Ri από το ρολόι του. Ενας τυχαίος κόμβος j όμως, που λαμβάνει το πακέτο, και έχει ήδη την τιμή L j (t 2) μπορεί να υπολογίσει την διόρθωση O R,j στο δικό του ρολόι ως εξής: Θεωρούμε ότι t 2 = t 2, και έτσι: L i (t 2 ) = L j (t 2) + O j,i O j,i = L i (t 2 ) L j (t 2) (3.6) Αλλά καθώς L i (t 2 ) = L R (t 2 ) + O R,i, υπολογίζουμε: O R,j = L j (t 2 ) L R (t 2 ) = L j (t 2 ) L i (t 2 ) + O R,i (3.7) Τελικά, ο κόμβος j κατάφερε να συγχρονίσει το ρολόι του με αυτό του κόμβου αναφοράς R χωρίς να στείλει κανένα πακέτο. 3.3.2.3 Επέκταση στο υπόλοιπο δίκτυο Ο αλγόριθμος κατασκευάζει ένα δένδρο συγχρονισμού χρησιμοποιώντας την μεταβλητή ε- πίπεδο. Ο κόμβος (ή κόμβοι) αναφοράς έχουν επίπεδο 0, ενώ όλοι οι υπόλοιποι κόμβοι μια πολύ μεγάλη τιμή. Με την έναρξη του συγχρονισμού, ο κάθε κόμβος θέτει το επίπεδό του ίσο με το επίπεδο που λαμβάνει από το πακέτο συγχρονισμού αυξημένο κατά ένα. Αν αργότερα λάβει ένα νέο πακέτο συγχρονισμού με μικρότερο επίπεδο, μειώνει το επίπεδό του ανάλογα. Επειτα αναλαμβάνει να συγχρονίσει την γειτονιά του, ξεκινώντας έναν νέο κύκλο συγχρονισμού. Ετσι κατασκευάζεται ένα δένδρο που καλύπτει όλο το δίκτυο, και ο κάθε κόμβος συγχρονίζεται με τον κοντινότερο κόμβο αναφοράς.

ΚΕΦŸΑΛΑΙΟ 4 Υλοποίηση του πρωτοκόλλου συγχρονισμού 4.1 Περιγραφή Το πρωτόκολλο που περιγράφεται παρακάτω είναι ένα πρωτόκολλο συγχρονισμού πομπούδέκτη, βασισμένο σε ιδέες από το πρωτόκολλο LTS και της εργασίας [17]. Είναι ουσιαστικά μια απόπειρα να γίνει η χρονοσήμανση των πακέτων όσο το δυνατόν πιο κοντά στην εκπομπή τους, χωρίς επέμβαση στο ίδιο το πρωτόκολλο ZigBee. Επιτυγχάνει τον συγχρονισμό δύο κόμβων με την ανταλλαγή δύο μόνο πακέτων, χρησιμοποιώντας τα πακέτα επιβεβαίωσης λήψης ACK. 4.1.1 Διαδικασία Η διαδικασία φαίνεται συνοπτικά στο σχήμα 4.1.Αρχικά ο κόμβος i ζητά την έναρξη του συγχρονισμού από τον κόμβο j. Αυτό γίνεται με την αποστολή ενός πακέτου sync_req(sq) που περιέχει έναν αριθμό πακέτου. Το πακέτο στέλνεται στο λειτουργικό σύστημα την στιγμή t 0, και η εκπομπή του ξεκινά την στιγμή t 1. Μετά από χρόνο μετάδοσης σήματος 33

34 4. ΥΛΟΠΟŸΙΗΣΗ ΤΟΥ ΠΡΩΤΟΚŸΟΛΛΟΥ ΣΥΓΧΡΟΝΙΣΜΟŸΥ Σχήμα 4.1: Το προτεινόμενο πρωτόκολλο

4.1. ΠΕΡΙΓΡΑΦŸΗ 35 t p και χρόνο εκπομπής του πακέτου τ, ο κόμβος j λαμβάνει το πακέτο την στιγμή t 2. Με την επιτυχή ολοκλήρωση της εκπομπής, ο j στέλνει το πακέτο επιβεβαίωσης λήψης ACK την στιγμή t 3, το οποίο μετά από χρόνο t p και τ ACK λαμβάνεται από τον i την στιγμή t 4, ο οποίος το χρονοσημαίνει την στιγμή t 5 με L i (t 5 ). Εν τω μεταξύ, το λειτουργικό σύστημα του j αντιλαμβάνεται το πακέτο sync_req(sq) την στιγμή t 6 και το χρονοσημαίνει την στιγμή t 7 με L j (t 7 ). Επειτα, ο j σχηματίζει το πακέτο απάντησης sync_res(sr) το οποίο περιέχει την τιμή L j (t 7 ) και τον αριθμό πακέτου του sync_req(sq) και το στέλνει πίσω στον i. 4.1.2 Υπολογισμός διαφοράς Ο υπολογισμός της διαφοράς των ρολογιών γίνεται υπό την υπόθεση ότι: t 5 t 7 (4.1) Ο χρόνος t 7 t 5 είναι ο χρόνος που μεσολαβεί από την στιγμή που το ZigBee Module τελειώνει την αποστολή του ACK μέχρι να σημάνει την διακοπή στο λειτουργικό σύστημα του αισθητήρα, και είναι ιδιαίτερα μικρός, στην τάξη των µs. Ο δέκτης βρίσκει την διαφορά του ρολογιού του πολύ απλά με την εξής σχέση: O = L i (t 5 ) L j (t 7 ) (4.2) Με επιπλέον μετρήσεις μπορεί να υπολογιστεί και ο ρυθμός ολίσθησης του ρολογιού, σύμφωνα με την εξίσωση: drift = L i(t 5 ) L j (t 7 ) L i (t 5 ) L j (t 7) (4.3) όπου το L j (t 7) συμβολίζει την τιμή L j (t 7 ) που λήφθηκε κατά τον προηγούμενο συγχρονισμό. Δηλαδή L i (t 5 ) L j (t 7) είναι ο χρόνος που πέρασε, σύμφωνα με το τοπικό ρολόι, από τον προηγούμενο συγχρονισμό ως τον τωρινό. Να σημειωθεί πως αμέσως μετά τον προηγούμενο συγχρονισμό, το τοπικό ρολόι άλλαξε από την τιμή L i (t 5) στην L j (t 7), για αυτό η ο χρόνος που πέρασε δίνεται από την σχέση L i (t 5 ) L j (t 7) αντί της αναμενόμενης L i (t 5 ) L i (t 5). 4.1.3 Επέκταση στο υπόλοιπο δίκτυο Το πρωτόκολλο συγχρονισμού εκμεταλλεύεται το δένδρο που σχηματίζεται από το ZigBee, και κάθε παιδί συγχρονίζεται με τον γονέα του. Ο γονέας απαντά στα μηνύματα συγχρονι-

36 4. ΥΛΟΠΟŸΙΗΣΗ ΤΟΥ ΠΡΩΤΟΚŸΟΛΛΟΥ ΣΥΓΧΡΟΝΙΣΜΟŸΥ σμού μόνο αν ο ίδιος είναι συγχρονισμένος, καθορίζοντας έτσι την φορά του συγχρονισμού από την ρίζα του δένδρου προς τα φύλλα. 4.1.4 Ανάλυση Τα πρωτόκολλα τύπου LTS βασίζονται στην ομοιομορφία των αισθητήρων και στην στατιστική αλληλεξουδετέρωση των λαθών. Οπως έχει αναφερθεί και νωρίτερα, η μείωση της διαφοράς μεταξύ της χρονοσήμανσης και την πραγματικής αποστολής ή λήψης ενός πακέτου, αυξάνει την ακρίβεια του συγχρονισμού. Το προτεινόμενο πρωτόκολλο αξιοποιεί το γεγονός ότι το ZigBee Module, και οποιοδήποτε ZigBee Module, είναι ταχύτερο από τον όποιο μικροελεγκτή το ελέγχει, καθώς έχει εξειδικευμένο υλικό. Ετσι ο χρόνος που περνά από την λήψη του αρχικού πακέτου από τον j μέχρι την ενημέρωση του ZigBee Module του i είναι πρακτικά t p + τ ACK, καθώς το λειτουργικό σύστημα δεν εμπλέκεται καθόλου. Εχουμε δηλαδή: t 4 t 2 = t 3 t 2 + t p + τ ACK (4.4) αλλά πρακτικά t 3 t 2 0 λόγω της υψηλής ταχύτητας αντίδρασης του ZigBee Module και το t p + τ ACK είναι μετρήσιμο και αμελητέο( 1ms). Ακόμη, υποθέτοντας ότι ο χρόνος από την λήψη ενός μηνύματος ως την ειδοποίηση του λειτουργικού μέσω διακοπής είναι παρόμοιος, και πως ο μικροελεγκτής είναι σχετικά γρήγορος στο να χρονοσημάνει αυτήν την διακοπή, υποθέσεις που ισχύουν στην συντριπτική πλειοψηφία των περιπτώσεων, έχουμε t 5 t 4 t 7 t 2. Άρα μπορούμε με ασφάλεια να πούμε πως t 5 t 7. 4.2 Λεπτομέρειες Υλοποίησης Το πρωτόκολλο συγχρονισμού υλοποιήθηκε σαν μια εφαρμογή που τρέχει στο λειτουργικό σύστημα ISOS της Prisma. Τα αρχεία Time_sync.h και Time_sync.c περιέχουν όλες τις απαραίτητες συναρτήσεις βιβλιοθήκης. Καταβλήθηκε προσπάθεια να μείνει το λειτουργικό σύστημα όσο το δυνατόν ανέπαφο, έτσι ώστε να είναι εύκολη η ενσωμάτωση της βιβλιοθήκης και σε επόμενες εκδόσεις του λειτουργικού. Παρόλα αυτά, κρίθηκε αναγκαία η επέμβαση σε ορισμένα κρίσιμα σημεία, τα οποία αναφέρονται παρακάτω στις αντίστοιχες παραγράφους.

4.2. ΛΕΠΤΟΜŸΕΡΕΙΕΣ ΥΛΟΠΟŸΙΗΣΗΣ 37 4.2.1 Υλοποίηση Ρολογιού Το λειτουργικό σύστημα ISOS στην έκδοση 1.7, δεν περιλαμβάνει ρολόι γενικής χρήσης. Ετσι, για να έχει νόημα η εφαρμογή του συγχρονισμού, υλοποιήθηκε ξεχωριστά ένα ρολόι, που αξιοποιεί τον κρύσταλλο 32.768Hz που έχει συνδεθεί στον μικροελεγκτή και το ρολόι πραγματικού χρόνου. Το ρολόι αυτό, λόγω της συχνότητας του κρυστάλλου, έχει ανάλυση περίπου 30,5µs. Με 32.768 κύκλους το δευτερόλεπτο, ένας απαριθμητής των 16 bit θα φτάνει από το 0 στο 2 16 1 = 65535 κάθε δύο δευτερόλεπτα. Ανεβάζοντας το μήκος στα 32 bit, ο μηδενισμός του απαριθμητή συμβαίνει κάθε 2 2 16 = 131.072 δευτερόλεπτα, ή αλλιώς περίπου κάθε 36,4 ώρες. Ο χρόνος λειτουργίας των αισθητήρων προβλέπεται να είναι χρόνια, έτσι χρησιμοποιήθηκε τελικά για ρολόι ένας απαριθμητής 47 bit+1bit προσήμου, που μηδενίζει κάθε 2 2 31 = 4.294.967.296 δευτερόλεπτα, ή αλλιώς περίπου 136 χρόνια. Το μεγάλο μέγεθος του απαριθμητή εξασφαλίζει την μέγιστη δυνατή ακρίβεια και ταυτόχρονα την συνεχή λειτουργία του πρακτικά χωρίς να μηδενίσει ποτέ. Ο compiler της C δεν υποστηρίζει τύπους ακεραίων μεγαλύτερους των 32 bit, έτσι το ρολόι υλοποιήθηκε σαν δομή (struct) αποτελούμενη από έναν 32μπιτο (χαμηλής αξίας) ακέραιο και έναν 16μπιτο (υψηλής αξίας) προσημασμένο ακέραιο. Το λειτουργικό σύστημα λειτουργεί σε κύκλους των 10 ms, δηλαδή επαναφέρει τον μικροελεγκτή κάθε 10ms, εκτελεί τυχόν εργασίες, και τον θέτει πάλι σε λειτουργία χαμηλής κατανάλωσης. Για να το κάνει αυτό, χρησιμοποιεί τον χρονομετρητή Α (Timer A), ο οποίος ειδοποιεί μέσω διακοπής τον μικροελεγκτή κάθε 328 κύκλους. Κατά την εξυπηρέτηση της διακοπής, αυξάνει την τιμή του ρολογιού επίσης κατά 328 1, έτσι ώστε να είναι πάντα ενημερωμένο. Η παραπάνω αλλαγή έγινε στο αρχείο TimerA.c, όπου βρίσκεται η ρουτίνα εξυπηρέτησης της διακοπής του μετρητή Α. Η ανάγνωση της τιμής του ρολογιού γίνεται από μια συγκεκριμένη συνάρτηση, την get_time(), η οποία επιστρέφει την τρέχουσα τιμή του ρολογιού (τιμή βάσης) αυξημένη κατά την τιμή του υλικού απαριθμητή την συγκεκριμένη χρονική στιγμή. 4.2.2 Υλοποίηση υπολογισμών Οπως αναφέρθηκε νωρίτερα, ο δέκτης στέλνει πακέτα αίτησης συγχρονισμού που περιέχουν έναν αριθμό πακέτου. Οταν ληφθεί το ACK της λήψης του πακέτου από τον πομπό, απο- 1 Προσαρμοσμένο ανάλογα με τον ρυθμό ολίσθησης.

38 4. ΥΛΟΠΟŸΙΗΣΗ ΤΟΥ ΠΡΩΤΟΚŸΟΛΛΟΥ ΣΥΓΧΡΟΝΙΣΜΟŸΥ θηκεύεται σε έναν πίνακα ο αριθμός πακέτου (ID) και ο χρόνος λήψης (t l ) του ACK. Ο πίνακας μπορεί να κρατήσει μέχρι έναν προκαθορισμένο αριθμό καταχωρίσεων, εδώ 8. Οταν αργότερα ληφθεί η απάντηση από τον πομπό, αν η απάντηση περιέχει έναν από τους αριθμούς πακέτων στον προσωρινό πίνακα, οι αντίστοιχες τιμές ID και t l, μαζί με την νεοληφθείσα τιμή t r τοποθετούνται σε έναν νέο πίνακα, τον πίνακα σύγκρισης χρόνων, μαζί με τον τότε ρυθμό ολίσθησης. Ο αλγόριθμος υπολογισμού της διόρθωσης ρολογιού χρησιμοποιεί τον πίνακα σύγκρισης χρόνων. Κάνει τις αφαιρέσεις των χρόνων σύμφωνα με την εξίσωση (4.2), και αποθηκεύει τα αποτελέσματα στον πίνακα διόρθωσης με μήκος αριθμών 48 bit. Επειτα, με βάση αυτόν τον πίνακα, υπολογίζει τον ρυθμό ολίσθησης σύμφωνα με την εξίσωση (4.3). Τέλος θέτει την σωστή τιμή 2 στο τοπικό ρολόι. 4.2.3 Υλοποίηση μηνυμάτων επικοινωνίας Σύμφωνα με το πρωτόκολλο, υπάρχουν μόνο δύο τύποι μηνυμάτων που ανταλλάσσονται, μηνύματα αίτησης συγχρονισμού και μηνύματα απάντησης. Τα μηνύματα αίτησης συγχρονισμού αποτελούνται από τρεις χαρακτήρες: SQ και ένα byte που είναι ο αριθμός πακέτου, μπορεί να είναι από 33 ως 126 3. Τα μηνύματα αίτησης στέλνονται όποτε χρειάζεται να γίνει συγχρονισμός, αλλά επίσης και επαναληπτικά σε περίπτωση που δεν ληφθεί απάντηση. Τα μηνύματα απάντησης αποτελούνται από τους χαρακτήρες SR, τον αριθμό πακέτου του μηνύματος αίτησης στο οποίο αναφέρονται, και την χρονοσήμανση μήκους 6 bytes. 4.2.4 Υλοποίηση της χρονοσήμανσης Τα εισερχόμενα μηνύματα πρέπει να χρονοσημανθούν όσο το δυνατόν νωρίτερα, για την μεγαλύτερη δυνατή ακρίβεια του συγχρονισμού. Ετσι δημιουργήθηκε μια μεταβλητή last_rx_time η οποία τίθεται στην τωρινή χρονική στιγμή μόλις ο μικροελεγκτής ξεκινήσει την λήψη ενός πακέτου από το ZigBee Module. Μόλις βρεθεί και το FrameID, ένας αριθμός που χαρα- 2 Δηλαδή αλλαγμένη σύμφωνα με το offset, αλλά λαμβάνοντας υπόψιν και την ολίσθηση που μπορεί να επηρέασε το ρολόι από την στιγμή που έγινε η ανταλλαγή των μηνυμάτων ως την στιγμή που γίνονται οι υπολογισμοί της διόρθωσης. 3 Ετσι ο αριθμός μπορεί να αντιστοιχηθεί σε χαρακτήρα ASCII, πράγμα που επιτρέπει τον εύκολο χειρισμό του.

4.2. ΛΕΠΤΟΜŸΕΡΕΙΕΣ ΥΛΟΠΟŸΙΗΣΗΣ 39 κτηρίζει το πακέτο, αποθηκεύεται μαζί με τον χρόνο λήψης. Ετσι έχουμε τον χρόνο λήψης και αριθμό ταυτότητας του πιο πρόσφατα απεσταλμένου πακέτου. Ο αριθμός ταυτότητας χρησιμοποιείται για να αναγνωριστεί το πακέτο στον Buffer αποστολής. Διαβάζοντας το πακέτο από τον Buffer, γνωρίζουμε τα πάντα για το τι πακέτο είναι. Αν το πακέτο βρεθεί ότι είναι η αναφορά επιτυχούς αποστολής ενός μηνύματος αίτησης (ACK ), ή ότι το μήνυμα είναι ένα μήνυμα αίτησης, η last_rx_time χρησιμοποιείται για τον χρόνο λήψης. Αλλιώς η τιμή της αγνοείται. Η αλλαγή αυτή έγινε στο αρχείο xbee_802_15_4.c, διότι εκεί ορίζονται οι λειτουργίες που γίνονται κατά την λήψη ή αποστολή πακέτων. 4.2.5 Λοιπές πληροφορίες και σχόλια Λόγω της ιδιαίτερης φύσης του ρολογιού, χρειάστηκε να ορισθούν συναρτήσεις που να κάνουν τις τέσσερις βασικές αριθμητικές πράξεις σε 48-μπιτους αριθμούς, και ορισμένες βοηθητικές συναρτήσεις. Συγκεκριμένα: ˆ Πρόσθεση και αφαίρεση. Η υλοποίηση είναι απλή και εύκολη. ˆ Ο πολλαπλασιασμός γίνεται μόνο με έναν αριθμό κινητής υποδιαστολής, και η ακρίβειά του περιορίζεται από την ακρίβεια των πράξεων κινητής υποδιαστολής. ˆ Η διαίρεση δύο 48-μπιτων αριθμών γίνεται με την μετατροπή τους σε αριθμούς κινητής υποδιαστολής, με απώλεια ακρίβειας, και την πραγματοποίηση της διαίρεσης. Το αποτέλεσμα είναι επίσης κινητής υποδιαστολής. ˆ Δύο βοηθητικές συναρτήσεις για την μετατροπή των 48-μπιτων αριθμών σε κινητής υποδιαστολής και αντίστροφα. Η απώλεια σε ακρίβεια κρίθηκε αμελητέα για την συγκεκριμένη εφαρμογή. ˆ Μια συνάρτηση για την σύγκριση 48-μπιτων αριθμών. 4.2.6 Ελεγχος και επιβεβαίωση καλής λειτουργίας Για τον έλεγχο της καλής λειτουργίας του πρωτοκόλλου συγχρονισμού χρειάστηκαν ακόμη δύο τύποι πακέτων, το πακέτο δοκιμής Sync_Test (ST) και η απάντηση δοκιμής Test_Reply (TR). Η μορφή των πακέτων είναι:

40 4. ΥΛΟΠΟŸΙΗΣΗ ΤΟΥ ΠΡΩΤΟΚŸΟΛΛΟΥ ΣΥΓΧΡΟΝΙΣΜΟŸΥ STxAT-y-zEND όπου x είναι ένας αριθμός ταυτότητας του πακέτου σε απεικόνιση ASCII, y είναι τα 16 σημαντικά bit και z τα 32 λιγότερο σημαντικά bit μιας τιμής χρόνου, σε δεκαεξαδική απεικόνιση. Ο χρόνος είναι ο χρόνος σχηματισμού του πακέτου, που είναι λίγα µs πριν αποσταλεί στο λειτουργικό σύστημα. TRx-y-z-DdEND όπου x είναι ένας αριθμός ταυτότητας του πακέτου σε απεικόνιση ASCII, και είναι ίδιος με τον αριθμό ταυτότητας του πακέτου ST στο οποίο είναι απάντηση. Το y είναι τα 16 σημαντικά bit και z τα 32 λιγότερο σημαντικά bit μιας τιμής χρόνου, σε δεκαεξαδική απεικόνιση. Ο χρόνος είναι ο χρόνος λήψης του πακέτου ST, που είναι λίγα µs αφού η μονάδα ZigBee δώσει σήμα στον μικροελεγκτή μέσω διακοπής ότι έχει λάβει ένα πακέτο. Το d είναι η τιμή της ολίσθησης, εκφρασμένη με τον επιστημονικό συμβολισμό 4, είναι δηλαδή η διαφορά της ταχύτητας του τοπικού ρολογιού από το ρολόι αναφοράς σύμφωνα με την σχέση (4.3). Για τον έλεγχο του συγχρονισμού εφαρμόζεται μία μέθοδος που περιγράφηκε και στο πρωτόκολλα δέκτη-δέκτη στο κεφάλαιο 3.3. Ο κόμβος με το ρολόι αναφοράς στέλνει πακέτα δοκιμής ανά τακτά χρονικά διαστήματα, με μορφή broadcast, χωρίς δηλαδή να τα απευθύνει σε κάποιον αποδέκτη. Αποστολές τύπου broadcast λαμβάνονται από όλους τους δέκτες εντός εμβέλειας, και επανεκπέμπονται αυτούσια από τυχόν δρομολογητές στο δίκτυο. Δεν στέλνεται καμιά επιβεβαίωση λήψης, ούτε το πακέτο αποθηκεύεται για να σταλεί σε ανενεργές συσκευές αργότερα. Ετσι, μόνο οι δέκτες που είναι ενεργοί εκείνη την στιγμή θα λάβουν το πακέτο. Ολοι οι δέκτες θα λάβουν το πακέτο την ίδια στιγμή, και θα το χρονοσημάνουν επίσης σχεδόν ταυτόχρονα, ειδικά αν είναι πανομοιότυποι όπως στην περίπτωση των αισθητήρων Quax. Οι δέκτες θα στείλουν αυτήν την πληροφορία στον συντονιστή δικτύου μέσω της απάντησης δοκιμής, και ο συντονιστής το προωθεί στον υπολογιστή. Συγκρίνοντας τις τιμές του χρόνου στα πακέτα απάντησης δοκιμής από τους διαφορετικούς κόμβους, βλέπουμε πόσο καλά συγχρονισμένα είναι τα ρολόγια τους. Η διαφορά του χρόνου στο πακέτο δοκιμής από τους χρόνους στα πακέτα απάντησης δοκιμής μας δίνει μια ιδέα για το πόσο περίπου χρόνο χρειάζεται το λειτουργικό για να στείλει ένα πακέτο. Το αποτέλεσμα της διαδικασίας μετρήσεων φαίνεται στο σχήμα 4.2. Η ανάλυση των αποτελεσμάτων από τις διάφορες μετρήσεις που πραγματοποιήθηκαν βρίσκεται στην παράγραφο 4 Για παράδειγμα 1.234e-04, που είναι ίσο με 0.0001234

4.2. ΛΕΠΤΟΜŸΕΡΕΙΕΣ ΥΛΟΠΟŸΙΗΣΗΣ 41 7.1.2. Τα προγράμματα που χρησιμοποιήθηκαν είναι το PrismaSense Server Data Manipulation και το Lantronix CPR Manager, τα οποία συμπεριλαμβάνονται στο PrismaSense Development Kit. Σχήμα 4.2: Λήψη μετρήσεων

42 4. ΥΛΟΠΟŸΙΗΣΗ ΤΟΥ ΠΡΩΤΟΚŸΟΛΛΟΥ ΣΥΓΧΡΟΝΙΣΜΟŸΥ

Μέρος III Παράδειγμα Εφαρμογής και Συμπεράσματα 43

ΚΕΦŸΑΛΑΙΟ 5 Ενα ασύρματο δίκτυο εντοπισμού πυρκαγιάς 5.1 Εισαγωγή Η υλοποίηση ενός πρωτοκόλλου συγχρονισμού κοστίζει αφενός σε ανθρωποώρες και χρόνο ανάπτυξης εφαρμογών, και αφετέρου σε χώρο μνήμης προγράμματος, χρόνο εκπομπής πακέτων και κατανάλωσης ενέργειας. Για να έχει νόημα μια τέτοια υλοποίηση πρέπει να φέρνει πλεονεκτήματα στην εφαρμογή που θα δικαιολογούν το κόστος. Η εφαρμογή-παράδειγμα που θα παρουσιαστεί παρακάτω, έχει σκοπό να δείξει την χρησιμότητα ενός τέτοιου πρωτοκόλλου. 5.1.1 Το πρόβλημα Η δασοπροστασία έχει μεγάλη σημασία στην Ελλάδα, καθώς οι δασικές εκτάσεις που έχουν απομείνει βρίσκονται υπό μεγάλη περιβαλλοντική και ανθρωπογενή πίεση. Το ξηρό και θερμό κλίμα το καλοκαίρι ευνοεί τις πυρκαγιές που, είτε ξεκινάν από λάθος (σκουπίδια, αναμμένα τσιγάρα κ.α.) είτε από εμπρησμό, μειώνουν κάθε χρόνο την καλυπτόμενη με δάσος επιφά- 45

46 5. ŸΕΝΑ ΑΣŸΥΡΜΑΤΟ ΔŸΙΚΤΥΟ ΕΝΤΟΠΙΣΜΟŸΥ ΠΥΡΚΑΓΙŸΑΣ Σχήμα 5.1: Χρήση WSN για παρακολούθηση δάσους (πηγή: αναφορά [18])