Ο DS18B20 είναι ένας ψηφιακός αισθητήρας θερμοκρασίας 1 καλωδίου που παράγεται από την DALLAS, με μια μικρή συσκευασία TO-92 3 ακίδων. Το εύρος μέτρησης θερμοκρασίας είναι -55℃~+125℃, και μπορεί να προγραμματιστεί σε ακρίβεια μετατροπής A/D 9-bit~12-bit. Η ανάλυση μέτρησης θερμοκρασίας μπορεί να φτάσει τα 0,0625℃, και η μετρούμενη θερμοκρασία εξάγεται σειριακά με τη μορφή ψηφιακής ποσότητας 16 bit με επέκταση σήματος. Η λειτουργική του τροφοδοσία μπορεί να εισαχθεί στο απομακρυσμένο άκρο ή να παραχθεί από παρασιτική παροχή ρεύματος. Πολλά DS18B20 μπορούν να συνδεθούν παράλληλα 3 ή 2 γραμμές. Η CPU χρειάζεται μόνο μία γραμμή θύρας για να επικοινωνεί με πολλά DS18B20, καταλαμβάνοντας λιγότερες θύρες του μικροεπεξεργαστή, που μπορεί να εξοικονομήσει πολλούς απαγωγούς και λογικά κυκλώματα. Τα παραπάνω χαρακτηριστικά καθιστούν το DS18B20 πολύ κατάλληλο για συστήματα ανίχνευσης θερμοκρασίας πολλών σημείων σε μεγάλες αποστάσεις.
2. Εσωτερική δομή του διαγράμματος κυκλώματος DS18B20 ds18b20
Η εσωτερική δομή του DS18B20 φαίνεται στο σχήμα 1, που αποτελείται κυρίως από 4 εξαρτήματα: 64-bit ROM, αισθητήρας θερμοκρασίας, μη πτητικός συναγερμός θερμοκρασίας ενεργοποιεί TH και TL, και καταχωρητές διαμόρφωσης. Η διάταξη των πείρων του DS18B20 φαίνεται στο Σχήμα 2. Το DQ είναι το τερματικό εισόδου/εξόδου ψηφιακού σήματος; Το GND είναι η γείωση ισχύος; Το VDD είναι ο ακροδέκτης εισόδου εξωτερικού τροφοδοτικού (γειωμένο σε λειτουργία παρασιτικής καλωδίωσης ισχύος, βλέπε Εικόνα 4).
Ο σειριακός αριθμός 64-bit στη ROM φωτοχαράσσεται πριν φύγει από το εργοστάσιο. Μπορεί να θεωρηθεί ως ο κωδικός ακολουθίας διευθύνσεων του DS18B20. Ο σειριακός αριθμός 64-bit κάθε DS18B20 είναι διαφορετικός. Ο κωδικός ελέγχου κυκλικού πλεονασμού (CRC=X8+X5+X4+1) της ROM 64-bit είναι τακτοποιημένη. Ο ρόλος της ROM είναι να κάνει κάθε DS18B20 διαφορετικό, ώστε να μπορούν να συνδεθούν πολλαπλά DS18B20 σε έναν δίαυλο.
Εικόνα 1, εσωτερική δομή του DS18B20
Ο αισθητήρας θερμοκρασίας στο DS18B20 ολοκληρώνει τη μέτρηση θερμοκρασίας, το οποίο παρέχεται με τη μορφή αναγνώσεων δυαδικού συμπληρώματος με εκτεταμένο πρόσημο 16 bit, εκφράζεται με τη μορφή 0,0625℃/LSB, όπου S είναι το bit πρόσημου. Για παράδειγμα, η ψηφιακή έξοδος +125℃ είναι 07D0H, η ψηφιακή έξοδος +25,0625℃ είναι 0191H, η ψηφιακή έξοδος -25,0625℃ είναι FF6FH, και η ψηφιακή έξοδος -55℃ είναι FC90H.
23
22
21
20
2- 1
2-2
2-3
2-4
Χαμηλό byte τιμής θερμοκρασίας
MSBLSB
μικρό
μικρό
μικρό
μικρό
μικρό
22
25
24
Τιμή θερμοκρασίας υψηλό byte
Ο συναγερμός υψηλής και χαμηλής θερμοκρασίας ενεργοποιεί TH και TL, και ο καταχωρητής διαμόρφωσης αποτελείται από ένα byte EEPROM. Μια εντολή συνάρτησης μνήμης μπορεί να χρησιμοποιηθεί για εγγραφή στο TH, TL, ή τον καταχωρητή διαμόρφωσης. Η μορφή του καταχωρητή διαμόρφωσης είναι η εξής:
0
R1
R0
1
1
1
1
1
MSBLSB
Τα R1 και R0 καθορίζουν τον αριθμό των ψηφίων ακριβείας για τη μετατροπή της θερμοκρασίας: R1R0 = “00”, 9-λίγο ακρίβεια, ο μέγιστος χρόνος μετατροπής είναι 93,75 ms; R1R0 = “01”, 10-λίγο ακρίβεια, Ο μέγιστος χρόνος μετατροπής είναι 187,5 ms. R1R0 = “10”, 11-λίγο ακρίβεια, Ο μέγιστος χρόνος μετατροπής είναι 375 ms. R1R0 = “11”, 12-λίγο ακρίβεια, ο μέγιστος χρόνος μετατροπής είναι 750 ms. Η προεπιλογή είναι η ακρίβεια 12 bit όταν δεν είναι προγραμματισμένη.
Ο καταχωρητής υψηλής ταχύτητας είναι μια μνήμη 9 byte. Τα δύο πρώτα byte περιέχουν τις ψηφιακές πληροφορίες της μετρούμενης θερμοκρασίας; το 3ο, 4ου, και το 5ο byte είναι προσωρινά αντίγραφα του TH, TL, και καταχωρητές διαμόρφωσης, αντίστοιχα, και ανανεώνονται κάθε φορά που πραγματοποιείται επαναφορά κατά την ενεργοποίηση; το 6ο, 7ου, και το 8ο byte δεν χρησιμοποιούνται και αντιπροσωπεύονται ως όλα τα λογικά 1; το 9ο byte διαβάζει τον κωδικό CRC όλων των προηγούμενων 8 byte, που μπορεί να χρησιμοποιηθεί για να διασφαλιστεί η σωστή επικοινωνία.
3. Ακολουθία εργασίας DS18B20
Η ροή πρωτοκόλλου εργασίας πρώτης γραμμής του DS18B20 είναι: αρχικοποίηση → Οδηγίες λειτουργίας ROM → οδηγίες λειτουργίας μνήμης → μετάδοση δεδομένων. Η ακολουθία εργασίας του περιλαμβάνει την ακολουθία αρχικοποίησης, γράψτε τη σειρά και διαβάστε τη σειρά, όπως φαίνεται στο Σχήμα 3 (ένα) (σι) (ντο).
(ένα) Ακολουθία αρχικοποίησης
(ντο) Διαβάστε τη σειρά
Εικόνα 3, DS18B20 διάγραμμα ακολουθίας εργασίας
4. Τυπική σχεδίαση διεπαφής DS18B20 και μικροϋπολογιστή ενός τσιπ
Εικόνα 4 παίρνει ως παράδειγμα τον μικροϋπολογιστή μονού τσιπ της σειράς MCS-51 για να σχεδιάσει την τυπική σύνδεση μεταξύ DS18B20 και μικροεπεξεργαστή. Στο Σχήμα 4 (ένα), Το DS18B20 υιοθετεί παρασιτική λειτουργία τροφοδοσίας, και οι ακροδέκτες VDD και GND είναι γειωμένοι. Στο Σχήμα 4 (σι), Το DS18B20 υιοθετεί τη λειτουργία εξωτερικής τροφοδοσίας, και ο ακροδέκτης VDD του τροφοδοτείται από τροφοδοτικό 3V~5,5V.
ένα) Τρόπος λειτουργίας παρασιτικού τροφοδοτικού
(σι) Τρόπος λειτουργίας εξωτερικής τροφοδοσίας
Εικόνα 4 Τυπικό διάγραμμα σύνδεσης DS18B20 και μικροεπεξεργαστή
Υποθέτοντας ότι η κρυσταλλική συχνότητα που χρησιμοποιείται από το σύστημα μικροϋπολογιστών ενός τσιπ είναι 12 MHz, τρεις υπορουτίνες γράφονται σύμφωνα με το χρονισμό αρχικοποίησης, χρονισμός εγγραφής και χρονισμός ανάγνωσης του DS18B20: Το INIT είναι η υπορουτίνα αρχικοποίησης; WRITE είναι η εγγραφή (εντολή ή δεδομένα) υπορουτίνα; Το READ είναι η υπορουτίνα δεδομένων ανάγνωσης. Όλα τα δεδομένα ανάγνωσης και εγγραφής ξεκινούν από το χαμηλότερο bit.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:CLRDAT
DJNZR2,INI11; Ο κεντρικός υπολογιστής στέλνει έναν παλμό επαναφοράς για 3μs×200=600μs
SETBDAT; Ο οικοδεσπότης αφήνει το λεωφορείο, και η γραμμή θύρας αλλάζει σε είσοδο
MOVR2,#30
IN12:DJNZR2,INI12; Το DS18B20 περιμένει για 2μs×30=60μs
CLRC
ORLC,ΟΤΙ; Είναι χαμηλή η γραμμή δεδομένων DS18B20 (παλμός υπάρχει)?
JCINI10; Το DS18B20 δεν είναι έτοιμο, εκ νέου αρχικοποίηση
MOVR6, #80
INI13: ORLC, ΟΤΙ
JCINI14; Η γραμμή δεδομένων DS18B20 πηγαίνει ψηλά, η προετοιμασία είναι επιτυχής
DJNZR6, INI13; Το χαμηλό επίπεδο γραμμής δεδομένων μπορεί να διαρκέσει για 3μs × 80 = 240μs
ΣΥΜΠΙΝΗ10; η προετοιμασία απέτυχε, επανεκκίνηση
INI14: MOVR2, #240
IN15: DJNZR2, INI15; Το DS18B20 ανταποκρίνεται για τουλάχιστον 2μs × 240 = 48 0μs
ΜΟΥΣΚΕΥΩ
;----------------------------------------------------------------
ΓΡΑΦΩ:CLREA
MOVR3,#8;Βρόχος 8 φορές, γράψτε ένα byte
WR11:SETBDAT
MOVR4,#8
RRCA;Γράψτε κινήσεις bit από το A στο CY
CLRDAT
WR12:DJNZR4,WR12
;Περιμένετε 16μs
MOVDAT,ντο;Η λέξη εντολής αποστέλλεται στο DS18B20 bit-bit
MOVR4,#20
WR13:DJNZR4, WR1 3
; Βεβαιωθείτε ότι η διαδικασία εγγραφής διαρκεί 60μs
DJNZR3,WR11
; Συνεχίστε πριν στείλετε ένα byte
SETBDAT
ΜΟΥΣΚΕΥΩ
;---------------------------------------------------------------
ΑΝΑΓΝΩΣΗ:CLREA
MOVR6,#8; Βρόχος 8 φορές, διαβάστε ένα byte
RD11:CLRDAT
MOVR4,#4
ΟΧΙ; Το χαμηλό επίπεδο διαρκεί για 2μs
SETBDAT; Ρυθμίστε τη γραμμή θύρας σε είσοδο
RD12:DJNZR4,RD12
; Περιμένετε 8μs
MOVC,ΑΠΟ Τ
;Ο κεντρικός υπολογιστής διαβάζει τα δεδομένα του DS18B20 bit-bit
RRCA;Τα δεδομένα ανάγνωσης μετακινούνται στο Α
MOVR5,#30
RD13:DJNZR5,RD13
;Βεβαιωθείτε ότι η διαδικασία ανάγνωσης διαρκεί 60μs
DJNZR6,RD11
;Αφού διαβάσετε ένα byte δεδομένων, αποθηκεύστε το στο Α
SETBDAT
ΜΟΥΣΚΕΥΩ
;----------------------------------------------------------------
Ο κεντρικός υπολογιστής πρέπει να περάσει από τρία βήματα για να ελέγξει το DS18B20 για να ολοκληρώσει τη μετατροπή της θερμοκρασίας: αρχικοποίηση, Οδηγίες λειτουργίας ROM, και οδηγίες λειτουργίας μνήμης. Το DS18B20 πρέπει να ξεκινήσει για να ξεκινήσει η μετατροπή πριν από την ανάγνωση της τιμής μετατροπής θερμοκρασίας. Υποθέτοντας ότι μόνο ένα τσιπ είναι συνδεδεμένο σε μία γραμμή, χρησιμοποιείται η προεπιλεγμένη ακρίβεια μετατροπής 12 bit, και χρησιμοποιείται εξωτερικό τροφοδοτικό, μια υπορουτίνα GETWD μπορεί να γραφτεί για να ολοκληρώσει μια μετατροπή και να διαβάσει την τιμή θερμοκρασίας.
ΠΥΛΗ:LCALLINIT
ΚΙΝΗΣΗ,#0CCH
LCALLWRITE; αποστολή εντολής skip ROM
ΚΙΝΗΣΗ,#44 Ω
LCALLWRITE; αποστολή εντολής έναρξης μετατροπής
LCALLINIT
ΚΙΝΗΣΗ,#0CCH; αποστολή εντολής skip ROM
LCALLWRITE
ΚΙΝΗΣΗ,#0 BEH; αποστολή εντολής μνήμης ανάγνωσης
LCALLWRITE
LCALLREAD
MOVWDLSB,ΕΝΑ
; στείλτε χαμηλό byte τιμής θερμοκρασίας στο WDLSB
LCALLREAD
MOVWDMSB,ΕΝΑ
; στείλτε υψηλό byte τιμής θερμοκρασίας στο WDMSB
ΜΟΥΣΚΕΥΩ
……
Το υψηλό byte της τιμής θερμοκρασίας που διαβάζεται από την υπορουτίνα GETWD αποστέλλεται στη μονάδα WDMSB, και το χαμηλό byte αποστέλλεται στη μονάδα WDLSB. Στη συνέχεια, σύμφωνα με τη μορφή αναπαράστασης του byte της τιμής θερμοκρασίας και του bit πρόσημου του, Η πραγματική τιμή θερμοκρασίας μπορεί να ληφθεί μέσω απλού μετασχηματισμού.
Εάν είναι συνδεδεμένα πολλά DS18B20 σε μία γραμμή, υιοθετείται η λειτουργία σύνδεσης παρασιτικής τροφοδοσίας, διαμόρφωση ακρίβειας μετατροπής, συναγερμός υψηλού και χαμηλού ορίου, και τα λοιπά. απαιτούνται. Τότε η σύνταξη της υπορουτίνας GETWD θα είναι πιο περίπλοκη. Λόγω περιορισμών χώρου, αυτή η ενότητα δεν θα περιγραφεί λεπτομερώς. Ανατρέξτε στο σχετικό περιεχόμενο.
Εφαρμόσαμε με επιτυχία το DS18B20 στο “οικιακή θέρμανση μπάνιο” σύστημα ελέγχου που αναπτύξαμε. Η γρήγορη ταχύτητα μετατροπής του, υψηλή ακρίβεια μετατροπής, και η απλή διασύνδεση με τον μικροεπεξεργαστή έχουν προσφέρει μεγάλη ευκολία στις εργασίες σχεδιασμού υλικού, μειώνοντας αποτελεσματικά το κόστος και συντομεύοντας τους κύκλους ανάπτυξης.
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt



