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

Конструкция функции измерения температуры цифрового датчика температуры DS18B20

функция измерения температуры цифрового датчика температуры DS18B20

DS18B20 — 1-проводной цифровой датчик температуры производства DALLAS., с 3-контактным малым корпусом ТО-92. Диапазон измерения температуры составляет -55℃~+125℃., и его можно запрограммировать на точность аналого-цифрового преобразования 9–12 бит.. Разрешение измерения температуры может достигать 0,0625 ℃., а измеренная температура последовательно выводится в виде 16-битной цифровой величины со знаком расширения.. Его рабочий источник питания может быть подведен на удаленном конце или генерироваться паразитным источником питания.. Несколько DS18B20 можно подключить параллельно к 3 или 2 линии. ЦП требуется только одна линия порта для связи со многими DS18B20., занимая меньшее количество портов микропроцессора, что может сэкономить много выводов и логических схем. Вышеуказанные характеристики делают DS18B20 очень подходящим для многоточечных систем определения температуры на больших расстояниях..

функция измерения температуры цифрового датчика температуры 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 можно подключить к одной шине.

Внутренняя структура микросхемы 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., ТЛ, или регистр конфигурации. Формат регистра конфигурации следующий::

0
Р1
R0
1
1
1
1
1
MSBLSB

R1 и R0 определяют количество цифр точности преобразования температуры.: Р1Р0 = “00”, 9-битовая точность, максимальное время преобразования 93,75 мс; Р1Р0 = “01”, 10-битовая точность, максимальное время преобразования 187,5 мс. Р1Р0 = “10”, 11-битовая точность, максимальное время преобразования 375 мс. Р1Р0 = “11”, 12-битовая точность, максимальное время преобразования 750 мс. По умолчанию используется точность 12 бит, если она не запрограммирована..

Высокоскоростной регистр представляет собой 9-байтовую память.. Первые два байта содержат цифровую информацию об измеренной температуре.; 3-й, 4й, и 5-й байт — временные копии TH, ТЛ, и регистры конфигурации, соответственно, и обновляются каждый раз, когда происходит сброс при включении питания.; 6-й, 7й, и 8-й байты не используются и представлены как все логические единицы.; 9-й байт считывает код CRC всех предыдущих 8 байты, который можно использовать для обеспечения корректной связи.

3. Последовательность работы DS18B20
Поток рабочего протокола первой линии DS18B20:: инициализация → инструкция работы ПЗУ → инструкция работы с памятью → передача данных. Его рабочая последовательность включает в себя последовательность инициализации., последовательность записи и последовательность чтения, Как показано на рисунке 3 (а) (б) (с).

(а) Последовательность инициализации
(с) Чтение последовательности

Типовая схема подключения DS18B20 и микропроцессора

Типовая схема подключения DS18B20 и микропроцессора

Фигура 3, Схема рабочей последовательности DS18B20

4. Типовая конструкция интерфейса DS18B20 и однокристального микрокомпьютера
Фигура 4 в качестве примера используется однокристальный микрокомпьютер серии MCS-51, чтобы прорисовать типичное соединение между DS18B20 и микропроцессором.. На рисунке 4 (а), DS18B20 использует режим паразитного питания., и его клеммы VDD и GND заземлены.. На рисунке 4 (б), DS18B20 использует режим внешнего источника питания, и его терминал VDD питается от источника питания 3 В ~ 5,5 В..

а) Режим работы паразитного источника питания
(б) Режим работы внешнего источника питания

Временная диаграмма работы DS18B20

Временная диаграмма работы DS18B20

Фигура 4 Типовая схема подключения DS18B20 и микропроцессора

Предполагая, что частота кристалла, используемая однокристальной микрокомпьютерной системой, равна 12 МГц., три подпрограммы написаны в соответствии со временем инициализации, время записи и время чтения DS18B20: INIT — это процедура инициализации.; WRITE - это запись (команда или данные) подпрограмма; READ — процедура чтения данных.. Все чтение и запись данных начинаются с младшего бита..

DATEQUP1.0
……
ИНИТ:CLREA
ИНИ10:СЕТБДАТ
МОВР2,#200
ИНИ11:CLRDAT
ДЖНЗР2,ИНИ11; Хост отправляет импульс сброса длительностью 3 мкс × 200 = 600 мкс.
СЕТБДАТ; Ведущий отпускает автобус, и линия порта меняется на ввод
МОВР2,#30
ИН12:ДЖНЗР2,ИНИ12; DS18B20 ожидает 2 мкс × 30 = 60 мкс.
CLRC
ОРЛК,ЧТО; Низкий ли уровень сигнала на линии данных DS18B20? (пульс есть)?
JCINI10; DS18B20 не готов, повторно инициализировать
МОВР6, #80
ИНИ13: ОРЛК, ЧТО
JCINI14; На линии передачи данных DS18B20 высокий уровень, инициализация прошла успешно
DJNZR6, ИНИ13; Низкий уровень линии передачи данных может длиться 3 мкс × 80 = 240 мкс
СИМПИНИ10; инициализация не удалась, перезапуск
ИНИ14: МОВР2, #240
ИН15: DJNZR2, ИНИ15; DS18B20 реагирует не менее 2 мкс × 240 = 48 0мкс
РЭТ

;-------------------------
ПИСАТЬ:CLREA
МОВР3,#8;Петля 8 раз, написать байт
WR11:СЕТБДАТ
МОВР4,#8
РРКА;Бит записи перемещается из A в CY
CLRDAT
WR12:DJNZR4,WR12
;Подождите 16 мкс
МОВДАТ,С;Командное слово передается на DS18B20 побитно.
МОВР4,#20
WR13:DJNZR4,WR1 3
; Убедитесь, что процесс записи длится 60 мкс.
DJNZR3,WR11
; Продолжить перед отправкой байта
СЕТБДАТ
РЭТ

;------------------------
ЧИТАТЬ:CLREA
МОВР6,#8; Петля 8 раз, прочитать байт
РД11:CLRDAT
МОВР4,#4
НЕТ; Низкий уровень длится 2 мкс
СЕТБДАТ; Установите линию порта для ввода
РД12:ДЖНЗР4,РД12
; Подождите 8 мкс
МОВК,ОТ Т
;Хост считывает данные DS18B20 побитно.
РРКА;Считанные данные перемещаются в A
МОВР5,#30
РД13:ДЖНЗР5,РД13
;Убедитесь, что процесс чтения длится 60 мкс.
ДЖНЗР6,РД11
;После прочтения байта данных, сохранить его в А
СЕТБДАТ
РЭТ
;-------------------------
Хост должен пройти три этапа управления DS18B20 для завершения преобразования температуры.: инициализация, Инструкция по эксплуатации ПЗУ, и инструкции по работе с памятью. DS18B20 необходимо запустить, чтобы начать преобразование, прежде чем считывать значение преобразования температуры.. Предполагая, что к одной линии подключен только один чип, используется 12-битная точность преобразования по умолчанию., и используется внешний источник питания, можно написать подпрограмму GETWD для завершения преобразования и считывания значения температуры..

ВОРОТА:ЛКАЛЛИНИТ
ДВИГАТЬСЯ,#0CCH
LCALLWRITE; отправить команду пропуска ПЗУ
ДВИГАТЬСЯ,#44 часа
LCALLWRITE; отправить команду начала преобразования
ЛКАЛЛИНИТ
ДВИГАТЬСЯ,#0CCH; отправить команду пропуска ПЗУ
LCALLWRITE
ДВИГАТЬСЯ,#0 БЕХ; отправить команду чтения памяти
LCALLWRITE
LCALLREAD
МОВВДЛСБ,А
; отправить младший байт значения температуры в WDLSB
LCALLREAD
МОВВДМСБ,А
; отправить старший байт значения температуры в WDMSB
РЭТ
……

Старший байт значения температуры, считанный подпрограммой GETWD, отправляется в блок WDMSB., и младший байт отправляется в модуль WDLSB. Затем в соответствии с форматом представления байта значения температуры и его знакового бита, фактическое значение температуры можно получить путем простого преобразования.

Если несколько DS18B20 подключены к одной линии, принят режим паразитного подключения источника питания, конфигурация точности преобразования, сигнализация верхнего и нижнего предела, и т. д.. необходимы. Тогда написание подпрограммы GETWD будет сложнее.. Из-за ограниченности места, этот раздел не будет подробно описываться. Пожалуйста, обратитесь к соответствующему контенту.

Мы успешно применили DS18B20 к “бытовая баня с подогревом” разработанная нами система управления. Его быстрая скорость преобразования, высокая точность преобразования, и простой интерфейс с микропроцессором значительно упростили работу по проектированию аппаратного обеспечения., эффективное снижение затрат и сокращение циклов разработки.