Temperatursensorteknologi

DS18B20 temperatursensor koblet til MCU

DS18B20 Temperatursensor kunnskap Introduksjon
DS18B20 er en vanlig digital temperatursensor. Den sender ut digitale signaler, har egenskapene til liten størrelse, lav maskinvare overhead, sterk anti-interferens evne, høy presisjon, og er mye brukt.

DS18B20 digital temperatursonde gir 9 til 12 bit

DS18B20 digital temperatursonde gir 9 til 12 bit

Vanntett DS18B20 sensorsonde

Vanntett DS18B20 sensorsonde

TPE Overmolding IP68 vanntett DS18B20 sensor

TPE Overmolding IP68 vanntett DS18B20 sensor

Introduksjon til DS18B20 temperatursensor
Tekniske funksjoner:
①. Unik entråds grensesnittmodus. Når DS18B20 er koblet til en mikroprosessor, bare 1 ledning er nødvendig for å realisere toveiskommunikasjon mellom mikroprosessoren og DS18B20.
②. Temperaturmåleområde -55℃~+125℃, iboende temperaturmålingsfeil 1℃.
③. Støtte flerpunkts nettverksfunksjon. Flere DS18B20 kan kobles parallelt på de eneste tre ledningene, og maksimalt 8 kan kobles parallelt for å realisere flerpunkts temperaturmåling. Hvis tallet er for stort, strømforsyningsspenningen vil være for lav, som resulterer i ustabil signaloverføring.
④. Fungerende strømforsyning: 3.0~5,5V/DC (datalinje parasittisk strømforsyning kan brukes).
⑤. Ingen perifere komponenter er nødvendig under bruk.
⑥. Måleresultatene sendes serielt i 9~12-bits digital form.
⑦. Diameteren på beskyttelsesrøret i rustfritt stål er Φ6.
⑧. Den er egnet for temperaturmåling av ulike medium industrielle rørledninger på DN15~25, DN40~DN250 og utstyr i trange rom.
⑨. Standard monteringsgjenger M10X1, M12X1,5, G1/2” er valgfrie.
⑩. PVC-kabel er direkte tilkoblet eller tysk kulekoblingsboks er tilkoblet, som er praktisk for tilkobling med annet elektrisk utstyr.

DS18B20 lese og skrive timing og temperaturmålingsprinsipp:
DS18B20 temperaturmåleprinsipp er vist i figur 1. Oscillasjonsfrekvensen til lavtemperaturkoeffisient-krystalloscillatoren i figuren påvirkes lite av temperaturen, og brukes til å generere et pulssignal med fast frekvens som skal sendes til telleren 1. Oscillasjonsfrekvensen til høytemperaturkoeffisient-krystalloscillatoren endres betydelig med temperaturen, og det genererte signalet brukes som pulsinngang til telleren 2. Disk 1 og temperaturregisteret er forhåndsinnstilt til en basisverdi som tilsvarer -55 ℃. Disk 1 trekker fra pulssignalet generert av lavtemperatur-koeffisient-krystalloscillatoren. Når den forhåndsinnstilte verdien av telleren 1 er redusert til 0, verdien av temperaturregisteret vil økes med 1, og forhåndsinnstillingen for telleren 1 vil bli lastet inn på nytt. Disk 1 starter på nytt for å telle pulssignalet generert av lavtemperatur-koeffisient-krystalloscillatoren, og syklusen fortsetter til telleren 2 teller til 0, stoppe akkumuleringen av temperaturregisterverdien. På dette tidspunktet, verdien i temperaturregisteret er den målte temperaturen. Helningsakkumulatoren brukes til å kompensere og korrigere ulineariteten i temperaturmålingsprosessen, og utgangen brukes til å korrigere den forhåndsinnstilte verdien til telleren 1.

Figur 1 er som følger:

DS18B20 og MCU koblingskretsskjema

DS18B20 og MCU koblingskretsskjema

2. DS18B20 og MCU koblingsskjema

