DS18B20 je 1-žični digitalni temperaturni senzor, ki ga proizvaja Dallas, s 3-pinskim majhnim paketom do 92. Merilno območje temperature je -55 ℃ ~ +125 ℃, in ga je mogoče programirati na 9-bitno ~ 12-bitno natančnost A/D pretvorbe. Ločljivost merjenja temperature lahko doseže 0,0625 ℃, in izmerjena temperatura se serijsko izpisuje v obliki 16-bitne digitalne količine z razširitvijo znaka. Njegovo delovno napajanje je mogoče vnesti na oddaljenem koncu ali ustvariti s parazitskim napajanjem. Več DS18B20 je mogoče povezati vzporedno 3 oz 2 vrstice. CPE potrebuje samo eno linijo vrat za komunikacijo z mnogimi DS18B20, zasedajo manj vrat mikroprocesorja, ki lahko prihrani veliko vodnikov in logičnih vezij. Zaradi zgornjih značilnosti je DS18B20 zelo primeren za sisteme za večtočkovno zaznavanje temperature na dolge razdalje.
2. Notranja struktura DS18B20 ds18b20 shema vezja
Notranja struktura DS18B20 je prikazana na sliki 1, ki je v glavnem sestavljen iz 4 deli: 64-bitni ROM, temperaturni senzor, nehlapni temperaturni alarm sproži TH in TL, in konfiguracijske registre. Razporeditev nožic DS18B20 je prikazana na sliki 2. DQ je vhodno/izhodni terminal digitalnega signala; GND je ozemljitev; VDD je vhodni terminal zunanjega napajanja (ozemljen v načinu parazitskega napajalnega ožičenja, glej sliko 4).
64-bitna serijska številka v ROM-u je fotojedkana, preden zapusti tovarno. Lahko se šteje za kodo zaporedja naslovov DS18B20. 64-bitna serijska številka vsakega DS18B20 je drugačna. Koda za preverjanje ciklične redundance (CRC=X8+X5+X4+1) 64-bitnega ROM-a je urejen. Vloga ROM-a je narediti vsakega DS18B20 drugačnega, tako da je več DS18B20 mogoče povezati na eno vodilo.
Slika 1, notranja struktura DS18B20
Temperaturni senzor v DS18B20 zaključi merjenje temperature, ki je na voljo v obliki 16-bitnih z znakom razširjenih binarnih komplementnih odčitkov, izraženo v obliki 0,0625 ℃/LSB, kjer je S bit predznaka. Na primer, digitalni izhod +125 ℃ je 07D0H, digitalni izhod +25,0625 ℃ je 0191H, digitalni izhod -25,0625 ℃ je FF6FH, in digitalni izhod -55 ℃ je FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Spodnji bajt vrednosti temperature
MSBLSB
S
S
S
S
S
22
25
24
Visoki bajt vrednosti temperature
Alarm za visoko in nizko temperaturo sproži TH in TL, in konfiguracijski register sta sestavljena iz enega bajta EEPROM-a. Za pisanje v TH lahko uporabite ukaz pomnilniške funkcije, TL, ali konfiguracijski register. Format konfiguracijskega registra je naslednji:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 in R0 določata število števk natančnosti za pretvorbo temperature: R1R0 = “00”, 9-bitna natančnost, največji čas pretvorbe je 93,75 ms; R1R0 = “01”, 10-bitna natančnost, največji čas pretvorbe je 187,5 ms. R1R0 = “10”, 11-bitna natančnost, največji čas pretvorbe je 375 ms. R1R0 = “11”, 12-bitna natančnost, največji čas pretvorbe je 750 ms. Privzeta vrednost je 12-bitna natančnost, če ni programirana.
Hitri register je 9-bajtni pomnilnik. Prva dva bajta vsebujeta digitalno informacijo o izmerjeni temperaturi; 3, 4th, in 5. bajti so začasne kopije TH, TL, in konfiguracijske registre, oz, in se osvežijo vsakič, ko pride do ponastavitve ob vklopu; 6, 7th, in 8. bajta se ne uporabljata in sta predstavljena kot vse logične 1; 9. bajt bere kodo CRC vseh prejšnjih 8 bajtov, ki se lahko uporabijo za zagotovitev pravilne komunikacije.
3. Delovno zaporedje DS18B20
Potek delovnega protokola prve vrstice DS18B20 je: inicializacija → navodilo za delovanje ROM → navodilo za delovanje pomnilnika → prenos podatkov. Njegovo delovno zaporedje vključuje inicializacijsko zaporedje, zaporedje pisanja in zaporedje branja, kot je prikazano na sliki 3 (a) (b) (c).
(a) Zaporedje inicializacije
(c) Preberi zaporedje
Slika 3, Diagram delovnega zaporedja DS18B20
4. Tipična zasnova vmesnika DS18B20 in mikroračunalnika z enim čipom
Slika 4 vzame mikroračunalnik serije MCS-51 z enim čipom kot primer, da nariše tipično povezavo med DS18B20 in mikroprocesorjem. Na sliki 4 (a), DS18B20 sprejme parazitski način napajanja, in njegovi VDD in GND terminali so ozemljeni. Na sliki 4 (b), DS18B20 sprejme način zunanjega napajanja, in njegov terminal VDD se napaja z napajalnikom 3V ~ 5,5 V.
a) Parazitski način delovanja napajalnika
(b) Način delovanja zunanjega napajanja
Slika 4 Tipična povezovalna shema DS18B20 in mikroprocesorja
Ob predpostavki, da je kristalna frekvenca, ki jo uporablja mikroračunalniški sistem z enim čipom, 12MHz, trije podprogrami so napisani glede na čas inicializacije, čas zapisovanja in branja DS18B20: INIT je inicializacijski podprogram; WRITE je pisanje (ukaz ali podatek) podprogram; READ je podprogram za branje podatkov. Vse branje in pisanje podatkov se začne od najnižjega bita.
DATEQUP1.0
……
INIT:CLREA
INI10:NASTAVI DAT
MOVR2,#200
INI11:CLRDAT
DJNZR2,INI11; Gostitelj pošlje ponastavitveni impulz za 3 μs×200=600 μs
NASTAVI DAT; Gostitelj spusti avtobus, in vrstica vrat se spremeni v vnos
MOVR2,#30
IN12:DJNZR2,INI12; DS18B20 čaka 2μs×30=60μs
CLRC
ORLC,TO; Ali je podatkovna linija DS18B20 nizka (utrip obstaja)?
JCINI10; DS18B20 ni pripravljen, ponovno inicializirati
MOVR6, #80
INI13: ORLC, TO
JCINI14; Podatkovna linija DS18B20 gre visoko, inicializacija uspešna
DJNZR6, INI13; nizka raven podatkovne linije lahko traja 3 μs × 80 = 240 μs
SIMPINI10; inicializacija ni uspela, ponovni zagon
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 se odziva vsaj 2 μs × 240 = 48 0μs
RET
;--------------------------
PIŠI:CLREA
MOVR3,#8;Zanka 8 krat, napiši bajt
WR11:NASTAVI DAT
MOVR4,#8
RRCA;Zapisni bit se premika od A do CY
CLRDAT
WR12:DJNZR4,WR12
;Počakajte 16 μs
MOVDAT,C;Ukazna beseda se pošilja v DS18B20 bit za bit
MOVR4,#20
WR13:DJNZR4,WR1 3
; Zagotovite, da postopek pisanja traja 60 μs
DJNZR3,WR11
; Nadaljujte pred pošiljanjem bajta
NASTAVI DAT
RET
;-------------------------
PREBERI:CLREA
MOVR6,#8; Zanka 8 krat, preberi bajt
RD11:CLRDAT
MOVR4,#4
NOP; Nizka raven traja 2 μs
NASTAVI DAT; Nastavite vrstico vrat za vnos
RD12:DJNZR4,RD12
; Počakajte 8 μs
MOVC,OD T
;Gostitelj bere podatke DS18B20 bit za bit
RRCA;Prebrani podatki se premaknejo v A
MOVR5,#30
RD13:DJNZR5,RD13
;Zagotovite, da postopek branja traja 60 μs
DJNZR6,RD11
;Po branju bajta podatkov, shrani v A
NASTAVI DAT
RET
;--------------------------
Gostitelj mora opraviti tri korake za nadzor DS18B20, da dokonča pretvorbo temperature: inicializacija, navodila za uporabo ROM-a, in navodila za delovanje pomnilnika. DS18B20 je treba zagnati, da začnete pretvorbo, preden odčitate vrednost pretvorbe temperature. Ob predpostavki, da je na eno linijo priključen samo en čip, uporabljena je privzeta 12-bitna natančnost pretvorbe, in uporablja se zunanji napajalnik, lahko napišete podprogram GETWD za dokončanje pretvorbe in branje vrednosti temperature.
VRATA:LCALLINIT
PREMAKNI SE,#0CCH
LCALLWRITE; pošlji ukaz za preskok ROM
PREMAKNI SE,#44H
LCALLWRITE; pošlji ukaz za začetek pretvorbe
LCALLINIT
PREMAKNI SE,#0CCH; pošlji ukaz za preskok ROM
LCALLWRITE
PREMAKNI SE,#0 BEH; pošlji ukaz za branje pomnilnika
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; pošlji spodnji bajt vrednosti temperature v WDLSB
LCALLREAD
MOVWDMSB,A
; pošlje visoki bajt vrednosti temperature v WDMSB
RET
……
Visoki bajt vrednosti temperature, ki ga prebere podprogram GETWD, se pošlje enoti WDMSB, nizki bajt pa se pošlje enoti WDLSB. Nato glede na obliko predstavitve bajta vrednosti temperature in njegovega bita predznaka, dejansko vrednost temperature lahko dobimo s preprosto transformacijo.
Če je na eno linijo priključenih več DS18B20, Sprejet je parazitski način povezave z napajalnikom, konfiguracija natančnosti pretvorbe, alarm za visoko in nizko mejo, itd. so potrebni. Potem bo pisanje podprograma GETWD bolj zapleteno. Zaradi prostorske omejitve, ta razdelek ne bo podrobno opisan. Oglejte si ustrezno vsebino.
DS18B20 smo uspešno uporabili za “gospodinjska ogrevalna kopel” nadzorni sistem, ki smo ga razvili. Njegova visoka hitrost pretvorbe, visoka natančnost pretvorbe, in preprost vmesnik z mikroprocesorjem sta prinesla veliko udobje pri načrtovanju strojne opreme, učinkovito zniževanje stroškov in skrajšanje razvojnih ciklov.
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



