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.
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.
Á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
Á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
Á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
RRCA;Write 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.
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



