DS18B20 αισθητήρας θερμοκρασίας

ΠΕΡΙΓΡΑΦΗ

Το ψηφιακό θερμόμετρο DS18B20 παρέχει μετρήσεις θερμοκρασίας σε βαθμούς Κελσίου με ακρίβεια 9 εως 12-bit και παρέχει λειτουργία συναγερμού με προγραμματιζόμενα από το χρήστη πάνω και κάτω όρια που διατηρούνται και με την μη τροφοδότηση με τάση του αισθητήρα. Το DS18B20 επικοινωνεί σειριακά μέσω ενός 1-Wire bus το οποίο απαιτεί μια γραμμή δεδομένων (και τη γείωση) για την επικοινωνία με τον μικροελεγκτή. Μπορεί να λειτουργήσει στην περιοχή θερμοκρασιών από -550C έως 1250C, αλλά παρέχει ακρίβεια ±0,50C για την περιοχή θερμοκρασιών -100C έως 850C. Το DS18B20 μπορεί να τροφοδοτηθεί από εξωτερική τάση ή μπορεί να λειτουργήσει σε κατάσταση “parasite mode” στην οποία το DS18B20 μπορεί και αντλεί ισχύ από την γραμμή δεδομένων. Σε αυτή την κατάσταση, παίρνει ισχύ διαμέσου μιας 1-Wire pull-up αντίστασης διαμέσου του ακροδέκτη DQ, όταν ο δίαυλος δεδομένων είναι σε high κατάσταση. Όταν ο δίαυλος δεδομένων είναι high, φορτίζει ένα εσωτερικό πυκνωτή (Cpp) που παρέχει ισχύ στον αισθητήρα όταν ο δίαυλος δεδομένων είναι σε low κατάσταση (για περισσότερες πληροφορίες ανατρέξτε στο DS18B20 datasheet). Κάθε ένα DS18B20 έχει ενσωματωμένο ένα 64-bit σειριακό κωδικό που επιτρέπει την σύνδεση πολλαπλών DS18B20 στο ίδιο 1-Wire δίαυλο δεδομένων και και διευκολύνει στην χρήση ενός μικροελεγκτή για τον έλεγχο πολλών DS18B20 κατανεμημένα σε μια μεγάλη περιοχή.

ΕΠΙΣΚΟΠΙΣΗ

Το DS18B20 έχει 64-bit ROM στην οποία είναι αποθηκευμένος ο μοναδικός σειριακός κωδικός. Περιέχει μια περιοχή SRAM μνήμη η οποία περιέχει τον 2-byte καταχωρητή θερμοκρασίας, που αποθηκεύει την ψηφιακή έξοδο του αισθητήρα θερμοκρασίας. Επιπρόσθετα αυτή η περιοχή μνήμης περιέχει τους 1-byte καταχωρητές του πάνω και κάτω ορίου λειτουργίας συναγερμού θερμοκρασίας (ΤΗ και ΤL) καθώς και τον 1-byte καταχωρητή διαμόρφωσης. Ο καταχωρητής διαμόρφωσης επιτρέπει στον χρήστη να ορίσει την ανάλυση του μετατροπέα θερμοκρασίας σε ψηφιακό σήμα σε 9, 10, 11 ή 12 bits. Οι καταχωρητές ΤΗ και ΤL και ο καταχωρητής διαμόρφωσης, αποθηκεύονται και σε μια μνήμη EEPROM με συγκεκριμένες εντολές έτσι ώστε τα δεδομένα να διατηρούνται με τη διακοπή της τροφοδοσίας.

Το DS18B20 χρησιμοποιεί το αποκλειστικό 1-Wire πρωτόκολλο διαύλου δεδομένων, που αναπτύχθηκε από την Dallas και υλοποιεί το δίαυλο δεδομένων χρησιμοποιώντας μια γραμμή δεδομένων. Ο έλεγχος της γραμμής δεδομένων απαιτεί μια pull-up αντίσταση αφού όλοι οι αισθητήρες συνδέονται με τον δίαυλο δεδομένων δια μέσου μιας 3-state ή open-drain port (ο ακροδέκτης DQ στην περίπτωση του αισθητήρα DS18B20). Σε αυτό το σύστημα διαύλου ο μικροελεγκτής (αφέντης) προσπελαύνει τους αισθητήρες του διαύλου χρησιμοποιώντας τον 64-bit κωδικό των αισθητήρων. Επειδή κάθε αισθητήρας έχει το δικό του μοναδικό κωδικό, ο αριθμός των αισθητήρων που μπορούν να προσπελαυτούν είναι απεριόριστος.

