Uvod v znanje o temperaturnem senzorju DS18B20
DS18B20 je pogosto uporabljen digitalni temperaturni senzor. Izvaja digitalne signale, ima značilnosti majhne velikosti, nizki stroški strojne opreme, Močna sposobnost proti interferenci, visoka natančnost, in se pogosto uporablja.
Uvod v temperaturni senzor DS18B20
Tehnične značilnosti:
①. Edinstven način enožičnega vmesnika. Ko je DS18B20 priključen na mikroprocesor, samo 1 žica je potrebna za dvosmerno komunikacijo med mikroprocesorjem in DS18B20.
②. Območje merjenja temperature -55 ℃~+125 ℃, inherentna napaka merjenja temperature 1 ℃.
③. Podpirajte funkcijo več točk omrežja. Več DS18B20 je mogoče povezati vzporedno na samo tri žice, in največ 8 lahko povežete vzporedno za izvedbo večtočkovnega merjenja temperature. Če je število preveliko, Napajalna napetost bo prenizka, kar ima za posledico nestabilen prenos signala.
④. Delovni napajalnik: 3.0~ 5.5V/DC (Podatkovno vrstico za parazitsko napajanje je mogoče uporabiti).
⑤. Med uporabo niso potrebne nobene periferne komponente.
⑥. Rezultati meritev se prenašajo serijsko v 9~12-bitni digitalni obliki.
⑦. Premer zaščitne cevi iz nerjavečega jekla je Φ6.
⑧. Primeren je za merjenje temperature različnih srednjih industrijskih cevovodov DN15~25, DN40~DN250 in oprema v ozkih prostorih.
⑨. Standardni montažni navoj M10X1, M12X1.5, G1/2” so neobvezne.
⑩. PVC kabel je priključen neposredno ali pa je priključena nemška kroglična razvodna omarica, kar je priročno za povezavo z drugo električno opremo.
DS18B20 branje in pisanje časa in princip merjenja temperature:
Načelo merjenja temperature DS18B20 je prikazano na sliki 1. Na frekvenco nihanja kristalnega oscilatorja z nizkim temperaturnim koeficientom na sliki temperatura malo vpliva, in se uporablja za ustvarjanje impulznega signala s fiksno frekvenco, ki se pošlje števcu 1. Nihajna frekvenca kristalnega oscilatorja z visokim temperaturnim koeficientom se bistveno spreminja s temperaturo, in ustvarjen signal se uporablja kot impulzni vhod števca 2. Števca 1 in temperaturni register sta prednastavljena na osnovno vrednost, ki ustreza -55 ℃. Števca 1 odšteje impulzni signal, ki ga ustvari kristalni oscilator z nizkim temperaturnim koeficientom. Ko je prednastavljena vrednost števca 1 se zmanjša na 0, Vrednost temperaturnega registra se bo povečala s 1, in prednastavitev števca 1 bo ponovno naloženo. Števca 1 znova zažene za štetje impulznega signala, ki ga ustvari kristalni oscilator z nizkim temperaturnim koeficientom, in cikel se nadaljuje do števca 2 šteje za 0, zaustavitev kopičenja vrednosti temperaturnega registra. V tem času, Vrednost v registru temperature je izmerjena temperatura. Akumulator naklona se uporablja za kompenzacijo in popravljanje nelinearnosti v postopku merjenja temperature, in njegov izhod se uporablja za odpravljanje prednastavljene vrednosti števca 1.
Slika 1 je naslednji:
2. Diagram povezave DS18B20 in MCU
3. DS18B20 PIN definicija:
DQ: Vnos/izhod podatkov. 1-žilni vmesnik z odprtim odtokom. Prav tako lahko zagotovi napajanje naprave, če se uporablja v parazitskem načinu napajanja VDD: pozitivno napajanje GND: električna ozemljitev 4. Uvod v notranjo analizo DS18B20:
Zgornja slika prikazuje blokovni diagram DS18B20, in 64-bitni ROM shrani edinstveno serijsko kodo naprave. Vmesni pomnilnik vsebuje 2 bajti temperaturnih registrov, ki hranijo digitalni izhod temperaturnega senzorja. Poleg tega, vmesni pomnilnik omogoča dostop do 1-bajtnih zgornjih in spodnjih prožilnih registrov alarma (TH in TL) in 1-bajtni konfiguracijski registri. Konfiguracijski register omogoča uporabniku, da nastavi ločljivost temperature na digitalno pretvorbo 9, 10, 11, oz 12 koščki. TH, TL, in konfiguracijski registri so nehlapni (EEPROM), tako bodo ohranili podatke, ko je naprava izklopljena. DS18B20 uporablja Maximov edinstveni 1-wire bus protokol, ki uporablja krmilni signal. Krmilna linija zahteva šibek vlečni upor, ker so vse naprave povezane z vodilom prek vrat s tremi stanji ali odprtega odtoka (DQ zatič v primeru DS18B20). V tem vodilnem sistemu je mikroprocesor (gospodar) uporablja edinstveno 64-bitno kodo za vsako napravo. Ker ima vsaka naprava edinstveno kodo, število naprav, ki jih je mogoče nasloviti na enem vodilu, je tako rekoč neomejeno.
Oblika registra temperature
Razmerje temperatura/podatki
Alarmni signal delovanja
Ko DS18B20 izvede pretvorbo temperature, primerja temperaturno vrednost z uporabniško definirano dvojno komplementno sprožilno vrednostjo alarma, shranjeno v 1-bajtnih registrih TH in TL. Bit predznaka označuje, ali je vrednost pozitivna ali negativna: pozitivno S=0, negativno S=1. Registra TH in TL sta nehlapna (EEPROM) in zato niso nestanovitni, ko je naprava izklopljena. Do TH in TL je mogoče dostopati prek bajtov 2 in 3 spomina.
Oblika registra TH in TL:
Shematski diagram napajanja DS18B20 z uporabo zunanjega napajanja
64-bitna laserska bralna pomnilniška koda:
Vsak DS18B20 vsebuje edinstveno 64-bitno kodo, shranjeno v ROM-u. Najmanj pomemben 8 biti kode ROM vsebujejo enožično kodo družine DS18B20: 28h. Naslednji 48 bitov vsebuje edinstveno serijsko številko. Najpomembnejši 8 biti vsebujejo ciklično preverjanje redundance (CRC) bajt, ki se izračuna od prvega 56 bitov kode ROM.
Pomnilniška karta DS18B20
Register konfiguracije:
Slika 2
Bajt 4 pomnilnika vsebuje konfiguracijski register, ki je organiziran, kot je prikazano na sliki 2. Uporabnik lahko nastavi ločljivost pretvorbe DS18B20 z uporabo bitov R0 in R1 tukaj, kot je prikazano v tabeli 2. Privzete vrednosti ob vklopu za te bite so R0 = 1 in R1 = 1 (12-bitna ločljivost). Upoštevajte, da obstaja neposredna povezava med ločljivostjo in časom pretvorbe. bit 7 in bitov 0 do 4 v konfiguracijskem registru so rezervirani za interno uporabo naprave in jih ni mogoče prepisati.
Miza 2 Konfiguracija ločljivosti termometra
Generacija CRC
Bajt CRC je del 64-bitne kode ROM DS18B20 in je na voljo v 9. bajtu beležke. Koda ROM CRC se izračuna od prve 56 bitov kode ROM in je vsebovan v najpomembnejšem bajtu ROM-a. CRC beležke se izračuna na podlagi podatkov, shranjenih v beležki, zato se spremeni, ko se spremenijo podatki v beležnici. CRC zagotavlja gostitelju vodila metodo preverjanja podatkov pri branju podatkov iz DS18B20. Po preverjanju, ali so bili podatki pravilno prebrani, glavni vodilo mora ponovno izračunati CRC iz prejetih podatkov in nato to vrednost primerjati s kodo ROM CRC (za branje ROM-a) ali zapisnik CRC (za branje beležke). Če se izračunani CRC ujema z prebranim CRC, podatki so bili prejeti pravilno. Odločitev za primerjavo vrednosti CRC in nadaljevanje je v celoti v lasti vodje vodila. V DS18B20 ni nobenega vezja, ki bi preprečilo izvedbo zaporedja ukazov, če:
DS18B20 CRC (ROM ali scratchpad) se ne ujema z vrednostjo, ki jo ustvari glavni vodilo.
Ekvivalentna polinomska funkcija za CRC je:
CRC = X8 + X5 + X4 + 1
Glavni vodilo lahko ponovno izračuna CRC in ga primerja z vrednostjo CRC DS18B20 tako, da:
Polinomski generator je prikazan na sliki 3. Vezje vključuje preklopni register in vrata yihuo, in biti premikalnega registra se inicializirajo na 0. Najmanj pomemben bit kode ROM ali najmanj pomemben bit bajta 0 v beležnici je treba eno za drugo premakniti v premični register. Po prestavitvi v bit 56 iz ROM-a ali najpomembnejšega bita bajta 7 iz beležke, polinomski generator bo vseboval ponovno izračunan CRC. Naprej, 8-bitno kodo ROM ali signal CRC v beležnici DS18B20 je treba premakniti v vezje. Na tej točki, če je preračunani CRC pravilen, premični register bo vse 0s.
Slika 3: Generator CRC
V. Dostop do DS18B20:
Zaporedje dostopa do DS18B20 je naslednje:
korak 1. Inicializacija;
korak 2. ukaz ROM (sledi vsa potrebna izmenjava podatkov);
korak 3. Funkcijski ukaz DS18B20 (sledi vsa potrebna izmenjava podatkov);
Opomba: To zaporedje se izvede ob vsakem dostopu do DS18B20, ker se DS18B20 ne bo odzval, če kateri koli korak v zaporedju manjka ali ni v redu. Izjema od tega pravila je Search ROM [F0h] in iskanje alarma [Ech] ukazi. Po izdaji teh dveh ukazov ROM, gostitelj se mora vrniti na korak 1 v zaporedju.
(Zgornji uvod je preveden iz uradnega priročnika)
Ukaz ROM
1, Preberite ROM [33h]
2, Ujemaj ROM [55h]
3, Ladijska soba [CCh]
4, Iskanje alarma [Ech]
DS18B20 Funkcijski ukaz
1, Pretvori temperaturo [44h]
2, Pišite Beležnica (Spomin) [4Eh]
3, Preberite Scratchpad (Spomin) [BEh]
4, Kopiraj Scratchpad (Spomin [48h]
5, Ponovno prebudi E2 [B8h]
6, Preberite moč [B4h]
(Za podroben opis zgornjih ukazov, glejte uradni priročnik)
Vi. Dostop do DS18B20 Timing
Med postopkom inicializacije, glavni vodilo pošlje ponastavitveni impulz (TX) nizko raven za vsaj 480 µs, tako da povlečete vodilo 1-Wire. Potem, glavni vodilo sprosti vodilo in preide v sprejemni način (RX). Po sprostitvi avtobusa, vlečni upor 5kΩ potegne vodilo 1-Wire visoko. Ko DS18B20 zazna ta naraščajoči rob, čaka od 15 µs do 60 µs in nato pošlje impulz prisotnosti tako, da potegne vodilo 1-Wire nizko za 60 µs do 240 µs.
Čas inicializacije:
Obstajata dve vrsti časovnih rež za pisanje: “Napiši 1” časovne reže in “Napišite 0” časovne reže. Avtobus uporablja Write 1 čas za pisanje logike 1 na DS18B20 in Write 0 čas za pisanje logike 0 na DS18B20. Vse časovne reže za pisanje morajo trajati vsaj 60 µs s časom obnovitve vsaj 1 µs med posameznimi časovnimi režami za pisanje.. Obe vrsti pisalnih časovnih rež sproži glavna enota, ki potegne vodilo 1-Wire nizko (glej sliko 14). Za ustvarjanje Write 1 časovni interval, po potegu vodila 1-Wire nizko, glavni vodilo mora sprostiti vodilo 1-Wire v 15 µs. Po sprostitvi avtobusa, vlečni upor 5kΩ potegne vodilo visoko. Ustvari a
Pisati 0 časovni interval, po tem, ko ste napeljavo 1-Wire spustili nizko, glavni vodilo mora še naprej vzdrževati vodilo nizko v času trajanja časovne reže (vsaj 60µs). DS18B20 vzorči vodilo 1-Wire znotraj okna od 15 µs do 60 µs po tem, ko glavni sproži časovno režo za pisanje. Če je vodilo med oknom vzorčenja visoko, a 1 je zapisan na DS18B20. Če je linija nizka, a 0 je zapisan na DS18B20.
Opomba: Časovna reža je del serijskega samomultipleksiranja informacij o časovni reži, namenjen posameznemu kanalu..
Slika 14 je naslednji:
Preberite časovno režo:
DS18B20 lahko pošlje podatke gostitelju le, ko gostitelj izda časovno režo za branje. Zato, gostitelj mora ustvariti časovno režo za branje takoj po izdaji ukaza za branje pomnilnika [BEh] ali napajalnik Read [B4h] ukaz, da DS18B20 zagotovi zahtevane podatke. Alternativno, gostitelj lahko ustvari časovno režo za branje po izdaji Convert T [44h] ali Odpoklic E2 [B8h] ukaz, da ugotovite stanje. Vse časovne reže za branje morajo trajati vsaj 60 µs z minimalnim obnovitvenim časom 1 µs med časovnimi režami. Časovno režo za branje sproži glavna enota, ki potegne vodilo 1-Wire nizko, da ga zadrži nizko vsaj 1 µ, in nato sprosti vodilo (glej sliko 14). Potem ko glavni sproži časovno režo za branje, DS18B20 bo začel pošiljati 1 ali 0 na vodilo. DS18B20 pošlje a 1 tako, da drži avtobus visoko in pošlje a 0 z nizkim potegom avtobusa. Ko a 0 je poslano, DS18B20 sprosti vodilo tako, da drži vodilo visoko. Časovna reža se konča in vodilo potegne nazaj v stanje visokega prostega teka s pomočjo vlečnega upora.
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
















