DS18B20 - це 1-провідний цифровий датчик температури виробництва DALLAS, з 3-контактним малим корпусом ТО-92. Діапазон вимірювання температури -55 ℃ ~ +125 ℃, і його можна запрограмувати на точність аналого-цифрового перетворення 9-12 біт. Роздільна здатність вимірювання температури може досягати 0,0625 ℃, і виміряна температура виводиться послідовно у вигляді 16-бітної цифрової величини з розширенням знака. Його робоче джерело живлення може подаватися на віддаленому кінці або генеруватися паразитним джерелом живлення. Кілька DS18B20 можна підключити паралельно 3 або 2 лінії. ЦП потрібна лише одна лінія порту для зв’язку з багатьма DS18B20, займаючи менше портів мікропроцесора, що може заощадити багато проводів і логічних схем. Зазначені вище характеристики роблять DS18B20 дуже придатним для багатоточкових систем вимірювання температури на великій відстані.
2. Внутрішня структура DS18B20 Принципова схема ds18b20
Внутрішня структура DS18B20 показана на малюнку 1, яка в основному складається з 4 частин: 64-біт ПЗУ, датчик температури, енергонезалежний сигнал тривоги температури TH і TL, і регістри конфігурації. Розташування контактів DS18B20 показано на малюнку 2. DQ — це термінал введення/виведення цифрового сигналу; GND є заземленням; VDD — це вхідна клема зовнішнього джерела живлення (заземлений у паразитному режимі живлення, дивіться малюнок 4).
64-розрядний серійний номер у ПЗП фототравлюється перед тим, як залишити завод. Його можна розглядати як послідовний код адреси DS18B20. 64-розрядний серійний номер кожного DS18B20 відрізняється. Код перевірки циклічного резервування (CRC=X8+X5+X4+1) 64-розрядного ПЗУ влаштовано. Роль ПЗУ полягає в тому, щоб зробити кожен 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 мс; R1R0 = “01”, 10-бітова точність, максимальний час перетворення становить 187,5 мс. R1R0 = “10”, 11-бітова точність, максимальний час перетворення становить 375 мс. R1R0 = “11”, 12-бітова точність, максимальний час перетворення становить 750 мс. За замовчуванням використовується 12-бітна точність, якщо вона не запрограмована.
Швидкісний регістр являє собою 9-байтну пам'ять. Перші два байти містять цифрову інформацію про виміряну температуру; 3-й, 4тис, і 5-й байт є тимчасовими копіями TH, TL, і регістри конфігурації, відповідно, і оновлюються кожного разу, коли відбувається скидання під час увімкнення живлення; 6-й, 7тис, і 8-й байти не використовуються і представлені як усі логічні 1; 9-й байт зчитує код CRC всіх попередніх 8 байтів, які можна використовувати для забезпечення правильного спілкування.
3. Послідовність роботи DS18B20
Потік робочого протоколу першого рядка DS18B20 є: ініціалізація → інструкція роботи ПЗУ → інструкція роботи з пам'яттю → передача даних. Його робоча послідовність включає послідовність ініціалізації, послідовність запису та послідовність читання, як показано на малюнку 3 (a) (b) (в).
(a) Послідовність ініціалізації
(в) Прочитайте послідовність
малюнок 3, Схема послідовності роботи DS18B20
4. Типова конструкція інтерфейсу DS18B20 і однокристального мікрокомп'ютера
малюнок 4 використовує однокристальний мікрокомп'ютер серії MCS-51 як приклад, щоб намалювати типовий зв'язок між DS18B20 і мікропроцесором. На малюнку 4 (a), DS18B20 приймає паразитний режим живлення, і його клеми VDD і GND заземлені. На малюнку 4 (b), DS18B20 приймає режим зовнішнього джерела живлення, і його термінал VDD живиться від джерела живлення 3 В ~ 5,5 В.
a) Паразитний режим роботи джерела живлення
(b) Режим роботи зовнішнього джерела живлення
малюнок 4 Типова схема з'єднання DS18B20 і мікропроцесора
Припустимо, що частота кристала, яка використовується однокристальною мікрокомп’ютерною системою, становить 12 МГц, три підпрограми записуються відповідно до часу ініціалізації, час запису та час читання DS18B20: INIT — підпрограма ініціалізації; WRITE - це запис (команду або дані) підпрограма; READ — це підпрограма читання даних. Усі дані читання та запису починаються з молодшого біта.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2,INI11; Хост надсилає імпульс скидання протягом 3 мкс×200=600 мкс
SETBDAT; Ведучий відпускає автобус, і лінія порту змінюється на вхід
MOVR2,#30
IN12:DJNZR2,INI12; DS18B20 очікує 2 мкс×30=60 мкс
CLRC
Орлк,ТО; Чи низький рівень лінії передачі даних DS18B20 (пульс є)?
JCINI10; DS18B20 не готовий, повторно ініціалізувати
MOVR6, #80
INI13: Орлк, ТО
JCINI14; Лінія даних DS18B20 стає високою, ініціалізація пройшла успішно
DJNZR6, INI13; Низький рівень лінії передачі даних може тривати 3 мкс × 80 = 240 мкс
СИМПІНІ10; не вдалося ініціалізувати, перезапустити
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 відповідає принаймні 2 мкс × 240 = 48 0мкс
RET
;--------------------------
НАПИШІТЬ:CLREA
MOVR3,#8;Петля 8 разів, написати байт
WR11:SETBDAT
MOVR4,#8
RRCA;Біт запису рухається від A до CY
Clrdat
WR12:DJNZR4, WR12
;Зачекайте 16 мкс
МОВДАТИ,C;Слово команди надсилається на DS18B20 побітово
MOVR4,#20
WR13:DJNZR4,WR1 3
; Переконайтеся, що процес запису триває 60 мкс
DJNZR3, WR11
; Продовжити перед надсиланням байта
SETBDAT
RET
;-------------------------
ПРОЧИТАЙТЕ:CLREA
MOVR6,#8; Петля 8 разів, прочитати байт
RD11:Clrdat
MOVR4,#4
NOP; Низький рівень триває 2 мкс
SETBDAT; Встановіть лінію порту для введення
RD12:DJNZR4,RD12
; Зачекайте 8 мкс
MOVC,ВІД Т
;Хост зчитує дані DS18B20 побітово
RRCA;Прочитані дані переміщуються в A
MOVR5,#30
RD13:DJNZR5,RD13
;Переконайтеся, що процес читання триває 60 мкс
DJNZR6, RD11
;Після прочитання байта даних, зберігайте його в A
SETBDAT
RET
;--------------------------
Щоб завершити перетворення температури, хост повинен пройти три етапи керування DS18B20: ініціалізація, Інструкції з експлуатації ПЗУ, і інструкції з роботи з пам'яттю. DS18B20 необхідно запустити, щоб почати перетворення перед зчитуванням значення перетворення температури. Припустимо, що тільки одна мікросхема підключена до однієї лінії, використовується стандартна 12-бітна точність перетворення, і використовується зовнішнє джерело живлення, можна записати підпрограму GETWD для завершення перетворення та читання значення температури.
Обдарований:LCALLINIT
РУХАЙТЕСЯ,#0CCH
LCALLWRITE; надіслати команду skip ROM
РУХАЙТЕСЯ,#44 год
LCALLWRITE; надіслати команду запуску перетворення
LCALLINIT
РУХАЙТЕСЯ,#0CCH; надіслати команду skip ROM
LCALLWRITE
РУХАЙТЕСЯ,#0 BEH; відправити команду читання пам'яті
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; відправити молодший байт значення температури до WDLSB
LCALLREAD
MOVWDMSB,A
; відправити старший байт значення температури до 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



