Tehnologia senzorului de temperatură

Senzor de temperatură DS18B20 conectat la MCU

DS18B20 Introducere cunoștințe despre senzorul de temperatură
DS18B20 este un senzor de temperatură digitală utilizat frecvent. Produce semnale digitale, are caracteristicile de dimensiuni mici, Hardware scăzut, Abilitate puternică anti-interferență, Precizie înaltă, și este utilizat pe scară largă.

Sonda digitală de temperatură DS18B20 oferă 9 la 12 pic

Sonda digitală de temperatură DS18B20 oferă 9 la 12 pic

Sondă senzor DS18B20 rezistentă la apă

Sondă senzor DS18B20 rezistentă la apă

Senzor TPE Overmolding IP68 impermeabil DS18B20

Senzor TPE Overmolding IP68 impermeabil DS18B20

Introducere în senzorul de temperatură DS18B20
Caracteristici tehnice:
①. Mod unic de interfață cu un singur fir. Când DS18B20 este conectat la un microprocesor, numai 1 cablul este necesar pentru a realiza o comunicare bidirecțională între microprocesor și DS18B20.
②. Interval de măsurare a temperaturii -55℃~+125℃, eroare inerentă de măsurare a temperaturii 1℃.
③. Sprijină funcția de rețea în mai multe puncte. Mai multe DS18B20 pot fi conectate în paralel pe doar trei fire, si maxim de 8 poate fi conectat în paralel pentru a realiza măsurarea temperaturii în mai multe puncte. Dacă numărul este prea mare, tensiunea de alimentare va fi prea scăzută, rezultând o transmisie instabilă a semnalului.
④. Sursa de alimentare de lucru: 3.0~5,5 V/DC (poate fi utilizată sursa de alimentare parazită a liniei de date).
⑤. Nu sunt necesare componente periferice în timpul utilizării.
⑥. Rezultatele măsurătorilor sunt transmise în serie în formă digitală de 9 ~ 12 biți.
⑦. Diametrul tubului de protecție din oțel inoxidabil este Φ6.
⑧. Este potrivit pentru măsurarea temperaturii diferitelor conducte industriale medii de DN15 ~ 25, DN40~DN250 și echipamente în spații înguste.
⑨. Filet de instalare standard M10X1, M12X1,5, G1/2” sunt opționale.
⑩. Cablul din PVC este conectat direct sau cutia de joncțiune germană de tip bilă este conectată, care este convenabil pentru conectarea cu alte echipamente electrice.

DS18B20 citire și scriere principiul de măsurare a timpului și a temperaturii:
Principiul de măsurare a temperaturii DS18B20 este prezentat în figură 1. Frecvența de oscilație a oscilatorului cu cristal cu coeficient de temperatură scăzut din figură este puțin afectată de temperatură, și este folosit pentru a genera un semnal de impuls de frecvență fixă ​​care să fie trimis la contor 1. Frecvența de oscilație a oscilatorului cu cristal cu coeficient de temperatură ridicat se modifică semnificativ cu temperatura, iar semnalul generat este folosit ca intrare de impuls a contorului 2. Contra 1 iar registrul de temperatură sunt presetate la o valoare de bază corespunzătoare cu -55℃. Contra 1 scade semnalul de impuls generat de oscilatorul cu cristal cu coeficient de temperatură scăzut. Când valoarea presetată a contorului 1 se reduce la 0, valoarea registrului de temperatură va fi mărită cu 1, și presetarea contorului 1 va fi reîncărcat. Contra 1 repornește pentru a număra semnalul de impuls generat de oscilatorul cu cristal cu coeficient de temperatură scăzut, iar ciclul continuă până la contor 2 conteaza pana la 0, oprirea acumulării valorii registrului de temperatură. În acest moment, valoarea din registrul de temperatură este temperatura măsurată. Acumulatorul de pantă este utilizat pentru a compensa și corecta neliniaritatea în procesul de măsurare a temperaturii, iar ieșirea sa este folosită pentru a corecta valoarea presetată a contorului 1.

Figura 1 este după cum urmează:

