Обо мне
    Резюме
    Портфолио
    Контакты
    Астро
    Схемотехника
    Мультикоптеры
    Автономный дом
    CNC фрезер
Язык:

moWatchDog

2012-02-28 13:27:20

Нет-нет, речь не пойдёт о том, чтобы засунуть палец в розетку и тем самым закончить бренное существование :). Речь пойдёт о банальном watchdog, он же "сторожевой таймер".

Статус: Проект в разработке. Модель готова.

Цель проекта: Как в большинстве моих недавних проектов, речь пойдёт об удалённом использовании компа или роутера. Увы, техника несовершенна и порой удалённый комп по той или иной причине зависает. Его приходится перегружать. И если это делать руками, то порой случается казус что зависло то, чем ты хочешь перегрузить этот комп (а оно перегружалось с этого компа) :). Да, бывает это редко, но именно это "редко" случилось нынче в моей удалённой обсерватории, блин... Так что я, пока ехал в метро, накидал проект usb-розетки-watchdog, которая поможет мне решить проблему зависшего железа.

Структура проекта глобально:

Как работает устройство? Комп (или роутер) включен в эту самую розетку. По включению устройства питание на розетку сразу подаётся. Комп так же подключен по USB к "розетке" и раз в минуту (или чаще, но не реже чем раз в... ну, допустим 5 минут (время задаётся) шлёт ей сигнал "я живой!!!". Если сигнал не получен те самые пять минут, устройство вырубает комп и через 15 секунд включает, тот снова заводится и, надеюсь загрузившись, продолжает радостно служить хозяину.

Изначально хотел обойтись без блока питания процессора, построив всё по схеме:

  • USB процессор (at90usb162) с питанием от USB;
  • твёрдотельное реле на ноге процессора, коммутирующее 220В;
  • силовое 220В реле, коммутирующее до пары ампер по 220В.

Да только понял, что во время отключения компа отключится и USB. Что приведёт к сбросу устройства в исходное состояние. Ха. Придумал. state можно хранить в еепром и по перезагрузке знать что происходило до неё, продолжать с того же места. Но .... как это повлияет на надёжность системы? Если питать внешним БП, такой проблемы нет и стабильность 100%. Требует изучения в следующей версии.

Поэтому сейчас пришёл к решению использовать дополнительный БП на 5В или 12В плюс L7805 для питания проца, смотря какое реле поставлю. То есть, схема стала такой:

  • БП процессора и ключа реле;
  • USB процессор (at90usb162);
  • оптопара... чьёрт. Нужен ещё один БП ключа на ключ реле :)))))
  • силовое 220В реле, коммутирующее до пары ампер по 220В.

 

После небольших двухэтапных раздумий, спасибо Кириллу (malice) за верную мысль, пришёл к следующей структуре:

  • USB-процессор (at90usb162);
  • твердотельное реле на ноге проца

---------

Схема:

[потом обязательно нарисую.]

Печатная плата:

[пока на макете всё. Но плату обязательно буду заказывать. Сейчас общаюсь с китайцами.]

[картинки компонент]

Программная часть:

Состоит из двух частей. Это часть на компе. Есть под винду, есть под линь.

Часть на мк (firmware) сделал через WinAvr с использованием примера RAW HID проекта Teensy USB Development Board.

[Протокол в разработке]

[Код выложу здесь: http://oleg.milantiev.com/projects/]

Включает в себя: [как сделаю..]

  • WinAvr: проект. Часть на МК;
  • c-sharp: проект в MS Visual Studio 2010 и gcc под линь;
  • Proteus: упрощённая схема и эмуляция в Proteus;
  • Sprint Layout: схема в формате Sprint Layout 5.0 и картинки цоколёвки компонент.

Готовое изделие:

[Пока нет]

 

 

 

-------

черновик

watchdog

схема:

- бп 5в проца

- проц с usb.

- твердотельное реле

- силовое реле 220в.

алгоритм:

- прикидывается hid.

- обменивается пакетами = сброс счетчика.

- если счетчик достиг значения (eeprom), переключение реле на 15 сек.

протокол:

- w:   watchdog: пинг пакет.

- r: reset: самоубийство :)

-s: set:  запись max wd в eeprom.

-0: off: выключение контроля (индикация красным)

-1: on: включение

 

сценарий:

- включил розетку. есть eeprom минут до сброса (2 времени загрузки на нтфс/zfs).

- комп грузится за ~1*время загрузки. начинает слать keepalive. рабочий режим.

- повис: через eeprom время розетка сбросит комп. надеюсь, загрузится. если нет, будет перегружен еще раз. сделать ли счетчик-ограничитель и сигнал на "умный дом"?

- перезагрузка по моей инициативе: укладывается в еепром время. keepalive возобновляются.

- выключение: сбросится через еепром время :) нужна команда выключения проверки времени.

 

 

 

 

Телефон: +7 (928) 425-32-10
e-mail: