DS18B20 is 'n 1-draad digitale temperatuursensor wat deur DALLAS vervaardig word, met 'n 3-pen TO-92 klein pakkie. Die temperatuurmetingsreeks is -55℃~+125℃, en dit kan geprogrammeer word na 9-bis~12-bis A/D-omskakelingsakkuraatheid. Die temperatuurmetingsresolusie kan 0,0625 ℃ bereik, en die gemete temperatuur word serieel afgevoer in die vorm van 'n 16-bis digitale hoeveelheid met tekenverlenging. Die werkende kragtoevoer kan aan die afgeleë kant ingebring word of deur parasitiese kragtoevoer gegenereer word. Veelvuldige DS18B20's kan parallel gekoppel word aan 3 of 2 lyne. Die SVE het net een poortlyn nodig om met baie DS18B20's te kommunikeer, wat minder poorte van die mikroverwerker beset, wat baie leidrade en logiese stroombane kan bespaar. Bogenoemde kenmerke maak DS18B20 baie geskik vir langafstand-multipunt-temperatuuropsporingstelsels.
2. Interne struktuur van DS18B20 ds18b20 stroombaandiagram
Die interne struktuur van DS18B20 word in Figuur getoon 1, wat hoofsaaklik bestaan uit 4 dele: 64-bietjie ROM, temperatuur sensor, nie-vlugtige temperatuur alarm snellers TH en TL, en konfigurasieregisters. Die penrangskikking van DS18B20 word in Figuur getoon 2. DQ is die digitale sein inset/uitset terminaal; GND is die kraggrond; VDD is die eksterne kragtoevoer insetterminaal (gegrond in parasitiese kragbedradingsmodus, sien Figuur 4).
Die 64-bis reeksnommer in die ROM is foto-geëts voordat dit die fabriek verlaat. Dit kan beskou word as die adresvolgordekode van die DS18B20. Die 64-bis reeksnommer van elke DS18B20 is anders. Die sikliese oortolligheidkontrolekode (CRC=X8+X5+X4+1) van die 64-bis ROM is gerangskik. Die rol van ROM is om elke DS18B20 anders te maak, sodat verskeie DS18B20's aan een bus gekoppel kan word.
Figuur 1, interne struktuur van DS18B20
Die temperatuursensor in DS18B20 voltooi die temperatuurmeting, wat verskaf word in die vorm van 16-bis-tekenverlengde binêre komplementlesings, uitgedruk in die vorm van 0.0625 ℃/LSB, waar S die teken bietjie is. Byvoorbeeld, die digitale uitset van +125℃ is 07D0H, die digitale uitset van +25.0625℃ is 0191H, die digitale uitset van -25.0625℃ is FF6FH, en die digitale uitset van -55 ℃ is FC90H.
23
22
21
20
2– 1
2– 2
2– 3
2– 4
Temperatuurwaarde lae greep
MSBLSB
S
S
S
S
S
22
25
24
Temperatuurwaarde hoë greep
Die hoë en lae temperatuur alarm aktiveer TH en TL, en die konfigurasieregister is saamgestel uit een greep EEPROM. 'n Geheuefunksie-opdrag kan gebruik word om na TH te skryf, TL, of die konfigurasieregister. Die formaat van die konfigurasieregister is soos volg:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 en R0 bepaal die aantal syfers van akkuraatheid vir temperatuuromskakeling: R1R0 = “00”, 9-bietjie akkuraatheid, maksimum omskakelingstyd is 93.75ms; R1R0 = “01”, 10-bietjie akkuraatheid, maksimum omskakelingstyd is 187.5ms. R1R0 = “10”, 11-bietjie akkuraatheid, maksimum omskakelingstyd is 375ms. R1R0 = “11”, 12-bietjie akkuraatheid, maksimum omskakelingstyd is 750ms. Die verstek is 12-bis akkuraatheid wanneer dit nie geprogrammeer is nie.
Die hoëspoedregister is 'n 9-grepe geheue. Die eerste twee grepe bevat die digitale inligting van die gemete temperatuur; die 3de, 4ste, en 5de grepe is tydelike kopieë van TH, TL, en konfigurasieregisters, onderskeidelik, en word verfris elke keer as 'n aanskakel-terugstelling plaasvind; die 6de, 7ste, en 8ste grepe word nie gebruik nie en word voorgestel as alle logiese 1'e; die 9de greep lees die CRC-kode van al die vorige 8 grepe, wat gebruik kan word om korrekte kommunikasie te verseker.
3. DS18B20 werkvolgorde
Die eerste-lyn werk protokol vloei van DS18B20 is: inisialisering → ROM-operasie-instruksie → geheue-operasie-instruksie → data-oordrag. Die werkvolgorde daarvan sluit inisialiseringsvolgorde in, skryf volgorde en lees volgorde, soos in figuur getoon 3 (a) (b) (c).
(a) Inisialisering volgorde
(c) Lees volgorde
Figuur 3, DS18B20 werkvolgordediagram
4. Tipiese koppelvlakontwerp van DS18B20 en enkelskyfie-mikrorekenaar
Figuur 4 neem die MCS-51-reeks enkelskyfie mikrorekenaar as 'n voorbeeld om die tipiese verbinding tussen DS18B20 en mikroverwerker te trek. In Figuur 4 (a), DS18B20 neem parasitiese kragtoevoermodus aan, en sy VDD- en GND-terminale is geaard. In Figuur 4 (b), DS18B20 neem eksterne kragtoevoermodus aan, en sy VDD-terminaal word aangedryf deur 3V~5.5V kragtoevoer.
a) Parasitiese kragtoevoer werksmodus
(b) Eksterne kragtoevoer werksmodus
Figuur 4 Tipiese verbindingsdiagram van DS18B20 en mikroverwerker
Aanvaar dat die kristalfrekwensie wat deur die enkelskyfie-mikrorekenaarstelsel gebruik word 12MHz is, drie subroetines word geskryf volgens die inisialiseringstydsberekening, skryf tydsberekening en lees tydsberekening van DS18B20: INIT is die inisialisering subroetine; SKRYF is die skryf (opdrag of data) subroetine; READ is die leesdata subroetine. Alle data lees en skryf begin vanaf die laagste bietjie.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:CLRDAT
DJNZR2,INI11; Die gasheer stuur 'n terugstelpuls vir 3μs×200=600μs
SETBDAT; Die gasheer laat die bus vry, en die poortlyn word na invoer verander
MOVR2,#30
IN12:DJNZR2,INI12; DS18B20 wag vir 2μs×30=60μs
CLRC
ORLC,DIT; Is die DS18B20-datalyn laag (polsslag bestaan)?
JCINI10; DS18B20 is nie gereed nie, herinitialiseer
MOVR6, #80
INI13: ORLC, DIT
JCINI14; DS18B20-datalyn gaan hoog, inisialisering is suksesvol
DJNZR6, INI13; datalyn lae vlak kan vir 3μs × duur 80 = 240μs
SIMPINI10; inisialisering het misluk, herbegin
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 reageer vir ten minste 2μs × 240 = 48 0μs
RET
;---------------------
SKRYF:CLREA
MOVR3,#8;Lus 8 tye, skryf 'n greep
WR11:SETBDAT
MOVR4,#8
RRCA;Skryf bisbewegings van A na CY neer
CLRDAT
WR12:DJNZR4,WR12
;Wag 16μs
MOVDAT,C;Opdragwoord word bietjie vir bietjie na DS18B20 gestuur
MOVR4,#20
WR13:DJNZR4,WR1 3
; Maak seker dat die skryfproses 60μs duur
DJNZR3,WR11
; Gaan voort voordat jy 'n greep stuur
SETBDAT
RET
;---------------------
LEES:CLREA
MOVR6,#8; Lus 8 tye, lees 'n greep
RD11:CLRDAT
MOVR4,#4
NOP; Lae vlak hou vir 2μs
SETBDAT; Stel die poortlyn op invoer
RD12:DJNZR4,RD12
; Wag vir 8μs
MOVC,VAN T
;Die gasheer lees die data van DS18B20 bietjie vir bietjie
RRCA;Die gelees data word na A geskuif
MOVR5,#30
RD13:DJNZR5,RD13
;Maak seker dat die leesproses 60μs duur
DJNZR6,RD11
;Na die lees van 'n byte van data, stoor dit in A
SETBDAT
RET
;---------------------
Die gasheer moet deur drie stappe gaan om DS18B20 te beheer om temperatuuromskakeling te voltooi: inisialisering, ROM-operasie-instruksies, en geheue operasie instruksies. DS18B20 moet begin word om omskakeling te begin voordat die temperatuuromskakelingswaarde gelees word. Aanvaar dat slegs een skyfie aan een lyn gekoppel is, die verstek 12-bis omskakeling akkuraatheid word gebruik, en 'n eksterne kragbron word gebruik, 'n subroetine GETWD kan geskryf word om 'n omskakeling te voltooi en die temperatuurwaarde te lees.
HEK:LCALLINIT
BEWEEG,#0CCH
LCALLWRITE; stuur skip ROM-opdrag
BEWEEG,#44H
LCALLWRITE; stuur begin omskakeling opdrag
LCALLINIT
BEWEEG,#0CCH; stuur skip ROM-opdrag
LCALLWRITE
BEWEEG,#0 BEH; stuur leesgeheue-opdrag
LCALLWRITE
LCALLLEES
MOVWDLSB,N
; stuur lae greep temperatuurwaarde na WDLSB
LCALLLEES
MOVWDMSB,N
; stuur hoë greep temperatuurwaarde na WDMSB
RET
……
Die hoë greep temperatuurwaarde gelees deur subroetine GETWD word na WDMSB-eenheid gestuur, en die lae greep word na WDLSB-eenheid gestuur. Dan volgens die voorstelling formaat van temperatuur waarde byte en sy teken bit, die werklike temperatuurwaarde kan verkry word deur eenvoudige transformasie.
As verskeie DS18B20 op een lyn gekoppel is, parasitiese kragtoevoerverbindingsmodus word aangeneem, omskakeling akkuraatheid konfigurasie, hoë en lae limiet alarm, ens. vereis word. Dan sal die skryf van subroetine GETWD meer ingewikkeld wees. Weens spasiebeperkings, hierdie afdeling sal nie in detail beskryf word nie. Verwys asseblief na die relevante inhoud.
Ons het DS18B20 suksesvol toegepas op die “huishoudelike verwarming bad” beheerstelsel wat ons ontwikkel het. Sy vinnige omskakeling spoed, hoë omskakeling akkuraatheid, en eenvoudige koppelvlak met die mikroverwerker het groot gerief vir hardeware-ontwerpwerk gebring, koste effektief te verminder en ontwikkelingsiklusse te verkort.
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



