Технология на температурен сензор

Температурен сензор DS18B20, свързан към MCU

DS18B20 Температурен сензор Въведение в познанията
DS18B20 е често използван цифров температурен сензор. Извежда цифрови сигнали, има характеристиките на малък размер, ниски хардуерни разходи, силна способност против смущения, висока точност, и се използва широко.

DS18B20 цифрова температурна сонда осигурява 9 към 12 малко

DS18B20 цифрова температурна сонда осигурява 9 към 12 малко

Водоустойчива сензорна сонда DS18B20

Водоустойчива сензорна сонда DS18B20

TPE Overmolding IP68 водоустойчив сензор DS18B20

TPE Overmolding IP68 водоустойчив сензор DS18B20

Въведение в температурен сензор DS18B20
Технически характеристики:
①. Уникален режим на едножичен интерфейс. Когато DS18B20 е свързан към микропроцесор, само 1 проводник е необходим за осъществяване на двупосочна комуникация между микропроцесора и DS18B20.
②. Диапазон на измерване на температурата -55℃~+125℃, присъща грешка при измерване на температурата 1 ℃.
③. Поддържа многоточкова мрежова функция. Няколко DS18B20 могат да бъдат свързани паралелно само на трите проводника, и максимум 8 могат да бъдат свързани паралелно за реализиране на многоточково измерване на температурата. Ако броят е твърде голям, захранващото напрежение ще бъде твърде ниско, което води до нестабилно предаване на сигнала.
④. Работещо захранване: 3.0~5.5V/DC (може да се използва паразитно захранване на линията за данни).
⑤. По време на употреба не са необходими периферни компоненти.
⑥. Резултатите от измерването се предават серийно в 9~12-битова цифрова форма.
⑦. Диаметърът на защитната тръба от неръждаема стомана е Φ6.
⑧. Подходящ е за измерване на температурата на различни средни промишлени тръбопроводи от DN15~25, DN40~DN250 и оборудване в тесни пространства.
⑨. Стандартна монтажна резба M10X1, M12X1.5, G1/2” не са задължителни.
⑩. PVC кабелът се свързва директно или се свързва немска съединителна кутия тип топка, което е удобно за свързване с друго електрическо оборудване.

DS18B20 чете и записва време и принцип на измерване на температурата:
Принципът на измерване на температурата DS18B20 е показан на фигура 1. Честотата на трептене на кристалния осцилатор с нисък температурен коефициент на фигурата се влияе слабо от температурата, и се използва за генериране на импулсен сигнал с фиксирана честота, който да бъде изпратен към брояча 1. Честотата на трептене на кристалния осцилатор с висок температурен коефициент се променя значително с температурата, и генерираният сигнал се използва като импулсен вход на брояча 2. Брояч 1 и температурният регистър са предварително зададени на базова стойност, съответстваща на -55 ℃. Брояч 1 изважда импулсния сигнал, генериран от кристалния осцилатор с нисък температурен коефициент. Когато предварително зададената стойност на брояча 1 се свежда до 0, стойността на температурния регистър ще бъде увеличена с 1, и предварително зададения брояч 1 ще бъдат презаредени. Брояч 1 рестартира, за да преброи импулсния сигнал, генериран от кристалния осцилатор с нисък температурен коефициент, и цикълът продължава до брояч 2 се брои до 0, спиране на натрупването на стойността на температурния регистър. По това време, стойността в температурния регистър е измерената температура. Акумулаторът на наклона се използва за компенсиране и коригиране на нелинейността в процеса на измерване на температурата, и неговият изход се използва за коригиране на предварително зададената стойност на брояча 1.

Фигура 1 е както следва:

Схема на свързване на DS18B20 и MCU

Схема на свързване на DS18B20 и MCU

2. Схема на свързване на DS18B20 и MCU

Дефиниране на параметъра на пин DS18B20

Дефиниране на параметъра на пин DS18B20

3. Дефиниция на щифта DS18B20:

DQ: Вход/изход на данни. 1-проводен интерфейс с отворен дренаж. Той може също така да осигури захранване на устройството, когато се използва в режим на паразитно захранване VDD: положително захранване GND: захранваща земя 4. Въведение в вътрешния анализ на DS18B20:

Анализ и въвеждане на вътрешната структура на DS18B20

Анализ и въвеждане на вътрешната структура на DS18B20

Фигурата по-горе показва блоковата схема на DS18B20, а 64-битовият ROM съхранява уникалния сериен код на устройството. Буферната памет съдържа 2 байтове температурни регистри, които съхраняват цифровия изход на температурния сензор. Освен това, буферната памет осигурява достъп до 1-байтови горни и долни регистри за задействане на алармата (TH и TL) и 1-байтови конфигурационни регистри. Конфигурационният регистър позволява на потребителя да зададе разделителната способност на температурата към цифрово преобразуване 9, 10, 11, или 12 битове. TH, TL, и конфигурационните регистри са енергонезависими (EEPROM), така че те ще запазят данни, когато устройството е изключено. DS18B20 използва уникалния протокол за 1-проводна шина на Maxim, който използва управляващ сигнал. Контролната линия изисква слаб издърпващ резистор, тъй като всички устройства са свързани към шината чрез порт с 3 състояния или отворен дренаж (DQ щифт в случая на DS18B20). В тази шинна система микропроцесорът (майстор) използва уникален 64-битов код за всяко устройство. Защото всяко устройство има уникален код, броят на устройствата, които могат да бъдат адресирани на една шина, е практически неограничен.

