Fabricantes de sensores chinos

China Temperature Sensor & Thermistor manufacturer

Ejemplo de Medición de Temperatura del Sensor de Temperatura Digital DS18B20

1. Sensor de temperatura digital DS18B20.
Este artículo utilizará el método de escritura de la máquina de estados de tres etapas (tipo Moore) para operar la FPGA de medición de temperatura en el DS18B20 para comprender el DS18B20 y familiarizarse con el método de escritura de la máquina de estados de tres etapas.

Sonda de adquisición de sensor de temperatura y humedad ds18b20 a rs485 Sonda y conector del sensor ds18b20
Sonda de adquisición de sensor de temperatura y humedad ds18b20 a rs485 Sonda y conector del sensor ds18b20

1.1 Descripción general
El transductor de temperatura se refiere a un sensor que puede detectar la temperatura y convertirla en una señal de salida utilizable. Es el tipo más comúnmente utilizado de varios sensores. Con el desarrollo de instrumentos modernos, la miniaturización, la integración y la digitalización se están convirtiendo en una dirección importante en el desarrollo de sensores.
El sensor de temperatura digital DS18B20 lanzado por DALLAS Semiconductor Company de Estados Unidos adopta un protocolo de bus único. Es decir, la interfaz con la FPGA solo ocupa un puerto de E/S, sin ningún componente externo, y convierte directamente la temperatura ambiente en una señal digital. La salida en serie en forma de código digital simplifica enormemente el diseño de la interfaz entre el sensor y la FPGA.
Los pines son como se muestra a continuación:
función de pin del chip ds18b20
1.2 Composición estructural
El rango de temperatura de medición del DS18B20 es -55~+125℃ y la precisión es ±0,5℃. La temperatura en el sitio (en tiempo real) se transmite directamente de manera digital de "bus único", lo que mejora en gran medida el rendimiento antiinterferencias del sistema. Puede leer directamente la temperatura medida y puede realizar el modo de lectura de valores digitales de 9 a 12 dígitos mediante una programación simple de acuerdo con los requisitos reales. Funciona en el rango de voltaje de 3~5,5 V y adopta una variedad de formas de empaque, lo que hace que el diseño del sistema sea flexible y conveniente. La resolución configurada y la temperatura de alarma configurada por el usuario se almacenan en EEPROM y se conservarán después del apagado. Su estructura interna se muestra en la figura:

El diagrama de bloques estructural del caché es el siguiente:
Como puede verse en la figura anterior, el caché DS18B20 tiene un total de nueve registros de 8 bits, entre los cuales el bit de orden inferior (LSB) de los datos de temperatura corresponde a la dirección del byte 0 y el bit de orden superior (MSB ) de los datos de temperatura corresponde a la dirección del byte 1. Por analogía, la dirección de byte del registro de configuración es 4. El formato de almacenamiento de datos de temperatura es el siguiente:

El DS18B20 viene configurado con datos de temperatura de 12 bits por defecto cuando sale de fábrica, de los cuales el bit más alto es el bit de signo, es decir, el valor de temperatura tiene un total de 11 bits, y los cuatro bits más bajos son decimales. Cuando la FPGA lee datos de temperatura, lee 2 bytes a la vez, con un total de 16 bits. Después de leer, convierta el número binario inferior de 11 dígitos en un número decimal y luego multiplíquelo por 0,0625 para obtener el valor de temperatura real medido.
Además, es necesario juzgar la temperatura positiva y negativa. Los primeros 5 dígitos son bits de signo. Estos 5 dígitos cambian al mismo tiempo y solo necesitamos juzgar cualquiera de ellos. Cuando los primeros cinco bits son 1, la temperatura leída es un valor negativo y el valor medido debe invertirse, más 1 y luego multiplicarse por 0,0625 para obtener el valor de temperatura real. Cuando los primeros cinco bits son 0, la temperatura leída es un valor positivo. Simplemente multiplique el valor medido por 0,0625 para obtener el valor de temperatura real.
El cuarto byte en el caché es el registro de configuración. El usuario puede configurar la resolución de DS18B20 cambiando los valores de R1 y R0. El valor predeterminado de encendido es R1=1 y R0=1 (resolución de 12 bits). Cabe señalar que el tiempo de conversión está relacionado con el tiempo de resolución. Además, el bit más alto y los 5 bits más bajos del registro están reservados para uso interno y no se pueden escribir. La relación entre el tiempo de conversión y el número de dígitos se muestra en la siguiente tabla:
Diagrama de estructura del caché del sensor digital ds18b20

1.3 Pasos de comunicación
¿Cómo operar DS18B20 para convertir y leer la temperatura? Proceder de la siguiente:
1. Inicialización
Todos los eventos en el bus 1-Wire deben comenzar con la inicialización. La secuencia de inicialización consiste en un pulso de reinicio del maestro en el bus seguido de un pulso de presencia en respuesta del esclavo. Este pulso de presencia le permite al maestro del bus saber que el DS18B20 está en el bus y listo para operar. Todos los plazos específicos se presentan en el Capítulo 1.4.

