DS18B20 yra 1 laido skaitmeninis temperatūros jutiklis, kurį gamina DALLAS, su 3 kontaktų TO-92 maža pakuote. Temperatūros matavimo diapazonas yra -55 ℃ ~ + 125 ℃, ir jis gali būti užprogramuotas 9 bitų ~ 12 bitų A/D konvertavimo tikslumu. Temperatūros matavimo skiriamoji geba gali siekti 0,0625 ℃, ir išmatuota temperatūra nuosekliai išvedama 16 bitų skaitmeninio dydžio su ženklo plėtiniu pavidalu. Jo darbinis maitinimo šaltinis gali būti įvestas nuotoliniu būdu arba generuojamas parazitinio maitinimo šaltiniu. Lygiagrečiai galima prijungti kelis DS18B20 3 arba 2 linijos. CPU reikia tik vienos prievado linijos, kad galėtų susisiekti su daugeliu DS18B20, užima mažiau mikroprocesoriaus prievadų, kuri gali sutaupyti daug laidų ir loginių grandinių. Dėl aukščiau pateiktų charakteristikų DS18B20 labai tinka tolimojo kelių taškų temperatūros aptikimo sistemoms.
2. DS18B20 ds18b20 grandinės schemos vidinė struktūra
Vidinė DS18B20 struktūra parodyta paveikslėlyje 1, kuri daugiausia susideda iš 4 dalys: 64-bitų ROM, Temperatūros jutiklis, nepastovios temperatūros aliarmas suveikia TH ir TL, ir konfigūracijos registrus. DS18B20 kaiščių išdėstymas parodytas paveikslėlyje 2. DQ yra skaitmeninio signalo įvesties/išvesties terminalas; GND yra maitinimo įžeminimas; VDD yra išorinio maitinimo šaltinio įvesties gnybtas (įžemintas parazitinio maitinimo laidų režimu, žr. pav 4).
64 bitų serijos numeris ROM yra išgraviruotas prieš išvežant iš gamyklos. Jis gali būti laikomas DS18B20 adreso sekos kodu. Kiekvieno DS18B20 64 bitų serijos numeris skiriasi. Ciklinio atleidimo patikrinimo kodas (CRC=X8+X5+X4+1) 64 bitų ROM yra sutvarkytas. ROM vaidmuo yra padaryti kiekvieną DS18B20 skirtingą, kad prie vienos magistralės būtų galima prijungti kelis DS18B20.
Paveikslas 1, vidinė DS18B20 struktūra
DS18B20 temperatūros jutiklis užbaigia temperatūros matavimą, kuris pateikiamas 16 bitų ženklu išplėsto dvejetainio komplemento rodmenų pavidalu, išreikšta 0,0625 ℃/LSB forma, kur S yra ženklo bitas. Pavyzdžiui, skaitmeninė +125 ℃ išvestis yra 07D0H, skaitmeninė +25,0625 ℃ išvestis yra 0191H, skaitmeninė išvestis -25,0625 ℃ yra FF6FH, ir skaitmeninė išvestis -55 ℃ yra FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Žemos temperatūros vertės baitas
MSBLSB
S
S
S
S
S
22
25
24
Aukštos temperatūros vertės baitas
Aukštos ir žemos temperatūros signalizacija suveikia TH ir TL, and the configuration register are composed of one byte of EEPROM. A memory function command can be used to write to TH, TL, or the configuration register. The format of the configuration register is as follows:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 and R0 determine the number of digits of precision for temperature conversion: R1R0 = “00”, 9-bit precision, maximum conversion time is 93.75ms; R1R0 = “01”, 10-bit precision, maximum conversion time is 187.5ms. R1R0 = “10”, 11-bit precision, maximum conversion time is 375ms. R1R0 = “11”, 12-bit precision, maximum conversion time is 750ms. The default is 12-bit precision when not programmed.
The high-speed register is a 9-byte memory. The first two bytes contain the digital information of the measured temperature; the 3rd, 4th, and 5th bytes are temporary copies of TH, TL, ir konfigūracijos registrus, atitinkamai, and are refreshed every time a power-on reset occurs; the 6th, 7th, and 8th bytes are not used and are represented as all logic 1s; 9-asis baitas skaito visų ankstesnių CRC kodą 8 baitų, kuriais galima užtikrinti teisingą bendravimą.
3. DS18B20 darbo seka
Pirmosios eilės DS18B20 darbo protokolo srautas yra: inicijavimas → ROM veikimo instrukcija → atminties veikimo instrukcija → duomenų perdavimas. Jo darbo seka apima inicijavimo seką, rašymo seka ir skaitymo seka, kaip parodyta paveiksle 3 (a) (b) (c).
(a) Inicijavimo seka
(c) Skaitymo seka
Paveikslas 3, DS18B20 darbo sekos schema
4. Tipiškas DS18B20 ir vieno lusto mikrokompiuterio sąsajos dizainas
Paveikslas 4 Kaip pavyzdį naudojamas MCS-51 serijos vieno lusto mikrokompiuteris, kad būtų galima nubrėžti tipišką ryšį tarp DS18B20 ir mikroprocesoriaus. Paveiksle 4 (a), DS18B20 priima parazitinio maitinimo režimą, o jo VDD ir GND gnybtai įžeminti. Paveiksle 4 (b), DS18B20 priima išorinio maitinimo režimą, ir jo VDD gnybtas maitinamas 3V ~ 5,5V maitinimo šaltiniu.
a) Parazitinio maitinimo šaltinio darbo režimas
(b) Išorinio maitinimo šaltinio darbo režimas
Paveikslas 4 Tipinė DS18B20 ir mikroprocesoriaus sujungimo schema
Darant prielaidą, kad vieno lusto mikrokompiuterių sistemos naudojamas kristalų dažnis yra 12MHz, trys paprogramės parašytos pagal inicijavimo laiką, DS18B20 rašymo ir skaitymo laikas: INIT yra inicijavimo paprogramė; RAŠYTI yra rašymas (komandą ar duomenis) paprogramė; READ yra duomenų skaitymo paprogramė. Visų duomenų skaitymas ir rašymas prasideda nuo žemiausio bito.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2,INI11; Šeimininkas siunčia atstatymo impulsą 3 μs × 200 = 600 μs
SETBDAT; Šeimininkas išleidžia autobusą, ir prievado linija pakeičiama į įvestį
MOVR2,#30
IN12:DJNZR2, INI12; DS18B20 laukia 2μs × 30=60μs
CLRC
Orlc,TAI; Ar žema DS18B20 duomenų linija (pulsas egzistuoja)?
JCINI10; DS18B20 neparengtas, iš naujo inicijuoti
MOVR6, #80
INI13: Orlc, TAI
JCINI14; DS18B20 duomenų linija yra aukšta, inicijavimas sėkmingas
DJNZR6, INI13; Žemas duomenų linijos lygis gali trukti 3 μs × 80 = 240 μs
SYMPINIS10; inicijavimas nepavyko, paleisti iš naujo
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 reaguoja mažiausiai 2 μs × 240 = 48 0μs
RET
;------------------
RAŠYKITE:CLREA
MOVR3,#8;Kilpa 8 kartų, parašyti baitą
WR11:SETBDAT
MOVR4,#8
RRCA;Rašymo bitai juda iš A į CY
Clrdat
WR12:DJNZR4, WR12
;Palaukite 16 μs
MOVDAT,C;Komandos žodis po bitų siunčiamas į DS18B20
MOVR4,#20
WR13:DJNZR4, WR1 3
; Įsitikinkite, kad rašymo procesas trunka 60 μs
DJNZR3, WR11
; Tęskite prieš siųsdami baitą
SETBDAT
RET
;---------------------
SKAITYTI:CLREA
MOVR6,#8; Kilpa 8 kartų, perskaityti baitą
RD11:Clrdat
MOVR4,#4
NOP; Žemas lygis trunka 2 μs
SETBDAT; Nustatykite prievado liniją į įvestį
RD12:DJNZR4, RD12
; Palaukite 8 μs
MOVC,NUO T
;Pagrindinis kompiuteris skaito DS18B20 duomenis po bitų
RRCA;Nuskaityti duomenys perkeliami į A
MOVR5,#30
RD13:DJNZR5, RD13
;Įsitikinkite, kad skaitymo procesas trunka 60 μs
DJNZR6, RD11
;Perskaičius baitą duomenų, laikyti jį A
SETBDAT
RET
;------------------
Pagrindinis kompiuteris turi atlikti tris veiksmus, kad valdytų DS18B20 ir baigtų temperatūros konvertavimą: inicijavimas, ROM naudojimo instrukcijos, ir atminties veikimo instrukcijos. DS18B20 turi būti paleistas, kad būtų galima pradėti konvertuoti prieš nuskaitant temperatūros konvertavimo vertę. Darant prielaidą, kad prie vienos linijos prijungtas tik vienas lustas, naudojamas numatytasis 12 bitų konvertavimo tikslumas, ir naudojamas išorinis maitinimo šaltinis, galima parašyti paprogramę GETWD, kad būtų užbaigtas konvertavimas ir nuskaityta temperatūros reikšmė.
Gabus:LCALLINIT
JUDĖTI,#0CCH
LCALLWRITE; siųsti skip ROM komandą
JUDĖTI,# 44h
LCALLWRITE; siųsti komandą pradėti konvertuoti
LCALLINIT
JUDĖTI,#0CCH; siųsti skip ROM komandą
LCALLWRITE
JUDĖTI,#0 BEH; siųsti skaitymo atminties komandą
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; siųsti žemą temperatūros vertės baitą į WDLSB
LCALLREAD
MOVWDMSB,A
; siųsti aukštą temperatūros vertės baitą į WDMSB
RET
……
Aukštas temperatūros vertės baitas, kurį nuskaito paprogramė GETWD, siunčiamas į WDMSB įrenginį, ir žemas baitas siunčiamas į WDLSB įrenginį. Tada pagal temperatūros reikšmės baito ir jo ženklo bito vaizdavimo formatą, faktinę temperatūros vertę galima gauti naudojant paprastą transformaciją.
Jei vienoje linijoje yra prijungti keli DS18B20, priimamas parazitinio maitinimo šaltinio prijungimo režimas, konversijos tikslumo konfigūracija, aukščiausios ir žemos ribos pavojaus signalas, ir tt. būtini. Tada paprogramės GETWD rašymas bus sudėtingesnis. Dėl erdvės apribojimų, šis skyrius nebus išsamiai aprašytas. Žr. atitinkamą turinį.
Sėkmingai pritaikėme DS18B20 “buitinė šildymo vonia” mūsų sukurta valdymo sistema. Jo greitas konversijos greitis, didelis konversijos tikslumas, ir paprasta sąsaja su mikroprocesoriumi suteikė didelį patogumą aparatinės įrangos projektavimo darbams, efektyviai sumažinti išlaidas ir sutrumpinti kūrimo ciklus.
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