Формат на температурния регистър

Диаграма на формата на температурния регистър DS18B20

Диаграма на формата на температурния регистър DS18B20

Връзка температура/данни

DS18B20 Връзка температура-данни

DS18B20 Връзка температура-данни

Сигнал за аларма при работа

След като DS18B20 извърши преобразуване на температурата, той сравнява стойността на температурата с дефинираната от потребителя стойност на задействане на алармата на комплемента, съхранена в 1-байтовите TH и TL регистри. Знаковият бит показва дали стойността е положителна или отрицателна: положителен S=0, отрицателно S=1. Регистрите TH и TL са енергонезависими (EEPROM) и следователно не са летливи, когато устройството е изключено. TH и TL могат да бъдат достъпни чрез байтове 2 и 3 на паметта.
TH и TL регистър формат:

Регистри за конфигурация на DS18B20

Регистри за конфигурация на DS18B20

Схематична диаграма на захранване на DS18B20 с помощта на външно захранване

Схематична диаграма на използване на външно захранване за захранване на DS18B20

Схематична диаграма на използване на външно захранване за захранване на DS18B20

64-код на битова лазерна памет само за четене:

DS18B20 64-битов код за лазерна памет само за четене

DS18B20 64-битов код за лазерна памет само за четене

Всеки DS18B20 съдържа уникален 64-битов код, съхранен в ROM. Най-малко значимите 8 битовете на ROM кода съдържат кода на едножичната фамилия на DS18B20: 28з. Следващият 48 битовете съдържат уникален сериен номер. Най-значимият 8 битовете съдържат циклична проверка за излишък (CRC) байт, който се изчислява от първия 56 битове от ROM кода.

Карта на паметта DS18B20

Карта на паметта DS18B20

Карта на паметта DS18B20

Регистър на конфигурацията:

Фигура 2

Регистри за конфигурация на DS18B20

Регистри за конфигурация на DS18B20

Байт 4 от паметта съдържа конфигурационния регистър, който е организиран, както е показано на фигурата 2. Потребителят може да зададе разделителната способност на преобразуване на DS18B20, използвайки битове R0 и R1 тук, както е показано в таблицата 2. Стойностите по подразбиране при включване за тези битове са R0 = 1 и R1 = 1 (12-битова резолюция). Обърнете внимание, че има пряка връзка между резолюцията и времето за преобразуване. малко 7 и битове 0 към 4 в конфигурационния регистър са запазени за вътрешна употреба на устройството и не могат да бъдат презаписани.

Таблица 2 Конфигурация на разделителната способност на термометъра

Конфигурация на разделителната способност на термометъра DS18B20

Конфигурация на разделителната способност на термометъра DS18B20

Генериране на CRC

CRC байтът е част от DS18B20 64-битов ROM код и се предоставя в 9-ия байт на скречпада. ROM кодът CRC се изчислява от първия 56 битове от ROM кода и се съдържа в най-значимия байт на ROM. CRC на скречпада се изчислява въз основа на данните, съхранени в скречпада, така че се променя, когато данните в скречпада се променят. CRC предоставя на хоста на шината метод за проверка на данните при четене на данни от DS18B20. След като се уверите, че данните са прочетени правилно, главният автобус трябва да преизчисли CRC от получените данни и след това да сравни тази стойност с ROM кода CRC (за четене на ROM) или CRC на скречпада (за четене на скречпад). Ако изчисленият CRC съвпада с прочетения CRC, данните са получени правилно. Решението да се сравнят стойностите на CRC и да се продължи е изцяло по преценка на капитана на автобуса. В DS18B20 няма схема, която да попречи на изпълнението на последователност от команди, ако:
DS18B20 CRC (ROM или скречпад) не съответства на стойността, генерирана от главния шина.
Еквивалентната полиномна функция за CRC е:
CRC = X8 + X5 + X4 + 1
Главният автобус може да преизчисли CRC и да го сравни с CRC стойността на DS18B20 чрез:
Генераторът на полином е показан на фигура 3. Веригата включва регистър за смяна и порти yihuo, и битовете на регистъра за смяна се инициализират към 0. Най-малко значимият бит от ROM кода или най-малко значимият бит от байт 0 в скречпада трябва да се преместват в регистъра за смяна един по един. След преместване в бит 56 от ROM или най-значимия бит от байт 7 от скречпада, генераторът на полином ще съдържа преизчисления CRC. След това, 8-битовият ROM код или CRC сигналът в скречпада DS18B20 трябва да бъдат преместени във веригата. В този момент, ако преизчисленият CRC е правилен, регистърът за смяна ще бъде само 0s.

Фигура 3: CRC генератор

Диаграма на процеса на генератор на CRC DS18B20

Диаграма на процеса на генератор на CRC DS18B20

V. Достъп до DS18B20:
Последователността за достъп до DS18B20 е както следва:
стъпка 1. Инициализация;

стъпка 2. ROM команда (последвано от всеки необходим обмен на данни);

стъпка 3. Функционална команда DS18B20 (последвано от всеки необходим обмен на данни);

Забележка: Тази последователност се следва при всеки достъп до DS18B20, тъй като DS18B20 няма да отговори, ако някоя стъпка в последователността липсва или е неправилна. Изключение от това правило е Search ROM [F0h] и търсене на аларма [Ech] команди. След издаване на тези две ROM команди, домакинът трябва да се върне на стъпката 1 в последователност.
(Горното въведение е преведено от официалното ръководство)

ROM команда
1, Прочетете ROM [33з]
2, Съвпадение на ROM [55з]
3, Пропуснете ROM [CCh]
4, Търсене на аларма [Ech]

DS18B20 Функционална команда
1, Преобразуване на температура [44з]
2, Напишете Scratchpad (памет) [4Ех]
3, Прочетете Scratchpad (памет) [BEh]
4, Копиране на Scratchpad (памет [48з]
5, Събудете отново E2 [B8h]
6, Прочетете Power [B4h]

(За подробно описание на горните команди, вижте официалното ръководство)

VI. Време за достъп до DS18B20
По време на процеса на инициализация, главният шина изпраща импулс за нулиране (TX) ниско ниво за поне 480µs чрез издърпване на шината 1-Wire. Тогава, главният автобус освобождава шината и влиза в режим на приемане (RX). След освобождаване на автобуса, издърпващият резистор 5kΩ издърпва високо 1-Wire шината. Когато DS18B20 открие този нарастващ фронт, изчаква 15µs до 60µs и след това изпраща импулс за присъствие чрез издърпване на 1-Wire шината ниско за 60µs до 240µs.

Време за инициализация:

Има два вида времеви интервали за запис: “Напиши 1” времеви интервали и “Напишете 0” времеви интервали. Автобусът използва Write 1 времеви интервал за писане на логика 1 към DS18B20 и Write 0 времеви интервал за писане на логика 0 към DS18B20. Всички времеви слотове за запис трябва да са с продължителност най-малко 60µs с време за възстановяване от поне 1µs между отделните времеви слотове за запис. И двата вида времеви интервали за запис се инициират от главния дърпащ 1-Wire шината ниско (виж Фигура 14). За генериране на Write 1 времеви интервал, след издърпване на 1-Wire шината ниско, главният автобус трябва да освободи 1-Wire шината в рамките на 15µs. След освобождаване на автобуса, 5kΩ издърпващ резистор дърпа шината високо. Генерирайте a
Пишете 0 времеви интервал, след издърпване на линията 1-Wire ниско, главният шина трябва да продължи да поддържа шината ниска за времетраенето на интервала от време (най-малко 60µs). DS18B20 взема проби от шината 1-Wire в рамките на прозорец от 15 µs до 60 µs, след като главният инициира времевия слот за запис. Ако шината е висока по време на прозореца за вземане на проби, а 1 се записва на DS18B20. Ако линията е ниска, а 0 се записва на DS18B20.
Забележка: Времевият слот е част от серийното самомултиплексиране на информацията за времевия слот, предназначена за един канал.
Фигура 14 е както следва:

Времевите интервали за запис DS18B20 се управляват от хоста, за да изтеглят 1-Wire шината на ниско ниво

Времевите интервали за запис DS18B20 се управляват от хоста, за да изтеглят 1-Wire шината на ниско ниво

Прочетете времевия интервал:
DS18B20 може да изпраща данни към хоста само когато хостът издаде времеви слот за четене. Следователно, хостът трябва да генерира времеви интервал за четене веднага след подаване на команда за четене на паметта [BEh] или захранване за четене [B4h] команда, за да може DS18B20 да предостави необходимите данни. Алтернативно, хостът може да генерира времеви интервал за четене след издаване на Convert T [44з] или Recall E2 [B8h] команда, за да разберете състоянието. Всички времеви интервали за четене трябва да са с продължителност най-малко 60µs с минимално време за възстановяване от 1µs между времевите интервали. Времевият слот за четене се инициира от главния дърпа 1-Wire шината на ниско ниво, за да я задържи ниско за поне 1µ и след това освобождава шината (виж Фигура 14). След като главният инициира времеви интервал за четене, DS18B20 ще започне да изпраща 1s или 0s по шината. DS18B20 изпраща a 1 като държи автобуса високо и изпраща a 0 като дърпа автобуса ниско. Когато а 0 се изпраща, DS18B20 освобождава шината, като държи шината високо. Времевият слот приключва и шината се връща обратно към високо състояние на празен ход от издърпващия резистор.

DS18B20 Подробно четене на хоста 1 Времеви интервал

DS18B20 Подробно четене на хоста 1 Времеви интервал

DS18B20 Препоръчително четене на хоста 1 времеви интервал

DS18B20 Препоръчително четене на хоста 1 времеви интервал