Technologie van temperatuursensoren

DS18B20 Temperatuursensor verbonden met MCU

DS18B20 Temperatuursensor Kennisintroductie
DS18B20 is een veelgebruikte digitale temperatuursensor. Het voert digitale signalen uit, heeft de kenmerken van klein formaat, Lage hardware overhead, sterk anti-interferentievermogen, hoge precisie, en wordt veel gebruikt.

DS18B20 digitale temperatuursonde biedt 9 naar 12 beetje

DS18B20 digitale temperatuursonde biedt 9 naar 12 beetje

Waterdichte DS18B20-sensorsonde

Waterdichte DS18B20-sensorsonde

TPE Overmolding IP68 waterdichte DS18B20-sensor

TPE Overmolding IP68 waterdichte DS18B20-sensor

Inleiding tot de DS18B20 temperatuursensor
Technische kenmerken:
①. Unieke single-wire interfacemodus. Wanneer DS18B20 is aangesloten op een microprocessor, alleen 1 Er is draad nodig om tweerichtingscommunicatie tussen de microprocessor en DS18B20 te realiseren.
②. Temperatuurmeetbereik -55℃~+125℃, inherente temperatuurmeetfout 1℃.
③. Ondersteuning van multi-point netwerkfunctie. Op de enige drie draden kunnen meerdere DS18B20 parallel worden aangesloten, en maximaal 8 kan parallel worden aangesloten om meerpuntstemperatuurmetingen te realiseren. Als het aantal te groot is, de voedingsspanning zal te laag zijn, wat resulteert in een onstabiele signaaloverdracht.
④. Werkende voeding: 3.0~5,5 V/gelijkstroom (Er kan een parasitaire datalijnvoeding worden gebruikt).
⑤. Tijdens het gebruik zijn geen randapparatuur vereist.
⑥. De meetresultaten worden serieel verzonden in digitale vorm van 9~12 bits.
⑦. De diameter van de roestvrijstalen beschermbuis is Φ6.
⑧. Het is geschikt voor temperatuurmeting van verschillende middelgrote industriële pijpleidingen van DN15~25, DN40~DN250 en apparatuur in nauwe ruimtes.
⑨. Standaard installatieschroefdraad M10X1, M12X1,5, G1/2” zijn optioneel.
⑩. PVC-kabel is rechtstreeks aangesloten of Duitse kogelaansluitdoos is aangesloten, wat handig is voor aansluiting op andere elektrische apparatuur.

DS18B20 lees- en schrijftiming- en temperatuurmeetprincipe:
Het DS18B20 temperatuurmeetprincipe wordt getoond in figuur 1. De oscillatiefrequentie van de kristaloscillator met lage temperatuurcoëfficiënt in de figuur wordt weinig beïnvloed door de temperatuur, en wordt gebruikt om een ​​pulssignaal met vaste frequentie te genereren dat naar de teller moet worden gestuurd 1. De oscillatiefrequentie van de kristaloscillator met hoge temperatuurcoëfficiënt verandert aanzienlijk met de temperatuur, en het gegenereerde signaal wordt gebruikt als de pulsingang van de teller 2. Balie 1 en het temperatuurregister zijn vooraf ingesteld op een basiswaarde die overeenkomt met -55 ℃. Balie 1 trekt het pulssignaal af dat wordt gegenereerd door de kristaloscillator met lage temperatuurcoëfficiënt. Wanneer de vooraf ingestelde waarde van de teller 1 wordt teruggebracht tot 0, de waarde van het temperatuurregister wordt verhoogd met 1, en de voorinstelling van de teller 1 zal worden herladen. Balie 1 herstart om het pulssignaal te tellen dat wordt gegenereerd door de kristaloscillator met lage temperatuurcoëfficiënt, en de cyclus gaat door tot de teller 2 telt mee 0, het stoppen van de accumulatie van de temperatuurregisterwaarde. Op dit moment, de waarde in het temperatuurregister is de gemeten temperatuur. De hellingsaccumulator wordt gebruikt om de niet-lineariteit in het temperatuurmeetproces te compenseren en te corrigeren, en de uitvoer ervan wordt gebruikt om de vooraf ingestelde waarde van de teller te corrigeren 1.

Figuur 1 is als volgt:

DS18B20 en MCU aansluitschema

DS18B20 en MCU aansluitschema

