Introduzione alla conoscenza del sensore di temperatura DS18B20
DS18B20 è un sensore di temperatura digitale comunemente usato. Emette segnali digitali, ha le caratteristiche di piccola dimensione, basso sovraccarico hardware, forte capacità anti-interferenza, alta precisione, ed è ampiamente utilizzato.
Introduzione al sensore di temperatura DS18B20
Caratteristiche Tecniche:
①. Modalità di interfaccia unica a filo singolo. Quando DS18B20 è collegato a un microprocessore, soltanto 1 è necessario un cavo per realizzare la comunicazione bidirezionale tra il microprocessore e DS18B20.
②. Intervallo di misurazione della temperatura: -55 ℃ ~ + 125 ℃, errore intrinseco di misurazione della temperatura 1 ℃.
③. Supportare la funzione di networking multi-punto. Più DS18B20 può essere collegato in parallelo con gli unici tre fili, e un massimo di 8 può essere collegato in parallelo per realizzare la misurazione della temperatura multi-punto. Se il numero è troppo grande, La tensione di alimentazione sarà troppo bassa, con conseguente trasmissione del segnale instabile.
④. Alimentazione di lavoro: 3.0~ 5,5 V/DC (L'alimentazione parassita della linea di dati può essere utilizzata).
⑤. Non sono richiesti componenti periferici durante l'uso.
⑥. I risultati della misurazione vengono trasmessi in serie in formato digitale a 9~12 bit.
⑦. Il diametro del tubo protettivo in acciaio inossidabile è φ6.
⑧. È adatto per la misurazione della temperatura di varie tubazioni industriali di medie dimensioni da DN15~25, DN40~DN250 e apparecchiature in spazi ristretti.
⑨. Filettature di installazione standard M10X1, M12X1.5, G1/2” sono opzionali.
⑩. Il cavo in PVC è collegato direttamente o è collegata una scatola di giunzione a sfera tedesca, che è conveniente per il collegamento con altre apparecchiature elettriche.
DS18B20 legge e scrive il principio di misurazione dei tempi e della temperatura:
Il principio di misurazione della temperatura DS18B20 è mostrato in Figura 1. La frequenza di oscillazione dell'oscillatore a cristallo a basso coefficiente di temperatura nella figura è poco influenzata dalla temperatura, e viene utilizzato per generare un segnale di impulso a frequenza fissa da inviare al contrario 1. La frequenza di oscillazione dell'oscillatore a cristallo ad alto coefficiente di temperatura cambia in modo significativo con la temperatura, e il segnale generato viene utilizzato come input di impulsi di contatore 2. Contatore 1 e il registro della temperatura sono preimpostati su un valore base corrispondente a -55℃. Contatore 1 sottrae il segnale di impulso generato dall'oscillatore a cristallo a basso coefficiente di temperatura. Quando il valore preimpostato del contatore 1 è ridotto a 0, Il valore del registro di temperatura sarà aumentato di 1, e la preimpostazione del contatore 1 sarà ricaricato. Contatore 1 ricomincia a contare il segnale di impulso generato dall'oscillatore a cristallo a basso coefficiente di temperatura, e il ciclo continua fino al contatore 2 conta a 0, arrestando l'accumulo del valore del registro della temperatura. In questo momento, Il valore nel registro di temperatura è la temperatura misurata. L'accumulatore di pendenza viene utilizzato per compensare e correggere la non linearità nel processo di misurazione della temperatura, e il suo output viene utilizzato per correggere il valore preimpostato del contatore 1.
Figura 1 è il seguente:
2. Schema di collegamento DS18B20 e MCU
3. Definizione pin DS18B20:
Dq: Ingresso/uscita dati. Interfaccia a 1 filo con drain aperto. Può anche fornire alimentazione al dispositivo quando utilizzato in modalità di alimentazione parassita VDD: GND positivo dell'alimentazione: terra di potenza 4. Introduzione all'analisi interna DS18B20:
La figura sopra mostra lo schema a blocchi del DS18B20, e la ROM a 64 bit memorizza il codice seriale univoco del dispositivo. La memoria buffer contiene 2 byte di registri di temperatura che memorizzano l'uscita digitale del sensore di temperatura. Inoltre, la memoria buffer fornisce l'accesso ai registri di attivazione dell'allarme superiore e inferiore da 1 byte (TH e TL) e registri di configurazione da 1 byte. Il registro di configurazione consente all'utente di impostare la risoluzione della temperatura in conversione digitale 9, 10, 11, O 12 bit. TH, TL, e i registri di configurazione non sono volatili (EEPROM), quindi conserveranno i dati quando il dispositivo è spento. DS18B20 utilizza l'esclusivo protocollo bus a 1 filo di Maxim, che utilizza un segnale di controllo. La linea di controllo richiede una resistenza pull-up debole poiché tutti i dispositivi sono collegati al bus tramite una porta a 3 stati o a drain aperto (Pin DQ nel caso del DS18B20). In questo sistema bus il microprocessore (maestro) utilizza un codice univoco a 64 bit per ciascun dispositivo. Perché ogni dispositivo ha un codice univoco, il numero di dispositivi indirizzabili su un bus è praticamente illimitato.
Formato del registro della temperatura
Relazione temperatura/dati
Segnale di allarme di funzionamento
Dopo che il DS18B20 esegue una conversione della temperatura, confronta il valore della temperatura con il valore di attivazione dell'allarme in complemento a due definito dall'utente e memorizzato nei registri TH e TL a 1 byte. Il bit di segno indica se il valore è positivo o negativo: positivo S=0, negativo S=1. I registri TH e TL non sono volatili (EEPROM) e quindi non sono volatili quando il dispositivo è spento. È possibile accedere a TH e TL tramite byte 2 E 3 della memoria.
Formato registro TH e TL:
Diagramma schematico dell'alimentazione del DS18B20 utilizzando un alimentatore esterno
64-codice di memoria di sola lettura bit laser:
Ogni DS18B20 contiene un codice univoco a 64 bit memorizzato nella ROM. Il meno significativo 8 i bit del codice ROM contengono il codice della famiglia a filo singolo del DS18B20: 28H. Il prossimo 48 i bit contengono un numero di serie univoco. Il più significativo 8 i bit contengono un controllo di ridondanza ciclico (CRC) byte, che viene calcolato dal primo 56 bit del codice ROM.
Mappa della memoria DS18B20
Registro di configurazione:
Figura 2
Byte 4 della memoria contiene il registro di configurazione, che è organizzato come mostrato in Figura 2. L'utente può impostare qui la risoluzione di conversione del DS18B20 utilizzando i bit R0 e R1 come mostrato nella tabella 2. Le impostazioni predefinite all'accensione per questi bit sono R0 = 1 e R1 = 1 (12-risoluzione in bit). Si noti che esiste una relazione diretta tra risoluzione e tempo di conversione. Morso 7 e bit 0 A 4 nel registro di configurazione sono riservati per uso interno del dispositivo e non possono essere sovrascritti.
Tavolo 2 Configurazione della risoluzione del termometro
Generazione CRC
Il byte CRC fa parte del codice ROM DS18B20 a 64 bit ed è fornito nel 9° byte dello scratchpad. Il codice ROM CRC viene calcolato dal primo 56 bit del codice ROM ed è contenuto nel byte più significativo della ROM. Il CRC dello Scratchpad viene calcolato in base ai dati memorizzati nello Scratchpad, quindi cambia quando cambiano i dati nello scratchpad. Il CRC fornisce all'host del bus un metodo di verifica dei dati durante la lettura dei dati dal DS18B20. Dopo aver verificato che i dati siano stati letti correttamente, il master del bus deve ricalcolare il CRC dai dati ricevuti e quindi confrontare tale valore con il codice ROM CRC (per le letture ROM) o il CRC del blocco appunti (per le letture degli appunti). Se il CRC calcolato corrisponde al CRC letto, i dati sono stati ricevuti correttamente. La decisione di confrontare i valori CRC e procedere è interamente a discrezione del capoautobus. Non è presente alcun circuito all'interno del DS18B20 che impedisca l'esecuzione di una sequenza di comandi se:
Il CRC DS18B20 (ROM o blocco note) non corrisponde al valore generato dal bus master.
La funzione polinomiale equivalente per il CRC è:
CRC = X8 + X5 + X4 + 1
Il master del bus può ricalcolare il CRC e confrontarlo con il valore CRC del DS18B20:
Il generatore polinomiale è mostrato in Figura 3. Il circuito include un registro a scorrimento e porte Yihuo, e i bit del registro a scorrimento vengono inizializzati su 0. Il bit meno significativo del codice ROM o il bit meno significativo del byte 0 nello scratchpad dovrebbero essere spostati nel registro a scorrimento uno alla volta. Dopo essersi spostato un po' 56 dalla ROM o dal bit di byte più significativo 7 dal blocco appunti, il generatore di polinomi conterrà il CRC ricalcolato. Prossimo, il codice ROM a 8 bit o il segnale CRC nello scratchpad DS18B20 devono essere spostati nel circuito. A questo punto, se il CRC ricalcolato è corretto, il registro a scorrimento sarà tutto 0.
Figura 3: Generatore CRC
V. Accesso al DS18B20:
La sequenza per accedere al DS18B20 è la seguente:
Fare un passo 1. Inizializzazione;
Fare un passo 2. comando ROM (seguito da ogni necessario scambio di dati);
Fare un passo 3. Comando funzione DS18B20 (seguito da ogni necessario scambio di dati);
Nota: Questa sequenza viene seguita ogni volta che si accede al DS18B20, perché il DS18B20 non risponderà se qualche passaggio nella sequenza manca o non funziona. L'eccezione a questa regola è la ROM di ricerca [F0h] e Ricerca allarmi [Ech] comandi. Dopo aver emesso questi due comandi ROM, l'ospite deve tornare al passo 1 in sequenza.
(L'introduzione di cui sopra è tradotta dal manuale ufficiale)
Comando ROM
1, Leggi Rom [33H]
2, Corrispondenza ROM [55H]
3, Camera delle navi [CCh]
4, Ricerca allarme [Ech]
Comando funzione DS18B20
1, Converti temperatura [44H]
2, Scrivi scratchpad (Memoria) [4Eh]
3, Leggi ScratchPad (Memoria) [BEh]
4, Copia Scratchpad (Memoria [48H]
5, Riattivare E2 [B8h]
6, Leggi Potere [B4h]
(Per una descrizione dettagliata dei comandi precedenti, vedere il manuale ufficiale)
VI. Accedi alla sincronizzazione DS18B20
Durante il processo di inizializzazione, il master del bus invia un impulso di reset (Texas) livello basso per almeno 480μs tirando il bus 1-Wire. Poi, il master del bus rilascia il bus ed entra in modalità di ricezione (RX). Dopo aver rilasciato l'autobus, la resistenza di pull-up da 5kΩ porta in alto il bus 1-Wire. Quando il DS18B20 rileva questo fronte di salita, attende da 15μs a 60μs e quindi invia un impulso di presenza abbassando il bus 1-Wire da 60μs a 240μs.
Tempi di inizializzazione:
Esistono due tipi di intervalli di tempo di scrittura: “Scrivi 1” fasce orarie e “Scrivi 0” fasce orarie. Il bus utilizza un Write 1 intervallo di tempo per scrivere una logica 1 al DS18B20 e una scrittura 0 intervallo di tempo per scrivere una logica 0 al DS18B20. Tutti gli intervalli di tempo di scrittura devono avere una durata di almeno 60 µs con un tempo di recupero di almeno 1 µs tra i singoli intervalli di tempo di scrittura. Entrambi i tipi di intervalli di tempo di scrittura vengono avviati dal master che abbassa il bus 1-Wire (vedere la figura 14). Per generare un Write 1 fascia oraria, dopo aver abbassato il bus 1-Wire, il bus master deve rilasciare il bus 1-Wire entro 15μs. Dopo aver rilasciato l'autobus, la resistenza di pull-up da 5kΩ porta il bus in alto. Genera un
Scrivere 0 fascia oraria, dopo aver abbassato la linea 1-Wire, il bus master dovrà continuare a tenere il bus basso per tutta la durata della fascia oraria (almeno 60μs). Il DS18B20 campiona il bus 1-Wire in una finestra compresa tra 15 µs e 60 µs dopo che il master ha avviato l'intervallo di tempo di scrittura. Se il bus è alto durante la finestra di campionamento, UN 1 è scritto sul DS18B20. Se la linea è bassa, UN 0 è scritto sul DS18B20.
Nota: Il timeslot è una porzione dell'automultiplexing seriale delle informazioni del time slot dedicate a un singolo canale.
Figura 14 è il seguente:

Gli slot temporali di scrittura DS18B20 sono guidati dall'host per portare il bus 1-Wire a un livello basso
Leggi fascia oraria:
Il DS18B20 può inviare dati all'host solo quando l'host emette un intervallo di tempo di lettura. Perciò, l'host deve generare uno slot temporale di lettura immediatamente dopo aver emesso un comando di lettura della memoria [BEh] o un alimentatore di lettura [B4h] comando affinché il DS18B20 fornisca i dati richiesti. In alternativa, l'host può generare uno slot temporale di lettura dopo aver emesso un Convert T [44H] o Richiama E2 [B8h] comando per scoprire lo stato. Tutti gli intervalli di tempo di lettura devono durare almeno 60 µs con un tempo di recupero minimo di 1 µs tra gli intervalli di tempo. Un time slot di lettura viene avviato dal master che abbassa il bus 1-Wire per mantenerlo basso per almeno 1 µs e quindi rilascia il bus (vedere la figura 14). Dopo che il master avvia un intervallo di tempo di lettura, il DS18B20 inizierà a inviare 1 o 0 sul bus. Il DS18B20 invia un 1 tenendo alto il bus e invia a 0 abbassando l'autobus. Quando a 0 viene inviato, il DS18B20 rilascia il bus tenendolo alto. L'intervallo di tempo termina e il bus viene riportato allo stato di riposo alto dal resistore di pull-up.
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















