Hőmérséklet-érzékelő technológia

A DS18B20 digitális hőmérséklet -érzékelő hőmérsékleti mérési funkciójának megtervezése

DS18B20 digitális hőmérséklet-érzékelő hőmérsékletmérési funkciója

A DS18B20 egy 1 vezetékes digitális hőmérséklet-érzékelő, amelyet a DALLAS gyárt, 3 tűs TO-92 kis csomaggal. A hőmérséklet mérési tartománya -55 ℃ ~ + 125 ℃, és 9 bit ~ 12 bites A/D konverziós pontosságra programozható. A hőmérséklet mérési felbontása elérheti a 0,0625 ℃-ot, és a mért hőmérsékletet sorosan kiadjuk egy 16 bites digitális mennyiség formájában előjelkiterjesztéssel. Működő tápegysége bevezethető a távoli végén, vagy előállítható parazita tápegységgel. Több DS18B20 csatlakoztatható párhuzamosan 3 vagy 2 vonalak. A CPU-nak csak egy portvonalra van szüksége a sok DS18B20-zal való kommunikációhoz, kevesebb portot foglal el a mikroprocesszorban, amivel rengeteg vezetéket és logikai áramkört megspórolhatunk. A fenti jellemzők miatt a DS18B20 nagyon alkalmas távolsági többpontos hőmérséklet-érzékelő rendszerekhez.

DS18B20 digitális hőmérséklet-érzékelő hőmérsékletmérési funkciója

DS18B20 digitális hőmérséklet-érzékelő hőmérsékletmérési funkciója

2. A DS18B20 ds18b20 kapcsolási rajza belső felépítése
A DS18B20 belső felépítése az ábrán látható 1, amely főleg abból áll 4 alkatrészek: 64-bit ROM, hőmérséklet érzékelő, nem illékony hőmérséklet riasztás kiváltja a TH-t és a TL-t, és konfigurációs regiszterek. A DS18B20 csapok elrendezése az ábrán látható 2. A DQ a digitális jel bemeneti/kimeneti csatlakozója; A GND a tápfeszültség; A VDD a külső tápegység bemeneti terminálja (parazita tápkábelezési módban földelve, lásd ábra 4).

A ROM-ban lévő 64 bites sorozatszámot a gyár elhagyása előtt fotomaratják. Ez tekinthető a DS18B20 címsorkódjának. Az egyes DS18B20 64 bites sorozatszámai eltérőek. A ciklikus redundancia-ellenőrző kód (CRC=X8+X5+X4+1) a 64 bites ROM-ból van elrendezve. A ROM szerepe az, hogy minden DS18B20-at különbözővé tegyen, hogy egy buszra több DS18B20 is csatlakoztatható legyen.

A DS18B20 chip belső felépítése

A DS18B20 chip belső felépítése

Ábra 1, a DS18B20 belső szerkezete

A DS18B20 hőmérséklet-érzékelője befejezi a hőmérsékletmérést, amely 16 bites előjel-bővített bináris komplement leolvasások formájában biztosított, 0,0625℃/LSB formában kifejezve, ahol S az előjelbit. Például, a +125℃ digitális kimenete 07D0H, a +25,0625℃ digitális kimenet 0191H, a -25,0625℃ digitális kimenet FF6FH, és a -55 ℃ digitális kimenete FC90H.

23
22
21
20
2-1
2-2
2-3
2-4

A hőmérséklet értéke alacsony bájt
MSBLSB
S
S
S
S
S
22
25
24

Hőmérséklet érték magas bájt
A magas és alacsony hőmérsékleti riasztás aktiválja a TH-t és a TL-t, és a konfigurációs regiszter egy bájt EEPROM-ból áll. Egy memóriafunkció-parancs használható a TH-ba íráshoz, TL, vagy a konfigurációs regisztert. A konfigurációs regiszter formátuma a következő:

0
R1
R0
1
1
1
1
1
MSBLSB

R1 és R0 határozza meg a hőmérséklet-átalakítás pontossági számjegyeinek számát: R1R0 = “00”, 9-bit pontosság, a maximális konverziós idő 93,75 ms; R1R0 = “01”, 10-bit pontosság, A maximális konverziós idő 187,5 ms. R1R0 = “10”, 11-bit pontosság, a maximális konverziós idő 375 ms. R1R0 = “11”, 12-bit pontosság, a maximális konverziós idő 750 ms. Az alapértelmezett 12 bites pontosság, ha nincs programozva.

A nagy sebességű regiszter egy 9 bájtos memória. Az első két bájt a mért hőmérséklet digitális információit tartalmazza; a 3, 4th, és az 5. bájtok a TH ideiglenes másolatai, TL, és konfigurációs regiszterek, illetőleg, és minden alkalommal frissülnek, amikor újraindítás történik; a 6, 7th, és a 8. bájt nem használatos, és minden logikai 1-ként jelennek meg; a 9. bájt beolvassa az összes előző CRC kódját 8 bájtok, amelyek segítségével biztosítható a helyes kommunikáció.

3. DS18B20 működési sorrend
A DS18B20 első vonalbeli működő protokollfolyamata az: inicializálás → ROM műveleti utasítás → memória műveleti utasítás → adatátvitel. Működési sorrendje magában foglalja az inicializálási szekvenciát, írási és olvasási sorrend, ábrán látható módon 3 (a) (b) (c).

(a) Inicializálási sorrend
(c) Olvasási sorrend

A DS18B20 és a mikroprocesszor tipikus kapcsolási rajza

A DS18B20 és a mikroprocesszor tipikus kapcsolási rajza

Ábra 3, DS18B20 működési szekvencia diagram

