Воскресенье, 19.11.2017
Тюменский радиолюбительский сайт
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Casper, mexanik 
Форум » Компьютерная ветка » Компьютерная электроника » Универсальный таймер на PIC контроллере
Универсальный таймер на PIC контроллере
CasperДата: Четверг, 22.09.2011, 01:11 | Сообщение # 1
Системотехник
Группа: Администраторы
Сообщений: 184
Награды: 0
Репутация: 5
Статус: Offline
Универсальность описываемого в статье устройства в том, что оно способно не только включить и выключить в заданное время четыре нагрузки, но и превратить устаревшую машину AT в компьютер АТХ и при этом выполнять функцию «противозависательного» средства.

Когда возникает потребность коммутировать несколько нагрузок по заданной программе, удобно использовать электронные часы с несколькими будильниками, оснащенными электронными ключами. Однако если при этом необходимо управление с компьютера, то такие часы уже не подходят. Предлагаемый таймер позволяет управлять четырьмя независимыми каналами. Для этого предусмотрены 16 событий, каждое из которых может изменять состояние любого канала (включать или выключать) в назначенное время с учетом дня недели. Каналами можно управлять непосредственно с компьютера, к которому подключено устройство, с него же производятся установка текущего времени и настройка событий в таймере.
Устройство позволяет в обычном компьютере AT реализовать функции расширенного управления питанием аналогично машинам стандарта АТХ (программно выключаться и включаться в назначенное время), а также управлять питанием периферийных устройств (принтера, сканера, внешнего модема). Для использования таймера в качестве «противозависательного» средства необходима программа, которая автоматически регулярно переустанавливает время выключения и последующего включения через несколько минут. При зависании компьютера таймер, выключила на некоторое время питание, произведет «холодную» перезагрузку системы.
Принципиальная схема устройства изображена на рис- 1. Его основа — PIC-контроллер PIC16F84A-04 (DD2). Тактовую частоту (4 МГц) задает кварцевый резонатор ZQ2. На элементе DD1.1 выполнен генератор импульсов с частотой следования 32768 Гц для отсчета времени. Импульсы этого генератора поступают через буферный элемент DD1.2 на внешний вход счетчика RTCC микроконтроллера. Требуемую частоту и, следовательно, точность хода часов устанавливают подстрочным конденсатором С2.

Транзисторы 1VT1—4VT1 нагружены реле IK1—4К1, контакты которых включены в цепи питания нагрузок, подсоединяемых к розеткам XS1 —XS4 Светодиоды 1HL1—4HL1 — индикаторы состояния нагрузок.
Компьютер управляет устройством по интерфейсу RS-232. Так как микроконтроллер PIC16F84A не имеет встроенного последовательного интерфейса, последний реализован программно. Сигналы СОМ-порта использованы не стандартно. По линии DTR осуществляется синхронизация передаваемых данных, по линии RTS компьютер передает информацию, а по линии CTS получает ее из контроллера. Данные передаются в дуплексном режиме и дополняются контрольными байтами для проверки корректности информации. Более подробно используемый интерфейс описан в статье автора «Интерфейс PIC-контроллера с ПК» («Радио», 2003, № 7, с. 20-22).
Цепи R4R7VD4 и R5R8VD5 преобразуют уровни RS-232 в уровни ТТЛ для входов микроконтроллера. Уровня ТТЛ с выхода микроконтроллера достаточно для непосредственного управления линией RS-232, что позволило упростить схему согласования.
После подачи питания микроконтроллер DD2 устанавливается в начальное состояние, в котором все каналы выключены, часы обнулены, а управление нагрузками заблокировано, чтобы не допустить их ошибочного включения. Производя настройку устройства, компьютер передает текущее время, день недели и параметры для событий. Вся информация о последних хранится в энергонезависимой памяти EEPROM микроконтроллера. Каждое событие содержит номер нагрузки, которой оно управляет, информацию о производимом действии (включение или выключение), время срабатывания (в том числе день недели) и может находиться в «выключенном»' состоянии (не производит действия) и в «ежедневном» режиме (происходит в указанное время, независимо от дня недели).
После установки времени и настройки каналов устройство можно использовать как автономно (при отключенном кабеле связи от разъема XS5), так и под управлением компьютера. Поскольку интерфейс RS-232 допускает подсоединение и отсоединение кабеля при включенных устройствах (hot plug), делать это можно в любое время.
Для непосредственного управления каналами служат кнопки SB1 —SB4. Удержание любой из них в нажатом положении более 0,5 с приводит к изменению состояния соответствующего канала.
Временная задержка реализована программно и предотвращает переключение нагрузок при случайных нажатиях. Порт В микроконтроллера сконфигурирован так, что его входные линии RB0— RB3 и RB5 подключены через внутренние резисторы к шине питания.
Блок питания таймера выполнен по традиционной схеме и особенностей не имеет. Применение понижающего трансформатора Т1 обусловлено необходимостью гальванической развязки питающей сети и компьютера. Батарея GB1 — резервный источник питания часов при перебоях в электроснабжении.
При программировании нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) — HS, сторожевой таймер (WDT) — выключен, задержка после включения питания (FWRTE) — разрешена. Связь компьютера с таймером осуществляется через динамически подгружаемую библиотеку timercom.dll

Для установки событий и ручного управления нагрузками служит программа TIMER. В ее главном окне (рис. 2) имеются три закладки. В первой из них («Нагрузки») отображается состояние нагрузок, которое можно изменить, убрав или поставив соответствующий флажок, во второй («События») содержатся условия 16 событий: номер канала нагрузки, требуемое действие, время и день недели, когда оно должно произойти. В закладке «Параметры» можно выбрать СОМ-порт, к которому подключено устройство, и установить флажок, разрешающий программе получать данные от устройства сразу после запуска. После изменения параметров событий или состояния нагрузок необходимо нажать кнопку «Записать» для передачи новой информации таймеру (при этом автоматически устанавливается текущее время). Нажатие кнопки «Прочитать»» приводит к загрузке текущих данных устройства.
Устройство собрано на печатной плате и размещено в корпусе сетевого фильтра «Pilot». Кнопки, светодиоды и розетка XS1 установлены на его боковой стенке.
Трансформатор Т1 —любой малогабаритный с вторичной обмоткой на 12 В. В качестве 1К1—4К1 применены импортные релеTRU-12VDC-SB-CLC рабочим напряжением 12 В и контактами на 5 А (сопротивление обмотки — 400...500 Ом). Резервный источник питания GB1 — батарея аккумуляторов или гальванических элементов напряжением 3,6...4,5 В. Потребляемый от нее ток не превышает 8 мА.
Подключать таймер к СОМ-порту компьютера можно как модемным, так и нуль-модемным кабелем. Назначение контактов разъема для каждого случая приведено в табл. 2.

Прошивку микроконтроллера, исходный текст, биб-ку timercom.dll , а также программу timer.exe можно скачать тут.

Источник Журнал Радио №12 2003г.
Прикрепления: 3156990.jpg(44Kb) · 7760506.jpg(10Kb)



 
Форум » Компьютерная ветка » Компьютерная электроника » Универсальный таймер на PIC контроллере
Страница 1 из 11
Поиск:

Copyright MyCorp © 2017
Сделать бесплатный сайт с uCoz