DS18B20 je 1-vodičový digitální teplotní senzor vyráběný společností DALLAS, s 3pinovým TO-92 malým balením. Rozsah měření teploty je -55℃~+125℃, a lze jej naprogramovat na přesnost převodu A/D 9-12-bit. Rozlišení měření teploty může dosáhnout 0,0625℃, a naměřená teplota je sériově vydávána ve formě 16bitové digitální veličiny s rozšířením znaménka. Jeho pracovní napájecí zdroj může být zaveden na vzdáleném konci nebo generován parazitním napájením. Paralelně lze připojit více DS18B20 3 nebo 2 linky. CPU potřebuje ke komunikaci s mnoha DS18B20 pouze jednu portovou linku, zabírá méně portů mikroprocesoru, což může ušetřit spoustu vedení a logických obvodů. Výše uvedené vlastnosti činí DS18B20 velmi vhodným pro dálkové vícebodové systémy detekce teploty.
2. Vnitřní struktura schématu zapojení DS18B20 ds18b20
Vnitřní struktura DS18B20 je znázorněna na obrázku 1, který se skládá hlavně z 4 díly: 64-bit ROM, teplotní senzor, energeticky nezávislý teplotní alarm spustí TH a TL, a konfigurační registry. Uspořádání kolíků DS18B20 je znázorněno na obrázku 2. DQ je vstupní/výstupní terminál digitálního signálu; GND je napájecí zem; VDD je vstupní svorka externího napájení (uzemněno v režimu parazitního napájení, viz obrázek 4).
64bitové sériové číslo v paměti ROM je před opuštěním továrny vyleptáno. Lze jej považovat za kód sekvence adres DS18B20. 64bitové sériové číslo každého DS18B20 se liší. Kontrolní kód cyklické redundance (CRC = X8+X5+X4+1) 64bitové paměti ROM. Úlohou ROM je udělat každý DS18B20 jiný, takže k jedné sběrnici lze připojit více DS18B20.
Postava 1, vnitřní struktura DS18B20
Teplotní senzor v DS18B20 dokončí měření teploty, který je poskytován ve formě čtení binárního doplňku s rozšířeným 16bitovým znaménkem, vyjádřeno ve formě 0,0625℃/LSB, kde S je znaménkový bit. Například, digitální výstup +125℃ je 07D0H, digitální výstup +25,0625℃ je 0191H, digitální výstup -25,0625℃ je FF6FH, a digitální výstup -55℃ je FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Nízký bajt hodnoty teploty
MSBLSB
S
S
S
S
S
22
25
24
Vysoký bajt hodnoty teploty
Alarm vysoké a nízké teploty spustí TH a TL, a konfigurační registr se skládají z jednoho bajtu EEPROM. K zápisu do TH lze použít příkaz paměťové funkce, TL, nebo konfigurační registr. Formát konfiguračního registru je následující:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 a R0 určují počet číslic přesnosti pro převod teploty: R1R0 = “00”, 9-bitová přesnost, maximální doba převodu je 93,75 ms; R1R0 = “01”, 10-bitová přesnost, maximální doba převodu je 187,5 ms. R1R0 = “10”, 11-bitová přesnost, maximální doba převodu je 375 ms. R1R0 = “11”, 12-bitová přesnost, maximální doba převodu je 750 ms. Výchozí je 12bitová přesnost, když není naprogramováno.
Vysokorychlostní registr je 9bajtová paměť. První dva bajty obsahují digitální informaci o naměřené teplotě; 3, 4čt, a 5. bajty jsou dočasné kopie TH, TL, a konfigurační registry, respektive, a obnovují se pokaždé, když dojde k resetování po zapnutí; 6, 7čt, a 8. bajty se nepoužívají a jsou reprezentovány jako všechny logické jedničky; 9. bajt čte CRC kód všech předchozích 8 bajtů, které lze použít k zajištění správné komunikace.
3. Pracovní sekvence DS18B20
Tok pracovního protokolu první linie DS18B20 je: inicializace → provozní instrukce ROM → instrukce operace paměti → přenos dat. Jeho pracovní sekvence zahrnuje inicializační sekvenci, sekvence zápisu a sekvence čtení, Jak je znázorněno na obrázku 3 (A) (b) (C).
(A) Inicializační sekvence
(C) Číst sekvenci
Postava 3, Schéma pracovní sekvence DS18B20
4. Typická konstrukce rozhraní DS18B20 a jednočipového mikropočítače
Postava 4 bere jako příklad jednočipový mikropočítač řady MCS-51 k nakreslení typického spojení mezi DS18B20 a mikroprocesorem. Na obrázku 4 (A), DS18B20 využívá režim parazitního napájení, a jeho svorky VDD a GND jsou uzemněné. Na obrázku 4 (b), DS18B20 využívá režim externího napájení, a jeho VDD terminál je napájen 3V~5,5V napájecím zdrojem.
A) Pracovní režim parazitního napájení
(b) Pracovní režim externího napájení
Postava 4 Typické schéma zapojení DS18B20 a mikroprocesoru
Za předpokladu, že frekvence krystalu používaná jednočipovým mikropočítačovým systémem je 12 MHz, tři podprogramy jsou zapsány podle časování inicializace, časování zápisu a čtení DS18B20: INIT je inicializační podprogram; WRITE je zápis (příkaz nebo data) podprogram; READ je podprogram čtení dat. Veškeré čtení a zápis dat začíná od nejnižšího bitu.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2,INI11; Hostitel vyšle resetovací impuls po dobu 3μs×200=600μs
SETBDAT; Hostitel uvolňuje autobus, a linka portu se změní na vstup
MOVR2,#30
IN12:DJNZR2, INI12; DS18B20 čeká 2μs×30=60μs
CLRC
Orlc,ŽE; Je datová linka DS18B20 nízká (puls existuje)?
JCINI10; DS18B20 není připraven, znovu inicializovat
MOVR6, #80
INI13: Orlc, ŽE
JCINI14; Datová linka DS18B20 jde vysoko, inicializace je úspěšná
DJNZR6, INI13; nízká úroveň datové linky může trvat 3 μs × 80 = 240 μs
SYMPINI10; inicializace se nezdařila, restartovat
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 reaguje alespoň 2μs × 240 = 48 0μs
RET
;-----------------------
NAPSAT:CLREA
MOVR3,#8;Smyčka 8 časy, napsat bajt
WR11:SETBDAT
MOVR4,#8
RRCA;Zapište bitové pohyby z A do CY
Clrdat
WR12:DJNZR4, WR12
;Počkejte 16 μs
MOVDAT,C;Příkazové slovo je posíláno do DS18B20 bit po bitu
MOVR4,#20
WR13:DJNZR4, WR1 3
; Ujistěte se, že proces zápisu trvá 60 μs
DJNZR3, WR11
; Pokračujte před odesláním bajtu
SETBDAT
RET
;----------------------
ČÍST:CLREA
MOVR6,#8; Smyčka 8 časy, přečíst bajt
RD11:Clrdat
MOVR4,#4
NOP; Nízká hladina trvá 2 μs
SETBDAT; Nastavte linku portu na vstup
RD12:DJNZR4,RD12
; Počkejte 8 μs
MOVC,OD T
;Hostitel čte data DS18B20 bit po bitu
RRCA;Načtená data se přesunou do A
MOVR5,#30
RD13:DJNZR5,RD13
;Zajistěte, aby proces čtení trval 60 μs
DJNZR6,RD11
;Po přečtení bajtu dat, uložit do A
SETBDAT
RET
;-----------------------
Hostitel musí projít třemi kroky k ovládání DS18B20, aby dokončil převod teploty: inicializace, návod k obsluze ROM, a instrukce pro práci s pamětí. DS18B20 musí být spuštěn pro zahájení převodu před čtením hodnoty převodu teploty. Za předpokladu, že k jedné lince je připojen pouze jeden čip, je použita výchozí 12bitová přesnost převodu, a je použit externí napájecí zdroj, lze zapsat podprogram GETWD pro dokončení převodu a čtení hodnoty teploty.
Nadaný:LCALLINIT
POHYB,#0CCH
LCALLWRITE; odeslat příkaz přeskočit ROM
POHYB,#44H
LCALLWRITE; odeslat příkaz ke spuštění konverze
LCALLINIT
POHYB,#0CCH; odeslat příkaz přeskočit ROM
LCALLWRITE
POHYB,#0 BEH; odeslat příkaz čtení paměti
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; odeslat nízký bajt hodnoty teploty do WDLSB
LCALLREAD
MOVWDMSB,A
; odeslat vysoký bajt hodnoty teploty do WDMSB
RET
……
Vysoký bajt hodnoty teploty načtený podprogramem GETWD je odeslán do jednotky WDMSB, a dolní bajt je odeslán do jednotky WDLSB. Potom podle formátu zobrazení bajtu hodnoty teploty a jejího znaménkového bitu, skutečnou hodnotu teploty lze získat jednoduchou transformací.
Pokud je na jedné lince připojeno více DS18B20, je převzat režim připojení parazitního napájení, konfigurace přesnosti převodu, alarm horního a dolního limitu, atd. jsou vyžadovány. Pak bude zápis podprogramu GETWD složitější. Kvůli prostorovým omezením, tato část nebude podrobně popisována. Podívejte se prosím na příslušný obsah.
Úspěšně jsme aplikovali DS18B20 na “domácí ohřívací lázeň” řídicí systém, který jsme vyvinuli. Jeho vysoká rychlost konverze, vysoká přesnost převodu, a jednoduché rozhraní s mikroprocesorem přineslo velké pohodlí při návrhu hardwaru, efektivně snížit náklady a zkrátit vývojové cykly.
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



