Технологія датчика температури

Датчик температури DS18B20, підключений до MCU

Введення в знання датчика температури DS18B20
DS18B20 — широко використовуваний цифровий датчик температури. Він виводить цифрові сигнали, має ознаки невеликого розміру, Низький апаратне забезпечення, Сильна здатність до інтерференцій, Висока точність, і широко використовується.

Цифровий датчик температури DS18B20 забезпечує 9 до 12 біт

Цифровий датчик температури DS18B20 забезпечує 9 до 12 біт

Водонепроникний датчик DS18B20

Водонепроникний датчик DS18B20

Водонепроникний датчик TPE DS18B20 IP68

Водонепроникний датчик TPE DS18B20 IP68

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

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-бітне ПЗУ зберігає унікальний серійний код пристрою. Буферна пам'ять містить 2 байти регістрів температури, які зберігають цифровий вихід датчика температури. Крім того, буферна пам'ять забезпечує доступ до 1-байтових верхніх і нижніх тригерних регістрів сигналізації (TH і TL) і 1-байтові регістри конфігурації. Регістр конфігурації дозволяє користувачеві встановити роздільну здатність температури до цифрового перетворення 9, 10, 11, або 12 шматочки. TH, TL, і регістри конфігурації є енергонезалежними (EEPROM), тому вони зберігатимуть дані, коли пристрій вимкнено. DS18B20 використовує унікальний протокол однопровідної шини 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-бітний код, що зберігається в ПЗП. Найменш значний 8 біти коду ROM містять однопровідний код сімейства DS18B20: 28ч. Наступний 48 біти містять унікальний серійний номер. Найзначніший 8 біти містять перевірку циклічної надлишковості (CRC) байт, який обчислюється з першого 56 біти коду ПЗУ.

Карта пам'яті 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 є частиною 64-розрядного коду ПЗУ DS18B20 і міститься в 9-му байті блокнота. CRC коду ПЗУ обчислюється з першого 56 біт коду ПЗУ і міститься в старшому байті ПЗУ. CRC блокнота обчислюється на основі даних, збережених у блокноті, тому він змінюється, коли змінюються дані в блокноті. CRC надає хосту шини метод перевірки даних під час зчитування даних із DS18B20. Після перевірки правильності зчитування даних, майстер шини повинен перерахувати CRC з отриманих даних, а потім порівняти це значення з кодом ПЗУ CRC (для читання ПЗУ) або блокнот CRC (для читання в блокноті). Якщо розрахований CRC збігається з прочитаним CRC, дані були отримані правильно. Рішення про порівняння значень CRC і продовження повністю залежить від майстра шини. Всередині DS18B20 немає схеми, яка б перешкоджала виконанню послідовності команд, якщо:
DS18B20 CRC (ПЗУ або блокнот) не відповідає значенню, згенерованому майстром шини.
Еквівалентною поліноміальною функцією CRC є:
CRC = X8 + X5 + X4 + 1
Майстер шини може перерахувати CRC і порівняти його зі значенням CRC DS18B20 за допомогою:
Генератор полінома показаний на малюнку 3. Схема включає регістр зсуву та вентилі yihuo, і біти регістра зсуву ініціалізуються 0. Молодший значущий біт коду ПЗУ або молодший значущий біт байта 0 у блокноті повинні бути зміщені в регістр зсуву по одному. Після зсуву в біт 56 з ПЗП або старший біт байта 7 із блокнота, генератор полінома міститиме перерахований CRC. Далі, 8-бітний код ПЗУ або сигнал CRC у блокноті DS18B20 має бути зміщений у схему. У цей момент, якщо перерахований CRC правильний, у регістрі зсуву будуть усі 0.

малюнок 3: Генератор CRC

Технологічна схема генератора CRC DS18B20

Технологічна схема генератора CRC DS18B20

V. Доступ до DS18B20:
Послідовність доступу до DS18B20 така:
Крок 1. Ініціалізація;

Крок 2. команда ROM (з наступним обміном необхідними даними);

Крок 3. Команда функції DS18B20 (з наступним обміном необхідними даними);

Примітка: Ця послідовність виконується кожного разу, коли здійснюється доступ до DS18B20, тому що DS18B20 не відповість, якщо будь-який крок у послідовності відсутній або не в порядку. Винятком із цього правила є Search ROM [F0h] і пошук сигналу [Ech] команди. Після виконання цих двох команд ROM, господар повинен повернутися на крок 1 в послідовності.
(Наведений вище вступ перекладено з офіційного посібника)