Schema circuitului de conectare DS18B20 și MCU

Schema circuitului de conectare DS18B20 și MCU

2. Schema de conectare DS18B20 și MCU

Definirea parametrului pin DS18B20

Definirea parametrului pin DS18B20

3. Definiție PIN DS18B20:

DQ: Intrare/ieșire date. Deschideți interfața cu 1 fir de scurgere. De asemenea, poate furniza energie dispozitivului atunci când este utilizat în modul de putere parazită VDD: alimentare pozitivă GND: masă de putere 4. DS18B20 introducere analiză internă:

Analiza și introducerea structurii interne DS18B20

Analiza și introducerea structurii interne DS18B20

Figura de mai sus prezintă schema bloc a DS18B20, iar ROM-ul pe 64 de biți stochează codul serial unic al dispozitivului. Memoria tampon conține 2 octeți de registre de temperatură care stochează ieșirea digitală a senzorului de temperatură. în plus, memoria tampon oferă acces la registrele de declanșare a alarmei superioare și inferioare de 1 octet (TH și TL) și registre de configurare de 1 octet. Registrul de configurare permite utilizatorului să seteze rezoluția temperaturii la conversia digitală la 9, 10, 11, sau 12 biți. TH, TL, iar registrele de configurare sunt nevolatile (EEPROM), astfel încât vor păstra datele atunci când dispozitivul este oprit. DS18B20 utilizează protocolul unic de magistrală cu 1 fir Maxim, care utilizează un semnal de control. Linia de control necesită un rezistor de tragere slab, deoarece toate dispozitivele sunt conectate la magistrală printr-un port cu 3 stări sau un port deschis. (Pin DQ în cazul DS18B20). În acest sistem de magistrală microprocesorul (maestru) folosește un cod unic de 64 de biți pentru fiecare dispozitiv. Pentru că fiecare dispozitiv are un cod unic, numărul de dispozitive care pot fi adresate pe o singură magistrală este practic nelimitat.

Format de registru de temperatură

Diagrama formatului registrului de temperatură DS18B20

Diagrama formatului registrului de temperatură DS18B20

Relația temperatură/date

DS18B20 Relația temperatură-date

DS18B20 Relația temperatură-date

Semnal de alarmă de funcționare

După ce DS18B20 efectuează o conversie a temperaturii, it compares the temperature value to the user-defined two’s complement alarm trigger value stored in the 1-byte TH and TL registers. The sign bit indicates whether the value is positive or negative: positive S=0, negative S=1. The TH and TL registers are non-volatile (EEPROM) and therefore are not volatile when the device is powered off. TH and TL can be accessed through bytes 2 și 3 of the memory.
TH and TL register format:

DS18B20 Configuration Registers

DS18B20 Configuration Registers

Schematic diagram of powering the DS18B20 using an external power supply

Schematic diagram of using external power supply to power DS18B20

Schematic diagram of using external power supply to power DS18B20

64-bit laser read-only memory code:

DS18B20 64-bit laser read-only memory code

DS18B20 64-bit laser read-only memory code

Each DS18B20 contains a unique 64-bit code stored in ROM. The least significant 8 biții din codul ROM conțin codul familiei cu un singur fir al DS18B20: 28h. Următorul 48 biții conțin un număr de serie unic. Cel mai semnificativ 8 biții conțin o verificare a redundanței ciclice (CRC) octet, care se calculează din prima 56 biți din codul ROM.

Harta memoriei DS18B20

Harta memoriei DS18B20

Harta memoriei DS18B20

Registrul de configurare:

Figura 2

DS18B20 Configuration Registers

DS18B20 Configuration Registers

octet 4 din memorie conţine registrul de configurare, care este organizat așa cum se arată în figura 2. Utilizatorul poate seta rezoluția de conversie a DS18B20 folosind biții R0 și R1 aici, așa cum se arată în tabel 2. Valorile implicite de pornire pentru acești biți sunt R0 = 1 și R1 = 1 (12-rezoluție de biți). Rețineți că există o relație directă între rezoluție și timpul de conversie. Pic 7 și biți 0 la 4 în registrul de configurare sunt rezervate pentru uz intern al dispozitivului și nu pot fi suprascrise.