ΛΕΙΤΟΥΡΓΙΑ – ΜΕΤΡΗΣΗ ΘΕΡΜΟΚΡΑΣΙΑΣ

Η βασική λειτουργία του DS18B20 είναι η κατευθείαν ψηφιακή μέτρηση της θερμοκρασίας του αισθητήρα. Η ανάλυση του θερμοκρασιακού αισθητήρα, ορίζεται από το χρήστη και μπορεί να είναι στα 9, 10, 11 ή 12 bits που αντιστοιχούν στα βήματα θερμοκρασίας 0,50C, 0,250C, 0,1250C και 0,06250C αντίστοιχα. Η προκαθορισμένη ανάλυση με την εφαρμογή της τροφοδοσίας είναι 12-bit. To DS18Β20 με την εφαρμογή της τροφοδοσίας, μπαίνει σε χαμηλή κατανάλωση και σε αδρανή κατάσταση. Για να προκαλέσουμε μια μέτρηση θερμοκρασίας και μια αναλογική σε ψηφιακή μετατροπή, ο αφέντης (μικροελεγκτής) πρέπει να προκαλέσει την εντολή: Convert T [44h]. Αποτέλεσμα αυτής της εντολής είναι η θερμοκρασιακή τιμή να αποθηκευτεί στο 2-byte καταχωρητή θερμοκρασίας στην περιοχή της μνήμης και έπειτα το DS18B20 επιστρέφει σε αδρανή κατάσταση. Εάν ο αισθητήρας DS28B20 τροφοδοτείται από εξωτερική πηγή, ο αφέντης μπορεί να ζητήσει “read time slots” μετά την αποστολή της εντολής Convert T και το DS18B20 θα ανταποκριθεί μεταδίδοντας 0 όταν είναι σε κατάσταση μέτρησης και 1 όταν η μετατροπή μέτρησης έχει ολοκληρωθεί. Αυτό δεν εφαρμόζεται στη τροφοδοσία τύπου “parasite power” γιαυτό ο δίαυλος δεδομένων πρέπει να τραβηχτεί σε high με ισχυρή pull-up καθόλη τη διάρκεια της μέτρησης και μετατροπής της θερμοκρασίας.

Στο DS18B20 η μέτρηση και η έξοδος των δεδομένων είναι σε βαθμούς Κελσίου. Για μετρήσεις σε βαθμούς Φαρενάιτ, μια ρουτίνα μετατροπής πρέπει να χρησιμοποιηθεί επιπρόσθετα. Τα δεδομένα θερμοκρασίας αποθηκεύονται σαν 16-bit τιμές και με το συμπλήρωμα ως προς δυο στον καταχωρητή θερμοκρασίας (βλέπε στο σχήμα 2). Το bit προσήμου (S) δείχνει αν η θερμοκρασία είναι θετική ή αρνητική. Για θετικές τιμές τίθεται S=0 και για αρνητικές τιμές τίθεται S=1. Εάν το DS18B20 διαμορφωθεί σε 12-bit ανάλυση όλα τα bits του θερμοκρασιακού καταχωρητή έχουν έγκυρα δεδομένα. Για 11-bit ανάλυση το bit 0 δεν ορίζεται. Για 10-bit ανάλυση τα bits 0 και 1 δεν ορίζονται ενώ για 9-bit ανάλυση τα bits 2, 1, 0 δεν ορίζονται.

ΛΕΙΤΟΥΡΓΙΑ – ΚΑΤΑΣΤΑΣΗ ΣΥΝΑΓΕΡΜΟΥ

