DS18B20 on DALLASin valmistama 1-johtiminen digitaalinen lämpötila-anturi, 3-nastaisella TO-92-pienellä pakkauksella. Lämpötilan mittausalue on -55 ℃ ~ +125 ℃, ja se voidaan ohjelmoida 9-bittinen ~ 12-bittinen A/D-muunnostarkkuuteen. Lämpötilan mittausresoluutio voi olla 0,0625 ℃, ja mitattu lämpötila lähetetään sarjaan 16-bittisen digitaalisen suuren muodossa etumerkkilaajennuksella. Sen toimiva virtalähde voidaan ottaa käyttöön etäpäässä tai tuottaa loisvirtalähteellä. Useita DS18B20:ita voidaan kytkeä rinnan 3 tai 2 rivit. CPU tarvitsee vain yhden porttilinjan kommunikoidakseen useiden DS18B20-laitteiden kanssa, vievät vähemmän mikroprosessorin portteja, joka voi säästää paljon johtoja ja logiikkapiirejä. Yllä olevat ominaisuudet tekevät DS18B20:sta erittäin sopivan pitkän matkan monipistelämpötilan tunnistusjärjestelmiin.
2. DS18B20 ds18b20 piirikaavion sisäinen rakenne
DS18B20:n sisäinen rakenne on esitetty kuvassa 1, joka koostuu pääasiassa 4 osat: 64-bittinen ROM, lämpötila-anturi, Haihtumattomat lämpötilahälytykset laukaisevat th ja tl, ja konfigurointirekisterit. DS18B20:n tappijärjestely on esitetty kuvassa 2. DQ on digitaalinen signaalin syöttö/lähtöpääte; GND on voimapaikka; VDD on ulkoisen virtalähteen tuloliitin (maadoitettu loisvirtajohdotustilassa, katso kuva 4).
ROM-levyn 64-bittinen sarjanumero on valosyövytetty ennen tehtaalta lähtöä. Sitä voidaan pitää DS18B20:n osoitesekvenssikoodina. Jokaisen DS18B20:n 64-bittinen sarjanumero on erilainen. Syklisen redundanssin tarkistuskoodi (CRC=X8+X5+X4+1) 64-bittinen ROM on järjestetty. ROMin tehtävänä on tehdä jokaisesta DS18B20:sta erilainen, niin että useita DS18B20 -laitteita voidaan kytkeä yhteen väylään.
Kuva 1, DS18B20:n sisäinen rakenne
DS18B20:n lämpötila-anturi suorittaa lämpötilan mittauksen, joka tarjotaan 16-bittisten etumerkkien laajennettujen binäärikomplementtilukemien muodossa, ilmaistuna muodossa 0,0625 ℃/LSB, missä S on merkki bitti. Esimerkiksi, Digitaalinen lähtö +125 ℃ on 07d0h, Digitaalinen lähtö +25,0625 ℃ on 0191H, digitaalilähtö -25,0625 ℃ on FF6FH, ja -55 ℃ digitaalinen lähtö on FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Lämpötila-arvon alhainen tavu
MSBLSB
S
S
S
S
S
22
25
24
Lämpötila-arvon korkea tavu
Korkean ja matalan lämpötilan hälytys laukaisee TH:n ja TL:n, ja konfigurointirekisteri koostuvat yhdestä EEPROM-tavusta. Muistifunktiokomentoa voidaan käyttää TH:hen kirjoittamiseen, TL, tai konfigurointirekisteriin. Konfigurointirekisterin muoto on seuraava:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 ja R0 määrittävät lämpötilamuunnosten tarkkuusnumeroiden määrän: R1R0 = “00”, 9-bitin tarkkuudella, enimmäismuunnosaika on 93,75 ms; R1R0 = “01”, 10-bitin tarkkuudella, enimmäismuunnosaika on 187,5 ms. R1R0 = “10”, 11-bitin tarkkuudella, maksimi muunnosaika on 375 ms. R1R0 = “11”, 12-bitin tarkkuudella, maksimi muunnosaika on 750 ms. Oletusasetus on 12-bittinen tarkkuus, kun sitä ei ole ohjelmoitu.
Suurinopeuksinen rekisteri on 9-tavuinen muisti. Kaksi ensimmäistä tavua sisältävät digitaalisen tiedon mitatusta lämpötilasta; 3, 4th, ja 5. tavut ovat väliaikaisia kopioita TH:sta, TL, ja konfigurointirekisterit, vastaavasti, ja ne päivitetään aina, kun käynnistys nollataan; 6, 7th, ja 8. tavua ei käytetä, ja ne esitetään kaikkina logiikkana 1:nä; 9. tavu lukee kaiken edellisen CRC-koodin 8 tavu, joita voidaan käyttää oikean viestinnän varmistamiseksi.
3. DS18B20 työjärjestys
DS18B20:n ensimmäisen rivin työprotokollavirta on: alustus → ROM-käyttöohje → muistin toimintaohje → tiedonsiirto. Sen työjakso sisältää alustussekvenssin, kirjoitussekvenssi ja lukusekvenssi, Kuten kuvassa on esitetty 3 (a) (b) (c).
(a) Alustusjärjestys
(c) Lue järjestys
Kuva 3, DS18B20 toimintajaksokaavio
4. Tyypillinen liitäntärakenne DS18B20:lle ja yksisiruiselle mikrotietokoneelle
Kuva 4 ottaa MCS-51-sarjan yksisiruisen mikrotietokoneen esimerkkinä piirtääkseen tyypillisen yhteyden DS18B20:n ja mikroprosessorin välille. Kuvassa 4 (a), DS18B20 ottaa käyttöön loisvirtalähdetilan, ja sen VDD- ja GND-liittimet on maadoitettu. Kuvassa 4 (b), DS18B20 ottaa käyttöön ulkoisen virtalähdetilan, ja sen VDD-liitin saa virtaa 3V ~ 5,5V virtalähteestä.
a) Parasiittisen virtalähteen toimintatila
(b) Ulkoisen virtalähteen toimintatila
Kuva 4 Tyypillinen DS18B20:n ja mikroprosessorin kytkentäkaavio
Olettaen, että yksisiruisen mikrotietokonejärjestelmän käyttämä kidetaajuus on 12 MHz, kolme aliohjelmaa kirjoitetaan alustusajoituksen mukaan, DS18B20:n kirjoitus- ja lukuajoitus: INIT on alustusalirutiini; WRITE on kirjoitus (komento tai data) aliohjelma; READ on lukutietojen aliohjelma. Kaikki tiedon lukeminen ja kirjoittaminen alkavat alimmasta bitistä.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:CLRDAT
DJNZR2, INI11; Isäntä lähettää nollauspulssin 3 μs × 200 = 600 μs
SETBDAT; Isäntä vapauttaa bussin, ja porttirivi muutetaan tuloksi
MOVR2,#30
IN12:DJNZR2, INI12; DS18B20 odottaa 2 μs × 30 = 60 μs
CLRC
ORLC,ETTÄ; Onko DS18B20-datalinja alhainen (pulssi on olemassa)?
JCINI10; DS18B20 ei ole valmis, alusta uudelleen
MOVR6, #80
INI13: ORLC, ETTÄ
JCINI14; DS18B20 datalinja menee korkealle, alustus onnistuu
DJNZR6, INI13; datalinjan matala taso voi kestää 3 μs × 80 = 240 μs
SYMPINI10; alustus epäonnistui, käynnistä uudelleen
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 vastaa vähintään 2 μs × 240 = 48 0μs
RET
;--------------
KIRJOITTAA:CLREA
MOVR3,#8;Silmukka 8 kertaa, kirjoittaa tavun
WR11:SETBDAT
MOVR4,#8
RRCA;Kirjoitusbitti siirtyy A:sta CY:hen
CLRDAT
WR12:DJNZR4, WR12
;Odota 16 μs
MOVDAT,C;Komentosana lähetetään DS18B20:lle bitti kerrallaan
MOVR4,#20
WR13:DJNZR4, WR1 3
; Varmista, että kirjoitusprosessi kestää 60 μs
DJNZR3, WR11
; Jatka ennen tavun lähettämistä
SETBDAT
RET
;--------------
LUKEA:CLREA
MOVR6,#8; Silmukka 8 kertaa, lukea tavun
RD11:CLRDAT
MOVR4,#4
NOP; Matala taso kestää 2μs
SETBDAT; Aseta portin rivi tuloon
RD12:DJNZR4, RD12
; Odota 8 μs
MOVC,T:ltä
;Isäntä lukee DS18B20:n tiedot bitti bitiltä
RRCA;Luetut tiedot siirretään kohtaan A
MOVR5,#30
RD13:DJNZR5, RD13
;Varmista, että lukuprosessi kestää 60 μs
DJNZR6, RD11
;Kun olet lukenut tavun dataa, säilytä se A:ssa
SETBDAT
RET
;--------------
Isäntäkoneen on käytävä läpi kolme vaihetta ohjatakseen DS18B20:ta lämpötilan muuntamisen loppuunsaattamiseksi: alustus, ROM-käyttöohjeet, ja muistin käyttöohjeet. DS18B20 on käynnistettävä muuntamisen aloittamiseksi ennen lämpötilan muunnosarvon lukemista. Olettaen, että vain yksi siru on kytketty yhteen linjaan, oletusarvoista 12-bittistä muunnostarkkuutta käytetään, ja käytetään ulkoista virtalähdettä, aliohjelma GETWD voidaan kirjoittaa muunnoksen suorittamiseksi ja lämpötila-arvon lukemiseksi.
PORTTI:LCALLINIT
LIIKKUA,#0CCH
LCALLWRITE; lähetä skip ROM -komento
LIIKKUA,# 44h
LCALLWRITE; lähetä aloita muunnoskomento
LCALLINIT
LIIKKUA,#0CCH; lähetä skip ROM -komento
LCALLWRITE
LIIKKUA,#0 BEH; lähetä lukumuistikomento
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; lähettää alhaisen tavun lämpötila-arvon WDLSB:lle
LCALLREAD
MOVWDMSB,A
; lähettää korkean tavun lämpötila-arvon WDMSB:hen
RET
……
Aliohjelman GETWD lukema lämpötila-arvon korkea tavu lähetetään WDMSB-yksikköön, ja alhainen tavu lähetetään WDLSB-yksikköön. Sitten lämpötila-arvon tavun ja sen etumerkkibitin esitysmuodon mukaan, todellinen lämpötila-arvo voidaan saada yksinkertaisella muunnolla.
Jos yhdelle linjalle on kytketty useita DS18B20, loisvirtalähteen liitäntätila otetaan käyttöön, muunnostarkkuuden määritys, ylä- ja alarajahälytys, jne. vaaditaan. Silloin aliohjelman GETWD kirjoittaminen on monimutkaisempaa. Tilarajoitusten vuoksi, tätä osaa ei kuvata yksityiskohtaisesti. Katso asiaankuuluva sisältö.
Olemme onnistuneesti soveltaneet DS18B20:tä “kotitalouksien lämmityskylpy” kehittämämme ohjausjärjestelmä. Sen nopea muunnosnopeus, korkea muunnostarkkuus, ja yksinkertainen käyttöliittymä mikroprosessorin kanssa ovat tuoneet suurta mukavuutta laitteiston suunnitteluun, vähentää tehokkaasti kustannuksia ja lyhentää kehityssyklejä.
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



