exos
>
о компании 
>
бытовая электроника 
>
электроника для PC 
>
измерения 
>
kuChronos 





     


Универсальный таймер на PIC-контроллере


Автор: С. Кулешов
Опубликовано: Журнал "Радио", 12/2003

Универсальность описываемого в статье устройства в том, что оно способно не только включить и выключить в заданное время четыре нагрузки, но и превратить устаревшую машину АТ в компьютер АТХ и при этом выполнять функцию "противозависательного" средства.

Когда возникает потребность коммутировать несколько нагрузок по заданной программе, удобно использовать электронные часы с несколькими будильниками, оснащенными электронными ключами. Однако если при этом необходимо управление с компьютера, то такие часы уже не подходят. Предлагаемый таймер позволяет управлять четырьмя независимыми каналами. Для этого предусмотрены 16 событий, каждое из которых может изменять состояние любого канала (включать или выключать) в назначенное время с учетом дня недели. Каналами можно управлять непосредственно с компьютера, к которому подключено устройство, с него же производится установка текущего времени и настройка событий в таймере.
Устройство позволяет в обычном компьютере AT реализовать функции расширенного управления питанием аналогично машинам стандарта ATX (программно выключаться и включаться в назначенное время), а также управлять питанием периферийных устройств (принтера, сканера, внешнего модема). Для использования таймера в качестве “противозависательного” средства необходима программа, которая автоматически регулярно переустанавливает время выключения и последующего включения через несколько минут. При зависании компьютера, таймер, выключив на некоторое время питание, произведет “холодную” перезагрузку системы.
рис.1
Принципиальная схема устройства изображена на рис. 1. Его основа — PIC-контроллер PIC16F84A-04 (DD2). Тактовую частоту (4 МГц) задает кварцевый резонатор ZQ2. На элементе DD1.1 выполнен генератор импульсов с частотой следования 32768 Гц для отсчета времени. Импульсы этого генератора поступают через буферный элемент DD1.2 на внешний вход счетчика RTCC микроконтроллера. Требуемую частоту, и следовательно, точность хода часов устанавливают подстрочным конденсатором C2.
Транзисторы 1VT1—4VT1 нагружены реле 1K1—1K1, контакты которых включены в цепи питания нагрузок, подсоединяемых к розеткам XS1—XS4. Светодиоды 1HL1—4HL1 — индикаторы состояния нагрузок.
Компьютер управляет устройством по интерфейсу RS-232. Так как микроконтроллер PIC16F84A не имеет встроенного последовательного интерфейса, последний реализован программно. Сигналы COM-порта использованы не стандартно. По линии DTR осуществляется синхронизация передаваемых данных, по линии RTS компьютер передает информацию, а по линии CTS получает ее из контроллера. Данные передаются в дуплексном режиме и дополняются контрольными байтами для проверки корректности информации. Более подробно используемый интерфейс описан в статье автора "Интерфейс PIC-контроллера с ПК" ("Радио", 2003, № 7, с. 00—00).
Цепи R4R7VD4 и R5R8VD5 преобразуют уровни RS-232 в уровни ТТЛ для входов микроконтроллера. Уровня ТТЛ с выхода микроконтроллера достаточно для непосредственного управления линией RS-232, что позволило упростить схему согласования.
После подачи питания микроконтроллер DD2 устанавливается в начальное состояние, в котором все каналы выключены, часы обнулены, а управление нагрузками заблокировано, чтобы не допустить их ошибочного включения. Производя настройку устройства, компьютер передает текущее время, день недели и параметры для событий. Вся информация о последних хранится в энергонезависимой памяти EEPROM микроконтроллера. Каждое событие содержит номер нагрузки, которой оно управляет, информацию о производимом действии (включение или выключение), время срабатывания (в том числе день недели) и может находиться в "выключенном" состоянии (не производит действия) и в "ежедневном" режиме (происходит в указанное время, независимо от дня недели).
После установки времени и настройки каналов устройство можно использовать как автономно (при отключенном кабеле связи от разъема XS1), так и под управлением компьютера. Поскольку интерфейс RS-232 допускает подсоединение и отсоединение кабеля при включенных устройствах (hot plug), делать это можно в любое время.
Для непосредственное управления каналами служат кнопки SB1— SB4. Удержание любой из них нажатой более 0,5 с приводит к изменению состояния соответствующего канала. Временная задержка реализована программно и предотвращает переключение нагрузок при случайных нажатиях. Порт B микроконтроллера сконфигурирован так, что его входные линии RB0—RB3 и RB5 подключены через внутренние резисторы к шине питания.
Блок питания таймера выполнен по традиционной схеме и особенностей не имеет. Применение понижающего трансформатора T1 обусловлено необходимостью гальванической развязки питающей сети и компьютера. Батарея GB1 — резервный источник питания часов при перебоях в электроснабжении.
При программировании микроконтроллера нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) — HS, сторожевой таймер (WDT) — выключен, задержка после включения питания (PWRTE) — разрешена.
Связь компьютера с таймером осуществляется через динамически подгружаемую библиотеку timercom.dll.
Для установки событий и ручного управления нагрузками служит программа TIMER. В ее главном окне (рис. 2) имеются три закладки. В первой из них (“Нагрузки”) отображается состояние нагрузок, которое можно изменить, убрав или поставив соответствующий флажок, во второй (“События”) содержатся условия 16 событий: номер канала нагрузки, требуемое действие, время и день недели, когда оно должно произойти. В закладке “Параметры” можно выбрать COM-порт, к которому подключено устройство, и установить флажок, разрешающий программе получать данные от устройства сразу после запуска. После изменения параметров событий или состояния нагрузок необходимо нажать кнопку “Записать” для передачи новой информации таймеру (при этом автоматически устанавливается текущее время). Нажатие кнопки “Прочитать” приводит к загрузке текущих данных устройства.
Устройство собрано на печатной плате и размещено в корпусе сетевого фильтра "Pilot". Кнопки, светодиоды и розетка XS1 установлены на его боковой стенке.
табл.1 Трансформатор T1 — любой малогабаритный с вторичной обмоткой на 12 В. В качестве K1—K4 применены импортные реле с рабочим напряжением 12 В и контактами на 5 А. Из отечественных можно использовать реле РЭН34 исполнения ХП4.500.030-01 (сопротивление обмотки — 60…74 Ом, ток срабатывания — 100 мА, допустимый через контакты ток — 2 А). Резервный источник питания GB1 — батарея аккумуляторов или гальванических элементов напряжением 3,6...4,5 В. Потребляемый от нее ток не превышает 8 мА.
Подключать таймер к COM-порту компьютера можно как модемным, так и нуль-модемным кабелем. Назначение контактов разъема для каждого случая приведено в табл. 2.
> Скачать unitimer.zip
  Универсальный таймер (Прошивка для PIC и управляющая программа)   







Все материалы, находящиеся на этом сайте, являются авторскими.
© 1997-2005 exos tech.
© 1997-2011 Кулешов С.В.