Έπειτα που το DS18B20 εκτελέσει μια θερμοκρασιακή μέτρηση και μετατροπή, η θερμοκρασιακή τιμή συγκρίνεται με τις δυο τιμές των καταχωρητών συναγερμού ΤΗ και ΤL, οι οποίες είναι τιμές συμπληρώματος ως προς δυο και ορίζονται από το χρήστη. Το bit προσήμου ορίζει αν μια τιμή είναι θετική ή αρνητική, για θετικούς αριθμούς είναι S=0 και για αρνητικούς αριθμούς είναι S=1. Οι ΤΗ και TL καταχωρητές είναι αποθηκευμένοι στην ΕΕPROM και δεν απαιτούν τάση για να συντηρηθούν και μπορούν να προσπελαυτούν διαμέσου των bytes 2 και 3 της περιοχής της μνήμης. Περισσότερες πληροφορίες στο πως ο αφέντης ελέγχει τις σημαίες συναγερμού όλων των DS18B20 στο δίαυλο δεδομένων θα βρείτε στο datasheet του DS18B20.

64-BIT ROM ΚΩΔΙΚΟΣ ΑΡΙΘΜΟΣ

Κάθε DS18B20 περιέχει ένα μοναδικό κωδικό αριθμό, αποθηκευμένο στην ROM. Τα οκτώ λιγότερο σημαντικά ψηφία από αυτόν τον 64-bit κωδικό, περιέχει τον 1-Wire κωδικό της οικογένειας του DS18B20 και συγκεκριμένα τον 28h. Τα επόμενα 48 bits περιέχουν ένα μοναδικό σειριακό αριθμό. Τα οκτώ περισσότερα σημαντικά ψηφία, περιέχουν το byte του κυκλικού ελέγχου απόρριψης (CRC), το οποίο υπολογίζεται από τα πρώτα 56 bits του ROM κωδικού. Περαιτέρω εξήγηση για το CRC bits μπορείτε να βρείτε στο datasheet του DS18B20.

ΜΝΗΜΗ

Η περιοχή της μνήμης του DS18B20 είναι οργανωμένη όπως στο σχήμα 7. Η μνήμη είναι τύπου SRAM. Υπάρχει και η μνήμη ΕΕPROM, που δεν απαιτεί τάση για την διατήρηση των δεδομένων, που αποθηκεύονται οι καταχωρητές ΤΗ και ΤL του συστήματος θερμοκρασιακού συναγερμού καθώς επίσης και ο καταχωρητής διαμόρφωσης. Σημείωση, αν η λειτουργία θερμοκρασιακού συναγερμού δεν χρησιμοποιείται, οι ΤΗ και ΤL καταχωρητές, μπορούν να χρησιμοποιηθούν ως γενικού σκοπού μνήμη.

Τα byte 0 και byte 1 της περιοχής της μνήμης περιέχουν το LSB και MSB του θερμοκρασιακού καταχωρητή αντίστοιχα. Τα byte αυτά είναι μόνο ανάγνωσης. Τα byte 2 και byte 3 παρέχουν πρόσβαση στους ΤΗ και ΤL καταχωρητές. Το byte 4 περιέχει τα δεδομένα του καταχωρητή διαμόρφωσης. Τα byte 5, 6 και 7 είναι δεσμευμένα για εσωτερική χρήση μόνο και δεν μπορούν να γραφτούν και αυτά τα bytes επιστρέφουν όλα τη τιμή 1 όταν διαβαστούν. Το byte 8 της περιοχής της μνήμης περιέχει τον κωδικό του κυκλικού ελέγχου απόρριψης (CRC) για τα bytes από 0 έως 7 της περιοχή μνήμης.

Τα δεδομένα γράφονται στα bytes 2, 3 και 4 της περιοχής μνήμης χρησιμοποιώντας την εντολή Write Scratchpad [4Eh]. Τα δεδομένα πρέπει να μεταφερθούν στο DS18B20 ξεκινώντας από το λιγότερο σημαντικό bit του byte 2.