Masă 2 Configurația rezoluției termometrului

Configurarea rezoluției termometrului DS18B20

Configurarea rezoluției termometrului DS18B20

Generația CRC

Octetul CRC face parte din codul ROM DS18B20 pe 64 de biți și este furnizat în al 9-lea octet al scratchpad. Codul ROM CRC este calculat din primul 56 biți ai codului ROM și este conținut în cel mai semnificativ octet al ROM. Scratchpad CRC este calculat pe baza datelor stocate în scratchpad, deci se schimbă atunci când se schimbă datele din scratchpad. CRC oferă gazdei magistralei o metodă de verificare a datelor la citirea datelor de la DS18B20. După verificarea faptului că datele au fost citite corect, bus master trebuie să recalculeze CRC din datele primite și apoi să compare acea valoare cu codul ROM CRC (pentru citirile ROM-ului) sau scratchpad CRC (pentru citirile scratchpad). Dacă CRC calculat se potrivește cu CRC citit, datele au fost primite corect. Decizia de a compara valorile CRC și de a continua este în totalitate la latitudinea conducătorului autobuzului. Nu există circuite în interiorul DS18B20 care să împiedice executarea unei secvențe de comenzi dacă:
DS18B20 CRC (ROM sau scratchpad) nu se potrivește cu valoarea generată de bus master.
Funcția polinomială echivalentă pentru CRC este:
CRC = X8 + X5 + X4 + 1
Maestrul magistralei poate recalcula CRC și îl poate compara cu valoarea CRC a DS18B20 prin:
Generatorul de polinomii este prezentat în figura 3. Circuitul include un registru de deplasare și porți yihuo, iar biții registrului de deplasare sunt inițializați la 0. Bitul cel mai puțin semnificativ din codul ROM sau bitul cel mai puțin semnificativ de octet 0 în scratchpad ar trebui să fie mutat în registrul de deplasare pe rând. După schimbarea în bit 56 din ROM sau cel mai semnificativ bit de octet 7 de la zgârietură, generatorul de polinom va conține CRC recalculat. Următorul, codul ROM de 8 biți sau semnalul CRC din scratchpad DS18B20 trebuie mutat în circuit. În acest moment, dacă CRC recalculat este corect, registrul de deplasare va fi toate 0.

Figura 3: Generator CRC

Diagrama procesului generatorului CRC DS18B20

Diagrama procesului generatorului CRC DS18B20

V. Accesarea DS18B20:
Secvența de accesare a DS18B20 este următoarea:
Pas 1. Inițializare;

Pas 2. Comanda ROM (urmată de orice schimb de date necesar);

Pas 3. Comanda funcției DS18B20 (urmată de orice schimb de date necesar);

Nota: Această secvență este urmată de fiecare dată când este accesat DS18B20, deoarece DS18B20 nu va răspunde dacă lipsește vreun pas din secvență sau nu este în ordine. Excepția de la această regulă este ROM-ul de căutare [F0h] și Căutare alarmă [Ech] comenzi. După emiterea acestor două comenzi ROM, gazda trebuie să revină la pas 1 în succesiune.
(Introducerea de mai sus este tradusă din manualul oficial)

Comanda ROM
1, Citiți ROM-ul [33h]
2, Se potrivește ROM [55h]
3, Sari peste ROM [CCh]
4, Căutare alarmă [Ech]

