| ||
|
|||||||||
Cайт и форум для электриков HARDW.net |
Программатор термометра/термостата DS1821Довольно часто на практике возникает задача термостатирования какого-либо объекта. Раньше для решения этой задачи требовалась довольно громоздкая аналоговая схема, содержащая несколько десятков элементов. В настоящее время такая задача может быть решена значительно проще. Если требуемая точность поддержания температуры составляет единицы градусов, а рабочая температура не выходит из диапазона –55..+125°C, то она может быть решена с помощью цифрового термометра/термостата DS1821.
Микросхема DS1821, выпускаемая фирмой Dallas (теперь это уже MAXIM), может работать в режиме термометра или в режиме термостата. В первом из этих режимов DS1821 обеспечивает измерение температуры в диапазоне –55..+125°C с дискретностью 1°C. Самым привлекательным является то, что такой термометр уже откалиброван на заводе, гарантированная точность составляет ±1°C в диапазоне 0..+85°C и ±2°C во всем диапазоне рабочих температур. Типичная кривая ошибки измерения температуры приведена на рисунке.
Рис. 1. Типичная кривая ошибки термометра DS1821. Считывание значений производится с помощью однопроводного интерфейса (1-WireTM) фирмы DALLAS, поэтому данный режим еще называют однопроводным. Температура считывается как 8-битное число в дополнительном коде. Например, +125°C соответствует код 7Dh, +25°C – 19h, 0°C – 00h, -1°C – FFh, -25°C – E7h, -55°C – C9h, аналогично для других значений температуры. С помощью специальных команд DS1821 может быть переведен в режим термостата, когда вывод данных становится управляющим выходом. При работе в режиме термостата измерения температуры идут постоянно, каждое измеренное значение сравнивается с порогами, сохраненными в энергонезависимой памяти. Эти пороги задают требуемый гистерезис характеристики регулирования:
Рис. 2. Гистерезис характеристики регулирования термостата. Полярность выходного сигнала программируется с помощью бита POL регистра статуса. Когда температура превышает порог, сохраненный в регистре TH, выход переходит в активное состояние. Обратный переход произойдет тогда, когда температура станет ниже порога TL. Выход термостата представляет собой выход с открытым стоком, который допускает втекающий ток до 4 мА. Для проведения программирования DS1821 должен находится в однопроводном режиме. В таком режиме термометры поставляются производителем. У DS1821 всего доступно 4 регистра: TH, TL, регистр температуры и регистр статуса. Первых два регистра служат для сохранения порогов термостата. Регистр температуры может быть считан для получения результата последнего измерения температуры. Регистр статуса задает режим работы DS1821 и позволяет определить его состояние. Регистры TH, TL и регистр статуса являются энергонезависимыми, т.е. они хранят свои значения даже при отключенном питании. Формат представления температуры для регистров TH, TL и регистра температуры одинаков. Регистр статуса имеет следующий формат:
Для перевода DS1821 в однопроводной режим из режима термостата необходимо на вывод питания подать 0В в то время, когда вывод данных находится в состоянии высокого логического уровня. Затем на вывод данных нужно подать 16 импульсов. После этого можно снова подать питание, и DS1821 окажется в однопроводном режиме. Если указанную процедуру повторить, то DS1821 снова перейдет в режим термостата.
Рис. 3. Процедура выхода из режима термостата. Если выводы питания и данных находятся в состоянии низкого уровня более чем примерно 10 сек, то термометр является обесточенным. При следующем включении питания его состояние будет определяться битом T/R. Рассматривать здесь протокол однопроводной шины не имеет смысла, так как это уже сделано во многих статьях (например, «Имитатор электронных ключей IButton», Схемотехника, №1 2000 г.). Следует лишь отметить, что в отличие от большинства других однопроводных устройств, DS1821 не имеет адресации, что не позволяет подключать несколько таких устройств на одну шину или использовать совместно с ним другие однопроводные устройства. В таблице ниже приведены команды, которые может воспринимать DS1821.
Команды чтения TL и TH предназначены для того, чтобы иметь возможность проверить содержимое этих регистров перед тем, как DS1821 будет переведен в режим термостата. Подробное описание DS1821 можно найти по ссылке: http://pdfserv.maxim-ic.com/arpdf/DS1821.pdf . Нужно отметить, что DS1821 имеет недокументированные команды A0h и 41h, которые позволяют уменьшить дискретность отсчетов температуры. Пример использования этих команд можно найти в Application Note 105 от фирмы Dallas ( http://pdfserv.maxim-ic.com/arpdf/AppNotes/app105.pdf ). Для программирования порогов DS1821, а также для перевода его в режим термостата и обратно служит специальная программа ds1821.exe, работающая под Windows, которая описана ниже. Микросхема DS1821 подключается к COM-порту компьютера через адаптер, схема которого приведена на рисунке, где показано окно помощи программы.
Рис. 4. Принципиальная схема адаптера. Схема адаптера не так проста, по сравнению, например, с адаптером DS9097 фирмы Dallas. Это связано в первую очередь с тем, что хотелось иметь общую «землю» компьютера и однопроводной шины. Адаптер обеспечивает на входе RXD порта компьютера лишь однополярные уровни, что, строго говоря, не соответствует спецификации RS-232C. Однако большинство портов с такими уровнями работают нормально. Вместо указанных на схеме МОП-транзисторов можно применить близкие по параметрам транзисторы других типов. Например, в качестве n-канальных транзисторов подойдут КП501, КП505. В принципе, можно применить и биполярные транзисторы, добавив в базы ограничительные резисторы. Конструктивно адаптер выполнен в корпусе разъема D-SUB-25.
Рис. 5. Внешний вид адаптера. Разъем паяется прямо на плату, которая входит между рядами контактов. Другая сторона платы выполнена удлиненной и выходит за пределы корпуса разъема. В эту часть платы впаян 3-х контактный винтовой терминал.
Рис. 6. Рисунок печатной платы адаптера. Вид главного окна программы показан на рисунке ниже.
Рис. 7. Вид главного окна программы ds1821.exe. Окно имеет следующие элементы управления:
Меню Port в развернутом виде показано на рисунке.
Рис. 8. Меню Port в развернутом виде. Это меню позволяет открыть один из четырех портов COM1 – COM4. Кроме того, меню позволяет закрыть порт и выйти из программы. В списке активны только доступные порты (т.е. те, которые физически присутствуют и не заняты в данный момент другими приложениями). Когда порт открывается, проверяется наличие на этом порту адаптера (достаточно соединения TXD – RXD). Если адаптер не обнаружен, выводится соответствующее сообщение:
Рис. 9. Сообщение об ошибке при отсутствии адаптера. Меню Utilites в основном дублирует кнопки основного окна. Имеется только один новый пункт: Recall NVM. Он позволяет считать из DS1821 значения TH и TL, которые в нем сохранены. Для этого DS1821 должен находиться в однопроводном режиме.
Рис. 10. Меню Utilites в развернутом виде. Для программирования DS1821 в режим термостата необходимо в полях TH и TL набрать значения порогов, а затем нажать кнопку Thermostat. При этом значения порогов будут записаны, а в регистре статуса будет установлен бит T/R. Поскольку питание не выключалось, DS1821 все еще будет находиться в однопроводном режиме. Это позволяет, например, проверить записанные значения порогов с помощью команды Recall NVM. Если сейчас питание DS1821 выключить, то при следующем включении он будет находиться в режиме термостата. Для изменения порогов DS1821, который уже находится в режиме термостата, можно просто набрать в полях новые значения и нажать кнопку Thermostat. При этом DS1821 будет временно переведен в однопроводной режим, и будут записаны новые значения порогов. Если сейчас питание DS1821 выключить, то при следующем включении он будет находиться в режиме термостата и работать с новыми порогами. Программа не содержит в явном виде управления битом полярности выхода POL. Управление производится значениями TH и TL. Дело в том, что значение TL, большее, чем TH, практического смысла не имеет. Поэтому в регистр TH всегда записывается большее значение, а в TL – меньшее. Но если ввести TL большее, чем TH, это вызовет изменение полярности выхода (активным уровнем станет 0). Поэтому поле TH фактически означает температуру, при которой выход переключается в состояние высокого уровня, а TL – низкого. Меню Help содержит рисунок принципиальной схемы адаптера и сведения о разработчике программы. Для хранения установок программа использует ini-файл, который создается в том же директории, где расположен exe-файл. В ini-файле содержится информация о положении окна программы и номер используемого COM-порта: [General]Left=427Top=295COM port=2
Рис. 11. Сообщение об ошибке при недоступности порта. Для работы с COM-портом программа пользуется функциями API через специальную «оберточную» динамическую библиотеку comapi32.dll. Обмен с однопроводными устройствами идет довольно медленно из-за удивительно долгого (порядка 200 миллисекунд!) процесса переключения скоростей COM-порта (вызов функции SetCommState с измененным значением поля BaudRate структуры DCB). Это весьма неприятное свойство API. Кроме термометра/термостата DS1821 существуют микросхемы термометров, самой популярной из которых сейчас является DS18S20, пришедшая на смену DS1820. Она имеет меньшую дискретность представления температуры (0.5°C), кроме того, обладает еще целым рядом дополнительных возможностей. Подробное описание DS18S20 можно найти по ссылке: http://pdfserv.maxim-ic.com/arpdf/DS18S20.pdf . Однако работать автономно в режиме термостата она не может. Описанный адаптер позволяет подключить к COM-порту и названные термометры. Специальная программа ds1820.exe позволяет считать и отобразить показания термометра, а также считать серийный номер и запрограммировать два пользовательских байта. Вид главного окна программы показан на рисунке.
Рис. 12. Вид главного окна программы ds1820.exe. Окно имеет следующие элементы управления:
Меню Port и Help, а также структура ini-файла идентичны описанным выше для программы ds1821.exe. Меню Utilites содержит три пункта:
Рис. 13. Меню Utilites программы ds1820.exe в развернутом виде. Описанный адаптер также подходит для считывания электронных ключей IButton и для подключения других однопроводных устройств. Если программировать DS1821 не требуется, ключ на p-канальном транзисторе, который управляет питанием, можно исключить. Именно такая схема приведена в окне помощи программы ds1820.exe. Download:
Автор проекта: Программатор термометра/термостата DS1821 Просмотров сегодня: 9004, всего: 9004 |
|
|||||||||
| |||||||||
|