4. A DS18B20 és az egychipes mikroszámítógép tipikus interfész kialakítása
Ábra 4 az MCS-51 sorozatú egychipes mikroszámítógépet veszi példaként, hogy megrajzolja a tipikus kapcsolatot a DS18B20 és a mikroprocesszor között. ábrán 4 (a), A DS18B20 parazita tápegység módot alkalmaz, VDD és GND kapcsai pedig földeltek. ábrán 4 (b), A DS18B20 külső tápegység üzemmódot alkalmaz, VDD terminálja pedig 3V~5,5V tápegységről működik.

a) Parazita tápegység működési mód
(b) Külső tápegység működési mód

DS18B20 üzemidő diagram

DS18B20 üzemidő diagram

Ábra 4 A DS18B20 és a mikroprocesszor tipikus csatlakozási rajza

Feltéve, hogy az egychipes mikroszámítógép-rendszer által használt kristályfrekvencia 12 MHz, három szubrutin íródik az inicializálási időzítés szerint, A DS18B20 írási és olvasási időzítése: Az INIT az inicializálási szubrutin; A WRITE az írás (parancs vagy adat) szubrutin; A READ az adatolvasási szubrutin. Minden adatolvasás és -írás a legalacsonyabb bittől kezdődik.

DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:CLRDAT
DJNZR2,INI11; A gazdagép 3 μs × 200 = 600 μs reset impulzust küld
SETBDAT; A házigazda elengedi a buszt, és a port sor bemenetre változik
MOVR2,#30
IN12:DJNZR2,INI12; A DS18B20 2μs × 30=60μs-ig vár
CLRC
ORLC,HOGY; A DS18B20 adatvonal alacsony (pulzus létezik)?
JCINI10; DS18B20 is not ready, re-initialize
MOVR6, #80
INI13: ORLC, HOGY
JCINI14; DS18B20 data line goes high, initialization is successful
DJNZR6, INI13; data line low level can last for 3μs × 80 = 240μs
SJMPINI10; initialization failed, restart
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 responds for at least 2μs × 240 = 48 0μs
RET

-------------------------
WRITE:CLREA
MOVR3,#8;Hurok 8 idő, write a byte
WR11:SETBDAT
MOVR4,#8
RRCAWrite bit moves from A to CY
CLRDAT
WR12:DJNZR4,WR12
Wait 16μs
MOVDAT,C;Command word is sent to DS18B20 bit by bit
MOVR4,#20
WR13:DJNZR4,WR1 3
; Ensure that the write process lasts for 60μs
DJNZR3,WR11
; Continue before sending a byte
SETBDAT
RET

;--------------------
OLVAS:CLREA
MOVR6,#8; Hurok 8 idő, olvas egy bájtot
RD11:CLRDAT
MOVR4,#4
NOP; Az alacsony szint 2μs-ig tart
SETBDAT; Állítsa be a port vonalat a bemenetre
RD12:DJNZR4,RD12
; Várjon 8 μs-ot
MOVC,T-TŐL
;A gazdagép bitenként olvassa be a DS18B20 adatait
RRCA;A kiolvasott adatok átkerülnek az A-ba
MOVR5,#30
RD13:DJNZR5,RD13
;Győződjön meg arról, hogy az olvasási folyamat 60 μs-ig tart
DJNZR6,RD11
;Egy bájtnyi adat beolvasása után, tárolja az A-ban
SETBDAT
RET
-------------------------
A gazdagépnek három lépésen kell keresztülmennie a DS18B20 vezérléséhez a hőmérséklet-átalakítás befejezéséhez: inicializálás, ROM kezelési útmutató, és a memória kezelési utasításait. A DS18B20-at el kell indítani az átalakítás megkezdéséhez, mielőtt leolvassa a hőmérséklet-konverziós értéket. Feltéve, hogy egy vonalhoz csak egy chip csatlakozik, az alapértelmezett 12 bites konverziós pontosság használatos, és külső tápegységet használnak, egy GETWD szubrutin írható az átalakítás befejezéséhez és a hőmérsékleti érték kiolvasásához.

KAPU:LCALLINIT
MOZOG,#0CCH
LCALLWRITE; küldje el a skip ROM parancsot
MOZOG,# 44 óra
LCALLWRITE; konverziós indítási parancs küldése
LCALLINIT
MOZOG,#0CCH; küldje el a skip ROM parancsot
LCALLWRITE
MOZOG,#0 BEH; olvasási memória parancs küldése
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; alacsony bájt hőmérsékleti érték küldése a WDLSB-nek
LCALLREAD
MOVWDMSB,A
; magas hőmérsékleti bájtot küld a WDMSB-nek
RET
……

A GETWD szubrutin által beolvasott hőmérsékleti érték magas bájtja elküldésre kerül a WDMSB egységnek, és az alacsony bájt elküldésre kerül a WDLSB egységnek. Majd a hőmérséklet érték byte és előjelbitje ábrázolási formátuma szerint, a tényleges hőmérsékleti értéket egyszerű transzformációval kaphatjuk meg.

Ha több DS18B20 csatlakozik egy vonalra, parazita tápegység csatlakozási mód kerül elfogadásra, konverziós pontosság konfigurációja, felső és alsó határérték riasztás, stb. szükségesek. Ekkor a GETWD szubrutin írása bonyolultabb lesz. Helyszűke miatt, ezt a részt nem ismertetjük részletesen. Kérjük, tekintse meg a vonatkozó tartalmat.

Sikeresen alkalmaztuk a DS18B20-at a “háztartási fűtőfürdő” általunk kifejlesztett vezérlőrendszer. Gyors konverziós sebessége, nagy konverziós pontosság, és a mikroprocesszorral való egyszerű interfész nagy kényelmet biztosított a hardvertervezésben, hatékonyan csökkenti a költségeket és lerövidíti a fejlesztési ciklusokat.