DS18B20 Funcție Comandă
1, Convertiți temperatura [44h]
2, Scrie Scratchpad (Memorie) [4Eh]
3, Citiți Scratchpad (Memorie) [BEh]
4, Copiați Scratchpad (Memorie [48h]
5, Re-treziți E2 [B8h]
6, Citiți Putere [B4h]

(Pentru descrierea detaliată a comenzilor de mai sus, vezi manualul oficial)

VI. Acces DS18B20 Timing
În timpul procesului de inițializare, masterul magistralei trimite un impuls de resetare (TX) nivel scăzut pentru cel puțin 480µs prin tragerea magistralei 1-Wire. Apoi, bus master eliberează magistrala și intră în modul de recepție (RX). După eliberarea autobuzului, rezistența de tragere de 5kΩ trage magistrala cu 1 fir în sus. Când DS18B20 detectează această margine ascendentă, așteaptă 15 µs până la 60 µs și apoi trimite un impuls de prezență trăgând magistrala cu 1 fir la nivel scăzut timp de 60 µs până la 240 µs.

Timpul de inițializare:

Există două tipuri de intervale de timp de scriere: “Scrie 1” intervale de timp și “Scrie 0” intervale de timp. Autobuzul folosește un Write 1 interval de timp pentru a scrie o logică 1 la DS18B20 și un Write 0 interval de timp pentru a scrie o logică 0 la DS18B20. Toate intervalele de timp de scriere trebuie să aibă o durată de cel puțin 60 µs, cu un timp de recuperare de cel puțin 1 µs între intervalele de timp de scriere individuale. Ambele tipuri de intervale de timp de scriere sunt inițiate de către master care trage magistrala 1-Wire în jos (vezi figura 14). Pentru a genera o scriere 1 interval orar, după tragerea magistralei 1-Wire jos, magistrala magistrală trebuie să elibereze magistrala 1-Wire în 15µs. După eliberarea autobuzului, rezistența de tracțiune de 5kΩ trage magistrala sus. Generați a
Scrie 0 interval orar, după ce a tras linia 1-Fir jos, comandantul autobuzului trebuie să continue să țină autobuzul scăzut pe toată durata intervalului de timp (cel puțin 60µs). DS18B20 prelevează magistrala cu 1 fir într-o fereastră de 15 µs până la 60 µs după ce masterul inițiază intervalul de timp de scriere. Dacă autobuzul este ridicat în timpul ferestrei de eșantionare, o 1 este scris pe DS18B20. Dacă linia este scăzută, o 0 este scris pe DS18B20.
Nota: Intervalul de timp este o porțiune a auto-multiplexării în serie a informațiilor intervalului de timp dedicat unui singur canal.
Figura 14 este după cum urmează:

Intervalele de timp de scriere DS18B20 sunt conduse de gazdă pentru a trage magistrala cu 1 fir la nivel scăzut

Intervalele de timp de scriere DS18B20 sunt conduse de gazdă pentru a trage magistrala cu 1 fir la nivel scăzut

Citiți intervalul orar:
DS18B20 poate trimite date către gazdă numai atunci când gazda emite un interval de timp de citire. Prin urmare, gazda trebuie să genereze un interval de timp de citire imediat după emiterea unei comenzi de citire a memoriei [BEh] sau o sursă de alimentare Read [B4h] comanda pentru ca DS18B20 să furnizeze datele necesare. Alternativ, gazda poate genera un interval de timp de citire după emiterea unui Convert T [44h] sau Rechemați E2 [B8h] comanda pentru a afla starea. Toate intervalele de timp citite trebuie să aibă o durată de cel puțin 60 µs, cu un timp de recuperare minim de 1 µs între intervale de timp. Un interval de timp de citire este inițiat de către master trăgând magistrala 1-Wire jos pentru a o menține scăzut timp de cel puțin 1 µs și apoi eliberând magistrala (vezi figura 14). După ce masterul inițiază un interval de timp de citire, DS18B20 va începe să trimită fie 1, fie 0 pe autobuz. DS18B20 trimite un 1 ținând autobuzul sus și trimite a 0 trăgând autobuzul jos. Când a 0 este trimis, DS18B20 eliberează autobuzul ținând autobuzul sus. Intervalul de timp se termină și magistrala este trasă înapoi la starea de repaus ridicat de către rezistența de tragere.

DS18B20 Citire detaliată a gazdei 1 Slot orar

DS18B20 Citire detaliată a gazdei 1 Slot orar

DS18B20 Citire gazdă recomandată 1 interval orar

DS18B20 Citire gazdă recomandată 1 interval orar