2. DS18B20 en MCU-aansluitschema

DS18B20 pinparameterdefinitie

DS18B20 pinparameterdefinitie

3. DS18B20-pindefinitie:

DQ: Gegevensinvoer/-uitvoer. Open drain 1-draads interface. Het kan ook stroom leveren aan het apparaat wanneer het wordt gebruikt in de parasitaire energiemodus VDD: positieve voeding GND: stroom grond 4. DS18B20 introductie van interne analyse:

Analyse en introductie van de interne structuur van DS18B20

Analyse en introductie van de interne structuur van DS18B20

De bovenstaande afbeelding toont het blokschema van DS18B20, en het 64-bits ROM slaat de unieke seriële code van het apparaat op. Het buffergeheugen bevat 2 bytes van temperatuurregisters die de digitale uitvoer van de temperatuursensor opslaan. In aanvulling, het buffergeheugen biedt toegang tot de bovenste en onderste alarmtriggerregisters van 1 byte (TH en TL) en 1-byte configuratieregisters. Met het configuratieregister kan de gebruiker de resolutie van de temperatuur naar digitale conversie instellen 9, 10, 11, of 12 bits. E, TL, en configuratieregisters zijn niet-vluchtig (EEPROM), zodat ze gegevens behouden wanneer het apparaat is uitgeschakeld. DS18B20 maakt gebruik van Maxim’s unieke 1-draads busprotocol, waarbij gebruik wordt gemaakt van een stuursignaal. De stuurlijn vereist een zwakke pull-up-weerstand omdat alle apparaten via een 3-standen- of open-drain-poort op de bus zijn aangesloten (DQ-pin in het geval van de DS18B20). In dit bussysteem de microprocessor (meester) gebruikt voor elk apparaat een unieke 64-bits code. Omdat elk apparaat een unieke code heeft, het aantal apparaten dat op één bus kan worden geadresseerd, is vrijwel onbeperkt.

Formaat temperatuurregister

Formaatdiagram DS18B20 temperatuurregister

Formaatdiagram DS18B20 temperatuurregister

Relatie temperatuur/gegevens

DS18B20 Relatie temperatuur-gegevens

DS18B20 Relatie temperatuur-gegevens

Bediening Alarmsignaal

Nadat de DS18B20 een temperatuurconversie uitvoert, het vergelijkt de temperatuurwaarde met de door de gebruiker gedefinieerde twee-complement-alarmtriggerwaarde die is opgeslagen in de 1-byte TH- en TL-registers. Het tekenbit geeft aan of de waarde positief of negatief is: positieve S=0, negatief S=1. De TH- en TL-registers zijn niet-vluchtig (EEPROM) en zijn daarom niet vluchtig wanneer het apparaat is uitgeschakeld. TH en TL zijn toegankelijk via bytes 2 En 3 van het geheugen.
TH- en TL-registerformaat:

DS18B20 Configuratieregisters

DS18B20 Configuratieregisters

Schematisch diagram van het voeden van de DS18B20 met behulp van een externe voeding

Schematisch diagram van het gebruik van een externe voeding om de DS18B20 van stroom te voorzien

Schematisch diagram van het gebruik van een externe voeding om de DS18B20 van stroom te voorzien

64-bit laser-alleen-lezen geheugencode:

DS18B20 64-bit laser-alleen-lezen geheugencode

DS18B20 64-bit laser-alleen-lezen geheugencode

Elke DS18B20 bevat een unieke 64-bits code die is opgeslagen in ROM. Het minst significant 8 bits van de ROM-code bevatten de enkeldraadsfamiliecode van de DS18B20: 28H. De volgende 48 bits bevatten een uniek serienummer. De belangrijkste 8 bits bevatten een cyclische redundantiecontrole (CRC) byte, die wordt berekend vanaf de eerste 56 bits van de ROM-code.

DS18B20 Geheugenkaart

DS18B20 Geheugenkaart

DS18B20-geheugenkaart

Configuratie Register:

Figuur 2

DS18B20 Configuratieregisters

DS18B20 Configuratieregisters

Byte 4 van het geheugen bevat het configuratieregister, die is georganiseerd zoals weergegeven in figuur 2. De gebruiker kan hier de conversieresolutie van de DS18B20 instellen met behulp van bits R0 en R1, zoals weergegeven in tabel 2. De standaardinstellingen bij het inschakelen voor deze bits zijn R0 = 1 en R1= 1 (12-bitresolutie). Houd er rekening mee dat er een directe relatie bestaat tussen resolutie en conversietijd. Beetje 7 en stukjes 0 naar 4 in het configuratieregister zijn gereserveerd voor intern gebruik van het apparaat en kunnen niet worden overschreven.

Tafel 2 Configuratie van thermometerresolutie

DS18B20 Thermometer Resolutieconfiguratie

DS18B20 Thermometer Resolutieconfiguratie

CRC-generatie

De CRC-byte maakt deel uit van de DS18B20 64-bits ROM-code en bevindt zich in de 9e byte van het kladblok. De ROM-code CRC wordt berekend vanaf de eerste 56 bits van de ROM-code en is opgenomen in de meest significante byte van de ROM. De CRC van het kladblok wordt berekend op basis van de gegevens die zijn opgeslagen in het kladblok, het verandert dus wanneer de gegevens in het kladblok veranderen. De CRC biedt de bushost een methode voor gegevensverificatie bij het lezen van gegevens van de DS18B20. Nadat is gecontroleerd of de gegevens correct zijn gelezen, de busmaster moet de CRC opnieuw berekenen op basis van de ontvangen gegevens en die waarde vervolgens vergelijken met de ROM-code CRC (voor ROM-lezingen) of het kladblok CRC (voor kladbloklezen). Als de berekende CRC overeenkomt met de gelezen CRC, de gegevens zijn correct ontvangen. De beslissing om de CRC-waarden te vergelijken en verder te gaan is geheel ter beoordeling van de busmaster. Er is geen circuit in de DS18B20 dat de uitvoering van een opdrachtreeks verhindert:
De DS18B20CRC (ROM of kladblok) komt niet overeen met de door de busmaster gegenereerde waarde.
De equivalente polynoomfunctie voor de CRC is:
CRC = X8 + X5 + X4 + 1
De busmaster kan de CRC opnieuw berekenen en vergelijken met de CRC-waarde van de DS18B20:
De polynoomgenerator wordt getoond in figuur 3. De schakeling bevat een schuifregister en yihuo-poorten, en de bits van het schuifregister worden geïnitialiseerd 0. Het minst significante bit van de ROM-code of het minst significante bytebit 0 in het kladblok moeten één voor één naar het schuifregister worden geschoven. Na het verschuiven van bit 56 van het ROM of het meest significante bytebit 7 vanaf het kladblok, de polynoomgenerator zal de herberekende CRC bevatten. Volgende, de 8-bit ROM-code of het CRC-signaal in het kladblok DS18B20 moet in het circuit worden geschoven. Op dit punt, als de herberekende CRC correct is, het schuifregister zal allemaal nullen zijn.

Figuur 3: CRC-generator

DS18B20 CRC-generatorprocesschema

DS18B20 CRC-generatorprocesschema

V. Toegang tot de DS18B20:
De volgorde voor toegang tot de DS18B20 is als volgt:
Stap 1. Initialisatie;

Stap 2. ROM-opdracht (gevolgd door de eventuele noodzakelijke gegevensuitwisseling);

Stap 3. DS18B20 functieopdracht (gevolgd door de eventuele noodzakelijke gegevensuitwisseling);

Opmerking: Deze volgorde wordt elke keer gevolgd wanneer de DS18B20 wordt benaderd, omdat de DS18B20 niet reageert als een stap in de reeks ontbreekt of niet in de juiste volgorde staat. De uitzondering op deze regel is het zoek-ROM [F0u] en alarm zoeken [Elke] opdrachten. Na het geven van deze twee ROM-opdrachten, de gastheer moet terugkeren naar stap 1 op volgorde.
(De bovenstaande inleiding is vertaald uit de officiële handleiding)

ROM-opdracht
1, Lees ROM [33H]
2, Match-ROM [55H]
3, Schipkamer [CCh]
4, Alarmonderzoek [Elke]