2. comando ROM
Cuando se completa la inicialización, se pueden ejecutar los comandos ROM. Estos comandos operan en el código ROM de 64 bits de cada dispositivo y se pueden usar para identificar cada dispositivo cuando se conectan varios dispositivos al bus. Hay un total de 5 comandos ROM, cada comando tiene 8 bits de longitud.
Buscar ROM[F0h]: Cuando el sistema está encendido e inicializado, el dispositivo maestro puede identificar los códigos ROM de todos los dispositivos esclavos en el bus, lo que le permite al dispositivo maestro determinar el tipo y la cantidad de dispositivos esclavos en el bus.
Leer ROM[33h]: Este comando permite que el dispositivo maestro lea el código ROM de 64 bits del DS18B20. Este comando solo se puede utilizar cuando solo hay un DS18B20 en el bus. Si hay varios dispositivos esclavos en el bus, enviar este comando provocará conflictos de datos cuando todos los dispositivos esclavos respondan.
Match ROM[55h]: El comando Match ROM va seguido de un código ROM de 64 bits que permite al maestro localizar un DS18B20 específico en el bus multipunto. Sólo responderán los DS18B20 que coincidan exactamente con la secuencia de ROM de 64 bits. Todos los demás dispositivos esclavos en el bus esperarán el siguiente pulso de reinicio. Este comando se puede utilizar cuando hay uno o varios dispositivos en el bus.
Saltar ROM[CCh]: Este comando puede pasar al siguiente paso sin proporcionar el código ROM de 64 bits, lo que puede ahorrar tiempo en el caso de un bus de un solo punto (un sensor DS18B20). Si hay más de un dispositivo esclavo en el bus y se emite un comando de lectura después de omitir el comando ROM, todos los dispositivos esclavos realizarán conversiones de temperatura al mismo tiempo y se producirá un conflicto de datos en el bus.
Búsqueda de Alarma [ECh]: La operación de este comando es básicamente la misma que el comando Saltar ROM, pero la diferencia es que solo responderán los dispositivos esclavos con una temperatura superior a TH o inferior a TL (alcanzando una condición de alarma). Mientras no haya un corte de energía, el estado de alarma permanecerá hasta que la temperatura ya no esté dentro del rango de alarma.

formato de almacenamiento de datos del sensor digital ds18b20
3. Comandos de función
Cuando el dispositivo maestro en el bus determina qué DS18B20 puede comunicarse a través de un comando ROM, el dispositivo maestro puede enviar un comando de función a uno de los dispositivos esclavos. Estos comandos permiten que el dispositivo maestro controle el dispositivo esclavo para realizar una serie de operaciones.
Conversión de temperatura [44h]: Este comando inicializa una única conversión de temperatura. Una vez completada la conversión de temperatura, los datos de temperatura convertidos se almacenarán en el byte0 (ocho bits inferiores de datos de temperatura) y el byte1 (ocho bits superiores de datos de temperatura) en la memoria caché, y luego el DS18B20 vuelve al estado inactivo de bajo consumo de energía. . Si el bus emite un intervalo de tiempo de lectura después de este comando, el DS18B20 responderá con un "0" si hay una conversión de temperatura en curso, o un "1" si se completa la conversión de temperatura. Si se utiliza el modo de fuente de alimentación "fuente de alimentación parásita", se debe forzar que el bus se eleve inmediatamente después de emitir el comando, y el tiempo de activación debe ser mayor que los requisitos de tiempo.
Write scratchpad [4Eh]: este comando hace que el dispositivo maestro escriba 3 bytes de datos en la caché. El primer byte se escribe en el byte2 de la caché (registro TH), el segundo byte de datos se escribe en el byte3 (registro TL) y el tercer byte de datos se escribe en el byte4 (registro de configuración). Todos los datos se escriben secuencialmente desde el bit bajo al bit alto. Un reinicio puede interrumpir la escritura en cualquier momento.
Leer el caché [BEh]: lee el valor en el caché, comenzando desde el byte0 (los ocho bits inferiores de temperatura) y leyendo hasta el byte8 (verificación CRC). Cada byte de datos se transmite comenzando desde el bit inferior. Si no desea leer tantos datos, puede finalizarlo restableciendo en cualquier momento al leer los datos.
Copiar caché [48h]: Este comando copia los valores en TH (byte2), TL (byte3) y registro de configuración (byte4) en el caché a la memoria no volátil EEPROM. Si el controlador de bus emite un intervalo de tiempo de lectura después de este comando y el DS18B20 está ocupado copiando el scratchpad a la memoria EEPROM, el DS18B20 generará un "0". Si se completa la copia, el DS18B20 generará un "1". Si el dispositivo se alimenta en modo "energía parásita", el bus se debe forzar a nivel alto durante al menos 10 ms inmediatamente después de enviar este comando.
Recuperar EEPROM[B8h]: este comando recupera el valor de activación de la alarma de temperatura (TH y TL) y los datos del registro de configuración de la EEPROM al caché. Esta operación se realizará automáticamente una vez después del encendido, por lo que siempre habrá datos válidos en el registro temporal durante el encendido. Si el intervalo de tiempo de lectura se inicia después del comando de recuperación, el DS18B20 responderá con "0" si la recuperación de la EEPROM está en progreso y "1" si la recuperación está completa.
Leer modo de fuente de alimentación [B4h]: este comando puede leer si el DS18B20 en el bus está alimentado por una "fuente de alimentación parásita". En la secuencia de sincronización de datos de lectura, "0" indica fuente de alimentación en modo "fuente de alimentación parásita" y "1" indica fuente de alimentación externa.
PREV:Experiencia en el uso del Sensor Digital con Chip DS18B20
NEXT:El Microcontrolador 51/2.3 Controla el Módulo del Sensor de Temperatura DS18B20

RELATED POSTS




Skype

WhatsApp

WangWang

QQ
Email me

Mail to us