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-битова точност, максималното време за преобразуване е 375ms. R1R0 = “11”, 12-битова точност, максималното време за преобразуване е 750ms. По подразбиране е 12-битова точност, когато не е програмиран.
Високоскоростният регистър е 9-байтова памет. Първите два байта съдържат цифровата информация за измерената температура; 3-тото, 4th, и 5-ти байтове са временни копия на TH, TL, и конфигурационни регистри, съответно, и се обновяват всеки път, когато възникне нулиране при включване; 6-тото, 7th, и 8-ми байтове не се използват и се представят като всички логически единици; 9-ият байт чете CRC кода на всички предишни 8 байтове, които могат да се използват за осигуряване на правилна комуникация.
3. Работна последователност на DS18B20
Потокът на работния протокол на първа линия на DS18B20 е: инициализация → инструкция за работа с ROM → инструкция за работа с памет → предаване на данни. Неговата работна последователност включва инициализираща последователност, последователност за запис и последователност за четене, както е показано на фигура 3 (а) (b) (c).
(а) Последователност на инициализация
(c) Прочетете последователността
Фигура 3, Диаграма на работната последователност на DS18B20
4. Типичен дизайн на интерфейса на DS18B20 и едночипов микрокомпютър
Фигура 4 взема за пример едночиповия микрокомпютър от серията MCS-51, за да начертае типичната връзка между DS18B20 и микропроцесора. На фигура 4 (а), DS18B20 приема паразитен режим на захранване, и неговите VDD и GND клеми са заземени. На фигура 4 (b), DS18B20 приема режим на външно захранване, и неговият VDD терминал се захранва от 3V~5.5V захранване.
а) Режим на работа на паразитно захранване
(b) Режим на работа с външно захранване
Фигура 4 Типична схема на свързване на DS18B20 и микропроцесор
Ако приемем, че кристалната честота, използвана от едночиповата микрокомпютърна система, е 12MHz, три подпрограми са написани според времето за инициализация, време за запис и време за четене на DS18B20: INIT е подпрограмата за инициализация; WRITE е писането (команда или данни) подпрограма; READ е подпрограмата за четене на данни. Всички данни за четене и запис започват от най-ниския бит.
DATEQUP1.0
……
INIT:КЛРЕА
INI10:SETBDAT
MOVR2,#200
INI11:CLRDAT
DJNZR2,INI11; Хостът изпраща импулс за нулиране за 3μs×200=600μs
SETBDAT; Домакинът пуска автобуса, и линията на порта се променя на вход
MOVR2,#30
IN12:DJNZR2,INI12; DS18B20 изчаква 2μs×30=60μs
CLRC
ORLC,ТОВА; Ниска ли е линията за данни DS18B20 (пулсът съществува)?
JCINI10; DS18B20 не е готов, повторно инициализиране
MOVR6, #80
INI13: ORLC, ТОВА
JCINI14; Линията за данни DS18B20 е висока, инициализацията е успешна
DJNZR6, INI13; ниското ниво на линията за данни може да продължи 3 μs × 80 = 240 μs
СИМПИНИ10; неуспешна инициализация, рестартирайте
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 отговаря за най-малко 2 μs × 240 = 48 0μs
RET
;-------------------------
ПИШЕТЕ:КЛРЕА
MOVR3,#8;Цикъл 8 пъти, напишете байт
WR11:SETBDAT
MOVR4,#8
RRCA;Битът за запис се движи от A до CY
CLRDAT
WR12:DJNZR4, WR12
;Изчакайте 16 μs
МОВДАТ,° С;Командната дума се изпраща към DS18B20 бит по бит
MOVR4,#20
WR13:DJNZR4,WR1 3
; Уверете се, че процесът на запис продължава 60 μs
DJNZR3, WR11
; Продължете, преди да изпратите байт
SETBDAT
RET
;------------------------
ПРОЧЕТЕТЕ:КЛРЕА
MOVR6,#8; Цикъл 8 пъти, прочете байт
RD11:CLRDAT
MOVR4,#4
NOP; Ниското ниво продължава 2 μs
SETBDAT; Задайте линията на порта за въвеждане
RD12:DJNZR4,RD12
; Изчакайте 8 μs
MOVC,ОТ Т
;Хостът чете данните на DS18B20 бит по бит
RRCA;Прочетените данни се преместват в A
MOVR5,#30
RD13:DJNZR5,RD13
;Уверете се, че процесът на четене продължава 60 μs
DJNZR6, RD11
;След прочитане на байт данни, съхранявайте го в А
SETBDAT
RET
;-------------------------
Хостът трябва да премине през три стъпки, за да контролира DS18B20, за да завърши преобразуването на температурата: инициализация, Инструкции за работа с ROM, и инструкции за работа с паметта. DS18B20 трябва да бъде стартиран, за да започне преобразуването, преди да прочете стойността на преобразуване на температурата. Ако приемем, че само един чип е свързан към една линия, използва се стандартната 12-битова точност на преобразуване, и се използва външно захранване, може да се напише подпрограма GETWD, за да завърши преобразуване и да прочете стойността на температурата.
ПОРТА:LCALLINIT
ДВИЖЕТЕ се,#0CCH
LCALLWRITE; изпрати команда за пропускане на ROM
ДВИЖЕТЕ се,#44H
LCALLWRITE; изпрати команда за стартиране на преобразуването
LCALLINIT
ДВИЖЕТЕ се,#0CCH; изпрати команда за пропускане на ROM
LCALLWRITE
ДВИЖЕТЕ се,#0 BEH; изпрати команда за четене на паметта
LCALLWRITE
LCALLREAD
MOVWDLSB,А
; изпрати нисък байт от стойността на температурата към WDLSB
LCALLREAD
MOVWDMSB,А
; изпрати старши байт от стойността на температурата към WDMSB
RET
……
Старшият байт на стойността на температурата, прочетен от подпрограмата 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



