Fabricantes de sensores chinos

China Temperature Sensor & Thermistor manufacturer

Principio de Funcionamiento del Sensor Inteligente DS18B20

Principio de funcionamiento y temporización del sensor de temperatura inteligente DS18B20:
DS18B20 es el último sensor de temperatura inteligente mejorado lanzado por DALLAS Semiconductor Company en los Estados Unidos después del DS1820. En comparación con los termistores tradicionales, puede leer directamente la temperatura medida y puede lograr una lectura de valores digitales de 9 a 12 dígitos mediante una programación simple de acuerdo con los requisitos reales. Las cantidades digitales de 9 y 12 bits se pueden completar en 93,75 ms y 750 ms respectivamente, y la información leída desde DS18B20 o escrita en DS18B20 solo requiere una línea de puerto (interfaz de un solo cable) para lectura y escritura. La potencia de conversión de temperatura proviene del bus de datos, y el propio bus también puede suministrar energía al DS18B20 conectado sin necesidad de una fuente de alimentación adicional. Por lo tanto, el uso de DS18B20 puede hacer que la estructura del sistema sea más simple y confiable. Tiene grandes mejoras con respecto al DS1820 en términos de precisión de medición de temperatura, tiempo de conversión, distancia de transmisión, resolución, etc., brindando a los usuarios un uso más conveniente y resultados más satisfactorios.
Sensor de transmisión de temperatura digital DS18b20 Sonda de control de temperatura del refrigerador ds18b20
Sensor de transmisión de temperatura digital DS18b20 Sonda de control de temperatura del refrigerador ds18b20

1. Introducción a DS18B20

(1) Método único de interfaz de un solo cable: cuando DS18B20 está conectado al microprocesador, solo se necesita una línea de puerto para lograr una comunicación bidireccional entre el microprocesador y DS18B20.

(2) No se requieren componentes externos durante el uso.

(3) Puede ser alimentado por línea de datos, rango de voltaje: +3,0~ +5,5 V.

(4) Rango de medición de temperatura: -55 ~ +125 ℃. La resolución inherente de medición de temperatura es de 0,5 ℃.

(5) El modo de lectura digital de 9 a 12 dígitos se puede realizar mediante programación.

(6) Los usuarios pueden configurar límites superiores e inferiores de alarma no volátil.

(7) 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.

(8) Características de voltaje negativo: cuando se invierte la polaridad de la fuente de alimentación, el termómetro no se quemará debido al calor, pero no funcionará correctamente.

Principio de medición de temperatura del DS18B20

El principio de medición de temperatura del DS18B20 se muestra en la Figura 2. La frecuencia de oscilación del oscilador de cristal de bajo coeficiente de temperatura en la figura se ve muy poco afectada por la temperatura [1]. Se utiliza para generar una señal de pulso de frecuencia fija y enviarla al contador de resta 1. La frecuencia de oscilación de los osciladores de cristal con coeficiente de alta temperatura cambia significativamente con los cambios de temperatura. La señal generada se utiliza como entrada de pulso del contador de restas 2. También hay puertas de conteo implícitas en la figura. Cuando se abre la puerta de conteo, el DS18B20 cuenta los pulsos de reloj generados por el oscilador de coeficiente de baja temperatura para completar la medición de temperatura. El tiempo de apertura de la puerta de conteo está determinado por un oscilador de coeficiente de alta temperatura. Antes de cada medición, primero coloque el número base correspondiente a -55 ℃ en el contador de resta 1 y en el registro de temperatura respectivamente. El contador regresivo 1 y el registro de temperatura están preestablecidos en un valor base correspondiente a -55°C. El contador de restas 1 realiza el conteo de restas en la señal de pulso generada por el oscilador de cristal de coeficiente de baja temperatura. Cuando el valor preestablecido del contador de resta 1 disminuye a 0, el valor del registro de temperatura aumentará en 1 y se recargará el valor preestablecido del contador de resta 1. El contador de restas 1 reinicia contando la señal de pulso generada por el oscilador de cristal de coeficiente de temperatura bajo, y este ciclo continúa hasta que el contador de restas 2 cuenta hasta 0, y luego deja 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 2 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 de resta. Mientras la puerta de conteo no esté cerrada, el proceso anterior se repite hasta que el valor del registro de temperatura alcance el valor de temperatura medido. Este es el principio de medición de temperatura del DS18B20.