Για την επιβεβαίωση της ακεραιότητας των δεδομένων, τα δεδομένα στην περιοχή της μνήμης μπορούν να διαβαστούν με την εντολή Read Scratchpad [Beh] μετά που τα δεδομένα γραφτούν. Όταν η περιοχή της μνήμης διαβάζεται, τα δεδομένα μεταφέρονται πάνω στο 1-Wire διαύλου δεδομένων ξεκινώντας από το λιγότερο σημαντικό bit του byte 0.

Για την μεταφορά των δεδομένων των ΤΗ και ΤL και διαμόρφωσης από την περιοχή μνήμης στην EEPROM, ο αφέντης πρέπει να ζητήσει την εντολή Copy Scratchpad [48h]. Τα δεδομένα στην EEPROM περιοχή καταχωρητών διατηρούνται όταν διακόπτεται η τάση τροφοδοσίας. Με την παροχή τροφοδοσίας τα δεδομένα της EEPROM ξαναφορτώνονται στις αντίστοιχες θέσεις στην περιοχή μνήμης SRAM. Τα δεδομένα της EEPROM μπορούν να φορτωθούν στην περιοχή της μνήμης, με την εντολή Recall E2 [B8h]. Ο αφέντης μπορεί να ζητήσει “read time slots” ακολουθούμενα την εντολή recall και το DS18B20 ανταποκρίνεται στην εντολή recall μεταδίδοντας 0 καθώς η εντολή recall είναι σε κατάσταση εκτέλεσης και 1 όταν η εκτέλεση της εντολής recall έχει τελειώσει.

ΚΑΤΑΧΩΡΗΤΗΣ ΔΙΑΜΟΡΦΩΣΗΣ

Το byte 4 της περιοχής της μνήμης περιέχει τον καταχωρητή διαμόρφωσης, που οργανώνεται όπως φαίνεται στο σχήμα 8. Ο χρήστης μπορεί να ορίσει την ανάλυση της μετατροπής των μετρήσεων θερμοκρασίας του DS18B20 χρησιμοποιώντας τα bits R0 και R1 αυτού του καταχωρητή, όπως δείχνει ο πίνακας 3. Κατά την εφαρμογή της τροφοδοσίας αυτά τα bits είναι R0=1 και R1=1 (12-bit ανάλυση). Σημειώστε ότι υπάρχει μια σχέση ανάμεσα στην ανάλυση και στο χρόνο μετατροπής. Το bit 7 και τα bits 0 έως 4 στον καταχωρητή διαμόρφωσης είναι δεσμευμένα για εσωτερική χρήση του αισθητήρα και δεν μπορούν να γραφούν.

ΠΑΡΑΓΩΓΗ ΤΟΥ BYTE CRC

Το DS18B20 παράγει δυο CRC bytes. Το ένα ως μέρος του 64-bit ROM κωδικού, από το οποίο το CRC byte υπολογίζεται από τα πρώτα 56 bits του ROM κωδικού και το CRC byte ενσωματώνεται στο πιο σημαντικό byte toy 64-bit ROM κωδικού. Το άλλο CRC byte που περιλαμβάνεται στο byte 8 της περιοχής μνήμης SRAM και υπολογίζεται από τα δεδομένα της περιοχής μνήμης SRAM και επομένως αλλάζει καθώς τα δεδομένα της περιοχής μνήμης αλλάζουν. Τα CRCs παρέχουν στον αφέντη μια μέθοδο επαλήθευσης, καθώς τα δεδομένα διαβάζονται από το DS18B20. Μπορείς να βρεις πως υπολογίζονται τα CRCs bytes στο datasheet του DS18B20.

1-WIRE ΔΙΑΥΛΟΣ ΔΕΔΟΜΕΝΩΝ