DS18B20 pin parameterdefinisjon

DS18B20 pin parameterdefinisjon

3. DS18B20 pin definisjon:

Dq: Datainngang/utgang. Åpne avløp 1-leder grensesnitt. Den kan også gi strøm til enheten når den brukes i parasittisk strømmodus VDD: positiv strømforsyning GND: kraftjording 4. DS18B20 intern analyse introduksjon:

Analyse og innføring av DS18B20 intern struktur

Analyse og innføring av DS18B20 intern struktur

Figuren ovenfor viser blokkskjemaet til DS18B20, og 64-bit ROM lagrer den unike seriekoden til enheten. Bufferminnet inneholder 2 byte med temperaturregistre som lagrer den digitale utgangen til temperatursensoren. I tillegg, bufferminnet gir tilgang til 1-byte øvre og nedre alarmutløserregistre (TH og TL) og 1-byte konfigurasjonsregistre. Konfigurasjonsregisteret lar brukeren stille inn oppløsningen av temperaturen til digital konvertering til 9, 10, 11, eller 12 biter. TH, TL, og konfigurasjonsregistre er ikke-flyktige (EEPROM), slik at de vil beholde data når enheten slås av. DS18B20 bruker Maxims unike 1-leder bussprotokoll, som bruker et styresignal. Kontrolllinjen krever en svak opptrekksmotstand fordi alle enheter er koblet til bussen gjennom en 3-stats eller åpent dreneringsport (DQ-pinne i etuiet til DS18B20). I dette bussystemet er mikroprosessoren (herre) bruker en unik 64-bits kode for hver enhet. Fordi hver enhet har en unik kode, antall enheter som kan adresseres på en buss er praktisk talt ubegrenset.

Temperaturregisterformat

DS18B20 temperaturregister formatdiagram

DS18B20 temperaturregister formatdiagram

Temperatur/dataforhold

DS18B20 Temperatur-data-forhold

DS18B20 Temperatur-data-forhold

Drift Alarmsignal

Etter at DS18B20 utfører en temperaturkonvertering, den sammenligner temperaturverdien med den brukerdefinerte tos komplementalarmutløserverdi som er lagret i 1-byte TH- og TL-registrene. Tegnbiten indikerer om verdien er positiv eller negativ: positiv S=0, negativ S=1. TH- og TL-registrene er ikke-flyktige (EEPROM) og er derfor ikke flyktige når enheten er slått av. TH og TL kan nås gjennom byte 2 og 3 av minnet.
TH og TL registerformat:

DS18B20 konfigurasjonsregistre

DS18B20 konfigurasjonsregistre

Skjematisk diagram over forsyning av DS18B20 ved hjelp av en ekstern strømforsyning

Skjematisk diagram over bruk av ekstern strømforsyning til strøm DS18B20

Skjematisk diagram over bruk av ekstern strømforsyning til strøm DS18B20

64-bit laser skrivebeskyttet minnekode:

DS18B20 64-bit laser skrivebeskyttet minnekode

DS18B20 64-bit laser skrivebeskyttet minnekode

Hver DS18B20 inneholder en unik 64-bits kode lagret i ROM. Den minst betydningsfulle 8 biter av ROM-koden inneholder entråds familiekoden til DS18B20: 28h. Den neste 48 bits inneholder et unikt serienummer. Den mest betydningsfulle 8 biter inneholder en syklisk redundanssjekk (CRC) byte, som regnes fra den første 56 biter av ROM-koden.

DS18B20 minnekart

DS18B20 minnekart

DS18B20 minnekart

Konfigurasjonsregister:

Figur 2

DS18B20 konfigurasjonsregistre

DS18B20 konfigurasjonsregistre

