Как то раз мне потребовалось устройство способное соединяться с удаленным сервером и пересылать байты. Конечно, для этих целей можно использовать компьютер, но это громоздко и неудобно, да и надежность такой системы оставляет желать лучшего — слишком сложное устройство. Другое дело микроконтроллер, например Microchip PIC, MSC-51 или Atmel AVR — простой, надежный, потребляет минимум энергии и способен надежно выполнить узкий круг поставленных задач. Например, мониторинг сигнализации через Internet или Ethernet сеть. Всё бы хорошо, но тут появляется очередная проблема — протокол TCP/IP. Реализовать на AVR или PIC стек протоколов TCP/IP задача выполнимая, но требует времени, а время, как известно, деньги. Надо было срочно и с минимальным геморроем. И вот тут мне на помощь пришел интерфейсный модуль Ethernet — RS232. Задача стандартная, поэтому предложений на рынке готовых модулей предостаточно, однако не стоит торопиться. Тут есть ряд тонкостей, связанных с особенностями работы данных устройств. Например, подавляющее большинство модулей может работать исключительно в роли сервера, которому требуется выделенный IP адрес. Устройство-клиент работает только с специализированным софтом, как правило под Windows, и открывает виртуальный COM порт который соединяется с удаленной системой (UART — Ethernet модуль) и обеспечивает обмен данными. Не самый удобный вариант. Для моей задачи данная конструкция была совершенно непригодна. Поэтому я начал искать дальше, вскоре был обнаружен замечательный модуль EG-SR-7100, а потом и его более новая модификация WIZ100SR. Почитал характеристики — оно! Все для решения моей задачи!
Протколы:
TCP, UDP, IP, ARP, ICMP, MAC, DHCP, PPPoE
Интерфейсы:
10/100 Base-T Ethernet (Auto detection),
RS232 (3.3V, 230Kbps 8-N-1, 8-O-1, 8-E-1, 7-O-1, 7-E-1)
Размеры:
50mm x 30mm x 12mm
В общем, замечательная штука!
Заказал, оплатил (стоит эта радость порядка 28 баксов), дождался, получил. Чтобы сэкономить лишних 140 долларов, я решил не покупать демоплату, а спаять ее самому, благо схема была и ничего изобретать там не пришлось. Для сборки отладочной платы потребуется микросхема MAX3232, стабилизатор напряжения LM11173.3, логика 74HC14 ну и немного рассыпухи. В итоге получается полный аналог WIZ100SR-EVB стоящий на пару порядков дешевле оригинала.
Проблемы:
Нулевой проблемой стала колодка для подключения. PLS гнезда с шагом 2мм не было в радиусе пятиста километров, поэтому я тупо просверлил дырки в плате и впаял напрямую
Первая проблема с которой я столкнулся — отсутствие RJ45 разъема с встроенным согласующим трансформатором. Решилась она просто Трансформатор FC-22 GTS был выпаян из старой сетевой карты, заодно я позаимствовал оттуда же и RJ45 гнездо. Дальше есть одна маленькая тонкость, касаемая подключения этого трансформатора без которой ничего работать не будет. В классической схеме подключения FC-22 (да и других Ethernet трансформаторов) средняя точка на стороне PHY подключена на землю напрямую, либо через конденсатор. В модуле WIZ100SR все оказалось совершенно не так. В отличии от EG-SR-7100 тут имеется вывод PwFbOut (Power Feedback Out колодка JP2 контакт 1) на котором находится 3.3 вольта со внутреннего стабилизатора модуля. Этот вывод надо завести на центральный выводы трансформатора FC-22 со стороны PHY как показано на схеме. И их же через конденсатор в 0.2 uF завести на землю, как я показал ниже на схеме.
Второй проблемой стало отсутствие у меня джампера для перевода модуля в режим отладки (уже исправлено в последней ревизии платы) по RS232. В этом режиме невозможен обмен по Ethernet, зато можно изменить настройки модуля через UART. Все что надо для перехода в режим отладки- посадить вывод Status (колодка JP1 контакт 12) на GND. После чего модуль начинает принимать управляющие команды по RS232.
Третьей проблемой стала невозможность работы программы для настройки под Windows 2000 SP4. Может это глюк конкретного экземпляра винды, может глюк программы, не знаю. Под Windows XP работает без проблем.
Четвертая проблема — консоль, а точнее ввод команд. Изначально консоль настроена на скорость 57600 и автодетекта там нет. Так что я поначалу затупил и подумал, что у меня дохлый порт в модуле. Команды нужно вводить не совершая лишних нажатий, т.е. чётко, как в инструкции (сразу вспомнилось как чатился в Hyper Terminal). Благо команд всего три :).
Когда проблемы были решены я подключился через Telnet (просто указав в настройках модуля адрес и порт) к серверу
Файлы к модулю WIZ100SR:
Всетаки наличие форума сказывается- пошли перепечаткики с другого сайта уважаемого автора, а хотелось бы увидеть продолжение обещанных тем, и поболее для новичков… Или со всеми вопросами в форум?
Форум тут не причем :) У меня сейчас идет ударная работа над одним заказом и поэтому времени на строгание очередного креатива совсем нет. А на форуме я раз в день отвечаю на некоторые темы и особо времени не трачу.
Я сейчас пробую использовать EM100: http://www.tibbo.com/em100.php Понравилось: низкое энергопотребление, встроенный трансформатор, возможность конфигурации и обновления прошивки через Ethernet, довольно вменяемый софт. Стоит, естественно, дороже.
Вот он и ответ, на вопрос — откуда это такой красивый логотип у сайта :)
Ога. :) Наблюдательный :)
Привет, DI HALT! Спасибо за сайт и блог. Ты упоминал устройства, работающие с программным клиентом, создающим виртуальный последовательный порт в виндовс. Не подскажешь такую штуку для 485-го интерфейса?
Конкретно для 485го не знаю. Но можно сделать из этого. Есть микросхемы конвертеры 232-485 стоят копейки, ставим ее сюда вместо мах232 и будет тебе счастье. Протокол то там один. Просто 485 полудуплекс на дифпаре.
Да, я смотрел MAX3162. Хотелось бы, конечно, готовое устройство. Для моей задачи необходимо и достаточно виртуального порта в виндовс, так что мне такая опция, как общение с устройством по telnet, не важна :) У кого бы мне такую штуку поискать?
MOXA такие штуки выпускает. Всякие разные. У них наверное и для 485 есть.
Ага, спасибо. Я про них слышал, но не вчитывался в характеристики, а там черным по белому написано: Виртуальный COM-порт. Да, и стОят они ничего так. Надо будет поэкспериментировать.
Довелось работать с разными типами MOXA-вских девайсов в промышленных условиях. Если бы не вопрос цены — отличные штуки.
Привет, DI HALT!
Работал я раньше с предшественником этого модуля IIM7100A и впечатление осталось плохое. Мне так и не получилось задействовать аппаратное управление потоком на UART, хоть и ставишь в настройках обоих модулей апп/упр но на дальнем от компа модуле (т.е. там где RTS, DTR и прочее должны совпадать с состоянием на UART на компе) они не статически не менялись, ни динамически (в момент передачи данных):(.
и продолжалось это безобразие на нескольких прошивках подряд и найти рабочую так и не удалось.
Затем мне стало интересна возможность коннекта к модулям (настроенным как list) с третьей стороны т.е. персоналкой c целью проверки их работоспособности и я нашел прогу для создания вирт порта на ПК и коннекта через LAN карту, это тоже удалось но апп/упр так и не появилось.
Форум техподдержки Wiznet ничего не ответил.
Есть вариант XPort Lantronix они его позиционировали как самый маленький (он встроен в RJ-45розетку) его я не пробовал.
вот пример бескорпусной платы от Moxa, стоит 30-60$ не помню точнее уже,
http://www.moxa.ru/good/show/14885/17070/
почему-то нету трансформатора на плате тоже
а вот нашел с ценой
http://www.nnz-ipc.ru/good/show/14885/11936/
58 у.е., дорого, зато промышленная Moxa, наверняка половина переплаты только за известную марку :)
не подумайте что спамир :) вот статья что дополняет DI Halt по мезонинным модулям. Я например искал трансформатор, оказалось он встроен в RJ45 в тех модулях
статья
http://www.efo.ru/doc/Wiznet/Wiznet.pl?2705
модуль с эзернетом на борту, есть такой же и с RS232 9 пин разъемом, готовая конструкция
http://www.ewiznet.com/goods_detail.php?goodsIdx=115
Тыж смотри, как оно все подешевело. Еще год назад дороже было. А транс да, сейчас его ныкают в рж45 разьем. Но вот купить их порой проблемно.
вот такой есть еще девайс ПРЕОБРАЗОВАТЕЛЬ ИНТЕРФЕЙСОВ RS-485/RS-232 В ETHERNET
«С2000-Ethernet» от конторы «Bolid» (используем в частности в системах охранно-пожарной сигнализации)
А цена?
Не дешевле MOXA: http://www.telecamera.ru/catalog/index.php?SECTION_ID=244&ELEMENT_ID=1693
насчет MOXA особо ниче сказать не могу. используем
MOXA NPort 6650-16 для охранной сигнализации, управления купольными камерами.
вобщем есть некоторые нарекания к работе этого устройства
в среднем он стоит 1800 р.
А можно вместо MAX ставить FT232 для виртуального порта?
Конечно.
Это же рульно! Тогда встречный вопрос, а заменяется они без дополнительных изменений на схеме? Если все жне что-то менять придется, то полезу искать инфу.
Ну один к одному ясное дело не заменишь, т.к. включение у них разное. Но вот просто так ее вкорячить запросто — там ведь с модуля идет рх тх и вот их заводишь на ФТ232 как обычно и готово.
Я правильно понимаю что чтобы подключиться к серверу towel.blinkenlights.nl через Telnet нужно в Telnet просто набрать towel.blinkenlights.nl и сервер должен выдать эту страницу в окно Telnet, т.е. для этого больше ничего набирать не надо?
Да
Приобрел 2 платы: 1) wiz220io — имеет встроенный http сервер, 2) wiz110sr .
Через браузеры эсплорер и фаерфокс подключаюсь к wiz220io — все нормально.
заголовки из фаерфокса:
—————————————-
GET / HTTP/1.1
Host: 192.168.0.88
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 333
——————————————————————-
Пытаюсь подключиться через Terminal V1. 9B:
GET / HTTP/1.1 Host: 192.168.0.88
получаю:
Invalid request.
HTTP/1.1 400 OK
Content-Type: text/html
Content-Length: 50
или так пытаюсь подключиться через Terminal V1. 9B:
GET / HTTP/1.1#013#010Host: 192.168.0.88
получаю тоже:
Invalid request.
HTTP/1.1 400 OK
Content-Type: text/html
Content-Length: 50
Пробовал и через telnet — тоже 400 ошибка.
при подключении к внешним сайтам тоже — 400 Bad Request (Плохой запрос).
Помогите, добрые люди, плиз понять что делаю не правильно, я в этом не очень силен.
Ну, похоже, что ваш «терминал» как-то криво обрабатывает Enter.
Потому что в «терминале» у вас видно:
GET / HTTP/1.1 Host: 192.168.0.88
или
GET / HTTP/1.1#013#010Host: 192.168.0.88
вместо правильного
GET / HTTP/1.1
Host: 192.168.0.88
Забыл написать что когда пытаюсь подключиться через Terminal V1. 9B или telnet это происходит через плату «wiz110sr» которая подлючена к com порту и эзернету.
Все разобрался. Оказалось после «GET / HTTP/1.1 Host: 192.168.0.88» надо еще 2 раза перевод строки передавать. :)
В метке тэга опечатка — Ehternet.
Я знаю, но там уже есть проданные ссылки, потому не хочу исправлять.