Además, dado que la función de comunicación de línea única DS18B20 se completa en tiempo compartido, tiene un concepto de intervalo de tiempo estricto, por lo que el tiempo de lectura y escritura es muy importante. Se deben realizar varias operaciones del sistema en DS18B20 de acuerdo con el protocolo. El protocolo de operación es: inicializar DS18B20 (enviar pulso de reinicio) → enviar comando de función ROM → enviar comando de operación de memoria → procesar datos. El diagrama de tiempos para varias operaciones es el mismo que el del DS1820.

Proceso de trabajo y sincronización del DS18B20

El oscilador de bajo coeficiente de temperatura dentro del DS18B20 es un oscilador cuya frecuencia de oscilación cambia muy poco con la temperatura, proporcionando un pulso de conteo de frecuencia estable para el contador 1.

El oscilador de coeficiente de alta temperatura es un oscilador cuya frecuencia de oscilación es muy sensible a la temperatura y proporciona al contador 2 un pulso de conteo cuya frecuencia cambia con la temperatura.

Inicialmente, el registro de temperatura está preajustado a -55°C. Cada vez que el contador 1 cuenta atrás desde el número preestablecido hasta 0, el valor de temperatura registrado en el registro de temperatura aumenta en 1°C. Este proceso se repite hasta que el contador 2 llega a 0 y luego se detiene.

Inicialmente, el contador 1 está preestablecido con un valor preestablecido correspondiente a -55°C. En el futuro, el número preestablecido de cada ciclo del contador 1 lo proporciona el acumulador de pendiente. Para compensar la no linealidad de las características de temperatura del oscilador, el número preestablecido proporcionado por el acumulador de pendiente también cambia de acuerdo con la temperatura. El número preestablecido del contador 1 es el número de cuentas necesarias para aumentar el valor del registro de temperatura en 1 °C a una temperatura determinada.

El comparador dentro del DS18B20 determina el bit menos significativo del registro de temperatura mediante una cuantificación redondeada. Después de que el contador 2 deja de contar, el comparador convierte el valor de conteo restante en el contador 1 en un valor de temperatura y lo compara con 0,25°C. Si es inferior a 0,25 ℃, el bit más bajo del registro de temperatura se establece en 0. Si es superior a 0,25 ℃, el bit más bajo se establece en 1. Si es superior a 0,75 ℃, se lleva el bit más bajo del registro de temperatura y luego se establece en 0. De esta forma, el valor del registro de temperatura obtenido después de la comparación es el valor de temperatura final leído, y el último bit representa 0,5°C. El error máximo de cuantificación de redondeo es ±1/2LSB, que es 0,25 °C.

El valor de temperatura en el registro de temperatura se expresa en un formato de datos de 9 bits, el bit más alto es el bit de signo y los 8 bits restantes representan el valor de temperatura en forma de complemento a dos. Al final de la medición de temperatura, estos datos de 9 bits se transfieren a los dos primeros bytes de la memoria de almacenamiento temporal y el bit de signo ocupa el primer byte. Los datos de temperatura de 8 bits ocupan el segundo byte.

DS18B20 utiliza una tecnología de medición de temperatura única al medir la temperatura. El oscilador de bajo coeficiente de temperatura dentro del DS18B20 puede producir una señal de frecuencia estable. De manera similar, un oscilador de coeficiente de alta temperatura convierte la temperatura medida en una señal de frecuencia. Cuando se abre la puerta de conteo, el DS18B20 cuenta y el tiempo de apertura de la puerta de conteo lo determina el oscilador de coeficiente de alta temperatura. También hay un acumulador de pendiente dentro del chip para compensar la no linealidad de la frecuencia. Los resultados de la medición se almacenan en el registro de temperatura. En circunstancias normales, el valor de temperatura debe ser de 9 bits, pero debido a que el bit de signo se extiende a los 8 bits superiores, finalmente se lee en forma de complemento de 16 bits.

