Контактный термометр DS1920

Из всех видов измерений в повседневной жизни мы чаще всего сталкиваемся с измерением температуры: при плохом самочувствии хватаемся за градусник, перед выходом на улицу смотрим на термометр за окном и т.д. Но это лишь верхушка айсберга: в медицине, промышленности, транспорте, сельском хозяйстве не обойтись без измерения температуры Такие задачи решаются при помощи электронных приборов, среди которых важное место занимают цифровые термометры (лучше в металлическом корпусе).

DS1920 представляет собой цифровой термометр (блок-схема на рис.3-1) в корпусе МiсгоСАN, который обеспечивает измерение температуры в диапазоне от –55°С до +100°С с шагом 0,5°С и временем преобразования 0,2 с. Разрешающая способность 0,5°С и разрядность 9 бит обеспечивают высокую точность измерения, а доступ к внутренним счетчикам дает возможность увеличить разрешение с использованием интерполяции. Особо следует выделить наличие специального набора команд, который позволяет проводить одновременный опрос нескольких приборов DS1920, подключенных к одной шине. Встроенный контроллер MicroLAN обеспечивает передачу команд управления и данных по однопроводной линии. Т.к. DS1920 не имеет встроенного источника питания и использует только режим «паразитного» питания, то во время преобразования температуры или при записи данных во внутреннее ЭППЗУ требуется внешний источник питания.

В состав DS1920 входят 64-разрядное ПЗУ с уникальным идентификационным номером, датчик температуры и два энергонезависимых регистра для хранения верхнего и нижнего порогов температуры.

Считывание и запись данных осуществляются через блокнотную память объёмом 8 байт с последовательным доступом. Поскольку режим произвольного доступа к блокнотной памяти отсутствует, то чтение этой памяти начинается с данных последнего измерения температуры, затем читаются регистры верхнего и нижнего температурных порогов. Последними читаются два регистра, которые используются для интерполяции температурных отсчётов. Для проверки полученных данных после чтения последнего байта блокнотной памяти передаётся 8-бит контрольная сумма.

Контактный термометр DS1920 - student2.ru

Рис. 3-1: Блок-схема термометра DS1920

DS1920 не имеет внутреннего источника питания, а использует «паразитное» питание от однопроводной шины. Однако при измерении температуры и записи данных в ЭППЗУ ток потребления микросхемы превышает 1 мА, в то время как максимальный ток, который может обеспечить ведущий шины с помощью нагрузочного резистора 1,5…5 кОм, составляет 3,3…1 мА. Для одного прибора это достаточно, но для этого не надо городить сеть. Проблема решается или подключением внешнего источника питания или питанием по сети, но заменой нагрузочного резистора на низкоомный открытый ключ, который на время преобразования температуры и записи данных в ЭППЗУ подаёт на однопроводную шину напряжение питания +5 В. ИС имеет встроенный детектор используемого режима питания. Схема подключения приведена на рис. 3-2.

Контактный термометр DS1920 - student2.ru

Рис. 3-2: Схема подключения DS1920 к однопроводной шине

Применение внешнего источника питания ускоряет процесс преобразования температуры, т.к. от ведущего шины не требуется ожидание в течение максимально возможного времени преобразования. В этом случае все DS1920, находящиеся на шине MicroLAN, могут одновременно выполнять преобразование температуры.

После завершения преобразования полученное значение сравнивается с величинами, хранящимися в регистрах ТН и ТL. Если измеренная температура выходит за установленные пределы, устанавливается сигнальный флаг (установка производится после каждого измерения). При установленном флаге DS1920 отвечает на команду «Поиск сигнала». Это позволяет в случае объединения множества приборов в сеть быстро идентифицировать точку с отклонениями температуры от допустимых пределов и сразу считать показания соответствующего термометра. Если команда «Поиск сигнала» не применяется, то регистры ТН и ТL могут использоваться как регистры общего назначения.

Измерение температуры DS1920 выполняется с помощью встроенной схемы измерения (блок-схема – на рис. 2-3). Суть метода измерения в следующем. Подсчитывается число тактовых импульсов генератора с низким температурным коэффициентом (ГНТК), выдаваемых за период измерения, который определяется генератором с высоким температурным коэффициентом (ГВТК). Предварительная запись в счетчик соответствует – 55°С. Если содержимое счетчика достигает нуля до того, как закончится период измерения, то регистр температуры, в который также предварительно записано значение, соответствующее – 55°С, инкрементируется, т.е. измеренная температура выше – 55°С. Затем в счетчик заносится новое значение из сумматора-корректора и начинается новый отсчет. Если счетчик обнуляется до того, как закончится период измерения, то процесс повторяется.

Контактный термометр DS1920 - student2.ru

Рис. 3-3: Cхема измерения температуры DS1920

Сумматор-корректор компенсирует нелинейность генераторов от температуры, позволяя, таким образом, проводить измерения с высоким разрешением (0,5°С). Отметим, что все вычисления выполняются непосредственно DS1920. В таблице 3-1 приведены точные соотношения между измеренной температурой и выходными данными.

Таблица 3-1.

Температура, °С Выход (двоичный код) Выход (шестнадцатеричный код)
+100 00000000 11001000 00C8H
+25 00000000 00110010 0032H
+0.5 00000000 00000001 0001H
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 является важнейшей составляющей, поэтому два слова о ней. Сюда входит (таблица 3-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 В. Ведущий и ведомые сконфигурированы как передатчики, что позволяет передавать данные в любом направлении, но в данный момент – только в одном. Иными словами, передача данных является полудуплексной и асинхронной.

Таблица 3-2.

Блокнотная память Байт ЭППЗУ
Измеренная температура (старший байт)  
температура (младший байт)  
Копия TH Верхний TH температурный порог
Копия TL Нижний TL температурный порог
Резерв  
Резерв  
Счетчик COUNT REMAIN  
Счетчик COUNT PER °С  
Байт контрольной суммы  

Подключение к шине 1-Wire допустимо для приборов с тремя состояниями или с открытым стоком. В DS1920 реализован выход с открытым стоком (эквивалентная схема на рис. 3-4). Протокол обмена между термометром и шиной состоит из 4 шагов:

· инициализация;

· команды работы с ПЗУ;

· команды управления и работы с памятью;

· передача/данные.

Контактный термометр DS1920 - student2.ru

Рис. 3-4: Выход с открытым стоком DS1920

Любая передача на однопроводной шине начинается с инициализации, которая состоит из импульса сброса (формируется ведущим), после которого все ведомые генерируют импульс присутствия, в том числе и DS1920. После определения импульса присутствия ведущий шины выполняет одну из команд работы с ПЗУ (каждая по 8 бит). Чтение ПЗУ (33Н) позволяет ведущему считать 8-разрядный групповой код, 48-разрядный уникальный серийный номер и байт контрольной суммы. Эта команда может использоваться, если к шине подключен только один термометр DS1920. Совпадение ПЗУ (55Н) применяется для адресации определенного прибора среди нескольких, подключенных на шину. Пропуск ПЗУ (ССН) предназначен для одновременной связи со всеми приборами на шине. В нашем случае эта команда используется для преобразования температуры всеми термометрами DS1920 одновременно.

Поиск ПЗУ (F0H) обеспечивает работу в условиях постоянно изменяющейся структуры сети. По этой команде можно получить серийный номер одного прибора на шине с одновременной его адресацией. Условный поиск ПЗУ (ЕСН). Термометр отвечает на эту команду только в том случае, если в регистры TH и TL занесены значения верхнего и нижнего температурных порогов, а последнее измерение выходит за эти пределы. Команды управления и работы с памятью также имеют разрядность 8 бит. Запись в блокнотную память (4ЕН) термометра DS1920 выполняется, начиная с адреса 2, т.е. два записанных байта будут храниться в памяти по адресу 2 и 3. Запись может быть прервана в любой момент импульсом сброса. Однако, если импульс сброса появился до того, как оба байта были полностью переданы, то их содержимое будет не определено.

Чтение блокнотной памяти (ВЕН) позволяет прочитать все содержимое этой памяти. Копирование блокнотной памяти (48Н). По данной команде содержимое блокнотной памяти копируется в ЭППЗУ DS1920, что сохраняет значение измеренной температуры в энергонезависимой памяти. Преобразование температуры (44Н). Эта команда запускает процесс преобразования температуры, при этом никакие данные не передаются. Повтор (В8Н) переписывает значение измеренной температуры из ЭППЗУ в блокнотную память. Эта команда выполняется автоматически при подключении к DS1920 источника питания. На передаче данных мы останавливаться не будем, поскольку это уже достаточно хорошо описано.

Список Литературы

1. Журнал «Компоненты и Технологии» №8 2002 г. Ракович Н.Н.

2. Журнал "Радио" 2001, № 2,3.

3. Dallas Semiconductor Data Book, Fall 1997

4. Atmel Corporation, Microcontroller Data Book, October 1995

5. Интернет: http://www.iButton.com , http://www.dalsemi.com , http://www.atmel.com .

Наши рекомендации