Ο 1-Wire δίαυλος δεδομένων χρησιμοποιεί ένα αφέντη για τον έλεγχο ενός ή περισσότερους σκλάβους συσκευές. Ο αισθητήρας DS18B20 ορίζεται πάντα ως σκλάβος. Όταν υπάρχει μόνο ένας σκλάβος στον δίαυλο δεδομένων, το σύστημα ονομάζεται “single-drop”. Το σύστημα είναι “multi-drop” όταν υπάρχουν πολλαπλοί σκλάβοι στον δίαυλο δεδομένων. Στον 1-Wire δίαυλο δεδομένων όλα τα δεδομένα και εντολές μεταδίδονται με το λιγότερο σημαντικό ψηφίο πρώτο. Η επόμενη συζήτηση για το 1-Wire δίαυλο δεδομένων χωρίζεται σε τρία μέρη: Α] Διαμόρφωση υλικού, Β] Διαδικασία μετάδοσης και τη Γ] Δομή του 1-Wire σήματος με εφαρμογή σε ένα AVR μικροελεγκτή.

Α] ΔΙΑΜΟΡΦΩΣΗ ΥΛΙΚΟΥ

Ο 1-Wire δίαυλος δεδομένων έχει μια γραμμή δεδομένων. Κάθε συσκευή (αφέντης ή σκλάβος) συνδέεται στη γραμμή δεδομένων διαμέσου μιας ανοικτού συλλέκτη ή τριών καταστάσεων πόρτα. Αυτό επιτρέπει κάθε συσκευή να “ελευθερώνει” τη γραμμή δεδομένων όταν η συσκευή δεν μεταδίδει δεδομένα, έτσι ώστε η γραμμή δεδομένων να είναι διαθέσιμη για άλλη συσκευή. Η 1-Wire πόρτα του DS18B20 (το DQ pin) είναι ανοικτού συλλέκτη, με ένα ισοδύναμο εσωτερικό κύκλωμα σαν αυτό που δείχνεται στο σχήμα 10. Ο 1-Wire δίαυλος δεδομένων απαιτεί μια pull-up αντίσταση τιμής 5KΩ, έτσι ώστε η αδρανή κατάσταση του 1-Wire διαύλου είναι high. Εάν για οποιαδήποτε λόγο η μετάδοση χρειάζεται να ανασταλεί, ο δίαυλος δεδομένων πρέπει να τεθεί σε αδρανή κατάσταση αν η μετάδοση πρόκειται να επαναληφθεί. Εάν ο δίαυλος δεδομένων κρατηθεί low περισσότερο από 480μs όλες οι συσκευές πάνω στο δίαυλο αρχικοποιούνται (επαναφέρονται).

Β] ΔΙΑΔΙΚΑΣΙΑ ΜΕΤΑΔΟΣΗΣ

Η σειρά με την οποία γίνεται η επικοινωνία του DS18B20 με τον μικροελεγκτή είναι η ακόλουθη:
Βήμα 1: Αρχικοποίηση
Βήμα 2: Εντολή ROM (Ακολουθούμενη με τα απαραίτητα δεδομένα).
Βήμα 3: Εντολή λειτουργίας του DS18B20 (Ακολουθούμενη με τα απαραίτητα δεδομένα).

Είναι πολύ σημαντικό να ακολουθείται αυτή τη σειρά κάθε φορά που προκαλούμε πρόσβαση στο DS18B20, καθώς το DS18B20 δεν θα ανταποκριθεί, αν κάποιο από τα βήματα επικοινωνίας παραλειφθεί. Εξαιρέσεις σε αυτό τον κανόνα είναι οι εντολές Search ROM [F0h] και Alarm Search [Ech]. Έπειτα που ζητηθούν αυτές οι εντολές, ο αφέντης πρέπει να επιστρέψει στο βήμα 1 της σειράς επικοινωνίας.

Βήμα 1: Αρχικοποίηση

Η διαδικασία μεταδοσης πάνω στον 1-Wire δίαυλο δεδομένων, ξεκινά με το βήμα της αρχικοποίησης. Η αρχικοποίηση αποτελείται από τον παλμό επαναφοράς (αρχικοποίησης), που εκπέμπεται από τον αφέντη, πάνω στο δίαυλο δεδομένων ακολουθούμενο από τους παλμούς παρουσίας που μεταδίδουν ο (οι) σκλάβος (οι). Ο παλμός παρουσίας επιτρέπει στον αφέντη να γνωρίζει ότι σκλάβοι συσκευές (όπως το DS18B20) είναι πάνω στο δίαυλο δεδομένων και είναι έτοιμες να λειτουργήσουν και να ανταποκριθούν.