Byte 4 av minnet inneholder konfigurasjonsregisteret, som er organisert som vist i figuren 2. Brukeren kan stille inn konverteringsoppløsningen til DS18B20 ved å bruke bit R0 og R1 her som vist i tabell 2. Standardverdiene for oppstart for disse bitene er R0 = 1 og R1 = 1 (12-bit oppløsning). Merk at det er en direkte sammenheng mellom oppløsning og konverteringstid. Bit 7 og biter 0 til 4 i konfigurasjonsregisteret er reservert for intern bruk av enheten og kan ikke overskrives.

Bord 2 Konfigurasjon av termometeroppløsning

DS18B20 termometeroppløsningskonfigurasjon

DS18B20 termometeroppløsningskonfigurasjon

CRC generasjon

CRC-byten er en del av DS18B20 64-biters ROM-koden og leveres i 9. byte på skrapelodden. ROM-koden CRC beregnes fra den første 56 biter av ROM-koden og er inneholdt i den mest signifikante byten i ROM-en. Scratchpad CRC beregnes basert på dataene som er lagret i skrapeloddet, så det endres når dataene i skrapelodden endres. CRC gir bussverten en metode for dataverifisering ved lesing av data fra DS18B20. Etter å ha verifisert at dataene er lest riktig, bussmasteren må beregne CRC på nytt fra de mottatte dataene og deretter sammenligne denne verdien med ROM-koden CRC (for ROM-lesing) eller skrapelodd CRC (for skrapelodles). Hvis den beregnede CRC samsvarer med den leste CRC, dataene er mottatt riktig. Beslutningen om å sammenligne CRC-verdiene og fortsette er helt etter bussmesterens skjønn. Det er ingen kretser inne i DS18B20 som vil forhindre utførelse av en kommandosekvens hvis:
DS18B20 CRC (ROM eller skrapelodd) samsvarer ikke med verdien generert av bussmasteren.
Den ekvivalente polynomfunksjonen for CRC er:
CRC = X8 + X5 + X4 + 1
Bussmasteren kan beregne CRC på nytt og sammenligne den med DS18B20s CRC-verdi ved å:
Polynomgeneratoren er vist i figuren 3. Kretsen inkluderer et skiftregister og yihuo-porter, og bitene i skiftregisteret initialiseres til 0. Den minst signifikante biten av ROM-koden eller den minst signifikante biten av byte 0 i skrapelodden skal flyttes inn i skiftregisteret en om gangen. Etter å ha skiftet i bit 56 fra ROM-en eller den viktigste biten av byte 7 fra skrapelodden, polynomgeneratoren vil inneholde den omkalkulerte CRC. NESTE, 8-bits ROM-koden eller CRC-signalet i skrapelodd DS18B20 må flyttes inn i kretsen. På dette tidspunktet, hvis den omkalkulerte CRC er riktig, skiftregisteret vil være alle 0-ere.

Figur 3: CRC Generator

DS18B20 CRC generator prosessdiagram

DS18B20 CRC generator prosessdiagram

V. Få tilgang til DS18B20:
Sekvensen for tilgang til DS18B20 er som følger:
Skritt 1. Initialisering;

Skritt 2. ROM kommando (etterfulgt av nødvendig datautveksling);

Skritt 3. DS18B20 funksjonskommando (etterfulgt av nødvendig datautveksling);

Note: Denne sekvensen følges hver gang DS18B20 åpnes, fordi DS18B20 ikke vil svare hvis noe trinn i sekvensen mangler eller er ute av drift. Unntaket fra denne regelen er søke-ROM [F0h] og Alarmsøk [Ech] kommandoer. Etter å ha utstedt disse to ROM-kommandoene, verten må gå tilbake til trinn 1 i rekkefølge.
(Introduksjonen ovenfor er oversatt fra den offisielle manualen)

ROM-kommando
1, Les ROM [33h]
2, Match ROM [55h]
3, Skip ROM [CCh]
4, Alarmsøk [Ech]