DS18B20 Functiecommando
1, Converteer temperatuur [44H]
2, Schrijf scratchpad (Geheugen) [4Eh]
3, Lees Scratchpad (Geheugen) [BEh]
4, Kopieer scratchpad (Geheugen [48H]
5, E2 opnieuw wakker maken [B8u]
6, Lees Macht [B4u]

(Voor een gedetailleerde beschrijving van de bovenstaande opdrachten, zie de officiële handleiding)

VI. Toegang tot DS18B20-timing
Tijdens het initialisatieproces, de busmaster stuurt een resetpuls (TX) laag niveau gedurende minimaal 480 µs door aan de 1-Wire bus te trekken. Dan, de busmaster geeft de bus vrij en gaat naar de ontvangstmodus (RX). Na het loslaten van de bus, de pull-up-weerstand van 5 kΩ trekt de 1-Wire-bus hoog. Wanneer de DS18B20 deze stijgende flank detecteert, hij wacht 15 µs tot 60 µs en verzendt vervolgens een aanwezigheidspuls door de 1-Wire-bus gedurende 60 µs tot 240 µs laag te trekken.

Initialisatietiming:

Er zijn twee soorten schrijftijdslots: “Schrijf 1” tijdslots en “Schrijf 0” tijdslots. De bus maakt gebruik van een Write 1 tijdslot om een ​​logica te schrijven 1 naar de DS18B20 en een Write 0 tijdslot om een ​​logica te schrijven 0 naar de DS18B20. Alle schrijftijdslots moeten minimaal 60 µs duren met een hersteltijd van minimaal 1 µs tussen individuele schrijftijdslots. Beide typen schrijftijdslots worden geïnitieerd doordat de master de 1-Wire-bus laag trekt (zie figuur 14). Om een ​​Write 1 tijdslot, nadat u de 1-Wire-bus laag heeft getrokken, de busmaster moet de 1-Wire bus binnen 15 µs vrijgeven. Na het loslaten van de bus, de pull-up-weerstand van 5 kΩ trekt de bus hoog. Genereer een
Schrijven 0 tijdslot, nadat u de 1-Wire-lijn laag hebt getrokken, de busmaster moet de bus gedurende het tijdslot laag blijven houden (minimaal 60 µs). De DS18B20 bemonstert de 1-Wire-bus binnen een venster van 15 µs tot 60 µs nadat de master het schrijftijdslot heeft geïnitieerd. Als de bus hoog is tijdens het bemonsteringsvenster, A 1 wordt naar de DS18B20 geschreven. Als de lijn laag is, A 0 wordt naar de DS18B20 geschreven.
Opmerking: Tijdslot is een deel van de seriële zelfmultiplexing van de tijdslotinformatie die aan een enkel kanaal is toegewezen.
Figuur 14 is als volgt:

DS18B20-schrijftijdslots worden door de host aangestuurd om de 1-Wire-bus naar een laag niveau te trekken

DS18B20-schrijftijdslots worden door de host aangestuurd om de 1-Wire-bus naar een laag niveau te trekken

Tijdslot lezen:
De DS18B20 kan alleen gegevens naar de host verzenden als de host een leestijdslot afgeeft. Daarom, de host moet onmiddellijk na het geven van een leesgeheugencommando een leestijdslot genereren [BEh] of een leesvoeding [B4u] commando zodat de DS18B20 de vereiste gegevens kan leveren. Alternatief, de host kan een leestijdslot genereren na het uitgeven van een Convert T [44H] of Roep E2 op [B8u] opdracht om de status te achterhalen. Alle leestijdslots moeten minimaal 60 µs duren met een minimale hersteltijd van 1 µs tussen de tijdslots. Een leestijdslot wordt geïnitieerd doordat de master de 1-Wire-bus laag trekt om deze minimaal 1 µs laag te houden en vervolgens de bus loslaat (zie figuur 14). Nadat de master een leestijdslot heeft geïnitieerd, de DS18B20 begint 1's of 0's naar de bus te sturen. De DS18B20 verzendt een 1 door de bus hoog te houden en een 0 door de bus laag te trekken. Wanneer een 0 wordt verzonden, de DS18B20 geeft de bus vrij door de bus hoog te houden. Het tijdslot eindigt en de bus wordt door de pull-up-weerstand teruggetrokken naar de hoge inactieve toestand.

DS18B20 Gedetailleerde host-lezing 1 Tijdslot

DS18B20 Gedetailleerde host-lezing 1 Tijdslot

DS18B20 Aanbevolen host-lezing 1 tijdslot

DS18B20 Aanbevolen host-lezing 1 tijdslot