El proceso de trabajo de DS18B20 generalmente sigue el siguiente protocolo: inicialización - comando de operación ROM - comando de operación de memoria - procesamiento de datos

① Inicialización
Todo el procesamiento en un único bus comienza con una secuencia de inicialización. La secuencia de inicialización incluye un pulso de reinicio del bus maestro, seguido de un pulso de presencia del dispositivo esclavo. La presencia del pulso le permite al controlador del bus saber que el DS1820 está en el bus y está listo para operar.

② Comando de operación ROM
Una vez que el bus maestro detecta la presencia de un dispositivo esclavo, puede emitir uno de los comandos de operación de la ROM del dispositivo. Todos los comandos de operación de la ROM tienen una longitud de 8 bits. La lista de estos comandos es la siguiente:

Leer ROM (leer ROM)[33h]

Este comando permite al bus maestro leer el código de familia de productos de 8 bits, el número de serie único de 48 bits y el CRC de 8 bits del DS18B20. Este comando solo se puede utilizar cuando solo hay un DS18B20 en el bus. Si hay más de un dispositivo esclavo en el bus, se producirán colisiones de datos cuando todos los esclavos intenten transmitir al mismo tiempo (un drenaje abierto producirá un resultado Y cableado).

Coincidir ROM(coincidir ROM)[55h]

Este comando va seguido de una secuencia de datos ROM de 64 bits, lo que permite al maestro del bus direccionar un DS18B20 específico en el bus multipunto. Solo el DS18B20 que coincide estrictamente con la secuencia ROM de 64 bits puede responder a comandos de operación de memoria posteriores. Todos los esclavos que no coincidan con la secuencia de ROM de 64 bits esperarán un pulso de reinicio. Este comando se puede utilizar con uno o varios dispositivos en el bus.

Saltar ROM(saltar ROM)[CCh]

En sistemas de bus de punto único, este comando ahorra tiempo al permitir que el maestro del bus acceda a las operaciones de la memoria sin proporcionar codificación ROM de 64 bits. Si hay más de un dispositivo esclavo en el bus y se emite un comando de lectura después del comando Saltar ROM, se producirán conflictos de datos en el bus debido a que varios dispositivos esclavos envían datos al mismo tiempo.

Buscar ROM(Buscar ROM)[F0h]

Cuando el sistema comienza a funcionar, es posible que el maestro del bus no conozca la cantidad de dispositivos en el bus de un solo cable o su código ROM de 64 bits. El comando Buscar ROM permite al controlador del bus identificar los códigos de 64 bits de todos los esclavos en el bus mediante un proceso de eliminación.

Búsqueda de alarma (búsqueda de alarma) [ECh]

El flujo de este comando es el mismo que el del comando de búsqueda de ROM. Sin embargo, el DS18B20 solo responderá a este comando si ocurrió una alarma durante la medición de temperatura más reciente. La condición de alarma se define como una temperatura superior a TH o inferior a TL. Tan pronto como se enciende el DS18B20, la condición de alarma permanece establecida hasta que otra medición de temperatura muestre un valor sin alarma o se cambie la configuración TH o TL para que el valor medido vuelva a estar dentro del rango permitido. El valor de activación almacenado en EEPROM se utiliza para las alarmas.

③ Comando de operación de memoria
Escribir bloc de notas (escribir bloc de notas) [4Eh]
Este comando escribe datos en el registro temporal de DS18B20, comenzando en la dirección 2. Los siguientes dos bytes escritos se almacenarán en el bloc de notas en las ubicaciones de dirección 2 y 3. Se puede emitir un comando de reinicio en cualquier momento para cancelar la escritura.

Leer bloc de notas [BEh]

