Instrucciones de Codificacion Para el Sensor de Chip DS18B20
Memoria ROM de solo lectura utilizada para almacenar el código DS18B20ID. Los primeros 8 bits son el código de serie de una sola línea (el código de DS18B20 es 19H), los siguientes 48 bits son el número de serie único del chip y los últimos 8 bits son el código CRC (verificación de redundancia) de los 56 anteriores. bits. Los datos se establecen en el momento de la producción y el usuario no puede modificarlos. DS18B20 tiene una ROM total de 64 bits.
Bloc de notas de datos RAM, utilizado para cálculos internos y acceso a datos. Los datos se pierden después de un corte de energía. DS18B20 tiene un total de 9 bytes de RAM, cada byte tiene 8 bits. El primer y segundo bytes son la información del valor de los datos después de la conversión de temperatura, y el tercer y cuarto bytes son la imagen de la EEPROM del usuario (comúnmente utilizada para el almacenamiento de valores de alarma de temperatura). Su valor se actualizará durante el reinicio del encendido. El quinto byte es la imagen de la tercera EEPROM del usuario. Los bytes 6, 7 y 8 son registros de conteo, que están diseñados para permitir a los usuarios obtener una resolución de temperatura más alta. También es una unidad de almacenamiento temporal para conversión y cálculo de temperatura interna. El noveno byte es el código CRC de los primeros 8 bytes. EEPROM es una memoria no volátil que se utiliza para almacenar datos que deben guardarse durante mucho tiempo, valores de alarma de temperatura superior e inferior y datos de verificación.
DS18B20 tiene un total de EEPROM de 3 bits y hay imágenes en la RAM para facilitar la operación del usuario.
Proceso de operación del controlador para 18B20:
1. Reset: Primero debemos resetear el chip DS18B20. El reinicio es una señal de bajo nivel de al menos 480uS proporcionada por el controlador (microcontrolador) al bus único DS18B20. Cuando 18B20 recibe esta señal de reinicio, enviará de vuelta un pulso de presencia del chip después de 15 ~ 60 uS.
2. Pulso de presencia: después de que finaliza el nivel de reinicio, el controlador debe elevar el bus único de datos para recibir el pulso de presencia después de 15 ~ 60 uS. El pulso de existencia es una señal de bajo nivel de 60~240uS. En este punto, las partes de la comunicación han llegado a un acuerdo básico y el siguiente paso será la comunicación de datos entre el controlador y 18B20. Si el tiempo de reinicio del nivel bajo es insuficiente o el circuito del bus único está roto, no se recibirá el pulso de presencia. Preste atención a manejar situaciones inesperadas al diseñar.
3. El controlador envía un comando ROM: Una vez que las dos partes hayan terminado de saludarse, lo más importante es comunicarse. Hay 5 instrucciones ROM en total y solo se puede enviar una en cada ciclo de trabajo. Las instrucciones de la ROM son leer datos de la ROM, especificar el chip coincidente, saltar la ROM, buscar el chip y buscar el chip de alarma. La instrucción ROM tiene una longitud de 8 bits y su función es operar la ROM de fotolitografía de 64 bits en el chip. Su objetivo principal es distinguir y procesar múltiples dispositivos conectados a un bus. Es cierto que se pueden conectar varios dispositivos a un único bus al mismo tiempo y cada dispositivo se puede distinguir por su número de identificación único. Generalmente, el comando ROM se puede omitir cuando solo se monta un único chip 18B20 (nota: el comando omitir ROM aquí no significa no enviar un comando ROM, sino un "comando omitir" único)
4. El controlador envía instrucciones de operación de la memoria: después de enviar la instrucción ROM a 18B20, la instrucción de operación de la memoria se envía inmediatamente (sin interrupción). Las instrucciones de operación también son de 8 bits, 6 en total. Las instrucciones de operación de la memoria son escribir datos de RAM, leer datos de RAM, copiar datos de RAM a EEPROM, convertir temperatura, copiar valores de alarma en EEPROM a RAM y cambiar los modos de trabajo. La función de la instrucción de operación de la memoria es ordenarle a 18B20 que haga qué tipo de trabajo, que es la clave para el control del chip.
5. Ejecución o lectura y escritura de datos: Una vez completada una instrucción de operación de memoria, se realizará la ejecución de la instrucción o lectura y escritura de datos, esta operación depende de la instrucción de operación de memoria. Si se ejecuta el comando de conversión de temperatura, el controlador (microcontrolador) debe esperar a que 18B20 ejecute su comando. El tiempo de conversión general es 500uS. Si ejecuta instrucciones de lectura y escritura de datos, debe seguir estrictamente el tiempo de lectura y escritura 18B20. Los métodos de lectura y escritura de datos se presentarán en detalle a continuación.
Para leer los datos de temperatura actuales, necesitamos ejecutar dos ciclos de trabajo: el primer ciclo es restablecer, omitir instrucciones ROM, ejecutar instrucciones de operación de memoria de conversión de temperatura y esperar un tiempo de conversión de temperatura de 500 uS. Luego se ejecuta el segundo ciclo para restablecer, omitir instrucciones de ROM, ejecutar instrucciones de operación de memoria para leer RAM y leer datos (hasta 9 bytes, que se pueden detener a la mitad. Para leer solo valores de temperatura simples, lea los primeros 2 bytes, que es posible). Otros procedimientos operativos son similares y no se presentarán aquí.
Lista de instrucciones ROM del chip DS28B20:
Leer ROM [33H] (La palabra de comando hexadecimal entre corchetes) Este comando permite que el controlador de bus lea la ROM de 64 bits del DS18B20. Este comando solo se puede utilizar cuando solo hay un DS18B20 en el bus. Si hay más de una conexión, se producirán conflictos de datos al comunicarse.
Match ROM (chip coincidente especificado) [55H]
Este comando va seguido de un número de serie de 64 bits emitido por el controlador. Cuando hay varios DS18B20 en el bus, solo el chip con el mismo número de serie enviado por el control puede responder, y otros chips esperarán el siguiente reinicio. Este comando es adecuado para montaje de un solo chip y de varios chips.
Saltar ROM (omitir comando ROM) [CCH]
Esta instrucción hace que el chip no responda a la codificación ROM, en el caso de un solo bus, se puede seleccionar esta instrucción para ahorrar tiempo. Si se utiliza este comando al montar varios chips, se producirán conflictos de datos que provocarán errores.
Buscar ROM (chip de búsqueda) [F0H]
Una vez inicializado el chip, el comando de búsqueda permite un proceso de eliminación para identificar la ROM de 64 bits de todos los dispositivos cuando se montan varios chips en el bus.
Búsqueda de alarma (búsqueda de chip de alarma) [ECH]
En el caso de montaje de múltiples chips, el comando de búsqueda de chip de alarma solo responde al chip cuya temperatura es superior a TH o inferior a la condición de alarma TL. Mientras el chip no pierda energía, el estado de alarma se mantendrá hasta que se vuelva a medir la temperatura y no alcance la condición de alarma.
Lista de instrucciones de operación de memoria del chip DS28B20:
Write Scratchpad (escribir datos en RAM) [4EH]
Esta es una instrucción para escribir datos en la RAM. Los dos bytes de datos escritos posteriormente se almacenarán en la dirección 2 (TH de la RAM de alarma) y en la dirección 3 (TL de la RAM de alarma). La señal de reinicio se puede utilizar para cancelar la escritura durante el proceso de escritura.
Leer Scratchpad (leer datos de la RAM) [BEH]
Esta instrucción leerá datos de la RAM. La dirección de lectura comienza desde la dirección 0 y se puede leer hasta la dirección 9, completando la lectura de todos los datos de la RAM. El chip permite utilizar la señal de reinicio para cancelar la lectura durante el proceso de lectura, es decir, no se pueden leer bytes posteriores innecesarios para reducir el tiempo de lectura.
Copiar Scratchpad (Copiar datos de RAM a EEPROM) [48H]
Esta instrucción almacena los datos de la RAM en EEPROM para que no se pierdan cuando se corta la alimentación. Desde entonces, dado que el chip está ocupado con el procesamiento de almacenamiento EEPROM, cuando el controlador envía un intervalo de tiempo de lectura, se emite "0" en el bus. Cuando se complete la operación de almacenamiento, el bus emitirá "1". En el modo de trabajo parásito, se debe aplicar un pull-up fuerte inmediatamente después de emitir este comando y mantenerlo durante al menos 10 MS para mantener el funcionamiento del chip.
Convertir T (conversión de temperatura) [44H]
Después de recibir este comando, el chip realizará una conversión de temperatura y colocará el valor de temperatura convertido en la primera y segunda dirección de la RAM. Desde entonces, debido a que el chip está ocupado con el procesamiento de conversión de temperatura, cuando el controlador envía un intervalo de tiempo de lectura, se emite "0" en el bus. Cuando se complete la operación de almacenamiento, el bus emitirá "1". En el modo de trabajo parásito, se debe aplicar un pull-up fuerte inmediatamente después de emitir este comando y mantenerlo durante al menos 500 MS para mantener el funcionamiento del chip.
Recuperar EEPROM (copiar el valor de alarma en EEPROM a RAM) [B8H]
Esta instrucción copia el valor de la alarma en EEPROM al tercer y cuarto byte de la RAM. Dado que el chip está ocupado con el procesamiento de copia, cuando el controlador emite un intervalo de tiempo de lectura, se emite un "0" en el bus, y cuando se completa la operación de almacenamiento, se emite un "1" en el bus. Además, este comando se ejecutará automáticamente cuando el chip se encienda y se reinicie. De esta manera, los dos bytes de alarma en la RAM siempre serán una imagen reflejada de los datos en la EEPROM.
Leer fuente de alimentación (cambio de modo de trabajo) [B4H]
Después de emitir este comando y de que se emita un intervalo de tiempo de lectura, el chip devolverá su palabra de estado de energía, "0" es el estado de energía parásita y "1" es el estado de energía externa.
Bloc de notas de datos RAM, utilizado para cálculos internos y acceso a datos. Los datos se pierden después de un corte de energía. DS18B20 tiene un total de 9 bytes de RAM, cada byte tiene 8 bits. El primer y segundo bytes son la información del valor de los datos después de la conversión de temperatura, y el tercer y cuarto bytes son la imagen de la EEPROM del usuario (comúnmente utilizada para el almacenamiento de valores de alarma de temperatura). Su valor se actualizará durante el reinicio del encendido. El quinto byte es la imagen de la tercera EEPROM del usuario. Los bytes 6, 7 y 8 son registros de conteo, que están diseñados para permitir a los usuarios obtener una resolución de temperatura más alta. También es una unidad de almacenamiento temporal para conversión y cálculo de temperatura interna. El noveno byte es el código CRC de los primeros 8 bytes. EEPROM es una memoria no volátil que se utiliza para almacenar datos que deben guardarse durante mucho tiempo, valores de alarma de temperatura superior e inferior y datos de verificación.
Proceso de operación del controlador para 18B20:
1. Reset: Primero debemos resetear el chip DS18B20. El reinicio es una señal de bajo nivel de al menos 480uS proporcionada por el controlador (microcontrolador) al bus único DS18B20. Cuando 18B20 recibe esta señal de reinicio, enviará de vuelta un pulso de presencia del chip después de 15 ~ 60 uS.
2. Pulso de presencia: después de que finaliza el nivel de reinicio, el controlador debe elevar el bus único de datos para recibir el pulso de presencia después de 15 ~ 60 uS. El pulso de existencia es una señal de bajo nivel de 60~240uS. En este punto, las partes de la comunicación han llegado a un acuerdo básico y el siguiente paso será la comunicación de datos entre el controlador y 18B20. Si el tiempo de reinicio del nivel bajo es insuficiente o el circuito del bus único está roto, no se recibirá el pulso de presencia. Preste atención a manejar situaciones inesperadas al diseñar.
Sensor digital magnético DS18B20 | Instrucciones de control del sensor digital DS18B20 |
3. El controlador envía un comando ROM: Una vez que las dos partes hayan terminado de saludarse, lo más importante es comunicarse. Hay 5 instrucciones ROM en total y solo se puede enviar una en cada ciclo de trabajo. Las instrucciones de la ROM son leer datos de la ROM, especificar el chip coincidente, saltar la ROM, buscar el chip y buscar el chip de alarma. La instrucción ROM tiene una longitud de 8 bits y su función es operar la ROM de fotolitografía de 64 bits en el chip. Su objetivo principal es distinguir y procesar múltiples dispositivos conectados a un bus. Es cierto que se pueden conectar varios dispositivos a un único bus al mismo tiempo y cada dispositivo se puede distinguir por su número de identificación único. Generalmente, el comando ROM se puede omitir cuando solo se monta un único chip 18B20 (nota: el comando omitir ROM aquí no significa no enviar un comando ROM, sino un "comando omitir" único)
4. El controlador envía instrucciones de operación de la memoria: después de enviar la instrucción ROM a 18B20, la instrucción de operación de la memoria se envía inmediatamente (sin interrupción). Las instrucciones de operación también son de 8 bits, 6 en total. Las instrucciones de operación de la memoria son escribir datos de RAM, leer datos de RAM, copiar datos de RAM a EEPROM, convertir temperatura, copiar valores de alarma en EEPROM a RAM y cambiar los modos de trabajo. La función de la instrucción de operación de la memoria es ordenarle a 18B20 que haga qué tipo de trabajo, que es la clave para el control del chip.
5. Ejecución o lectura y escritura de datos: Una vez completada una instrucción de operación de memoria, se realizará la ejecución de la instrucción o lectura y escritura de datos, esta operación depende de la instrucción de operación de memoria. Si se ejecuta el comando de conversión de temperatura, el controlador (microcontrolador) debe esperar a que 18B20 ejecute su comando. El tiempo de conversión general es 500uS. Si ejecuta instrucciones de lectura y escritura de datos, debe seguir estrictamente el tiempo de lectura y escritura 18B20. Los métodos de lectura y escritura de datos se presentarán en detalle a continuación.
Para leer los datos de temperatura actuales, necesitamos ejecutar dos ciclos de trabajo: el primer ciclo es restablecer, omitir instrucciones ROM, ejecutar instrucciones de operación de memoria de conversión de temperatura y esperar un tiempo de conversión de temperatura de 500 uS. Luego se ejecuta el segundo ciclo para restablecer, omitir instrucciones de ROM, ejecutar instrucciones de operación de memoria para leer RAM y leer datos (hasta 9 bytes, que se pueden detener a la mitad. Para leer solo valores de temperatura simples, lea los primeros 2 bytes, que es posible). Otros procedimientos operativos son similares y no se presentarán aquí.
Lista de instrucciones ROM del chip DS28B20:
Leer ROM [33H] (La palabra de comando hexadecimal entre corchetes) Este comando permite que el controlador de bus lea la ROM de 64 bits del DS18B20. Este comando solo se puede utilizar cuando solo hay un DS18B20 en el bus. Si hay más de una conexión, se producirán conflictos de datos al comunicarse.
Match ROM (chip coincidente especificado) [55H]
Este comando va seguido de un número de serie de 64 bits emitido por el controlador. Cuando hay varios DS18B20 en el bus, solo el chip con el mismo número de serie enviado por el control puede responder, y otros chips esperarán el siguiente reinicio. Este comando es adecuado para montaje de un solo chip y de varios chips.
Saltar ROM (omitir comando ROM) [CCH]
Esta instrucción hace que el chip no responda a la codificación ROM, en el caso de un solo bus, se puede seleccionar esta instrucción para ahorrar tiempo. Si se utiliza este comando al montar varios chips, se producirán conflictos de datos que provocarán errores.
Buscar ROM (chip de búsqueda) [F0H]
Una vez inicializado el chip, el comando de búsqueda permite un proceso de eliminación para identificar la ROM de 64 bits de todos los dispositivos cuando se montan varios chips en el bus.
Búsqueda de alarma (búsqueda de chip de alarma) [ECH]
En el caso de montaje de múltiples chips, el comando de búsqueda de chip de alarma solo responde al chip cuya temperatura es superior a TH o inferior a la condición de alarma TL. Mientras el chip no pierda energía, el estado de alarma se mantendrá hasta que se vuelva a medir la temperatura y no alcance la condición de alarma.
Lista de instrucciones de operación de memoria del chip DS28B20:
Write Scratchpad (escribir datos en RAM) [4EH]
Esta es una instrucción para escribir datos en la RAM. Los dos bytes de datos escritos posteriormente se almacenarán en la dirección 2 (TH de la RAM de alarma) y en la dirección 3 (TL de la RAM de alarma). La señal de reinicio se puede utilizar para cancelar la escritura durante el proceso de escritura.
Leer Scratchpad (leer datos de la RAM) [BEH]
Esta instrucción leerá datos de la RAM. La dirección de lectura comienza desde la dirección 0 y se puede leer hasta la dirección 9, completando la lectura de todos los datos de la RAM. El chip permite utilizar la señal de reinicio para cancelar la lectura durante el proceso de lectura, es decir, no se pueden leer bytes posteriores innecesarios para reducir el tiempo de lectura.
Copiar Scratchpad (Copiar datos de RAM a EEPROM) [48H]
Esta instrucción almacena los datos de la RAM en EEPROM para que no se pierdan cuando se corta la alimentación. Desde entonces, dado que el chip está ocupado con el procesamiento de almacenamiento EEPROM, cuando el controlador envía un intervalo de tiempo de lectura, se emite "0" en el bus. Cuando se complete la operación de almacenamiento, el bus emitirá "1". En el modo de trabajo parásito, se debe aplicar un pull-up fuerte inmediatamente después de emitir este comando y mantenerlo durante al menos 10 MS para mantener el funcionamiento del chip.
Convertir T (conversión de temperatura) [44H]
Después de recibir este comando, el chip realizará una conversión de temperatura y colocará el valor de temperatura convertido en la primera y segunda dirección de la RAM. Desde entonces, debido a que el chip está ocupado con el procesamiento de conversión de temperatura, cuando el controlador envía un intervalo de tiempo de lectura, se emite "0" en el bus. Cuando se complete la operación de almacenamiento, el bus emitirá "1". En el modo de trabajo parásito, se debe aplicar un pull-up fuerte inmediatamente después de emitir este comando y mantenerlo durante al menos 500 MS para mantener el funcionamiento del chip.
Recuperar EEPROM (copiar el valor de alarma en EEPROM a RAM) [B8H]
Esta instrucción copia el valor de la alarma en EEPROM al tercer y cuarto byte de la RAM. Dado que el chip está ocupado con el procesamiento de copia, cuando el controlador emite un intervalo de tiempo de lectura, se emite un "0" en el bus, y cuando se completa la operación de almacenamiento, se emite un "1" en el bus. Además, este comando se ejecutará automáticamente cuando el chip se encienda y se reinicie. De esta manera, los dos bytes de alarma en la RAM siempre serán una imagen reflejada de los datos en la EEPROM.
Leer fuente de alimentación (cambio de modo de trabajo) [B4H]
Después de emitir este comando y de que se emita un intervalo de tiempo de lectura, el chip devolverá su palabra de estado de energía, "0" es el estado de energía parásita y "1" es el estado de energía externa.