DS18B20 funksjonskommando
1, Konverter temperatur [44h]
2, Skriv Scratchpad (Hukommelse) [4Eh]
3, Les Scratchpad (Hukommelse) [BEh]
4, Kopier skrapelodd (Hukommelse [48h]
5, Re-vekke E2 [B8h]
6, Les Power [B4h]

(For detaljert beskrivelse av kommandoene ovenfor, se den offisielle håndboken)

VI. Få tilgang til DS18B20 Timing
Under initialiseringsprosessen, bussmasteren sender en tilbakestillingspuls (TX) lavt nivå i minst 480 µs ved å trekke 1-trådsbussen. Da, bussmasteren slipper bussen og går inn i mottaksmodus (RX). Etter å ha sluppet bussen, 5kΩ pull-up motstanden trekker 1-Wire bussen høyt. Når DS18B20 oppdager denne stigende kanten, den venter 15µs til 60µs og sender deretter en tilstedeværelsespuls ved å trekke 1-trådsbussen lavt i 60µs til 240µs.

Initialiseringstidspunkt:

Det er to typer skrivetidsluker: “Skriv 1” tidsluker og “Skriv 0” tidsluker. Bussen bruker en Write 1 tidsluke for å skrive en logikk 1 til DS18B20 og en Write 0 tidsluke for å skrive en logikk 0 til DS18B20. Alle skrivetidsluker må ha en varighet på minst 60µs med en gjenopprettingstid på minst 1µs mellom individuelle skrivetidsluker. Begge typer skrivetidsluker initieres ved at masteren trekker 1-trådsbussen lavt (se figur 14). For å generere en Write 1 tidsluke, etter å ha trukket 1-Wire-bussen lavt, bussmasteren må frigjøre 1-wire bussen innen 15µs. Etter å ha sluppet bussen, 5kΩ pull-up motstanden trekker bussen høyt. Generer en
Skrive 0 tidsluke, etter å ha trukket 1-wire-ledningen lavt, bussmesteren må fortsette å holde bussen lavt så lenge tidsluken varer (minst 60 µs). DS18B20 sampler 1-wire bussen innenfor et vindu på 15µs til 60µs etter at masteren starter skrivetidsluken. Hvis bussen er høy under prøvetakingsvinduet, en 1 er skrevet til DS18B20. Hvis linjen er lav, en 0 er skrevet til DS18B20.
Note: Tidsluke er en del av den serielle selvmultipleksingen av tidslukeinformasjonen dedikert til en enkelt kanal.
Figur 14 er som følger:

DS18B20 skrivetidsluker drives av verten for å trekke 1-trådsbussen til lavt nivå

DS18B20 skrivetidsluker drives av verten for å trekke 1-trådsbussen til lavt nivå

Les tidsluke:
DS18B20 kan bare sende data til verten når verten utsteder en lesetidsluke. Derfor, verten må generere en lesetidsluke umiddelbart etter utstedelse av en leseminnekommando [BEh] eller en Read Power Supply [B4h] kommando for at DS18B20 skal levere de nødvendige dataene. Alternativt, verten kan generere en lesetidsluke etter å ha utstedt en Convert T [44h] eller tilbakekall E2 [B8h] kommando for å finne ut status. Alle lesetidsluker må ha en varighet på minst 60µs med en minimum gjenopprettingstid på 1µs mellom tidsluker. En lesetidsluke initieres ved at masteren trekker 1-trådsbussen lavt for å holde den lav i minst 1µs og deretter slipper bussen (se figur 14). Etter at masteren starter en lesetidsluke, DS18B20 vil begynne å sende enten 1-er eller 0-er på bussen. DS18B20 sender en 1 ved å holde bussen høyt og sender en 0 ved å trekke bussen lavt. Når en 0 er sendt, DS18B20 slipper bussen ved å holde bussen høyt. Tidsluken slutter og bussen trekkes tilbake til høy tomgangstilstand av opptrekksmotstanden.

DS18B20 Detaljert vertslesing 1 Tidsluke

DS18B20 Detaljert vertslesing 1 Tidsluke

DS18B20 Anbefalt vertslesing 1 tidsluke

DS18B20 Anbefalt vertslesing 1 tidsluke