Βήμα 2: Εντολές ROM

Έπειτα που ο αφέντης έχει ανιχνεύσει ένα παλμό παρουσίας, μπορεί να ζητήσει μια εντολή ROM. Αυτές οι εντολές ROM δρουν πάνω στο μοναδικό 64-bit ROM κωδικό της κάθε σκλάβου συσκευής και επιτρέπει στον αφέντη να καθορίσει μια συσκευή, αν πολλαπλές συσκευές είναι πάνω στο 1-Wire δίαυλο δεδομένων. Αυτές οι εντολές ROM επιτρέπουν, επίσης, στον αφέντη να αναγνωρίσει πόσες και τον τύπο των συσκευών που υπάρχουν πάνω στο δίαυλο δεδομένων ή αν κάποια συσκευή βρίσκεται σε κατάσταση θερμοκρασιακού συναγερμού. Υπάρχουν πέντε εντολές ROM και κάθε εντολή έχει 8-bit μέγεθος. Ο αφέντης πρέπει να ζητήσει την κατάλληλη εντολή ROM πριν ζητήσει μια εντολή λειτουργίας του DS18B20.

Search Rom [F0h]
Όταν το σύστημα αρχικά τροφοδοτείται, ο αφέντης πρέπει να αναγνωρίσει τους ROM κωδικούς όλων των σκλάβων συσκευών, πάνω στον δίαυλο δεδομένων, το οποίο επιτρέπει στον αφέντη να καθορίσει τον αριθμό και το τύπο των σκλάβων συσκευών. Αυτό μπορεί να γίνει με την εντολή Search ROM [F0h]. Ο αφέντης μαθαίνει τους ROM κωδικούς διαμέσου μιας διαδικασίας που απαιτεί από τον αφέντη να εκτελεί ένα κύκλο Search ROM όσες φορές χρειάζεται για να αναγνωρίσει όλους τους σκλάβους συσκευές. Εάν υπάρχει μόνο ένας σκλάβος πάνω στο δίαυλο δεδομένων, η απλούστερη εντολή Read ROM [33h] μπορεί να χρησιμοποιηθεί στην θέση της Search ROM διαδικασίας.

Read Rom [33h]
Η εντολή Read ROM [33h] μπορεί να χρησιμοποιηθεί όταν υπάρχει ένας σκλάβος στο δίαυλο δεδομένων. Επιτρέπει στον αφέντη να διαβάσει τον 64-bit ROM κωδικό του σκλάβου χωρίς τη χρήση της Search ROM διαδικασίας. Εάν αυτή η εντολή χρησιμοποιηθεί όταν υπάρχουν περισσότεροι από ένας σκλάβους συσκευές στο δίαυλο δεδομένων, μια σύγκρουση δεδομένων θα συμβεί, καθώς όλοι οι σκλάβοι προσπαθούν να ανταποκριθούν την ίδια χρονική στιγμή.

Match Rom [55h]
Η εντολή Match ROM ακολουθούμενη από τον 64-bit ROM κωδικό, επιτρέπει στον αφέντη να ενεργοποιήσει ένα συγκεκριμένο σκλάβο συσκευή σε ένα multi-drop ή single-drop δίαυλο δεδομένων. Μόνο ο σκλάβος που καθορίζεται από το συγκεκριμένο 64-bit ROM κωδικό θα ανταποκρίνεται σε όλες τις εντολές λειτουργίας που ζητά ο αφέντης, ενώ οι υπόλοιπες σκλάβους συσκευές περιμένουν τον παλμό αρχικοποίησης (επαναφοράς).

Skip Rom [CCh]
Ο αφέντης μπορεί να ζητήσει την εντολή Skip ROM [Cch] για να ορίσει όλες τις συσκευές του διαύλου δεδομένων ταυτόχρονα χωρίς να στείλει ROM κωδικούς. Για παράδειγμα, ο αφέντης μπορεί να προκαλέσει όλα τα DS18B20 του διαύλου δεδομένων να εκτελέσουν ταυτόχρονα μέτρηση και μετατροπή θερμοκρασίας. Ζητώντας μια Skip ROM εντολή ακολουθούμενη από την εντολή Convert T [44h].

