Introdução ao sensor de temperatura DS18B20 Introdução
DS18B20 é um sensor de temperatura digital comumente usado. Ele produz sinais digitais, tem as características de tamanho pequeno, baixa sobrecarga de hardware, forte capacidade anti-interferência, alta precisão, e é amplamente utilizado.
Introdução ao sensor de temperatura DS18B20
Recursos técnicos:
①. Modo de interface exclusivo de fio único. Quando o ds18b20 está conectado a um microprocessador, apenas 1 É necessário o fio para realizar a comunicação bidirecional entre o microprocessador e o ds18b20.
②. Faixa de medição de temperatura -55 ℃~+125 ℃, Erro de medição de temperatura inerente 1 ℃.
③. Suporte a função de rede de vários pontos. Múltiplos ds18b20 podem ser conectados em paralelo nos únicos três fios, e um máximo de 8 pode ser conectado em paralelo para realizar a medição de temperatura de vários pontos. Se o número for muito grande, A tensão da fonte de alimentação será muito baixa, resultando em transmissão de sinal instável.
④. Fonte de energia de trabalho: 3.0~ 5.5V/DC (A fonte de alimentação parasitária da linha de dados pode ser usada).
⑤. Não são necessários componentes periféricos durante o uso.
⑥. Os resultados da medição são transmitidos em série em forma digital de 9 ~ 12 bits.
⑦. O diâmetro do tubo de proteção de aço inoxidável é φ6.
⑧. É adequado para medição de temperatura de vários pipelines industriais médios de DN15 ~ 25, DN40 ~ DN250 e equipamentos em espaços estreitos.
⑨. Trevas de instalação padrão m10x1, M12X1.5, G1/2 ”são opcionais.
⑩. O cabo de PVC está diretamente conectado ou a caixa de junção do tipo bola alemã está conectada, o que é conveniente para conexão com outros equipamentos elétricos.
DS18B20 LEIA E ESCREVA O PRINCÍPIO DE MEDIÇÃO DO TEMPERAÇÃO:
Princípio de medição de temperatura DS18B20 é mostrado na figura 1. A frequência de oscilação do oscilador de cristal do coeficiente de baixa temperatura na figura é pouco afetado pela temperatura, e é usado para gerar um sinal de pulso de frequência fixo a ser enviado para contrariar 1. A frequência de oscilação do oscilador de cristal do coeficiente de alta temperatura muda significativamente com a temperatura, e o sinal gerado é usado como a entrada de pulso do contador 2. Contador 1 e o registro de temperatura é predefinido a um valor base correspondente a -55 ℃. Contador 1 subtrai o sinal de pulso gerado pelo oscilador de cristal de coeficiente de baixa temperatura. Quando o valor predefinido do contador 1 é reduzido para 0, O valor do registro de temperatura será aumentado por 1, e a predefinição do contador 1 será recarregado. Contador 1 reinicia para contar o sinal de pulso gerado pelo oscilador de cristal do coeficiente de baixa temperatura, e o ciclo continua até o balcão 2 conta para 0, interromper o acúmulo do valor do registro de temperatura. Neste momento, O valor no registro de temperatura é a temperatura medida. O acumulador de inclinação é usado para compensar e corrigir a não linearidade no processo de medição de temperatura, e sua saída é usada para corrigir o valor predefinido do contador 1.
Figura 1 é o seguinte:
2. Diagrama de conexão DS18B20 e MCU
3. Definição do pino DS18B20:
DQ: Entrada de dados/saída. Interface de 1 fio de dreno aberto. Também pode fornecer energia ao dispositivo quando usado no modo de energia parasita VDD: fonte de alimentação positiva GND: energia de energia 4. DS18B20 ANÁLISE INTRODUÇÃO:
A figura acima mostra o diagrama de blocos do ds18b20, e a ROM de 64 bits armazena o código serial exclusivo do dispositivo. A memória do buffer contém 2 bytes de registros de temperatura que armazenam a saída digital do sensor de temperatura. Além disso, A memória do buffer fornece acesso a registros de gatilho de alarmes superiores e inferiores de 1 bytes (Th e tl) e registros de configuração de 1 bytes. O registro de configuração permite ao usuário definir a resolução da temperatura para a conversão digital para 9, 10, 11, ou 12 bits. Th, Tl, e registros de configuração não são voláteis (EEPROM), Então eles reterão dados quando o dispositivo for desligado. O DS18B20 usa o protocolo de barramento de 1 fio único da Maxim, que usa um sinal de controle. A linha de controle requer um resistor de pull-up fraco, porque todos os dispositivos estão conectados ao barramento através de uma porta de 3 estados ou de drenagem aberta (Pino DQ no caso do DS18b20). Neste sistema de ônibus, o microprocessador (mestre) usa um código exclusivo de 64 bits para cada dispositivo. Porque cada dispositivo tem um código único, O número de dispositivos que podem ser abordados em um ônibus é praticamente ilimitado.
Formato de registro de temperatura
Relacionamento de temperatura/dados
Sinal de alarme de operação
Após o DS18B20, executa uma conversão de temperatura, Ele compara o valor da temperatura ao valor do disparador de complemento definido pelo usuário, armazenado nos registros de 1 byte th e tl. O bit de sinal indica se o valor é positivo ou negativo: POSIVO S = 0, negativo s = 1. Os registros TH e TL não são voláteis (EEPROM) e, portanto, não são voláteis quando o dispositivo é desligado. TH e TL podem ser acessados através de bytes 2 e 3 da memória.
Formato de registro TH e TL:
Diagrama esquemático de alimentar o DS18b20 usando uma fonte de alimentação externa
64-Bit Código de memória somente leitura a laser:
Cada DS18B20 contém um código exclusivo de 64 bits armazenado em ROM. O menos significativo 8 Os bits do código ROM contêm o código familiar único do DS18B20: 28h. O próximo 48 Bits contêm um número de série único. O mais significativo 8 Bits contêm uma verificação de redundância cíclica (CRC) byte, que é calculado a partir do primeiro 56 bits do código ROM.
Mapa de memória ds18b20
Registro de configuração:
Figura 2
Byte 4 da memória contém o registro de configuração, que é organizado como mostrado na figura 2. O usuário pode definir a resolução de conversão do DS18B20 usando bits R0 e R1 aqui, como mostrado na tabela 2. Os padrões de energia para esses bits são r0 = 1 e r1 = 1 (12-resolução de bits). Observe que há uma relação direta entre resolução e tempo de conversão. Pedaço 7 e bits 0 para 4 No registro de configuração, são reservados para uso interno do dispositivo e não podem ser substituídos.
Mesa 2 Configuração da resolução do termômetro
Geração CRC
O CRC Byte faz parte do código ROM DS18B20 de 64 bits e é fornecido no 9º byte do ScratchPad. O código ROM CRC é calculado a partir do primeiro 56 bits do código da ROM e está contido no byte mais significativo da ROM. O CRC do ScratchPad é calculado com base nos dados armazenados no ScratchPad, Portanto, muda quando os dados no scratchpad mudam. O CRC fornece ao host de ônibus um método de verificação de dados ao ler dados do DS18B20. Depois de verificar se os dados foram lidos corretamente, O mestre de ônibus deve recalcular o CRC dos dados recebidos e depois comparar esse valor com o código ROM CRC (para leituras de ROM) ou o scratchpad CRC (para leituras de scratchpad). Se o CRC calculado corresponder à leitura CRC, Os dados foram recebidos corretamente. A decisão de comparar os valores de CRC e prosseguir está inteiramente a critério do mestre de ônibus. Não há circuitos dentro do ds18b20 que impedirá a execução de uma sequência de comando se:
O DS18B20 CRC (Rom ou ScratchPad) não corresponde ao valor gerado pelo mestre de ônibus.
A função polinomial equivalente para o CRC é:
CRC = x8 + X5 + X4 + 1
O mestre de ônibus pode recalcular o CRC e compará -lo ao valor do CRC do DS18B20 por:
O gerador polinomial é mostrado na figura 3. O circuito inclui um registro de turno e portões Yihuo, e os bits do registro de turno são inicializados para 0. O bit menos significativo do código ROM ou o bit menos significativo de byte 0 no scratchpad deve ser transferido para o registro de turno um de cada vez. Depois de mudar de bit 56 da ROM ou a parte mais significativa do byte 7 do scratchpad, O gerador polinomial conterá o CRC recalculado. Próximo, O código ROM de 8 bits ou o sinal CRC no scratchpad ds18b20 deve ser transferido para o circuito. Neste ponto, Se o CRC recalculado estiver correto, O registro de turno será todos 0s.
Figura 3: Gerador CRC
V. Acessando o DS18B20:
A sequência para acessar o DS18B20 é a seguinte:
Etapa 1. Inicialização;
Etapa 2. ROM Comando (seguido de qualquer troca de dados necessária);
Etapa 3. DS18B20 Comando de função (seguido de qualquer troca de dados necessária);
Observação: Esta sequência é seguida toda vez que o DS18B20 é acessado, Porque o DS18b20 não responderá se alguma etapa na sequência estiver ausente ou fora de ordem. A exceção a esta regra é a ROM de pesquisa [F0h] e pesquisa de alarme [EU] comandos. Depois de emitir esses dois comandos de ROM, O host deve voltar à etapa 1 em sequência.
(A introdução acima é traduzida do manual oficial)
ROM Comando
1, Leia ROM [33h]
2, Combine rom [55h]
3, Sala de navios [Cch]
4, Pesquisa de alarme [EU]
DS18B20 Comando de função
1, Converter temperatura [44h]
2, Escreva ScratchPad (Memória) [4Eh]
3, Leia o ScratchPad (Memória) [Beh]
4, Copie o ScratchPad (Memória [48h]
5, Renorma e2 [B8H]
6, Leia o poder [B4H]
(Para uma descrição detalhada dos comandos acima, Veja o manual oficial)
Vi. Acesse o tempo DS18B20
Durante o processo de inicialização, O mestre de ônibus envia um pulso de redefinição (Tx) Baixo nível por pelo menos 480µs puxando o ônibus de 1 fio. Então, O mestre de ônibus libera o ônibus e entra no modo de recebimento (Rx). Depois de liberar o ônibus, O resistor de pull-up de 5kΩ puxa o ônibus de 1 fio alto. Quando o DS18B20 detecta esta borda crescente, Ele aguarda 15µs a 60µs e depois envia um pulso de presença puxando o ônibus de 1 fio para baixo por 60µs a 240µs.
Timing de inicialização:
Existem dois tipos de slots de tempo de gravação: “Escreva 1” horários e “Escreva 0” horários. O ônibus usa uma gravação 1 horário para escrever uma lógica 1 para o ds18b20 e uma escrita 0 horário para escrever uma lógica 0 para o DS18b20. Todos os slots de tempo de gravação devem ter pelo menos 60µs de duração, com um tempo de recuperação de pelo menos 1 µs entre os slots de tempo de gravação individuais. Ambos os tipos de slots de tempo de gravação são iniciados pelo mestre puxando o barramento de 1 fio baixo (veja a figura 14). Para gerar uma escrita 1 intervalo de tempo, Depois de puxar o ônibus de 1 fio baixo, O mestre de ônibus deve liberar o ônibus de 1 fio dentro de 15µs. Depois de liberar o ônibus, O resistor de pull-up de 5kΩ puxa o ônibus alto. Gerar a
Escrever 0 intervalo de tempo, Depois de puxar a linha de 1 fio baixa, O mestre de ônibus deve continuar mantendo o ônibus baixo durante a duração do intervalo de tempo (pelo menos 60µs). O DS18B20 amostra o barramento de 1 fio dentro de uma janela de 15µs a 60µs depois que o mestre inicia o horário de gravação slot. Se o ônibus estiver alto durante a janela de amostragem, um 1 é escrito para o DS18b20. Se a linha estiver baixa, um 0 é escrito para o DS18b20.
Observação: O horário é uma parte da auto-multiplexação em série das informações do slot de tempo dedicadas a um único canal.
Figura 14 é o seguinte:

DS18B20 Os slots de tempo de gravação são acionados pelo host para puxar o ônibus de 1 fio para baixo nível
Leia o horário:
O DS18B20 só pode enviar dados para o host quando o host emite um horário de leitura slot. Portanto, O host deve gerar um horário de leitura imediatamente após emitir um comando de memória de leitura [Beh] ou uma fonte de alimentação de leitura [B4H] comando para que o DS18B20 forneça os dados necessários. Alternativamente, O host pode gerar um horário de leitura depois de emitir um convertido t [44h] ou lembre -se E2 [B8H] comando para descobrir o status. Todos os slots de tempo de leitura devem ter pelo menos 60µs de duração com um tempo de recuperação mínimo de 1 µs entre os horários. Um slot de tempo de leitura é iniciado pelo mestre puxando o barramento de 1 fio para mantê-lo baixo por pelo menos 1µs e depois liberar o ônibus (veja a figura 14). Depois que o mestre inicia um horário de leitura, O DS18B20 começará a enviar 1s ou 0s no ônibus. O DS18B20 envia um 1 segurando o ônibus alto e envia um 0 puxando o ônibus baixo. Quando a 0 é enviado, O DS18B20 libera o ônibus mantendo o ônibus alto. O horário termina e o ônibus é puxado de volta para o estado ocioso alto pelo resistor de pull-up.