Introducción al sensor de temperatura digital DS18B20 DS18B20
1. Características principales de DS18B20
1.1 Adaptable a un rango de voltaje más amplio, rango de voltaje: 3,0 ~ 5,5 V y puede alimentarse mediante la línea de datos en modo de energía parásita. /p>
1.2. Modo de interfaz única de una sola línea Cuando DS18B20 está conectado al microprocesador, solo necesita una línea de puerto para lograr una comunicación bidireccional entre el microprocesador y DS18B20.
1.3. admite la función de red multipunto, se pueden conectar varios DS18B20 en paralelo en las únicas tres líneas para lograr una medición de temperatura multipunto en la red.
1.4 DS18B20 no requiere ningún componente periférico en uso. Los componentes y los circuitos de conversión están integrados en un dispositivo con forma de circuito integrado del triodo
1.5, el rango de temperatura es -55 ℃ ~ 125 ℃, la precisión es ±0,5 ℃ a -10 ~ 85 ℃
1.6, la resolución programable es de 9~12 bits, las temperaturas resolubles correspondientes son 0,5 ℃, 0,25 ℃, 0,125 ℃ y 0,0625 ℃ respectivamente, lo que puede lograr una medición de temperatura de alta precisión
1,7, como máximo 93,75 ms con una resolución de 9 bits. Convierta la temperatura en números. Con una resolución de 12 bits, el valor de temperatura se puede convertir en números en un plazo máximo de 750 ms, lo cual es más rápido.
1.8. Los resultados se emiten directamente como señales de temperatura digitales y se transmiten en serie a través del "bus de una línea". A la CPU, también puede transmitir el código de verificación CRC, que tiene fuertes capacidades antiinterferencias y de corrección de errores.
1.9 Características de voltaje negativo: cuando se invierte la polaridad de la fuente de alimentación, el chip no se quemará debido al calor, pero no puede funcionar normalmente.
2. Apariencia y estructura interna de DS18B20
La estructura interna de DS18B20 consta principalmente de cuatro partes: ROM de fotolitografía de 64 bits, sensor de temperatura, disparador de alarma de temperatura no volátil TH y TL, registro de configuración.
La apariencia y disposición de los pines del DS18B20 se muestran en la Figura 1:
Definición de los pines del DS18B20:
(1)DQ es la entrada/salida de señal digital terminal;
(2)GND es la tierra de alimentación;
(3)VDD es el terminal de entrada de la fuente de alimentación externa (conectado a tierra en el modo de cableado de alimentación parásita).
Figura 2: Diagrama de estructura interna de DS18B20
3 Principio de funcionamiento de DS18B20
El principio de medición de temperatura y tiempo de lectura y escritura de DS18B20 es el mismo que el de DS18B20. los de DS1820, excepto que la temperatura obtenida. El número de dígitos en el valor varía debido a las diferentes resoluciones, y el tiempo de retraso durante la conversión de temperatura se reduce de 2 s a 750 ms. La tasa de oscilación del oscilador de cristal con coeficiente de temperatura alto cambia significativamente con los cambios de temperatura, y la señal generada se utiliza como entrada de pulso del contador 2. El contador 1 y el registro de temperatura están preestablecidos en un valor base correspondiente a -55°C. El contador 1 resta la señal de pulso generada por el oscilador de cristal de coeficiente de temperatura bajo. Cuando el valor preestablecido del contador 1 disminuye a 0, el valor del registro de temperatura aumentará en 1, el valor preestablecido del contador 1 se recargará y el contador 1. comenzará de nuevo a contar las señales de pulso generadas por el oscilador de cristal de bajo coeficiente de temperatura y realizará un bucle de esta manera hasta que el contador 2 cuente hasta 0, luego dejará de acumular el valor del registro de temperatura. En este momento, el valor en el registro de temperatura es la temperatura medida. . El acumulador de pendiente en la Figura 3 se usa para compensar y corregir la no linealidad en el proceso de medición de temperatura, y su salida se usa para corregir el valor preestablecido del contador 1.
Figura 3: Diagrama de bloques del principio de medición de temperatura del DS18B20 DS18B20 tiene 4 componentes de datos principales:
(1) El número de serie de 64 bits en la ROM fotolitográfica se fotolitografia antes de salir de fábrica. , puede considerarse como el código de serie de dirección del DS18B20. La disposición de la ROM de fotolitografía de 64 bits es: los primeros 8 bits (28H) son el número de tipo de producto, los siguientes 48 bits son el número de serie del propio DS18B20 y los últimos 8 bits son la redundancia cíclica de 56 bits anterior. código de verificación (CRC=X8 X5 X4 1). La función de la ROM de fotolitografía es hacer que cada DS18B20 sea diferente, de modo que se puedan conectar varios DS18B20 a un bus.
(2) El sensor de temperatura en DS18B20 puede completar la medición de temperatura Tomando como ejemplo la conversión de 12 bits: se proporciona en forma de lectura de complemento a dos extendida de signo de 16 bits, expresada en. forma de 0,0625 ℃/LSB, donde S es el bit de signo.
Tabla 1: Tabla de formato de valores de temperatura DS18B20
Estos son los datos de 12 bits obtenidos después de la conversión de 12 bits, que se almacenan en dos RAM de 8 bits de 18B20, la primera uno en binario El quinto bit es el bit de signo. Si la temperatura medida es mayor que 0, estos 5 bits son 0. Simplemente multiplique el valor medido por 0.0625 para obtener la temperatura real. Si la temperatura es menor que 0, estos 5 bits; son 1 y el valor medido es. Debe tomar la inversa, sumar 1 y multiplicar por 0,0625 para obtener la temperatura real. Por ejemplo, la salida digital a 125 ℃ es 07D0H, la salida digital a 25,0625 ℃ es 0191H, la salida digital a -25,0625 ℃ es FE6FH y la salida digital a -55 ℃ es FC90H.
Tabla 2: Tabla de datos de temperatura DS18B20
(3) Memoria del sensor de temperatura DS18B20 La memoria interna del sensor de temperatura DS18B20 incluye una RAM temporal de alta velocidad y una memoria eléctrica no volátil. EEPRAM, que almacena flip-flops TH, TL y registros estructurales de alta y baja temperatura.
(4) El significado de cada byte del registro de configuración es el siguiente:
Tabla 3: Estructura del registro de configuración TM R1 R0 1 1 1 1 1 Los cinco bits inferiores siempre son "1", TM es el bit del modo de prueba, que se utiliza para establecer si DS18B20 está en modo de trabajo o en modo de prueba. Este bit se establece en 0 cuando DS18B20 sale de fábrica y los usuarios no deben cambiarlo. R1 y R0 se utilizan para configurar la resolución, como se muestra en la siguiente tabla: (DS18B20 está configurado en 12 bits cuando se envía de fábrica)
Tabla 4: Tabla de configuración de resolución de temperatura R1 R0 Resolución Temperatura Conversión máxima tiempo 0 0 9 bits 93,75 ms 0 1 10 bits 187,5 ms 1 0 11 bits 375 ms 1 1 12 bits 750 ms 4. Memoria del área reutilizable La memoria del área reutilizable consta de 9 bytes y su asignación se muestra en la Tabla 5. Cuando se emite el comando de conversión de temperatura, el valor de temperatura convertido se almacena en los bytes 0 y 1 de la memoria caché en forma de complemento de dos bytes. El microcontrolador puede leer estos datos a través de una interfaz de un solo cable. Al leer, el bit bajo está al frente y el bit alto está detrás. El formato de los datos se muestra en la Tabla 1. Cálculo de temperatura correspondiente: cuando el bit de signo S = 0, convierta directamente el bit binario a decimal; cuando S = 1, primero convierta el código de complemento al código original y luego calcule el valor decimal. La Tabla 2 muestra algunos de los valores de temperatura correspondientes. El noveno byte es el byte de verificación de redundancia.
Tabla 5: Registro temporal DS18B20 distribución contenido del registro byte dirección valor de temperatura bit bajo (LS Byte) 0 valor de temperatura bit alto (MS Byte) 1 límite de temperatura alta (TH) 2 límite de temperatura baja (TL) 3 Registro de configuración 4 Reservado 5 Reservado 6 Reservado 7 Valor de verificación CRC 8 De acuerdo con el protocolo de comunicación de DS18B20, el host (microcontrolador) debe seguir tres pasos para controlar DS18B20 para completar la conversión de temperatura: DS18B20 debe restablecerse antes de cada lectura y escritura, y el reinicio es exitoso, luego envíe un comando ROM y finalmente envíe un comando RAM, para que la operación predeterminada se pueda realizar en DS18B20. El reinicio requiere que la CPU principal baje la línea de datos durante 500 microsegundos y luego la suelte. Cuando el DS18B20 recibe la señal, espera entre 16 y 60 microsegundos y luego envía un pulso bajo de 60 a 240 microsegundos. recibe esta señal para indicar que el reinicio se realizó correctamente.
Tabla 6: Tabla de instrucciones de la ROM código de acuerdo de comando función leer ROM 33H Lea el código (es decir, dirección de 64 bits) en la ROM del sensor de temperatura DS1820, de acuerdo con la ROM 55H. Después de emitir este comando, emita el. Código ROM de 64 bits, acceso El DS1820 correspondiente al código en el bus único hace que responda para prepararse para el siguiente paso de lectura y escritura del DS1820. La búsqueda de ROM 0FOH se utiliza para determinar la cantidad de DS1820 conectados al mismo bus e identificar la dirección de ROM de 64 bits. Esté preparado para operar cada dispositivo. Omita la ROM 0CCH, ignore la dirección ROM de 64 bits y envíe directamente el comando de conversión de temperatura a DS1820. Adecuado para trabajos con un solo chip. Después de ejecutar el comando de búsqueda de alarma 0ECH, solo responderá la película cuya temperatura exceda el límite superior o inferior del valor establecido. Tabla 6: Lista de instrucciones de RAM Instrucción Código acordado Función Conversión de temperatura 44 H Inicie DS1820 para la conversión de temperatura El tiempo más largo es 750 ms para la conversión de 12 bits (93,75 ms para 9 bits). El resultado se almacena en la RAM interna de 9 bytes. Lea el registro temporal 0BEH. Lea el contenido de 9 bytes en la RAM interna y escriba el registro temporal 4EH. Emita el comando para escribir los datos de temperatura límite superior e inferior en los 3 y 4 bytes de la RAM interna. , se transmiten dos bytes de datos. Copiar el registro temporal 48H Copiar el contenido del tercer y cuarto byte de la RAM a la EEPROM. Restablecer EEPROM 0B8H Restaura el contenido de la EEPROM en el segundo y tercer byte de la RAM. Leer el modo de fuente de alimentación 0B4H Leer el modo de fuente de alimentación de DS1820. Cuando se alimenta con parasitismo, el DS1820 envía "0" y cuando se alimenta con una fuente de alimentación externa, el DS1820 envía "1". 5. Circuito de aplicación DS18B20 El sistema de medición de temperatura DS18B20 tiene las ventajas de un sistema de medición de temperatura simple, precisión de medición de alta temperatura, conexión conveniente y ocupa menos líneas de interfaz. El siguiente es el diagrama del circuito de medición de temperatura del DS18B20 en varios modos de aplicación diferentes:
5.1 El diagrama del circuito del modo de fuente de alimentación parásita DS18B20 se muestra en la Figura 4 a continuación. En el modo de fuente de alimentación parásita, DS18B20 se muestra. desde la línea de señal de un solo cable Energía: cuando la línea de señal DQ está en un nivel alto, la energía se almacena en el condensador interno. Cuando la línea de señal está en un nivel bajo, la energía eléctrica del condensador se consume para funcionar. y la fuente de alimentación parásita (condensador) se carga hasta que llega el nivel alto.
El método único de suministro de energía parásita tiene tres ventajas:
1) Cuando se realiza una medición remota de temperatura, no se necesita fuente de alimentación local
2) Puede ser Se utiliza en lugares sin fuente de alimentación convencional. Lee ROM en determinadas condiciones.
3) El circuito es más conciso y utiliza solo un puerto de E/S para lograr la medición de temperatura.
Para permitir que DS18B20 Para realizar una conversión de temperatura precisa, la línea de E/S debe garantizar que se proporcione suficiente energía durante el período de conversión de temperatura. Dado que cada DS18B20 funciona a 1 mA durante el período de conversión de temperatura, cuando se cuelgan varios sensores de temperatura en la misma línea de E/S. para la medición de temperatura multipunto, solo se requieren 4,7 K. Tirar de una resistencia no proporcionará suficiente energía, lo que resultará en la incapacidad de convertir la temperatura o en un enorme error de temperatura.
Por lo tanto, el circuito de la Figura 4 solo es adecuado para su uso en medición de temperatura con un solo sensor de temperatura y no es adecuado para su uso en sistemas alimentados por baterías. Y se debe garantizar que la fuente de alimentación VCC esté en funcionamiento a 5 V. Cuando el voltaje de la fuente de alimentación cae, la energía que la fuente de alimentación parásita puede absorber también disminuye, lo que aumentará el error de temperatura.
5.2. Diagrama de circuito del modo de fuente de alimentación pull-up fuerte de la fuente de alimentación parásita DS18B20 El modo de fuente de alimentación parásita mejorado se muestra en la Figura 5 a continuación para permitir que DS18B20 obtenga suficiente suministro de corriente durante el ciclo de conversión dinámica. , al realizar la conversión de temperatura o al copiar a la memoria E2, use MOSFET para tirar de la línea de E/S directamente a VCC para proporcionar suficiente corriente. Después de emitir cualquier instrucción que implique copiar a la memoria E2 o iniciar la conversión de temperatura, la E/S debe estar conectada. dentro de 10 μS como máximo. La línea O pasa a un estado de pull-up fuerte. El modo pull-up fuerte puede resolver el problema de la falla del suministro actual, por lo que también es adecuado para aplicaciones de medición de temperatura multipunto. La desventaja es que ocupa una línea de puerto de E/S más para una conmutación pull-up fuerte.
Figura 5
Nota: En el modo de fuente de alimentación parásita de la Figura 4 y la Figura 5, el pin VDD del DS18B20 debe estar conectado a tierra.
5.3. suministro del modo de fuente de alimentación DS18B20
En el modo de fuente de alimentación externa, la fuente de alimentación de trabajo DS18B20 está conectada al pin VDD. En este momento, no es necesario tirar con fuerza de la línea de E/S. No hay problema de corriente de suministro de energía insuficiente y se puede garantizar la precisión de la conversión; al mismo tiempo, teóricamente se puede conectar cualquier número de sensores DS18B20 al bus para formar un sistema de medición de temperatura multipunto. Nota: En el modo de fuente de alimentación externa, el pin GND del DS18B20 no se puede dejar flotante; de lo contrario, la temperatura no se puede convertir y la temperatura leída siempre es de 85 °C.
Figura 6: Circuito de medición de temperatura de un solo punto con fuente de alimentación externa.
.
.
.
.
Figura 7: Diagrama de circuito de medición de temperatura multipunto del modo de fuente de alimentación externa El modo de fuente de alimentación externa es el mejor modo de funcionamiento del DS18B20. Tiene un funcionamiento estable y confiable y una fuerte antiinterferencia. capacidad, y el circuito es relativamente simple, por lo que se puede desarrollar un sistema de monitoreo de temperatura multipunto estable y confiable. El webmaster recomienda utilizar una fuente de alimentación externa durante el desarrollo. Después de todo, solo hay un cable VCC más que la fuente de alimentación parásita. En el modo de fuente de alimentación externa, se pueden aprovechar al máximo las ventajas del amplio rango de voltaje de la fuente de alimentación del DS18B20. Incluso si el voltaje de la fuente de alimentación VCC cae a 3 V, aún se puede garantizar la precisión de la medición de la temperatura.
6. Precauciones al usar DS1820
Aunque DS1820 tiene las ventajas de un sistema de medición de temperatura simple, alta precisión de medición de temperatura, conexión conveniente y ocupa menos líneas de interfaz, también es difícil. Para usar en aplicaciones prácticas, se deben tener en cuenta las siguientes cuestiones:
6.1. La pequeña sobrecarga de hardware requiere un software relativamente complejo para compensar. Dado que la transmisión de datos en serie se utiliza entre el DS1820 y el microprocesador, es necesario leer. El DS1820 al escribir la programación, el tiempo de lectura y escritura debe garantizarse estrictamente; de lo contrario, los resultados de la medición de temperatura no se leerán. Cuando se utilizan lenguajes de alto nivel como PL/M y C para la programación del sistema, es mejor utilizar lenguaje ensamblador para implementar la parte operativa de DS1820.
6.2. La información relevante sobre DS1820 no menciona la cantidad de DS1820 conectados a un solo bus, lo que fácilmente puede llevar a las personas a creer erróneamente que se puede conectar cualquier cantidad de DS1820. Este no es el caso en. aplicaciones reales. Cuando hay más de 8 DS1820 en un solo bus, se debe resolver el problema del controlador del bus del microprocesador. A esto se debe prestar atención al diseñar un sistema de medición de temperatura multipunto.
6.3. El cable bus conectado al DS1820 tiene un límite de longitud. Durante la prueba, cuando la longitud de transmisión supera los 50 m utilizando cables de señal normales, se producirán errores en los datos de medición de temperatura leídos. Cuando el cable de bus se cambia a un cable blindado de par trenzado, la distancia de comunicación normal puede alcanzar los 150 m. Cuando se utiliza un cable blindado de par trenzado con más vueltas por metro, la distancia de comunicación normal se alarga aún más. Esta situación se debe principalmente a la distorsión de la forma de onda de la señal causada por la capacitancia distribuida del bus. Por lo tanto, al diseñar un sistema de medición de temperatura a larga distancia utilizando DS1820, se deben considerar plenamente los problemas de adaptación de impedancia y capacitancia distribuida del bus.
6.4. En el diseño del programa de medición de temperatura DS1820, después de emitir un comando de conversión de temperatura a DS1820, el programa siempre espera la señal de retorno de DS1820 una vez que un DS1820 no está en buen contacto o está desconectado. el programa lee el DS1820 Cuando, no habrá señal de retorno y el programa entrará en un bucle infinito. También se debe prestar cierta atención a este punto al realizar la conexión de hardware y el diseño de software del DS1820. Se recomienda utilizar pares trenzados blindados de 4 núcleos para cables de medición de temperatura. Un par de cables está conectado al cable de tierra y al cable de señal, el otro grupo está conectado a VCC y al cable de tierra, y la capa de blindaje está conectada a tierra en un solo. punto en el extremo de la fuente.