DS18B20 és un sensor de temperatura digital d'1 cable produït per DALLAS, amb un paquet petit TO-92 de 3 pins. El rang de mesura de temperatura és de -55 ℃ ~ + 125 ℃, i es pot programar amb una precisió de conversió A/D de 9 bits ~ 12 bits. La resolució de mesura de temperatura pot arribar a 0,0625 ℃, i la temperatura mesurada s'emet en sèrie en forma d'una quantitat digital de 16 bits amb extensió de signe. La seva font d'alimentació de treball es pot introduir a l'extrem remot o generada per una font d'alimentació paràsit. Es poden connectar diversos DS18B20 en paral·lel 3 o 2 línies. La CPU només necessita una línia de port per comunicar-se amb molts DS18B20, ocupant menys ports del microprocessador, que pot estalviar molts cables i circuits lògics. Les característiques anteriors fan que DS18B20 sigui molt adequat per a sistemes de detecció de temperatura multipunt de llarga distància.
2. Estructura interna del diagrama de circuit DS18B20 ds18b20
L'estructura interna del DS18B20 es mostra a la figura 1, que consisteix principalment en 4 parts: 64-bit ROM, Sensor de temperatura, L’alarma de temperatura no volàtil desencadena TH i TL, i registres de configuració. La disposició dels pins del DS18B20 es mostra a la figura 2. DQ és el terminal d’entrada/sortida del senyal digital; GND és el terreny elèctric; VDD és el terminal d'entrada de la font d'alimentació externa (posat a terra en mode de cablejat d'alimentació paràsit, vegeu la figura 4).
El número de sèrie de 64 bits de la ROM està fotogravat abans de sortir de fàbrica. Es pot considerar com el codi de seqüència d'adreces del DS18B20. El número de sèrie de 64 bits de cada DS18B20 és diferent. El codi de verificació de redundància cíclica (CRC=X8+X5+X4+1) de la ROM de 64 bits està disposada. El paper de la ROM és fer que cada DS18B20 sigui diferent, de manera que es poden connectar múltiples ds18b20s a un autobús.
Figura 1, estructura interna de DS18B20
El sensor de temperatura del DS18B20 completa la mesura de la temperatura, que es proporciona en forma de lectures de complement binari de signe estès de 16 bits, expressat en forma de 0,0625 ℃/LSB, on s és el bit de signe. Per exemple, La sortida digital de +125 ℃ és 07d0h, La sortida digital de +25.0625 ℃ és 0191H, la sortida digital de -25,0625 ℃ és FF6FH, i la sortida digital de -55 ℃ és FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Valor de temperatura byte baix
MSBLSB
S
S
S
S
S
22
25
24
Byte alt de valor de temperatura
L'alarma de temperatura alta i baixa activa TH i TL, i el registre de configuració es compon d'un byte d'EEPROM. Es pot utilitzar una ordre de funció de memòria per escriure a TH, TL, o el registre de configuració. El format del registre de configuració és el següent:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 i R0 determinen el nombre de dígits de precisió per a la conversió de temperatura: R1R0 = “00”, 9-una mica de precisió, El temps màxim de conversió és de 93,75 ms; R1R0 = “01”, 10-una mica de precisió, El temps màxim de conversió és de 187,5 ms. R1R0 = “10”, 11-una mica de precisió, El temps màxim de conversió és de 375 ms. R1R0 = “11”, 12-una mica de precisió, El temps màxim de conversió és de 750 ms. El valor predeterminat és la precisió de 12 bits quan no està programat.
El registre d'alta velocitat és una memòria de 9 bytes. Els dos primers bytes contenen la informació digital de la temperatura mesurada; el 3r, 4th, i els 5è bytes són còpies temporals de TH, TL, i registres de configuració, respectivament, i s'actualitzen cada vegada que es reinicia l'engegada; el 6è, 7th, i 8è bytes no s'utilitzen i es representen com tots els 1s lògics; el 9è byte llegeix el codi CRC de tots els anteriors 8 bytes, que es pot utilitzar per garantir una comunicació correcta.
3. Seqüència de treball DS18B20
El flux de protocol de treball de primera línia de DS18B20 és: inicialització → instrucció d'operació ROM → instrucció d'operació de memòria → transmissió de dades. La seva seqüència de treball inclou la seqüència d'inicialització, seqüència d'escriptura i seqüència de lectura, tal com es mostra a la figura 3 (a) (b) (c).
(a) Seqüència d'inicialització
(c) Seqüència de lectura
Figura 3, Diagrama de seqüència de treball DS18B20
4. Disseny d'interfície típic de DS18B20 i microordinador d'un sol xip
Figura 4 pren com a exemple el microordinador d'un xip de la sèrie MCS-51 per dibuixar la connexió típica entre el DS18B20 i el microprocessador. A la figura 4 (a), DS18B20 adopta el mode d'alimentació paràsit, i els seus terminals VDD i GND estan connectats a terra. A la figura 4 (b), DS18B20 adopta el mode d'alimentació externa, i el seu terminal VDD està alimentat per una font d'alimentació de 3V ~ 5,5V.
a) Mode de funcionament de la font d'alimentació parasitària
(b) Mode de funcionament de la font d'alimentació externa
Figura 4 Diagrama de connexió típic de DS18B20 i microprocessador
Suposant que la freqüència de cristall utilitzada pel sistema de microordinadors d'un sol xip és de 12 MHz, s'escriuen tres subrutines segons el temps d'inicialització, temps d'escriptura i temps de lectura del DS18B20: INIT és la subrutina d'inicialització; ESCRIURE és l'escriptura (comanda o dades) subrutina; READ és la subrutina de dades de lectura. Tota la lectura i escriptura de dades comencen des del bit més baix.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2,INI11; L'amfitrió envia un pols de restabliment durant 3μs × 200 = 600μs
SETBDAT; L'amfitrió deixa anar l'autobús, i la línia de port es canvia a entrada
MOVR2,#30
IN12:DJNZR2,INI12; DS18B20 espera 2μs×30=60μs
CLRC
Orlc,AIXÒ; La línia de dades DS18B20 és baixa? (pols existeix)?
JCINI10; DS18B20 no està preparat, reinicialitzar
MOVR6, #80
INI13: Orlc, AIXÒ
JCINI14; La línia de dades DS18B20 va alta, la inicialització és correcta
DJNZR6, INI13; El nivell baix de la línia de dades pot durar 3μs × 80 = 240 μs
SYMPINI10; la inicialització ha fallat, reiniciar
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 respon almenys 2μs × 240 = 48 0μs
RET
;----------------
ESCRIURE:CLREA
MOVR3,#8;Bucle 8 vegades, escriure un byte
WR11:SETBDAT
MOVR4,#8
RRCA;Escriviu els moviments de bits de A a CY
Clrdat
WR12:DJNZR4, WR12
;Espereu 16 μs
MOVDAT,C;La paraula d'ordre s'envia a DS18B20 bit a bit
MOVR4,#20
WR13:DJNZR4,WR1 3
; Assegureu-vos que el procés d'escriptura duri 60 μs
DJNZR3, WR11
; Continueu abans d'enviar un byte
SETBDAT
RET
;----------------
LLEGIR:CLREA
MOVR6,#8; Bucle 8 vegades, llegir un byte
RD11:Clrdat
MOVR4,#4
NOP; El nivell baix dura 2 μs
SETBDAT; Estableix la línia del port a l'entrada
RD12:DJNZR4,RD12
; Espereu 8 μs
MOVC,DE T
;L'amfitrió llegeix les dades de DS18B20 bit a bit
RRCA;Les dades llegides es mouen a A
MOVR5,#30
RD13:DJNZR5,RD13
;Assegureu-vos que el procés de lectura duri 60 μs
DJNZR6,RD11
;Després de llegir un byte de dades, emmagatzemar-lo a A
SETBDAT
RET
;----------------
L'amfitrió ha de seguir tres passos per controlar DS18B20 per completar la conversió de la temperatura: inicialització, Instruccions de funcionament de la ROM, i instruccions d'operació de memòria. El DS18B20 s'ha d'iniciar per iniciar la conversió abans de llegir el valor de conversió de temperatura. Suposant que només un xip està connectat a una línia, s'utilitza la precisió de conversió predeterminada de 12 bits, i s'utilitza una font d'alimentació externa, es pot escriure una subrutina GETWD per completar una conversió i llegir el valor de la temperatura.
Dotat:LCALLINIT
MOU,#0CCH
LCALLWRITE; enviar l'ordre de salt ROM
MOU,#44H
LCALLWRITE; enviar l'ordre d'inici de conversió
LCALLINIT
MOU,#0CCH; enviar l'ordre de salt ROM
LCALLWRITE
MOU,#0 BEH; enviar l'ordre de lectura de memòria
LCALLWRITE
LCALLREAD
MOVWDLSB,Una
; enviar byte baix del valor de temperatura a WDLSB
LCALLREAD
MOVWDMSB,Una
; enviar byte alt del valor de temperatura a WDMSB
RET
……
El byte alt del valor de temperatura llegit per la subrutina GETWD s'envia a la unitat WDMSB, i el byte baix s'envia a la unitat WDLSB. A continuació, segons el format de representació del byte de valor de temperatura i el seu bit de signe, el valor real de la temperatura es pot obtenir mitjançant una simple transformació.
Si hi ha diversos DS18B20 connectats en una línia, S'adopta el mode de connexió de la font d'alimentació paràsit, configuració de precisió de conversió, alarma límit alt i baix, etc. són necessaris. Aleshores, l'escriptura de la subrutina GETWD serà més complicada. Per limitacions d'espai, aquesta secció no es descriu amb detall. Consulteu el contingut rellevant.
Hem aplicat correctament DS18B20 al “bany de calefacció domèstic” sistema de control que hem desenvolupat. La seva ràpida velocitat de conversió, alta precisió de conversió, i la interfície senzilla amb el microprocessador han aportat una gran comoditat al treball de disseny de maquinari, reduir de manera efectiva els costos i escurçar els cicles de desenvolupament.
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt



