Эта статья прислана на конкурс.
TheAbcs (автор играет на конкурсе под псевдонимом)
Эта короткая статья призвана развеять миф (если он у кого-то из читающих существует) о сложности аппаратных и программных средств удаленного управления и контроля. После ее, статьи, прочтения сразу должно стать ясно, что любой человек, даже практически начисто лишенный знаний, но наделенный любопытством и сообразительностью, способен легко приспособить к своим нуждам то, что придумали до него.
Сначала немного о предыстории. Одно время у меня появилось желание сделать локальную "страничку Интернета". Собственно, предполагалось раздавать в пределах города некоторую обновляющуюся информацию людям, не обремененным излишними знаниями в области BBS, телнета, терминала и прочих подобных вещей. Просто хотелось, чтобы при "звонке" на некий номер "эксплорером" происходило подключение "как бы к Интернету". Телефонная линия, модем для этого у меня были, а вот из свободного "железа" - только 386SX16 материнская плата, ну и прочее для сборки компа, включая винчестер мегабайт на 80.
Позже после ряда экспериментов от создания такого рода системы я отказался, разумно оценив свои силы, затраты на эксплуатацию и потенциальную востребованность этой штучки, но накопившаяся в процессе поисков информация о реализации сетевых сервисов под DOS вызвала у меня интерес.
В предыдущем "произведении" (смотрите статью "История изысканий - загрузка по сети и…") я уже отмечал, что мне свойственна патологическая лень, так что все, сколько-нибудь сложное для быстрого понимания, я не очень жаловал вниманием, лишь бегло просматривая. Но eRTOS, где в исходниках и свободно для некоммерческого использования были представлены весьма интересные вещи, меня, что называется, "зацепила". Проведенная проверка предлагаемого в примерах web-сервера показала его полную работоспособность и на 386, и на 286 материнке, и возникло острое желание поправить сервер "под себя". Сравнительно быстро в закромах отыскался BC4.5 (самый близкий по версии к рекомендованному софту), слегка больше времени ушло на его установку и осознание, каким образом все должно работать. Как в итоге оказалось, BC4.5 вполне подходит для компиляции проекта, хотя и не указан в списке рекомендованного софта. Мои знания Си более чем поверхностны (правильнее сказать - отсутствуют), но это не помешало мне по аналогии и из общих соображений внести (не с первой попытки :) ) необходимые дополнения в текст программы WEB-сервера, скомпилировать ее и убедиться, что работоспособность собственно сервера не пострадала. А для полноценной проверки добавленной функциональности пришлось, помимо действий по аналогии, много думать, приставать без какого-либо успеха к знакомым и малознакомым людям, в конце концов довольно подробно ознакомиться с RFC1866 и спаять небольшую схемку - подключить пару светодиодов: красный к первой (ножка 2 разъема) и зеленый ко второй (ножка 3 разъема) линиям данных порта LPT, другие ножки светодиодов (последовательно с резисторами, естественно) - на землю (ножки 18…25 разъема) и тумблер между АСК (ножка 10 разъема) и землей. Светодиоды надо ставить в такой полярности, чтобы при 1 на соответствующей линии порта они светились.
Фото 01. Это полный набор "железа" для сборки "контроллера".
Достигнутый после включения и загрузки компьютера результат оправдал и до некоторой степени превзошел ожидания: светодиодики, имитирующие сложное оборудование, бодро зажигались и гасли под управлением с открытой в обычном эксплорере на удаленном компьютере WEB-странички. На этой же страничке отображались изменения в положении тумблера. Отмечу, что к тому времени с 386 платой пришлось расстаться - не без сожаления, конечно, - но она пожертвовала собой на благое дело: в составе другого хлам… эээ… антиквариата она ушла в обмен на P1-120, весьма нужный мне в тот момент для чтения старых видеокассет АРВИДом… Кстати, заставить АРВИД1020 работать на этом VX P1-120 тоже оказалось не так просто, но это совсем другая и очень короткая история. С 386SX в комплекте ушел и винт…
Эксперименты продолжались с 286-ми платами: с двумя 1МБ SIMM30 дополнительной памяти - поскольку использовалась удаленная загрузка системы по сети; в родной конфигурации - с 1 МБ памяти,- при локальной загрузке с дискеты до тех пор, пока меня не покинула последняя мультикарта; и иногда с 486 платой, имеющей интегрированный LPT-порт, выбранный в качестве управляющего, служащей мне на работе "центром" управления стендом и не склонной к миграции.
Фото 02. На этом фото "контроллер" на 286 в собранном виде.
Фото 03. Софт "контроллера" загружен и ждет. При нормальной работе системы в созерцании этой картинки нет никакой необходимости - видимо, именно поэтому более качественное фото никак не получилось.
Фото 04. Просто так и кому угодно поуправлять не получится - введите логин/пароль. Серьезное отношение к безопасности - залог успеха :)
Фото 05. Ну вот мы и в "Хопр…" - на нужной страничке.
Именно для ее написания мне пришлось продираться сквозь дебри упомянутого выше RFC. Картинка слева "прилеплена" в корелфотопойнте - это фото собранной схемки в LPT порт.
Далее несколько фотографий устройства в процессе управления.
Фото 06. Сейчас будет нажато выполнить и…
Фото 07 …изменилось как состояние светодиодов, так и содержимое странички.
Фото 08. А здесь - переключен тумблер и погашен зеленый светодиод.
Фото 09.
Здесь вносились основные изменения в исходники WEB-сервера. Полностью их можно найти в приложении к статье. Сама библиотека легко находится в Интернете, мне даже стыдно приводить ссылки. Также в приложении содержится подробная инструкция, как повторить подобный эксперимент. Я думаю, он может стать хорошим практическим подспорьем, например, в курсовой работе на близкую тему :)
Имевшийся в составе системы во время фотографирования контроллер LPT взят в аренду. Очень любопытная штучка, говорят, весьма заслуженная. Мне таких маленьких - как по размерам, так и по функциональности, - раньше видеть не доводилось. Дарить не хотят :)
Фото 10. Контроллер параллельного порта.
Можно справедливо заметить, что в представленной на фото системе две лишние железки - видеокарта и "клавиатура". Это действительно так - поменяв настройки "в БИОСе", эти железки вполне можно удалить. Это позволит дополнительно снизить энергопотребление, которым я не интересовался - макет, все-таки. Но при внимательном рассмотрении фотографий можно увидеть, что батарейка памяти настроек БИОСа заменена на ионистор, который разряжается при выключении питания быстрее, чем хотелось бы, и проще поставить недостающие железки, чем регулярно править настройки БИОСа. Кстати, в рассмотренной системе есть еще, как минимум, два существенных недостатка - один аппаратный, второй программный. Пусть они останутся загадкой для читателей с пытливым умом.
Еще несколько слов о "самодельных" железках. "Клавиатура" сделана из стандартного контроллера от почившей в бозе пленочной и подвернувшихся под руку кнопок. Представляет собой в основном блок дополнительной цифровой клавиатуры.
Фото 11. "Клавиатура" крупным планом.
Блок питания - на базе слегка подсдохшего DC/DC конвертера, который из 24В делает +5В и +-12В, выдранного из отработавшего свое промконтроллера. Реально можно ограничиться +5В - если не нужны COM-порты на мультикарте.
Фото 12. Блок питания во всей красе.
При желании функциональность устройства можно еще увеличить, сделав автоматическое управление в основном локальным - исходники то в полном распоряжении. Поскольку софт позволяет отправлять электронные письма на заданный адрес - совсем необязательно постоянно пялится в страничку на удаленном компе, что бы узнать, что же там происходит. Можно обращаться к просмотру текущего состояния системы только по возникновению какого-либо заранее заданного события и получению письма об этом. А обновлять софт, используя FTP доступ. В общем, сделать из системы настоящую "конфетку". Напомню - все это работает под ДОСом на 286 машинке. Но управлять атомной станцией с помощью такой железки я бы не решился :). А вот включить-выключить освещение, вентилятор (скоро лето) одним щелчком "мышки" с ноутбука, подключенного к офисной сетке по WiFi… Заменить светодиод на обмотку реле совсем несложно.
Фото 13. WEB-сервер еще много чего умеет.
Иногда у меня появляется желание отпилить "лишние" четыре слота ISA, чтобы уменьшить размеры системы, но посмотрю на плату - жа-а-алко ее. Тем более, в свободное от WEB-серверных функций время компьютер, абсолютно бесшумный :), позволяет загрузить по сети правильный образ и поиграть, например, в SUPAPLEX, к которому в инете нашлось огромное количество дополнительных уровней в комплекте с их редактором.
А совсем недавно в одном из журналов (Elektor 2007 №12 p.24-28) я увидел описание устройства подобной функциональности на микропроцессоре AVR32. Устройство имеет крайне незначительные размеры. Особенно мне в нем нравятся свободно распространяемый софт и способность работать с любимой карточкой 3COM509 :)
Приложение
Архив priloj.rar [532 KB]
Сначала совсем просто - из архива берем только файл bpboot.x , пишем его посекторно (в природе есть много специальных программ для этого) на 3,5 дюймовую дискету, грузимся с этой дискеты на любом компьютере с 3С509 картой в "стандартной конфигурации" - получаем WEB-сервер с адресом 192.168.0.2. Включаем его в локальную сеть (убедившись, что в этой сети уже нет компа с таким IP) и заходим на этот адрес Интернет-эксплорером. Желательно, чтобы адрес вашего компа принадлежал той же сети. Остальное увидите. Если повезет :) Да, пользователь - abc , пароль - 12345 .
Для желающих "малой кровью" не только повторить сделанное, но и получить направление движения вперед: bpboot.x - это посекторный образ загрузочной 3,5 дюймовой дискеты
Дискета предназначена для загрузки компьютера от 286 1МБ с сетевой картой 3С509 - "слабее" у меня нет. Сетевую карточку можно использовать и другую, но придется поменять под нее пакетный драйвер.
WEBPART.C и WEBSERV.C - исходники сервера с моими добавлениями - они там помечены в комментариях. Для продолжения работы необходимо заменить ими аналогичные файлы, входящие в состав библиотеки eRTOS. Библиотека легко находится в инете.
В папке WEB на дискете расположен файл CONTROL.SHT - это большая часть странички, с которой осуществляется управление. Правился еще ряд файлов в этой папке. Там все не сложно…
Да, там еще лежит копия странички Олександра Редчука (устаревшая, конечно), но все авторские координаты я на ней сохранил.
RFC1866 - весьма любопытное чтиво. Возможно, сейчас заменен на что-нибудь более "свежее", хотя вряд ли. В любом случае это не умаляет его ценности.
Рисованную схему в LPT-порт не привожу - она хорошо описана на словах :)
Обсудить статью в специально созданной ветке форума. Эта статья прислана на конкурс.
© Текст, фотографии - TheAbcs (автор играет на конкурсе под псевдонимом)
© Железные призраки прошлого - 2008 г.
Опубликовано 3 апреля 2008 г.
Дополнения или поправки на phantom@sannata.ru
|