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.
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:
2. DS18B20 og MCU koblingsskjema
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:
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
Temperatur/dataforhold
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:
Skjematisk diagram over forsyning av DS18B20 ved hjelp av en ekstern strømforsyning
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
Konfigurasjonsregister:
Figur 2
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
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
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:
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.
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
