Σημείωση: η εντολή λειτουργίας Read Scratchpad [Beh] μπορεί να ακολουθεί την εντολή Skip ROM μόνο όταν υπάρχει μια σκλάβος συσκευή στο δίαυλο δεδομένων. Σε αυτή την περίπτωση εξοικονομείται χρόνος στον αφέντη για να διαβάζει από τον σκλάβο, χωρίς να στείλει τον 64-bit ROM κωδικό. Η εντολή Skip ROM ακολουθούμενη από την εντολή Read Scratchpad θα προκαλέσει σύγκρουση δεδομένων στο δίαυλο δεδομένων όταν υπάρχουν περισσότεροι από ένα σκλάβοι από την στιγμή που υπάρχουν πολλαπλοί σκλάβοι θα προσπαθήσουν να μεταδώσουν δεδομένα ταυτόχρονα.

Alarm Search [Ech]
Η λειτουργία της εντολής Alarm Search [Ech] είναι πανομοιότυπη με την λειτουργία της εντολής Search ROM, εκτός από το ότι μόνο οι σκλάβοι με ενεργοποιημένοι τη σημαία συναγερμού θερμοκρασίας θα ανταποκριθούν. Αυτή η εντολή επιτρέπει στον αφέντη να καθορίσει εάν κάποιο DS18B20 βρίσκεται σε κατάσταση συναγερμού στην πρόσφατη μέτρηση και μετατροπή της θερμοκρασίας. Μέσα από κάθε κύκλο Alarm Search, ο αφέντης πρέπει να επιτρέψει στο βήμα 1 (αρχικοποίηση) της διαδικασία μετάδοσης.

Βήμα 3: Εντολές λειτουργίας του DS18B20

Μετά που ο αφέντης έχει χρησιμοποιήσει μια εντολή ROM, για να ορίσει το DS18B20 που επιθυμεί να επικοινωνήσει, ο αφέντης μπορεί να ζητήσει μια εντολή λειτουργίας του DS18B20. Αυτές οι εντολές λειτουργίας επιτρέπουν στον αφέντη να γράψει και να διαβάσει από την περιοχή της μνήμης του DS18B20, να αρχίσει τη μέτρηση και μετατροπή της θερμοκρασίας και να καθορίσει τον τρόπο τροφοδοσίας.

Convert T [44h]
Αυτή η εντολή αρχίζει μια απλή μέτρηση και μετατροπή θερμοκρασίας. Τα ψηφιακά αποτελέσματα αυτής της εντολής αποθηκεύονται στον 2-byte καταχωρητή θερμοκρασίας, στην περιοχή μνήμης και μετά το DS18B20 επιστρέφει σε αδρανή κατάσταση. Εάν το DS18B20 τροφοδοτείται από εξωτερική πηγή, ο αφέντης μπορεί να ζητήσει “read time slots” μετά την εντολή Convert T και το DS18B20 ανταποκρίνεται μεταδίδοντας 0 όταν βρίσκεται ακόμη σε κατάσταση μέτρησης και μετατροπής θερμοκρασίας και 1 αν ή μέτρηση και μετατροπή έχει ολοκληρωθεί. Όταν τροφοδοτείται με “parasite power” αυτή η λειτουργία δεν μπορεί να χρησιμοποιηθεί από την στιγμή που ο δίαυλος δεδομένων τραβιέται σε high κατά την διάρκεια της μέτρησης και μετατροπής της θερμοκρασίας.

Write Scratchpad [4Eh]
Αυτή η εντολή επιτρέπει στον αφέντη να γράψει τρία byte δεδομένων στην περιοχή μνήμης του DS18B20. Το πρώτο byte γράφεται στο ΤΗ καταχωρητή (byte 2 της περιοχή μνήμης) το δεύτερο byte γράφεται στο TL καταχωρητή (byte 3) και το τρίτο byte γράφεται στον καταχωρητή διαμόρφωσης (byte 4). Τα δεδομένα μεταδίδονται πρώτα το λιγότερο σημαντικό bit. Όλα και τα τρία bytes πρέπει να γραφούν πριν ο αφέντης ζητήσει εντολή αρχικοποίησης (επαναφοράς).