Команда ROM
1, Читайте ПЗУ [33ч]
2, Матч ПЗУ [55ч]
3, Пропустити ROM [CCh]
4, Пошук сигналізації [Ech]

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

(Для детального опису наведених вище команд, див. офіційний посібник)

VI. Час доступу до DS18B20
Під час процесу ініціалізації, головний пристрій шини надсилає імпульс скидання (TX) низький рівень протягом принаймні 480 мкс, потягнувши шину 1-Wire. Потім, майстер шини звільняє шину і переходить у режим прийому (RX). Після звільнення авт, навантажувальний резистор 5 кОм підтягує шину 1-Wire високо. Коли DS18B20 виявляє цей передній фронт, він чекає від 15 мкс до 60 мкс, а потім надсилає імпульс присутності, підтягуючи шину 1-Wire до низького рівня на 60–240 мкс.

Час ініціалізації:

Існує два типи часових інтервалів запису: “Напиши 1” часові проміжки та “Напишіть 0” часові проміжки. Автобус використовує Write 1 часовий проміжок для написання логіки 1 до DS18B20 і Write 0 часовий проміжок для написання логіки 0 до DS18B20. Тривалість усіх часових інтервалів запису повинна становити не менше 60 мкс із часом відновлення між окремими часовими інтервалами запису не менше 1 мкс.. Обидва типи часових інтервалів запису ініціюються майстром, який підтягує низький рівень шини 1-Wire (дивіться малюнок 14). Щоб створити запис 1 часовий інтервал, після підтягування шини 1-Wire до низького рівня, майстер шини повинен звільнити шину 1-Wire протягом 15 мкс. Після звільнення авт, навантажувальний резистор 5 кОм підтягує шину високо. Створіть a
Напишіть 0 часовий інтервал, після підтягування лінії 1-Wire до низького рівня, майстер шини повинен продовжувати утримувати шину на низькому рівні протягом часового інтервалу (принаймні 60 мкс). DS18B20 пробує шину 1-Wire у вікні від 15 мкс до 60 мкс після того, як головний ініціює часовий інтервал запису. Якщо шина висока під час вікна вибірки, a 1 записується на DS18B20. Якщо лінія низька, a 0 записується на DS18B20.
Примітка: Часовий інтервал — це частина послідовного самомультиплексування інформації про часовий інтервал, призначена для одного каналу..
малюнок 14 полягає в наступному:

Часові інтервали запису DS18B20 керуються хостом, щоб перевести шину 1-Wire на низький рівень

Часові інтервали запису DS18B20 керуються хостом, щоб перевести шину 1-Wire на низький рівень

Прочитайте часовий інтервал:
DS18B20 може надсилати дані на хост лише тоді, коли хост видає часовий інтервал для читання. Отже, хост повинен генерувати часовий інтервал читання відразу після видачі команди читання пам'яті [BEh] або джерело живлення Read [B4h] щоб DS18B20 надавав необхідні дані. В якості альтернативи, хост може генерувати часовий інтервал читання після видачі Convert T [44ч] або Recall E2 [B8h] команда, щоб дізнатися статус. Тривалість усіх часових інтервалів читання має становити не менше 60 мкс з мінімальним часом відновлення 1 мкс між часовими інтервалами. Часовий інтервал читання ініціюється майстром, який перетягує шину 1-Wire у низький рівень, щоб утримувати її в низькому рівні принаймні 1 мкс, а потім відпускає шину (дивіться малюнок 14). Після того, як майстер ініціює часовий інтервал читання, DS18B20 почне надсилати 1 або 0 на шині. DS18B20 надсилає a 1 високо тримаючи автобус і посилаючи a 0 тягнучи автобус низько. Коли a 0 відправляється, DS18B20 відпускає шину, тримаючи шину високо. Часовий інтервал закінчується, і шина повертається до високого стану холостого ходу підтягуючим резистором.

DS18B20 Детальне читання хоста 1 Часовий інтервал

DS18B20 Детальне читання хоста 1 Часовий інтервал

DS18B20 Рекомендований хост для читання 1 часовий інтервал

DS18B20 Рекомендований хост для читання 1 часовий інтервал