Lämpötila-anturitekniikka

Digitaalisen lämpötila-anturin DS18B20 lämpötilan mittaustoiminnon suunnittelu

digitaalisen lämpötila-anturin DS18B20 lämpötilan mittaustoiminto

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.

digitaalisen lämpötila-anturin DS18B20 lämpötilan mittaustoiminto

digitaalisen lämpötila-anturin DS18B20 lämpötilan mittaustoiminto

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.

DS18B20-sirun sisäinen rakenne

DS18B20-sirun sisäinen rakenne

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

Tyypillinen DS18B20:n ja mikroprosessorin kytkentäkaavio

Tyypillinen DS18B20:n ja mikroprosessorin kytkentäkaavio

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

DS18B20 työskentelyajoituskaavio

DS18B20 työskentelyajoituskaavio

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ä.