У многих радиолюбителей есть старые компьютеры типа РС 286,386, которые отслужили свое и их применение в качестве компьютера уже не представляется возможным и данные компьютеры пригодны если только для таких конструкций, когда в соединении с периферийными дополнительными устройствами они еще долго вам послужат. Автор, используя возможности компьютера создал устройство которое способно не только включить и выключить в заданное время четыре нагрузки, но и превратить устаревшую машину AT в компьютер АТХ и при этом выполнять функцию “противозависательного” средства.
Когда возникает потребность коммутировать несколько нагрузок по заданной программе, удобно использовать электронные часы с несколькими будильниками, оснащенными электронными ключами. Однако если при этом необходимо управление с компьютера, то такие часы уже не подходят. Предлагаемый таймер позволяет управлять четырьмя независимыми каналами. Для этого предусмотрены 16 событий, каждое из которых может изменять состояние любого канала (включать или выключать) в назначенное время с учетом дня недели. Каналами можно управлять непосредственно с компьютера, к которому подключено устройство, с него же производятся, установка текущего времени и настройка событий в таймере.
Устройство позволяет в обычном компьютере AT реализовать функции расширенного управления питанием аналогично машинам стандарта АТХ (программно выключаться и включаться в назначенное время), а также управлять питанием периферийных устройств (принтера, сканера, внешнего модема). Для использования таймера в качестве “противозависательного” средства необходима программа, которая автоматически регулярно переустанавливает время выключения и последующего включения через несколько минут. При зависании компьютера таймер, выключив на некоторое время питание, произведет “холодную” перезагрузку системы.
Принципиальная схема устройства изображена на рис.1. Его основа - PIC-контроллер PIC16F84A-04 (DD2). Тактовую частоту (4 МГц) задает кварцевый резонатор ZQ2. На элементе DD1.1 выполнен генератор импульсов с частотой следования 32768 Гц для отсчета времени. Импульсы этого генератора поступают через буферный элемент DD1.2 на внешний вход счетчика RTCC микроконтроллера. Требуемую частоту и, следовательно, точность хода часов устанавливают подстрочным конденсатором С2. Транзисторы 1VT1-4VT1 нагружены реле 1К1-4К1, контакты которых включены в цепи питания нагрузок, подсоединяемых к розеткам XS1-XS4. Светодиоды 1HL1-4HL1 - индикаторы состояния нагрузок.
Компьютер управляет устройством по интерфейсу RS-232. Так как микроконтроллер PIC16F84A не имеет встроенного последовательного интерфейса, последний реализован программно. Сигналы СОМ-порта использованы не стандартно. По линии DTR осуществляется синхронизация передаваемых данных, по линии RTS компьютер передает информацию, а по линии CTS получает ее из контроллера. Данные передаются в дуплексном режиме и дополняются контрольными байтами для проверки корректности информации. Более подробно используемый интерфейс описан в статье автора “Интерфейс PIC-контроллера с ПК” [1]. Цепи R4R7VD4 и R5R8VD5 преобразуют уровни RS-232 в уровни ТТЛ для входов микроконтроллера. Уровня ТТЛ с выхода микроконтроллера достаточно для непосредственного управления линией RS-232, что позволило упростить схему согласования.
После подачи питания микроконтроллер DD2 устанавливается в начальное состояние, в котором все каналы выключены, часы обнулены, а управление нагрузками заблокировано, чтобы не допустить их ошибочного включения. Производя настройку устройства, компьютер передает текущее время, день недели и параметры для событий. Вся информация о последних хранится в энергонезависимой памяти EEPROM микроконтроллера. Каждое событие содержит номер нагрузки, которой оно управляет, информацию о производимом действии (включение или выключение), время срабатывания (в том числе день недели) и может находиться в “выключенном” состоянии (не производит действия) и в “ежедневном” режиме (происходит в указанное время, независимо от дня недели).
Рис.2.
После установки времени и настройки каналов устройство можно использовать как автономно - при отключенном кабеле связи от разъема XS5, так и под управлением компьютера. Поскольку интерфейс RS-232 допускает подсоединение и отсоединение кабеля при включенных устройствах (hot plug), делать это можно в любое время. Для непосредственного управления каналами служат кнопки SB1—SB4.
Удержание любой из них в нажатом положении более 0,5 с приводит к изменению состояния соответствующего канала. Временная задержка реализована программно и предотвращает переключение нагрузок при случайных нажатиях. Порт В микроконтроллера сконфигурирован так, что его входные линии RB0— RB3 и RB5 подключены через внутренние резисторы к шине питания.
Блок питания таймера выполнен по традиционной схеме и особенностей не имеет. Применение понижающего трансформатора Т1 обусловлено необходимостью гальванической развязки питающей сети и компьютера. Батарея GB1 - резервный источник питания часов при перебоях в электроснабжении.
При программировании нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) - HS, сторожевой таймер (WDT) - выключен, задержка после включения питания (PWRTE) - разрешена.
Связь компьютера с таймером осуществляется через динамически подгружаемую библиотеку timercom.dll. Ее и описание программного интерфейса (API) для работы с ней и создания собственной оболочки для работы с устройством можно скачать здесь. Для установки событий и ручного управления нагрузками служит программа TIMER. В ее главном окне - рис. 2 имеются три закладки. В первой из них (“Нагрузки”) отображается состояние нагрузок, которое можно изменить, убрав или поставив соответствующий флажок, во второй (“События”) содержатся условия 16 событий: номер канала нагрузки, требуемое действие, время и день недели, когда оно должно произойти.
В закладке “Параметры” можно выбрать СОМ-порт, к которому подключено устройство, и установить флажок, разрешающий программе получать данные от устройства сразу после запуска. После изменения параметров событий или состояния нагрузок необходимо нажать кнопку “Записать” для передачи новой информации таймеру (при этом автоматически устанавливается текущее время). Нажатие кнопки “Прочитать” приводит к загрузке текущих данных устройства.
Сигнал |
Контакт разъема |
DB-25F |
DB-9F |
DB-25M (нуль-модем) |
DB-9M (нуль-модем) |
CTS |
5 |
8 |
4 |
7 |
RTS |
4 |
7 |
5 |
8 |
DTR |
20 |
4 |
6 |
6 |
GND |
7 |
5 |
7 |
5 |
Таблица 2.
Подключать таймер к СОМ-порту компьютера можно как модемным, так и нуль-модемным кабелем. Назначение контактов разъема приведено в таблице 2.
Устройство собрано на печатной плате и размещено в корпусе сетевого фильтра “Pilot”. Кнопки, светодиоды и розетка XS1 установлены на его боковой стенке.
Трансформатор Т1 - любой малогабаритный с вторичной обмоткой на 12 В. В качестве 1К1- 4К1 применены импортные реле TRU-12VDC-SB-CL с рабочим напряжением 12В и контактами на 5А с сопротивлением обмотки - 400...500 Ом. Резервный источник питания GB1 - батарея аккумуляторов или гальванических элементов напряжением 3,6...4,5 В. Потребляемый от нее ток не превышает 8 мА.
Скачать описание программного интерфейса API и коды прошивки микроконтроллера PIC16F84A.
С. Кулешов
Литература:
- Радио - 2003, № 7, с. 20-22.