Пинговалка "Бейрут-телеком"

Материал по "пинговалке" предоставлен Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. (если нужно писать, то лучше это сделать транслитом). В текст внесены лишь "косметические" изменения.

Если говорить кратко, то "пинговалка" представляет собой сетевую карту ISA, и подключенный к ней однокристальный микроконтроллер фирмы MicroChip. В данном экземпляре устройства используется микроконтроллер 16F877.

Исходные детали показаны ниже - вроде ничего страшного в них нет.

Исходные детали для пинговалки

Микроконтроллер осуществляет эмуляцию управляющих сигналов шины ISA, умеет работать с регистрами сетевой карты и, что самое главное, содержит реализацию подмножества протоколов TCP/IP.

Проект базируется на двух разработках зарубежных товарищей (первая и вторая).

Соответственно, в них используется карта NE2000 и 3com 3C509B. Проекты не совместимы т.к. используют различные порты микроконтроллера для управления сетевой картой. Для определенности рассмотрим изготовление "пинговалки" на базе второй разработки (там фото симпатичнее).

Для разработки нужно:

  1. Работающая ISA карта 3C509. На ней необходимо предварительно отключить режим P&P и установить базовый адрес 0x300. Делается это с помощью утилиты 3c5x9cfg.zip.
  2. Микроконтроллер. MicroChip PIC16F877 в DIP40 корпусе. В Москве можно купить в фирме Микрочип. В общем, это совсем не дефицит.
  3. Два конденсатора 30 пф, один 10 мкф. Один резистор 10кОм.
  4. Желательно (но не обязательно) дополнительно иметь еще 7 светодиодов, 7 резисторов, стабилизатор напряжения КРЕН5 на 5 вольт (выпаивается почти из любого дохлого хаба), два конденсатора на 10 мкф и два по 0.1 мкф.
  5. Разъем ISA платы (обычно отпиливаются ножовкой по-одному от 286 материнской платы), панелька DIP40 и макетная плата.
  6. Блок питания от сгоревшего хаба. Из хаба же можно выковырять разъем питания и светодиоды :-)

Принципиальная схема на следующем рисунке:

Схема пинговалки

Схема пинговалки

Следует отметить, что нумерация выводов на ISA плате следующая:
Если смотреть на сетевую плату со стороны микросхем и разъемов RJ45 вправо, то правый вывод с Вашей стороны - A1, левый A31. C противоположной стороны B1 - B31 соответственно.

Далее нужна прошивка для однокристалки. Пример можно взять тут. Только не забудьте перед сборкой поправить IP адрес в строчках 203 - 208, т.е. прописать правильный IP адрес, который будет у Вашей "пинговалки".

Собрать ассемблерный исходник можно транслятором, взятым тут. Строка должна представлять собой что-то типа gpasm source.asm -I ..\header, где source.asm - то, что вы компилируете. ..\header - путь к заголовочным файлам, которые идут в комплекте.

В результате образуется файл source.hex, который можно скармливать программатору. Если нет доступа к программатору, или нет желания с этим возится - Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript., договоримся.

Вот такой результат должен получиться после сборки схемы:

Вид "сверху"

С обратной стороны:

Вид "снизу"

Настоятельно рекомендуется включать схему через диод и стабилизатор на КРЕН5. Это позволит питать схему от любого блока питания, или от батарейки Крона. Кроме того, диод избавит от тяжких последствий включения питания в неверной полярности. Схема стабилизатора приводится на следующем рисунке:

Схема стабилизатора

Проверить результат можно командой ping (не забудьте включить сетевой кабель и питание :-).
Итак, ping 192.168.xx.xx...

Не пингуется? Все правильно. Максимальный воспринимаемый размер пакета - 22 байта. Правильная команда - ping 192.168.xx.xx -l 20

В качестве итога, опишем что умеет собранная схема:

  1. Управлять 7 выходами на порте C однокристалки с помощью UDP (об этом ниже).
  2. Пинговаться.
  3. Отвечать на ARP запросы.
  4. Выдавать состояние с 8 аналоговых входов порта A на запрашивающий хост по протоколу UDP (можно повесить датчик и получать SMS сообщение, что воруют хаб :-)

Важно понимать, что окончательной принципиальной схемы подобной "пинговалки" просто не существует т.к. она сильно зависит от выполняемых задач, условий эксплуатации и т.д.

Минимальная схема состоит из сетевой карты, однокристалки, трех конденсаторов, одного резистора и кварца на 4 mz. Максимальная - тут все зависит от фантазии.

Несколько слов о том, как это используется у нас. Стандартную прошивку не используем. "Своя" позволяет динамически менять IP адрес "пинговалки" по комманде от сервера (не перешивать же из-за такой ерунды чип :-).

Выход управляемый оставлен только один. На остальные 6 выходов подключены светодиоды, которые загораются, если "пинговалку" пингуют с определенных хостов (программируются с сервера динамически). Таким образом, наличие только трех подобных устройств в цепочке из 11 неуправляемых свичей и хабов позволяет с весьма большой точностью определять место поломки.

Кроме того, устройство может использоваться монтажниками вместо ноутбука (в ограниченной области :-) Т.е. может мигать лампочками, когда его пингуют определенные хосты. При подключении клиента или поиске неисправностей в сети больше и не нужно.

Потом, если интересно, могу рассказать, как к однокристалке подключается COM порт, поднимается PPP и получаем... Ну можно догадаться :-)

Обсудить эту статью на форуме (0 ответов).
Вся информация, предоставленная на данном ресурсе разрешена к ознакомлению детям школьного возраста. Все практическое использование может быть связана с повышенной электрической опасностью и разрешено детям только под присмотром взрослых.