Read Scratchpad [BEh]
Με αυτή την εντολή ο αφέντης διαβάζει τα περιεχόμενα της περιοχή μνήμης. Τα δεδομένα μεταφέρονται ξεκινώντας από το λιγότερο σημαντικό bit του byte 0 και συνεχίζονται μέχρι το ένατο byte (byte8 -CRC) της περιοχή μνήμης. Ο αφέντης μπορεί να ζητήσει εντολή αρχικοποίησης (επαναφοράς) για να διακόψει το διάβασμα οποιαδήποτε στιγμή, εάν μόνο ένα τμήμα της περιοχή μνήμης χρειάζεται να διαβαστεί.

Copy Scratchpad [48h]
Αυτή η εντολή αντιγράφει τα περιεχόμενα των καταχωρητών ΤΗ, ΤL και διαμόρφωσης που αντιστοιχούν στα bytes 2, 3 και 4 της περιοχής της μνήμης προς την μνήμη EEPROM. Αν το DS18B20 λειτουργεί σε “parasite power mode” μέσα σε χρόνο 10μs το μέγιστο, μετά αυτή την εντολή ο αφέντης πρέπει να ενεργοποιήσει δυνατό τράβηγμα pull-up στον 1-Wire δίαυλο δεδομένων, με διάρκεια το λιγότερο 10ms.

Recall E2 [B8h]
Με αυτή την εντολή αντιγράφονται τα όρια του θερμοκρασιακού συναγερμού (ΤΗ και ΤL) και τα δεδομένα του byte διαμόρφωσης από την μνήμη EEPROM στα bytes 2, 3 και 4 αντίστοιχα στη περιοχή της μνήμης. Ο αφέντης μετά την εντολή Recall E2 μπορεί να ζητήσει “read time slots” και το DS18B20 ανταποκρίνεται με 0 όταν η εντολή Recall E2 είναι σε διαδικασία εκτέλεσης και 1 όταν έχει ολοκληρωθεί. Η λειτουργία recall εκτελείται αυτόματα μόλις τροφοδοτηθεί με τάση το DS18B20 έτσι ώστε τα δεδομένα να είναι διαθέσιμα μέσα στη περιοχή μνήμης με την αρχή τροφοδοσίας του DS18B20.

Read Power Supply [B4h]
Ο αφέντης μπορεί να ζητήσει αυτή την εντολή ακολουθούμενη από “read time slot” για να του γνωστοποιηθεί έναν κάποιο DS18B20 πάνω στο δίαυλο δεδομένων λειτουργεί με τροφοδοσία “parasite power”. Κατά τη διάρκεια του “read time slot” τα DS18B20 σε κατάσταση “parasite mode” τραβούν το δίαυλο δεδομένων σε low ενώ αυτά που τροφοδοτούνται από εξωτερική πηγή αφήνουν το δίαυλο δεδομένων σε high. Εάν ο δίαυλος δεδομένων τραβηχτεί σε low, ο αφέντης γνωρίζει ότι να τροφοδοτήσει με δυνατό pull-up στον 1-Wire δίαυλο δεδομένων κατά τη διάρκεια θερμοκρασιακών μετρήσεων και μετατροπών.

Γ] ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ DS18B20 ΜΕ ΤΟΝ ΜΙΚΡΟΕΛΕΓΚΤΗ AVR

Σε ένα άλλο μέρος αυτού του ιστότοπου σας δείχνουμε αναλυτικά, παρουσιάζοντας τον αντίστοιχο κώδικα για την πλατφόρμα Arduino, για το πως αυτός ο μικριελεγκτής επικοινωνεί σειριακά με τον αισθητήρα ds18b20 για να μπορέσει να μετρήσει την θερμοκρασία,