DS18B20 Uvod znanja o senzoru temperature
DS18B20 je najčešće korišteni digitalni temperaturni senzor. Emituje digitalne signale, ima karakteristike male veličine, mali hardverski troškovi, jaka sposobnost protiv smetnji, visoka preciznost, i široko se koristi.
Uvod u DS18B20 temperaturni senzor
Tehničke karakteristike:
①. Jedinstveni jednožični način rada sučelja. Kada je DS18B20 spojen na mikroprocesor, samo 1 žica je potrebna za realizaciju dvosmjerne komunikacije između mikroprocesora i DS18B20.
②. Raspon mjerenja temperature -55℃~+125℃, inherentna greška mjerenja temperature 1℃.
③. Podržava funkciju umrežavanja na više tačaka. Više DS18B20 može biti spojeno paralelno na samo tri žice, i maksimalno 8 mogu se spojiti paralelno kako bi se ostvarilo mjerenje temperature u više tačaka. Ako je broj prevelik, napon napajanja će biti prenizak, što rezultira nestabilnim prijenosom signala.
④. Radno napajanje: 3.0~5.5V/DC (može se koristiti parazitsko napajanje na liniji podataka).
⑤. Tokom upotrebe nisu potrebne periferne komponente.
⑥. Rezultati mjerenja se prenose serijski u 9~12-bitnom digitalnom obliku.
⑦. Prečnik zaštitne cevi od nerđajućeg čelika je Φ6.
⑧. Pogodan je za mjerenje temperature raznih srednjih industrijskih cjevovoda DN15~25, DN40~DN250 i oprema u uskim prostorima.
⑨. Standardni navoji za ugradnju M10X1, M12X1.5, G1/2” su opcioni.
⑩. PVC kabl je direktno povezan ili se priključuje nemačka kuglasta razvodna kutija, što je pogodno za povezivanje sa drugom električnom opremom.
DS18B20 čitanje i upisivanje vremena i princip mjerenja temperature:
Princip mjerenja temperature DS18B20 prikazan je na slici 1. Temperatura malo utiče na frekvenciju oscilovanja kristalnog oscilatora sa niskim temperaturnim koeficijentom na slici, i koristi se za generiranje impulsnog signala fiksne frekvencije koji se šalje na brojač 1. Frekvencija oscilovanja kristalnog oscilatora s visokim temperaturnim koeficijentom značajno se mijenja s temperaturom, a generisani signal se koristi kao impulsni ulaz brojača 2. Counter 1 i registar temperature su unapred podešeni na osnovnu vrednost koja odgovara -55℃. Counter 1 oduzima impulsni signal generiran kristalnim oscilatorom s niskim temperaturnim koeficijentom. Kada je unapred podešena vrednost brojača 1 se svodi na 0, vrijednost temperaturnog registra će se povećati za 1, i unapred podešen brojač 1 će se ponovo učitati. Counter 1 ponovo počinje da broji impulsni signal koji generiše kristalni oscilator sa niskim temperaturnim koeficijentom, i ciklus se nastavlja do brojača 2 računa se na 0, zaustavljanje akumulacije vrijednosti registra temperature. U ovo vrijeme, vrijednost u registru temperature je izmjerena temperatura. Akumulator nagiba se koristi za kompenzaciju i korekciju nelinearnosti u procesu mjerenja temperature, a njegov izlaz se koristi za ispravljanje unaprijed postavljene vrijednosti brojača 1.
Slika 1 je kako slijedi:
2. Dijagram povezivanja DS18B20 i MCU
3. DS18B20 pin definicija:
DQ: Ulaz/izlaz podataka. 1-žični interfejs otvorenog odvoda. Takođe može da obezbedi napajanje uređaja kada se koristi u režimu parazitskog napajanja VDD: pozitivno napajanje GND: power ground 4. Uvod u internu analizu DS18B20:
Gornja slika prikazuje blok dijagram DS18B20, a 64-bitni ROM pohranjuje jedinstveni serijski kod uređaja. Memorija bafera sadrži 2 bajtova temperaturnih registara koji pohranjuju digitalni izlaz temperaturnog senzora. Osim toga, bafer memorija omogućava pristup 1-bajtnim gornjim i donjim registrima okidača alarma (TH i TL) i 1-bajtne konfiguracijske registre. Registar konfiguracije omogućava korisniku da podesi rezoluciju temperature u digitalnu konverziju 9, 10, 11, ili 12 bits. TH, TL, a konfiguracijski registri su nepromjenjivi (EEPROM), tako da će zadržati podatke kada je uređaj isključen. DS18B20 koristi Maximov jedinstveni 1-wire bus protokol, koji koristi kontrolni signal. Kontrolni vod zahtijeva slab otpornik za povlačenje jer su svi uređaji povezani na sabirnicu preko porta sa 3 stanja ili otvorenog odvoda (DQ pin u slučaju DS18B20). U ovom sistemu sabirnice mikroprocesor (majstor) koristi jedinstveni 64-bitni kod za svaki uređaj. Jer svaki uređaj ima jedinstveni kod, broj uređaja koji se mogu adresirati na jednoj magistrali je praktično neograničen.
Format registra temperature
Odnos temperatura/podaci
Radni alarmni signal
Nakon što DS18B20 izvrši konverziju temperature, uspoređuje vrijednost temperature sa korisnički definiranom vrijednošću okidača komplementa alarma pohranjenom u 1-bajtnim TH i TL registrima. Bit predznaka pokazuje da li je vrijednost pozitivna ili negativna: pozitivno S=0, negativan S=1. TH i TL registri su nepostojani (EEPROM) i stoga nisu nestabilni kada je uređaj isključen. TH i TL se može pristupiti preko bajtova 2 i 3 memorije.
TH i TL format registra:
Šematski dijagram napajanja DS18B20 pomoću vanjskog napajanja
64-bitni laserski memorijski kod samo za čitanje:
Svaki DS18B20 sadrži jedinstveni 64-bitni kod pohranjen u ROM-u. Najmanje značajno 8 bitovi ROM koda sadrže jednožični kod porodice DS18B20: 28h. Sledeći 48 bitovi sadrže jedinstveni serijski broj. Najznačajnije 8 bitovi sadrže cikličku provjeru redundancije (CRC) bajt, koji se računa od prvog 56 bitove ROM koda.
DS18B20 memorijska karta
Registar konfiguracije:
Slika 2
Byte 4 memorije sadrži registar konfiguracije, koji je organizovan kao što je prikazano na slici 2. Korisnik može postaviti rezoluciju konverzije DS18B20 koristeći bitove R0 i R1 ovdje kao što je prikazano u tabeli 2. Zadane postavke pri uključivanju za ove bitove su R0 = 1 i R1 = 1 (12-bitna rezolucija). Imajte na umu da postoji direktna veza između rezolucije i vremena konverzije. Bit 7 i bitovi 0 to 4 u registru konfiguracije su rezervirani za internu upotrebu uređaja i ne mogu se prepisati.
Table 2 Konfiguracija rezolucije termometra
CRC Generation
CRC bajt je dio DS18B20 64-bitnog ROM koda i nalazi se u 9. bajtu blokčića. ROM kod CRC se računa od prvog 56 bitova ROM koda i nalazi se u najznačajnijem bajtu ROM-a. CRC zapisnika se izračunava na osnovu podataka pohranjenih u bloku za pisanje, tako da se mijenja kada se promijene podaci u bloku za pisanje. CRC pruža hostu sabirnice metodu verifikacije podataka prilikom čitanja podataka sa DS18B20. Nakon provjere da su podaci ispravno pročitani, master sabirnice mora ponovo izračunati CRC iz primljenih podataka i zatim uporediti tu vrijednost sa ROM kodom CRC (za ROM čitanja) ili CRC blok za grebanje (za čitanje na tabli). Ako izračunati CRC odgovara pročitanom CRC-u, podaci su ispravno primljeni. Odluka da se uporede vrednosti CRC-a i da se nastavi je u potpunosti na diskreciji glavnog sabirnice. Unutar DS18B20 nema kola koje će spriječiti izvršenje naredbenog niza if:
DS18B20 CRC (ROM ili scratchpad) ne odgovara vrijednosti koju generiše master sabirnice.
Ekvivalentna polinomska funkcija za CRC je:
CRC = X8 + X5 + X4 + 1
Master sabirnice može ponovo izračunati CRC i uporediti ga sa CRC vrijednošću DS18B20 pomoću:
Generator polinoma je prikazan na slici 3. Kolo uključuje pomični registar i yihuo kapije, a bitovi registra pomaka su inicijalizirani na 0. Najmanji značajan bit ROM koda ili najmanji bitni bit bajta 0 u beležnici treba pomerati u registar pomeranja jedan po jedan. Nakon prebacivanja u bitu 56 iz ROM-a ili najznačajnijeg bita bajta 7 iz blokčića, polinomski generator će sadržavati ponovo izračunati CRC. Sledeći, 8-bitni ROM kod ili CRC signal u bloku za pisanje DS18B20 mora se prebaciti u kolo. U ovom trenutku, ako je ponovo izračunati CRC tačan, registrator pomaka će biti sve 0s.
Slika 3: CRC Generator
V. Pristup DS18B20:
Redoslijed pristupa DS18B20 je sljedeći:
Korak 1. Inicijalizacija;
Korak 2. ROM komanda (nakon čega slijedi svaka neophodna razmjena podataka);
Korak 3. Naredba funkcije DS18B20 (nakon čega slijedi svaka neophodna razmjena podataka);
Napomena: Ova sekvenca se prati svaki put kada se pristupi DS18B20, jer DS18B20 neće odgovoriti ako bilo koji korak u nizu nedostaje ili nije u redu. Izuzetak od ovog pravila je ROM za pretraživanje [F0h] i Pretraživanje alarma [Ech] komande. Nakon izdavanja ove dvije ROM komande, domaćin se mora vratiti na korak 1 u nizu.
(Gornji uvod je preveden iz službenog priručnika)
ROM komanda
1, Pročitaj ROM [33h]
2, Uparite ROM [55h]
3, Preskoči ROM [CCh]
4, Pretraga alarma [Ech]
DS18B20 Funkcijska komanda
1, Pretvori temperaturu [44h]
2, Write Scratchpad (Memorija) [4Eh]
3, Pročitajte Scratchpad (Memorija) [BEh]
4, Kopiraj Scratchpad (Memorija [48h]
5, Ponovo probudite E2 [B8h]
6, Read Power [B4h]
(Za detaljan opis gornjih naredbi, pogledajte službeni priručnik)
VI. Pristup DS18B20 Timing
Tokom procesa inicijalizacije, master sabirnice šalje reset impuls (TX) nizak nivo za najmanje 480µs povlačenjem 1-Wire magistrale. Onda, master sabirnice otpušta sabirnicu i ulazi u režim prijema (RX). Nakon puštanja autobusa, 5kΩ pull-up otpornik povlači 1-Wire sabirnicu visoko. Kada DS18B20 detektuje ovu rastuću ivicu, čeka 15µs do 60µs, a zatim šalje impuls prisutnosti povlačenjem 1-Wire sabirnice nisko za 60µs do 240µs.
Tajming inicijalizacije:
Postoje dvije vrste vremenskih slotova: “Napiši 1” vremenskih slotova i “Napiši 0” vremenski slots. Autobus koristi Write 1 vremenski interval za pisanje logike 1 na DS18B20 i Write 0 vremenski interval za pisanje logike 0 na DS18B20. Svi vremenski intervali pisanja moraju trajati najmanje 60 µs sa vremenom oporavka od najmanje 1 µs između pojedinačnih vremenskih intervala pisanja. Obje vrste vremenskih slotova za upis inicira se tako što master povlači 1-Wire sabirnicu na nisko (vidi sliku 14). Za generiranje Write 1 vremenski slot, nakon povlačenja 1-Wire sabirnice nisko, master sabirnice mora otpustiti 1-Wire sabirnicu unutar 15µs. Nakon puštanja autobusa, 5kΩ pull-up otpornik povlači sabirnicu visoko. Generiraj a
Pišite 0 vremenski slot, nakon povlačenja 1-Wire linije nisko, master sabirnice mora nastaviti da drži sabirnicu nisko za vrijeme trajanja vremenskog slota (najmanje 60µs). DS18B20 uzorkuje 1-Wire sabirnicu unutar prozora od 15µs do 60µs nakon što master započne vremenski slot za pisanje. Ako je sabirnica visoka tokom perioda uzorkovanja, a 1 je upisan u DS18B20. Ako je linija niska, a 0 je upisan u DS18B20.
Napomena: Vremenski slot je dio serijskog samomultipleksiranja informacija o vremenskom slotu posvećen jednom kanalu.
Slika 14 je kako slijedi:
Čitanje vremena:
DS18B20 može slati podatke hostu samo kada host izda vremenski slot za čitanje. Stoga, host mora generirati vremenski slot za čitanje odmah nakon izdavanja naredbe Read Memory [BEh] ili Read Power Supply [B4h] naredbu kako bi DS18B20 pružio potrebne podatke. Alternativno, host može generirati vremenski slot za čitanje nakon izdavanja Convert T [44h] ili Pozovite E2 [B8h] komandu da saznate status. Svi vremenski intervali čitanja moraju trajati najmanje 60µs sa minimalnim vremenom oporavka od 1µs između vremenskih slotova. Vremenski slot za čitanje inicira se tako što glavni povuče 1-Wire sabirnicu nisko kako bi je zadržao na niskom najmanje 1µs, a zatim otpusti sabirnicu (vidi sliku 14). Nakon što master započne vremenski slot za čitanje, DS18B20 će početi slati 1 ili 0 na sabirnici. DS18B20 šalje a 1 držeći autobus visoko i šalje a 0 povlačenjem autobusa nisko. Kada a 0 je poslano, DS18B20 oslobađa sabirnicu držeći je visoko. Vremenski slot završava i sabirnica se vraća u stanje visokog mirovanja pomoću pull-up otpornika.
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
















