DS18B20 Temperatursensor Kunskap Introduktion
DS18B20 är en vanligt förekommande digital temperatursensor. Det matar ut digitala signaler, har egenskaperna hos liten storlek, låg hårdvaruoverhead, stark anti-interferensförmåga, hög precision, och används allmänt.
Introduktion till DS18B20 temperatursensor
Tekniska funktioner:
①. Unikt gränssnittsläge. När DS18B20 är ansluten till en mikroprocessor, endast 1 Tråd behövs för att realisera tvåvägskommunikation mellan mikroprocessorn och DS18B20.
②. Temperaturmätningsområde -55 ℃~+125 ℃, Inneboende temperaturmätningsfel 1 ℃.
③. Support Multi-Point Networking Function. Flera DS18B20 kan anslutas parallellt på de enda tre ledningarna, och högst maximalt 8 kan anslutas parallellt för att inse mätning av multi-punktstemperatur. Om numret är för stort, strömförsörjningsspänningen blir för låg, vilket resulterar i instabil signalöverföring.
④. Arbetskraftsförsörjning: 3.0~ 5,5V/DC (Parasitisk strömförsörjning kan användas).
⑤. Inga perifera komponenter krävs under användning.
⑥. Mätresultaten överförs seriellt i 9 ~ 12-bitars digital form.
⑦. Diametern på rostfritt stålskyddsrör är φ6.
⑧. Det är lämpligt för temperaturmätning av olika medelstora industriella rörledningar av DN15 ~ 25, DN40 ~ DN250 och utrustning i smala utrymmen.
⑨. Standardinstallationstrådar M10X1, M12X1.5, G1/2 ”är valfria.
⑩. PVC-kabel är direkt ansluten eller tysk bolltypskoppling är ansluten, vilket är bekvämt för anslutning till annan elektrisk utrustning.
DS18B20 Läs och skriv tidpunkt och temperaturmätningsprincip:
DS18B20 Temperaturmätningsprincip visas i figuren 1. Svängningsfrekvensen för den låga temperaturkoefficientkristalloscillatorn i figuren påverkas lite av temperaturen, och används för att generera en fast frekvenspulssignal som ska skickas för att motverka 1. Ovängningsfrekvensen för den höga temperaturkoefficientens kristalloscillator förändras avsevärt med temperaturen, och den genererade signalen används som pulsingång för räknaren 2. Disk 1 och temperaturregistret är förinställt till ett basvärde som motsvarar -55 ℃. Disk 1 Subtrakten Pulssignalen som genereras av den låga temperaturkoefficienten Crystal Oscillator. När det förinställda värdet på räknaren 1 reduceras till 0, värdet på temperaturregistret kommer att ökas med 1, och förinställningen 1 kommer att laddas om. Disk 1 startar om för att räkna pulssignalen som genereras av den låga temperaturkoefficientens kristalloscillator, och cykeln fortsätter tills räknaren 2 räknas till 0, stoppa ansamlingen av temperaturregistret. Just nu, värdet i temperaturregistret är den uppmätta temperaturen. Lutningsackumulatorn används för att kompensera och korrigera olinjäriteten i temperaturmätningsprocessen, och dess utgång används för att korrigera det förinställda värdet på räknaren 1.
Figur 1 är som följer:
2. DS18B20 och MCU -anslutningsdiagram
3. DS18B20 -stiftdefinition:
DQ: Datainmatning/utgång. Öppna avtappning 1-trådsgränssnitt. Det kan också ge kraft till enheten när den används i parasitiska kraftläge VDD: Positiv strömförsörjning GND: kraftplats 4. DS18B20 Introduktion av intern analys:
Ovanstående figur visar blockschemat för DS18B20, och 64-bitars ROM lagrar enhetens unika seriekod. Buffertminnet innehåller 2 byte av temperaturregister som lagrar den digitala utgången från temperatursensorn. Dessutom, Buffertminnet ger tillgång till 1-byte övre och nedre larmutlösare register (Th och tl) och 1-byte-konfigurationsregister. Konfigurationsregistret gör det möjligt för användaren att ställa in upplösningen av temperaturen till digital konvertering till 9, 10, 11, eller 12 bitar. TH, Tl, och konfigurationsregister är icke-flyktiga (Eeprom), Så de kommer att behålla data när enheten är avstängd. DS18B20 använder Maxims unika 1-tråds bussprotokoll, som använder en styrsignal. Kontrolllinjen kräver ett svagt pull-up-motstånd eftersom alla enheter är anslutna till bussen genom en 3-statlig eller öppen dräneringsport (DQ -stift i fallet med DS18B20). I detta bussystem (bemästra) använder en unik 64-bitars kod för varje enhet. Eftersom varje enhet har en unik kod, Antalet enheter som kan hanteras på en buss är praktiskt taget obegränsat.
Temperaturregisterformat
Temperatur/dataförhållande
Operationlarmsignal
Efter DS18B20 utför en temperaturomvandling, Det jämför temperaturvärdet med den användardefinierade två komplementalarmutlösningsvärdet lagrat i 1-byte th- och TL-register. Tecknet indikerar om värdet är positivt eller negativt: positiv s = 0, negativ s = 1. TH- och TL-registren är icke-flyktiga (Eeprom) och är därför inte flyktiga när enheten är avstängd. Th och tl kan nås via byte 2 och 3 av minnet.
Th och tl registerformat:
Schematiskt diagram över att driva DS18B20 med en extern strömförsörjning
64-Bit Laser-skrivskyddad minneskod:
Varje DS18B20 innehåller en unik 64-bitars kod lagrad i ROM. Det minst betydande 8 BITS AV ROM-koden innehåller entrådesfamiljekoden för DS18B20: 28h. Nästa 48 bitar innehåller ett unikt serienummer. Det mest betydelsefulla 8 bitar innehåller en cyklisk redundanskontroll (CRC) byte, som beräknas från den första 56 bitar av ROM -koden.
DS18B20 Memory Map
Konfigurationsregister:
Figur 2
Byte 4 i minnet innehåller konfigurationsregistret, som är organiserad som visas i figuren 2. Användaren kan ställa in konverteringsupplösningen för DS18B20 med bitar R0 och R1 här som visas i tabellen 2. Power-on-standardvärdena för dessa bitar är R0 = 1 och R1 = 1 (12-lite upplösning). Observera att det finns en direkt relation mellan upplösning och konverteringstid. Bit 7 och bitar 0 till 4 I konfigurationsregistret är reserverade för intern användning av enheten och kan inte skrivas över.
Tabell 2 Termometerupplösningskonfiguration
CRC -generation
CRC-byte är en del av DS18B20 64-bitars ROM-kod och finns i den 9: e byte av skrapplattan. ROM -koden CRC beräknas från den första 56 bitar av ROM -koden och finns i den mest betydande byten i ROM. Scratchpad CRC beräknas baserat på de data som lagras i skrapplattan, Så det förändras när uppgifterna i skrapplattan ändras. CRC ger busvärden en metod för dataverifiering när du läser data från DS18B20. Efter att ha verifierat att uppgifterna har lästs korrekt, Bussmästaren måste beräkna CRC från mottagen data och sedan jämföra det värdet med ROM -koden CRC (för ROM -läsningar) eller skrapplattan CRC (för Scratchpad -läsningar). Om den beräknade CRC matchar Read CRC, Uppgifterna har mottagits korrekt. Beslutet att jämföra CRC -värden och fortsätta är helt efter bussmästarens bedömning. Det finns inga kretsar inuti DS18B20 som förhindrar körning av en kommandosekvens om:
DS18B20 CRC (Rom eller skrapplatta) Matchar inte värdet som genereras av bussmästaren.
Den motsvarande polynomfunktionen för CRC är:
CRC = x8 + X5 + X4 + 1
Bussmästaren kan beräkna CRC och jämföra den med DS18B20: s CRC -värde med:
Polynomgeneratorn visas i figur 3. Kretsen innehåller ett skiftregister och Yihuo Gates, och bitarna i skiftregistret initialiseras till 0. Den minst betydande biten av ROM -koden eller den minst betydande biten av byte 0 i skrapplattan bör flyttas till skiftregistret en åt gången. Efter att ha växt in bit 56 från rom eller den mest betydande biten av byte 7 från skrapplattan, Polynomgeneratorn kommer att innehålla den omberäknade CRC. Nästa, 8-bitars ROM-koden eller CRC-signalen i skrappaden DS18B20 måste flyttas in i kretsen. Just nu, Om den omberäknade CRC är korrekt, Skiftregistret är alla 0s.
Figur 3: CRC -generator
V. Åtkomst till DS18B20:
Sekvensen för åtkomst till DS18B20 är som följer:
Steg 1. Initialisering;
Steg 2. Romkommando (följt av nödvändigt datautbyte);
Steg 3. DS18B20 Funktionskommando (följt av nödvändigt datautbyte);
Notera: Denna sekvens följs varje gång DS18B20 nås, Eftersom DS18B20 inte kommer att svara om något steg i sekvensen saknas eller inte i ordning. Undantaget från denna regel är sökrom [F0h] och larmsökning [Jag] kommandon. Efter att ha utfärdat dessa två ROM -kommandon, värden måste återvända till steg 1 i följd.
(Ovanstående introduktion översätts från den officiella manualen)
Romkommando
1, Läs rom [33h]
2, Matcha rom [55h]
3, Skeppsrum [Cch]
4, Larmsökning [Jag]
DS18B20 Funktionskommando
1, Konvertera temperaturen [44h]
2, Skriv skrapplatta (Minne) [4Va]
3, Läs Scratch Pad (Minne) [Bete]
4, Kopiera skrapplatta (Minne [48h]
5, Vakna E2 igen [B8h]
6, Läs Power [B4h]
(För detaljerad beskrivning av ovanstående kommandon, Se den officiella manualen)
Vi. Åtkomst till DS18B20 -timing
Under initialiseringsprocessen, Bussmästaren skickar en återställningspuls (Tx) Låg nivå för minst 480 μs genom att dra 1-trådbussen. Sedan, Bussmästaren släpper bussen och går in i mottagningsläget (Rx). Efter att ha släppt bussen, 5kΩ pull-up-motståndet drar 1-tråds buss högt. När DS18B20 upptäcker denna stigande kant, Den väntar 15 μs till 60 μs och skickar sedan en närvaropuls genom att dra 1-tråds buss låg för 60μs till 240μs.
Initialiseringstiming:
Det finns två typer av skrivtidsluckor: “Skriv 1” tidsluckor och “Skriv 0” tidsluckor. Bussen använder en skrivning 1 tidslucka för att skriva en logik 1 till DS18B20 och en skrivning 0 tidslucka för att skriva en logik 0 till DS18B20. Alla skrivtidsluckor måste vara minst 60 μs varaktighet med en återhämtningstid på minst 1 μs mellan enskilda skrivtidsluckor. Båda typerna av skrivtidsluckor initieras av mästaren som drar 1-trådbussen låg (se figur 14). För att generera en skrivning 1 tidslucka, Efter att ha dragit 1-trådbussen låg, Bussmästaren måste släppa 1-trådbussen inom 15 μs. Efter att ha släppt bussen, 5kΩ pull-up-motståndet drar bussen högt. Generera en
Skriva 0 tidslucka, Efter att ha dragit 1-ledslinjen låg, Bussmästaren måste fortsätta att hålla bussen låg under tidsluckans varaktighet (minst 60 μs). DS18B20 provar 1-trådbussen inom ett fönster på 15 μs till 60μs efter att master initierar skrivtidsluckan. Om bussen är hög under samplingsfönstret, a 1 är skriven till DS18B20. Om linjen är låg, a 0 är skriven till DS18B20.
Notera: TimesLot är en del av den seriella självmultiplexeringen av tidsluckinformationen tillägnad en enda kanal.
Figur 14 är som följer:
Läs tidsluckan:
DS18B20 kan bara skicka data till värden när värden utfärdar en lästidslucka. Därför, Värden måste generera en lästidslucka omedelbart efter att ha utfärdat ett läsminnekommando [Bete] eller en läsströmförsörjning [B4h] kommando för att ds18b20 ska tillhandahålla de nödvändiga uppgifterna. Alternativt, värden kan generera en lästidslucka efter att ha utfärdat en konverterad t [44h] eller återkalla E2 [B8h] kommando för att ta reda på statusen. Alla läsning av tidsluckor måste vara minst 60 μs varaktighet med en minsta återhämtningstid på 1 μs mellan tidsluckor. En lästidslucka initieras av mästaren som drar 1-trådbussen låg för att hålla den låg för minst 1 μs och sedan släppa bussen (se figur 14). Efter att Master initierar en lästidslucka, DS18B20 börjar skicka antingen 1 eller 0 på bussen. DS18B20 skickar en 1 genom att hålla bussen högt och skicka en 0 genom att dra bussen låg. När en 0 skickas, DS18B20 släpper bussen genom att hålla bussen hög. Tidsluckan slutar och bussen dras tillbaka till det höga tomgångstillståndet med pull-up-motståndet.
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
















