Тепло или холодно? (Цифровые термометры
Dallas Semiconductor)
Автор:
Ракович Н.Н.
Из всех видов измерений в повседневной жизни мы
чаще всего сталкиваемся с измерением температуры: при плохом самочувствии
хватаемся за градусник, перед выходом на улицу смотрим на термометр за окном и
т.д. Но это лишь верхушка айсберга: в медицине, промышленности, транспорте,
сельском хозяйстве не обойтись без измерения температуры Такие задачи решаются
при помощи электронных приборов, среди которых важное место занимают цифровые
термометры (лучше в металлическом корпусе).
Специалистам
давно и хорошо известны цифровые термометры Dallas Semiconductor в корпусах
ТО92, DIP и SOIC (такие как DS1620, DS1820, DS1821 и другие). В последнее время
компания расширила линейку приборов в стальном корпусе microCAN, которые
относятся к семейству DS192х и будут рассмотрены далее в настоящей статье.
Причин тому несколько: это и уникальный регистрационный номер, и стальной
корпус, и возможность работать в однопроводной сети MicroLAN (подробное
описание см. http://www.rtcs.ru/case_microlan.htm или Chip News,
№5-10, 2000 г.).
Контактный
термометр DS1920.
DS1920 представляет собой цифровой термометр (блок-схема на рис.1) в корпусе
МiсгоСАN, который обеспечивает измерение температуры в диапазоне от –55°С
до +100°С с шагом 0,5°С и временем преобразования 0,2 с. Разрешающая
способность 0,5°С и разрядность 9 бит обеспечивают высокую точность измерения,
а доступ к внутренним счетчикам дает возможность увеличить разрешение с
использованием интерполяции. Особо следует выделить наличие специального набора
команд, который позволяет проводить одновременный опрос нескольких приборов
DS1920, подключенных к одной шине. Встроенный контроллер MicroLAN
обеспечивает передачу команд управления и данных по однопроводной линии. Т.к.
DS1920 не имеет встроенного источника питания и использует только режим
«паразитного» питания, то во время преобразования температуры или при записи
данных во внутреннее ЭППЗУ требуется внешний источник питания.
В
состав DS1920 входят 64-разрядное ПЗУ с уникальным идентификационным номером,
датчик температуры и два энергонезависимых регистра для хранения верхнего и
нижнего порогов температуры.
Считывание
и запись данных осуществляются через блокнотную память объёмом 8 байт с
последовательным доступом. Поскольку режим произвольного доступа к блокнотной
памяти отсутствует, то чтение этой памяти начинается с данных последнего
измерения температуры, затем читаются регистры верхнего и нижнего температурных
порогов. Последними читаются два регистра, которые используются для
интерполяции температурных отсчётов. Для проверки полученных данных после
чтения последнего байта блокнотной памяти передаётся 8-бит контрольная сумма.
Рис. 1. Блок-схема термометра DS1920
DS1920
не имеет внутреннего источника питания, а использует «паразитное» питание от
однопроводной шины. Однако при измерении температуры и записи данных в ЭППЗУ
ток потребления микросхемы превышает 1 мА, в то время как максимальный ток,
который может обеспечить ведущий шины с помощью нагрузочного резистора 1,5…5
кОм, составляет 3,3…1 мА. Для одного прибора это достаточно, но для этого не
надо городить сеть. Проблема решается или подключением внешнего источника
питания или питанием по сети, но заменой нагрузочного резистора на низкоомный
открытый ключ, который на время преобразования температуры и записи данных в
ЭППЗУ подаёт на однопроводную шину напряжение питания +5 В. ИС имеет встроенный
детектор используемого режима питания. Схема подключения приведена на рис. 2.
Рис. 2. Схема подключения DS1920 к однопроводной
шине
Применение
внешнего источника питания ускоряет процесс преобразования температуры, т.к. от
ведущего шины не требуется ожидание в течение максимально возможного времени
преобразования. В этом случае все DS1920, находящиеся на шине MicroLAN, могут
одновременно выполнять преобразование температуры.
После
завершения преобразования полученное значение сравнивается с величинами,
хранящимися в регистрах ТН и ТL. Если измеренная температура выходит за
установленные пределы, устанавливается сигнальный флаг (установка производится
после каждого измерения). При установленном флаге DS1920 отвечает на команду
«Поиск сигнала». Это позволяет в случае объединения множества приборов в сеть
быстро идентифицировать точку с отклонениями температуры от допустимых пределов
и сразу считать показания соответствующего термометра. Если команда «Поиск
сигнала» не применяется, то регистры ТН и ТL могут использоваться как регистры
общего назначения.
Измерение
температуры DS1920 выполняется с помощью встроенной схемы измерения
(блок-схема – на рис. 3). Суть метода измерения в следующем.
Подсчитывается число тактовых импульсов генератора с низким температурным
коэффициентом (ГНТК), выдаваемых за период измерения, который определяется
генератором с высоким температурным коэффициентом (ГВТК). Предварительная запись
в счетчик соответствует – 55°С. Если содержимое счетчика достигает нуля до
того, как закончится период измерения, то регистр температуры, в который также
предварительно записано значение, соответствующее – 55°С,
инкрементируется, т.е. измеренная температура выше – 55°С. Затем в счетчик
заносится новое значение из сумматора-корректора и начинается новый отсчет.
Если счетчик обнуляется до того, как закончится период измерения, то процесс
повторяется.
Рис. 3. Cхема измерения температуры DS1920
Сумматор-корректор
компенсирует нелинейность генераторов от температуры, позволяя, таким образом,
проводить измерения с высоким разрешением (0,5°С). Отметим, что все вычисления
выполняются непосредственно DS1920. В таблице 1 приведены точные соотношения
между измеренной температурой и выходными данными.
Таблица 1.
Температура, °С |
Выход (двоичный код) |
Выход (шестнадцатеричный
код) |
+100 |
00000000
11001000 |
00C8H |
+25 |
00000000
00110010 |
0032H |
+0,5 |
00000000
00000001 |
0001H |
0 |
00000000
00000000 |
0000H |
-0,5 |
11111111
11111111 |
FFFFH |
-25 |
11111111
11001110 |
FFCEH |
-100 |
11111111 10010010 |
FF92H |
Как
уже отмечалось, в DS1920 реализована возможность измерения температуры с более
высоким разрешением. Для этого считывается значение температуры из регистра
температуры и из него отбрасывается младший бит 0,5°С. Полученное значение
обозначается TEMP_READ. Затем считывается оставшееся в счетчике значение,
которое остается после окончания периода измерения и обозначается
(COUNT_REMAIN). Последней величиной, необходимой для расчета, является число
отсчетов на градус при данной температуре (COUNT_PER_C). Реальное значение
температуры определяется по формуле:
T = TEMP_READ – 0,25 + (COUNT_PER_C – COUNT_REMAIN)/COUNT_PER_C
Память
DS1920 является важнейшей составляющей, поэтому два слова о ней. Сюда входит
(таблица 2): блокнотная память и два байта ЭППЗУ (регистры верхнего TH и
нижнего TL температурных порогов). Блокнотная память организована как 8 байт
памяти с последовательным доступом. Два первых байта – измеренная
температура, третий и четвертый – временные копии TH и TL, обновляемые при
каждом включении. Два следующих байта не используются. Седьмой и восьмой байты
являются регистрами счетчика и используются для получения значения температуры
с более высоким разрешением. Последний байт – байт контрольной суммы
(проверка предыдущих восьми байтов). Через блокнотную память выполняется чтение
и запись данных в микросхему. Поскольку режим произвольного доступа к блокнотной
памяти отсутствует, то чтение этой памяти начинается с данных последнего
измерения температуры, затем читаются регистры верхнего и нижнего температурных
порогов и последними читаются два регистра, которые используются для
интерполяции температурных отсчётов. Для проверки полученных данных после
чтения последнего байта блокнотной памяти передаётся 8-разрядная контрольная
сумма.
Мы
уже говорили, что одной из особенностей термометров семейства DS192х является
возможность работы в однопроводной сети Micro LAN на шине 1-Wire. Напомню, что
однопроводная шина 1-Wire представляет собой систему с одним ведущим и
многочисленными ведомыми. В качестве ведущего может использоваться любой
промышленный микроконтроллер, например, 8051 с тактовой частотой 1,8 МГц, или персональный
компьютер с универсальным асинхронным портом UART и скоростью 115,2 Кбит/с.
Micro LAN имеет стандартные КМОП/ТТЛ логические уровни. Напряжение ниже 0,8 В
соответствует логическому нулю («0»), а напряжение выше 2,2 В является
логической единицей («1»). Диапазон рабочих напряжений составляет 2,8-6 В.
Ведущий и ведомые сконфигурированы как передатчики, что позволяет передавать
данные в любом направлении, но в данный момент – только в одном. Иными
словами, передача данных является полудуплексной и асинхронной.
Таблица
2. Карта памяти термометра DS1920.
Блокнотная память |
Байт |
ЭППЗУ |
Измеренная
температура (старший байт) |
0 |
|
Измеренная
температура (младший байт) |
1 |
|
Копия
TH |
2 |
Верхний
TH температурный порог |
Копия
TL |
3 |
Нижний
TL температурный порог |
Резерв |
4 |
|
Резерв |
5 |
|
Счетчик COUNT REMAIN |
6 |
|
Счетчик COUNT PER °С |
7 |
|
Байт
контрольной суммы |
8 |
|
Подключение
к шине 1-Wire допустимо для приборов с тремя состояниями или с открытым стоком.
В DS1920 реализован выход с открытым стоком (эквивалентная схема на рис. 4).
Протокол обмена между термометром и шиной состоит из 4 шагов:
Рис. 4. Выход с открытым стоком DS1920
Любая
передача на однопроводной шине начинается с инициализации, которая состоит из
импульса сброса (формируется ведущим), после которого все ведомые генерируют
импульс присутствия, в том числе и DS1920.
После
определения импульса присутствия ведущий шины выполняет одну из команд работы с
ПЗУ (каждая по 8 бит).
Чтение
ПЗУ (33Н)
позволяет ведущему считать 8-разрядный групповой код, 48-разрядный уникальный
серийный номер и байт контрольной суммы. Эта команда может использоваться, если
к шине подключен только один термометр DS1920.
Совпадение
ПЗУ (55Н)
применяется для адресации определенного прибора среди нескольких, подключенных
на шину.
Пропуск
ПЗУ (ССН)
предназначен для одновременной связи со всеми приборами на шине. В нашем случае
эта команда используется для преобразования температуры всеми термометрами
DS1920 одновременно.
Поиск
ПЗУ (F0H)
обеспечивает работу в условиях постоянно изменяющейся структуры сети. По этой
команде можно получить серийный номер одного прибора на шине с одновременной
его адресацией.
Условный
поиск ПЗУ (ЕСН).
Термометр отвечает на эту команду только в том случае, если в регистры TH и TL
занесены значения верхнего и нижнего температурных порогов, а последнее
измерение выходит за эти пределы.
Команды
управления и работы с памятью также имеют разрядность 8 бит.
Запись
в блокнотную память (4ЕН) термометра DS1920 выполняется, начиная с адреса 2, т.е. два
записанных байта будут храниться в памяти по адресу 2 и 3. Запись может быть
прервана в любой момент импульсом сброса. Однако, если импульс сброса появился
до того, как оба байта были полностью переданы, то их содержимое будет не
определено.
Чтение
блокнотной памяти (ВЕН) позволяет прочитать все содержимое этой памяти.
Копирование
блокнотной памяти (48Н). По данной команде содержимое блокнотной памяти копируется в ЭППЗУ
DS1920, что сохраняет значение измеренной температуры в энергонезависимой
памяти.
Преобразование
температуры (44Н).
Эта команда запускает процесс преобразования температуры, при этом никакие
данные не передаются.
Повтор
(В8Н) переписывает
значение измеренной температуры из ЭППЗУ в блокнотную память. Эта команда
выполняется автоматически при подключении к DS1920 источника питания.
На
передаче данных мы останавливаться не будем, поскольку это уже достаточно
хорошо описано.
Термометр
DS1920 зарегистрирован в Государственном реестре средств измерения под №
23169-02 и допущен к применению в России. Это должно повысить интерес к прибору
со стороны разработчиков ответственных приложений. Из наиболее перспективных на
сегодняшний день идей стоит упомянуть применение DS1920 в системах
температурного мониторинга зданий (работа выполняется в Донецком отделении
Академии Наук Украины), а также для построения теплосчетчиков (работа
выполняется Омскими специалистами).
Термометр/часы
DS1921L-F5Х
представляет практически идеальное устройство для контроля температуры
объектов, например, скоропортящихся продуктов или химикатов, критичных к
температуре, с возможностью записи измеренных значений в защищённую область
памяти. Измерение температуры и запись её в память производится с интервалом
времени, задаваемым пользователем. Запись в память осуществляется как в виде
непосредственного значения с инкрементом адреса памяти, так и в виде
гистограммы. Термометр/часы DS1921L-F5Х допускает хранение до 2048 значений
температуры, записанных через равные интервалы от 1 до 255 минут. Гистограмма
создаёт 63 приёмника данных для получения разрешения 2°С. Каждый приёмник
реализован в виде 16-разрядного счётчика, содержимое которого наращивается в
случае, когда значение температуры попадает в диапазон данного приёмника.
Приёмник 1 соответствует диапазону от –40 до –38,5°С, приёмник 2
охватывает диапазон от –38 до –36,5°С и так далее. Последний 63-й
приёмник фиксирует температуры свыше 84°С. Поскольку каждый приёмник –
счётчик на 2 байта, то он может наращиваться 65535 раз. Если число значений
температуры, попадающей в данный диапазон, превышает это число, содержимое
приёмника не изменяется. Следует помнить, что даже при измерении температуры
каждую минуту и попадании всех значений в один приёмник, его переполнение
произойдёт только через 45 дней.
Если
температура выходит за пределы диапазона, установленного пользователем, то
прибор фиксирует время, когда это произошло, продолжительность этого события, а
также позволяет различить, какой порог был преодолен. В общей сложности, могут
фиксироваться до 24 таких событий, по 12 для каждого из температурных порогов.
Дополнительное ОЗУ, независимое от памяти для записи температуры, позволяет хранить
информацию, относящуюся к контролируемому объекту. В ОЗУ прибора может также
храниться информация о дате изготовления, фирме-изготовителе и т. п. Уникальный
регистрационный номер и несбрасываемый счётчик позволяют определить попытки
несанкционированного доступа к микросхеме.
Блок-схема
DS1921L-F5Х представлена на рис. 5. Регистры часов и управления защищены от
записи при программировании.
Рис. 5. Блок-схема DS1921L-F5Х
Помимо
температурного датчика и памяти различного назначения (карта памяти на рис. 6),
микросхема имеет встроенные часы/календарь реального времени. Часы могут
работать в 12- или 24-часовом режимах, которые определяются битом 6 регистра
часов (адрес 202Н) («1» – 12-часовой режим). Бит 5 устанавливает индикацию
АМ/РМ при 12-часовом режиме («1» соответствует РМ). Для учёта дня недели в
состав DS1921L-F5Х входит счётчик, содержимое которого изменяется от 1 до 7,
причём «1» соответствует воскресенью (стандарт США) или понедельнику
(европейский стандарт). В календаре предусмотрена коррекция високосных лет
вплоть до 2100 года (для оптимистов и жизнелюбов).
Рис. 6. Карта памяти DS1921L-F5Х
Преобразование
температуры.
Измерение температуры с помощью DS1921L выполняется с точностью 0,5°С, причем
значение температуры представляется как 8-разрядное (байт) беззнаковое двоичное
число, которое охватывает весь диапазон 128°С (в теории). Реально диапазон
ограничен 00000000 (00h) ÷ 11111010 (FAh), а действительные значения
температур лежат от 01h до F9h. Если при преобразовании температуры
обнаруживается, что она выходит за пределы допустимого диапазона, это
записывается как 00h (если температура слишком низкая) или FFh (если
температура слишком высокая). Так как результаты, выходящие за допустимый
диапазон, накапливаются в буферах гистограммы 0 и 62, то значения в этих
буферах ограничены. Как следствие, номинальный температурный диапазон DS1921H и
DS1921Z начинается с кода 04h и заканчивается кодом F7h, что соответствует
буферам гистограммы 1…61.
Значение температуры
вычисляется на основе значения T[7…0] следующим образом:
σ(°C) = T[7..0] / 2 – 40,0
Это
выражение справедливо как для отсчетов температуры, сохраненных в памяти, так и
для регистра прямого считывания температуры (адрес 211h).
Пределы верхнего и нижнего
температурных порогов рассчитываются по формуле:
T[7..0] = 2 × σ(°C) + 80,0
Например,
температура 23°C преобразуется в десятичное число 126 или шестнадцатеричное
7Еh. Это соответствует двоичному значению 0111 1110, которое должно быть
записано в регистр температурной тревоги (адрес 020Bh или 020Ch
соответственно).
К
сетевым командам для DS1920 в DS1921L добавлены две новые для работы в режиме
высокого быстродействия (Overdrive mode).
Эти
команда аналогичны командам для DS1920, только выполняются быстрее и до
появления импульса сброса длительностью не менее 480 мкс. Временные параметры
для обычного режима и режима высокого быстродействия приведены в таблице 3.
Таблица
3.
Параметр |
Стандартные значения, мкс |
Значения для DS1921L, мкс |
||||||
Стандартная скорость |
Повышенное быстродействие |
Стандартная скорость |
Повышенное быстродействие |
|||||
мин. |
макс. |
мин. |
макс. |
мин. |
макс. |
мин. |
макс. |
|
Длительность
временного интервала |
61 |
- |
7 |
- |
65 |
- |
8 |
- |
Длительность
низкого уровня сброса |
480 |
- |
48 |
80 |
540 |
640 |
48 |
80 |
Длительность
высокого импульса присутствия |
15 |
60 |
2 |
6 |
15 |
60 |
1,1 |
6 |
Длительность
низкого импульса присутствия |
60 |
240 |
8 |
24 |
60 |
270 |
7,5 |
24 |
Длительность
низкого уровня при записи 0 |
60 |
120 |
6 |
16 |
60 |
120 |
6 |
15 |
Длительность
низкого уровня при чтении 0 |
15 |
60 |
2 |
6 |
15 |
60 |
2 |
6 |
Выделенные
цветом значения не соответствуют опубликованному стандарту на iButton.
Команды
для работы с памятью тоже пополнены новыми командами.
Последними
в семействе DS192х являются термометры/часы высокого разрешения DS1921H и
DS1921Z. Оба термометра имеют разрешение 0,125°С и могут записать температурную
гистограмму с разрешением 0,5°С. Еще одно отличие – температурный
диапазон: для DS1921H он составляет +15°С…+46°С, а для
DS1921Z – –5°С…+26°С.
Использование
формата TMEX позволяет хранить в энергонезависимой памяти различную информацию
(торговая декларация, дата выпуска, другие данные в виде текста или
кодированных файлов).
Измерение
и преобразование температуры DS1921H и DS1921Z аналогично DS1921L, но с
разрешением 1/8 градуса Цельсия, перекрытием диапазона 32°C (возможны значения
от 0000 0000 (00h) до 1111 1111 (FFh)) и действительными отсчетами температуры
от 01h до Feh.
Поскольку
DS1921H и DS1921Z имеют разные начальные значения измерения температуры, то
интерпретация кода температуры зависит от типа устройства. Номинальный
температурный диапазон обоих приборов начинается с 04h и заканчивается FBh, что
соответствует буферам гистограммы 1…62.
Температура вычисляется на
основе значения T[7…0] по формуле:
σ(°C) = T[7..0] / 8 + 14,500 (DS1921H)
σ(°C) = T[7..0] / 8 – 5,500 (DS1921Z)
Для установки верхнего и
нижнего температурных порогов необходимо воспользоваться формулой:
T[7..0] = 8 × σ(°C) – 116 (DS1921H)
T[7..0] = 8 × σ(°C) + 44 (DS1921Z)
Значение
23°C (пример для DS1921L) преобразуется в 68 (десятичное) или 44h для DS1921H,
и 228 (десятичное) или E4h для DS1921Z. Это соответствует двоичным значениям
0100 0100 и 1110 0100, которые тоже должны быть записаны в регистры
температурной тревоги (адрес 020Bh или 020Ch соответственно).
Таким
образом, DS1921H/Z являются практически идеальными устройствами для контроля
температуры транспортируемых объектов, будь то продукты питания, медицинские
препараты или биологические органы. Это своеобразный электронный самописец в
одном корпусе, не требующий ничего для своей работы. Такие приборы позволяют
создать эффективную систему контроля качества перевозки скоропортящихся продуктов,
чем уже не преминули воспользоваться в некоторых европейских странах. Диапазон
измерений прибора DS1921H делает его привлекательным в первую очередь для
контроля температуры тела человека или животных, а также для контроля
процессов, критичных к температуре: консервирование, покраска, нанесение
порошковых покрытий и т.п. Следует отметить, что возможность применения
описанных приборов в медицинских и пищевых приложениях подтверждена заключением
государственной санитарно-эпидемиологической службы РФ. Кроме того, DS1921H
можно использоваться для контроля температуры в любых помещениях, например, в
помещениях с компьютерами или другим оборудованием. Высокая разрешающая
способность и режим высокого быстродействия (временные параметры для обычного
режима и режима высокого быстродействия приведены в таблице 4) позволяют широко
применять DS1921H и DS1921Z для научных исследований.
Таблица 4.
Параметр |
Стандартные значения, мкс |
Значения для DS1921H/Z, мкс |
||||||
Стандартная скорость |
Повышенное быстродействие |
Стандартная скорость |
Повышенное быстродействие |
|||||
мин. |
макс. |
мин. |
макс. |
мин. |
макс. |
мин. |
макс. |
|
Длительность
временного интервала |
61 |
- |
7 |
- |
76 |
- |
10 |
- |
Длительность
низкого уровня сброса |
480 |
- |
48 |
80 |
480 |
640 |
62 |
80 |
Длительность
высокого импульса присутствия |
15 |
60 |
2 |
6 |
15 |
60 |
1,4 |
7,4 |
Длительность
низкого импульса присутствия |
60 |
240 |
8 |
24 |
60 |
240 |
7,5 |
34 |
Длительность
низкого уровня при записи 0 |
60 |
120 |
6 |
16 |
71 |
120 |
8 |
15,2 |
Длительность
низкого уровня при чтении 0 |
15 |
60 |
2 |
6 |
15 |
71 |
2 |
8 |
Выделенные
цветом значения не соответствуют опубликованному стандарту на iButton.
Надеюсь, что полученная информация позволит Вам
определиться с комплектацией для разработки и изготовления системы измерения
температуры. Успехов!
Журнал «Компоненты и Технологии» №8 2002
г.