DS18B20 е 1-жичен дигитален температурен сензор произведен од DALLAS, со 3-пински TO-92 мало пакување. Опсегот на мерење на температурата е -55℃~+125℃, и може да се програмира на 9-битна~12-битна A/D точност на конверзија. Резолуцијата за мерење на температурата може да достигне 0,0625℃, а измерената температура сериски излегува во форма на 16-битна дигитална количина со проширување на знакот. Нејзиното работно напојување може да се воведе на оддалечениот крај или да се генерира од паразитско напојување. Повеќекратни DS18B20 може да се поврзат паралелно со 3 или 2 линии. На процесорот му треба само една порта линија за да комуницира со многу DS18B20, зафаќајќи помалку порти на микропроцесорот, што може да заштеди многу одводи и логички кола. Горенаведените карактеристики го прават DS18B20 многу погоден за системи за откривање температура на повеќе точки на долги растојанија.
2. Внатрешна структура на дијаграм на колото DS18B20 ds18b20
Внатрешната структура на DS18B20 е прикажана на слика 1, која главно се состои од 4 делови: 64-бит ROM, сензор за температура, неиспарливиот аларм за температура ги активира TH и TL, и регистри за конфигурација. Распоредот на пиновите на DS18B20 е прикажан на слика 2. DQ е влезен/излезен терминал за дигитален сигнал; GND е моќно заземјување; VDD е влезен терминал за надворешно напојување (заземјен во режим на паразитски жици за напојување, види Слика 4).
64-битниот сериски број во ROM-от се фотографира пред да излезе од фабриката. Може да се смета како код за секвенца на адреси на DS18B20. 64-битниот сериски број на секој DS18B20 е различен. Шифра за проверка на цикличниот вишок (CRC=X8+X5+X4+1) на 64-битниот ROM е подреден. Улогата на ROM-от е да го направи секој DS18B20 различен, така што повеќе DS18B20 може да се поврзат на една магистрала.
Слика 1, внатрешна структура на DS18B20
Температурниот сензор во DS18B20 го комплетира мерењето на температурата, кој е обезбеден во форма на 16-битни отчитувања на бинарни комплементи со продолжен знак, изразено во форма на 0,0625℃/LSB, каде што S е знакот бит. На пример, дигиталниот излез од +125℃ е 07D0H, дигиталниот излез од +25,0625℃ е 0191H, дигиталниот излез од -25,0625℃ е FF6FH, а дигиталниот излез од -55℃ е FC90H.
23
22
21
20
2- 1
2- 2
2- 3
2- 4
Температурна вредност низок бајт
MSBLSB
С
С
С
С
С
22
25
24
Температурна вредност висок бајт
Алармот за висока и ниска температура ги активира TH и TL, а конфигурацискиот регистар се составени од еден бајт EEPROM. Командата за мемориска функција може да се користи за пишување на TH, TL, или конфигурацискиот регистар. Форматот на конфигурацискиот регистар е како што следува:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 и R0 го одредуваат бројот на цифри со прецизност за температурна конверзија: R1R0 = “00”, 9-малку прецизност, максималното време на конверзија е 93,75 ms; R1R0 = “01”, 10-малку прецизност, максималното време на конверзија е 187,5 ms. R1R0 = “10”, 11-малку прецизност, максималното време на конверзија е 375 ms. R1R0 = “11”, 12-малку прецизност, максималното време на конверзија е 750 ms. Стандардно е 12-битна прецизност кога не е програмирана.
Регистарот со голема брзина е меморија од 9 бајти. Првите два бајта ги содржат дигиталните информации за измерената температура; 3-ти, 4ти, и 5-ти бајти се привремени копии на TH, TL, и регистри за конфигурација, соодветно, и се освежуваат секогаш кога ќе се случи ресетирање со вклучување; 6-ти, 7ти, и 8-ми бајти не се користат и се претставени како сите логички 1-и; 9-тиот бајт го чита CRC кодот на сите претходни 8 бајти, што може да се користи за да се обезбеди правилна комуникација.
3. Работна низа DS18B20
Протокот на работниот протокол од прва линија на DS18B20 е: иницијализација → инструкција за работа на ROM → инструкција за работа со меморија → пренос на податоци. Нејзината работна низа вклучува низа за иницијализација, пишуваат низа и читаат низа, како што е прикажано на слика 3 (а) (б) (в).
(а) Секвенца на иницијализација
(в) Прочитајте ја низата
Слика 3, DS18B20 дијаграм на работна секвенца
4. Типичен дизајн на интерфејс на DS18B20 и микрокомпјутер со еден чип
Слика 4 го зема микрокомпјутерот со еден чип од серијата MCS-51 како пример за да се подготви типичната врска помеѓу DS18B20 и микропроцесорот. На слика 4 (а), DS18B20 прифаќа паразитски режим на напојување, а неговите VDD и GND терминали се заземјени. На слика 4 (б), DS18B20 го прифаќа режимот за надворешно напојување, а неговиот VDD терминал се напојува со напојување од 3V~5,5V.
а) Паразитски режим на работа на напојување
(б) Режим на работа на надворешно напојување
Слика 4 Типичен дијаграм за поврзување на DS18B20 и микропроцесор
Под претпоставка дека кристалната фреквенција што ја користи микрокомпјутерскиот систем со еден чип е 12 MHz, три потпрограми се напишани според времето на иницијализација, запишување на времето и читање на тајмингот на DS18B20: INIT е потпрограма за иницијализација; WRITE е пишувањето (команда или податоци) потпрограма; READ е потпрограма за читање податоци. Целото читање и пишување податоци започнува од најнискиот бит.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Клрдат
DJNZR2, INI11; Домаќинот испраќа пулс за ресетирање за 3μs×200=600μs
SETBDAT; Домаќинот го ослободува автобусот, а линијата на портот се менува во влезна
MOVR2,#30
ИН12:DJNZR2, INI12; DS18B20 чека 2μs×30=60μs
CLRC
Орлц,ТОА; Дали линијата за податоци DS18B20 е ниска (пулсот постои)?
JCINI10; DS18B20 не е подготвен, повторно иницијализираат
MOVR6, #80
INI13: Орлц, ТОА
JCINI14; Линијата за податоци DS18B20 оди високо, иницијализацијата е успешна
DJNZR6, INI13; Ниското ниво на линијата за податоци може да трае 3μs × 80 = 240μs
СИМПИНИ10; иницијализацијата не успеа, рестартирајте
INI14: MOVR2, #240
ВО 15: DJNZR2, INI15; DS18B20 одговара за најмалку 2μs × 240 = 48 0μs
РЕТ
;------------------------------------------------
ПИШИ:CLREA
MOVR3,#8;Јамка 8 пати, напишете бајт
WR11:SETBDAT
MOVR4,#8
RRCA;Запишете поместувања на битови од A до CY
Клрдат
WR12:DJNZR4, WR12
;Почекајте 16μs
МОВДАТ,В;Командниот збор се испраќа до DS18B20 малку по малку
MOVR4,#20
WR13:DJNZR4, WR1 3
; Погрижете се процесот на запишување да трае 60μs
DJNZR3, WR11
; Продолжете пред да испратите бајт
SETBDAT
РЕТ
;--------------------------------------------
ПРОЧИТАЈ:CLREA
MOVR6,#8; Јамка 8 пати, прочитај бајт
RD11:Клрдат
MOVR4,#4
НЕ; Ниското ниво трае 2μs
SETBDAT; Поставете ја линијата за порта на влез
RD12:DJNZR4,RD12
; Почекајте 8μs
MOVC,ОД Т
;Домаќинот ги чита податоците на DS18B20 малку по малку
RRCA;Податоците за читање се преместуваат во А
MOVR5,#30
RD13:DJNZR5,RD13
;Погрижете се процесот на читање да трае 60μs
DJNZR6,RD11
;Откако ќе прочитате бајт податоци, чувајте го во А
SETBDAT
РЕТ
;------------------------------------------------
Домаќинот мора да помине низ три чекори за да го контролира DS18B20 до целосна конверзија на температурата: иницијализација, Упатство за работа на ROM-от, и инструкции за ракување со меморијата. DS18B20 мора да се стартува за да се започне со конверзија пред да се прочита вредноста на конверзија на температурата. Под претпоставка дека само еден чип е поврзан на една линија, се користи стандардната 12-битна точност на конверзија, а се користи надворешно напојување, може да се напише потпрограма GETWD за да се заврши конверзија и да се прочита вредноста на температурата.
Надарени:ЛЦАЛИНИТ
ДВИЖЕТЕ,#0CCH
LCALLWRITE; испрати команда за прескокнување на ROM
ДВИЖЕТЕ,#44 ч
LCALLWRITE; испрати команда за почеток на конверзија
ЛЦАЛИНИТ
ДВИЖЕТЕ,#0CCH; испрати команда за прескокнување на ROM
LCALLWRITE
ДВИЖЕТЕ,#0 БЕХ; испрати команда за читање меморија
LCALLWRITE
LCALLREAD
MOVWDLSB,А
; испратете низок бајт на температурна вредност до WDLSB
LCALLREAD
MOVWDMSB,А
; испрати висок бајт на температурна вредност до WDMSB
РЕТ
……
Високиот бајт на температурната вредност прочитан од потпрограмата GETWD се испраќа до единицата WDMSB, а нискиот бајт се испраќа до единицата WDLSB. Потоа според форматот на претставување на температурната вредност бајт и неговиот бит за знак, вистинската вредност на температурата може да се добие преку едноставна трансформација.
Ако на една линија се поврзани повеќе DS18B20, усвоен е режим на поврзување со паразитски напојување, конфигурација на точност на конверзија, аларм за висока и ниска граница, итн. се задолжителни. Тогаш пишувањето на потпрограмата GETWD ќе биде покомплицирано. Поради ограничување на просторот, овој дел нема да биде детално опишан. Ве молиме погледнете ја релевантната содржина.
Успешно го применивме DS18B20 на “бања за греење во домаќинството” систем за контрола што го развивме. Неговата брза брзина на конверзија, висока точност на конверзија, и едноставниот интерфејс со микропроцесорот донесоа голема погодност во работата на дизајнот на хардверот, ефикасно намалување на трошоците и скратување на развојните циклуси.
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