Este comando lee el contenido del scratchpad. La lectura comenzará desde el byte 0 y continuará hasta que se lea el noveno byte (byte 8, CRC). Si no desea leer todos los bytes, el controlador puede emitir un comando de reinicio en cualquier momento para cancelar la lectura.

Copiar bloc de notas (copiar bloc de notas) [48h]

Este comando copia el contenido del registro temporal a la memoria E2 del DS18B20, es decir, almacena el byte de activación de la alarma de temperatura en la memoria no volátil. Si el controlador de bus emite un intervalo de tiempo de lectura después de este comando y el DS18B20 está ocupado copiando el bloc de notas en la memoria E2, el DS18B20 generará un "0". Si se completa la copia, DS18B20 generará "1". Si se utiliza energía parásita, el controlador del bus debe iniciar un fuerte pull-up inmediatamente después de emitir este comando y mantenerlo durante al menos 10 ms.

Convertir T (conversión de temperatura) [44h]

Este comando inicia una conversión de temperatura sin requerir datos adicionales. Se ejecuta el comando de conversión de temperatura y luego el DS18B20 permanece en estado de espera. Si el controlador de bus emite un intervalo de tiempo de lectura después de este comando y el DS18B20 está ocupado realizando la conversión de tiempo, el DS18B20 emitirá "0" en el bus y "1" si se completa la conversión de temperatura. Si se utiliza energía parásita, el controlador del bus debe iniciar un fuerte pull-up inmediatamente después de emitir este comando y mantenerlo durante 500 ms.

Recuperar E2 (Recuperar E2) [B8h]

Este comando restablece el valor del disparador de temperatura almacenado en E2 en la memoria temporal. Esta operación de recuperación también ocurre automáticamente cuando se enciende el DS18B20, por lo que tan pronto como se enciende el dispositivo, hay datos válidos en la memoria temporal. Después de emitir este comando, durante el primer intervalo de tiempo de lectura de datos emitido, el dispositivo generará un indicador de ocupado de conversión de temperatura: "0" = ocupado, "1" = listo.

Leer fuente de alimentación [B4h]

Durante el intervalo de tiempo de los primeros datos leídos emitidos después de enviar este comando al DS18B20, el dispositivo dará una señal de su modo de energía: "0" = alimentado por una fuente de alimentación parásita, "1" = alimentado por una fuente de alimentación externa suministrar.

④ Datos de proceso
La memoria reutilizable de alta velocidad del DS18B20 consta de 9 bytes y su asignación se muestra en la Figura 3. 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 los datos a través de la interfaz de un solo cable, con el bit bajo al frente y el bit alto detrás.

Figura 3 Diagrama de asignación de memoria caché

Hoja de datos de temperatura DS18B20
La tabla anterior son los datos de 12 bits obtenidos después de la adquisición y conversión de temperatura por DS18B20. Almacenados en dos RAM de 8 bits de DS18B20, los primeros 5 bits en binario son bits de signo. Si la temperatura medida es mayor o igual a 0, estos 5 bits son 0. Simplemente multiplique el valor medido por 0,0625 para obtener la temperatura real. Si la temperatura es inferior a 0, estos 5 bits son 1 y el valor medido debe invertirse más 1 y luego multiplicarse por 0,0625 para obtener la temperatura real.

Ejemplo de método de cálculo de conversión de temperatura:
Por ejemplo, cuando DS18B20 recopila la temperatura real de +125°C, la salida es 07D0H, entonces:
Temperatura real=07D0H╳0.0625=2000╳0.0625=1250C.

Por ejemplo, cuando DS18B20 recopila la temperatura real de -55 °C y genera FC90H, los 11 bits de datos deben invertirse y sumarse en 1 para obtener 370H (el bit de signo permanece sin cambios y no se incluye en el cálculo), entonces:
Temperatura real=370H╳0,0625=880╳0,0625=550C.
PREV:El Microcontrolador 51/2.3 Controla el Módulo del Sensor de Temperatura DS18B20
NEXT:Microcontrolador·Sensor de Temperatura DS18B20

RELATED POSTS




Skype

WhatsApp

WangWang

QQ
Email me

Mail to us