RS232-Ethernet Adapter

bing
Offline
Зарегистрирован: 04.09.2012

Увидел в инете такую штуку (RS232-Ethernet Adapter)
http://www.buyincoins.com/new_en/details/rs232-to-tcp-ip-ethernet-modem-...

Заинтересовался в возможности ее реализации с помощью Arduino.

Кто-нибудь таким уже занимался?, или может посоветуете, с чего начать?

Также интересует возможность подключения LPT-принтера к сети.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Я бы не стал заморачиваться. Тем более с LPT, есть стандартные принт-серверы. А у дуины памяти на данные принтера не хватит. Задача нетривиальная, требует изучения ethernet-протокола и написания соответствующего драйвера для компа... 

leshak
Offline
Зарегистрирован: 29.09.2011

AlexFisher пишет:

 Задача нетривиальная, требует изучения ethernet-протокола и написания соответствующего драйвера для компа... 

Ну ethernet-протокол не обязательно. Уже куча готовых либ есть.

А вот "соотвесвующего драйвера для компа" - это да.

Саму железку склепать - дело не хитрое. Только она мертва без подержки со стороны компа. Должен же там кто-то принимать данные из этого ethernet и представлять системе как виртуальный com-порт?

Или самому все это ваять, или искать какие-то Serial-over-TCP решения и использовать их "клиентскую часть". А потом, одного из клиентов реализовывать на ардуине. Гуглил в, свое время, но все решение которые находил - закрытые. И по какиму протоколу идет общение через сеть - неведомо.

Можно, конечно, попытатся занятся реверс-инженирингом, сниферов всяких наставить и пытатся понять как-там они общаются, но.... это сильно захотеть нужно :)

leshak
Offline
Зарегистрирован: 29.09.2011

 Вообщем ценность той железки на 90% состоит из "COM port management, configuration and test software included."

bing
Offline
Зарегистрирован: 04.09.2012

У COMа задействованы только RxD и TxD.
Драйвер можно сделать, виртуальный СОМ - найти.

А вот с железом что посоветуете?

leshak
Offline
Зарегистрирован: 29.09.2011

bing пишет:

Драйвер можно сделать, виртуальный СОМ - найти.

Ну не все-так просто. Хотя, конечно, можно сделать что угодно. Но написание драйверов - совсем не тривиальная задача и таки требует некислых скилзов. Причем узкоспецефических.

Хотя.. если это делаяется "для себя", то можно "вывернутся".

Поставить, действительно, готовый виртуальный null-модемный кабель. Такой софт найти free не трудно. Типа создали два виртуальныйх порта COM3 и COM5 который "соеденены между собой".

Потом пишем свою софтину, которая принимает данные из сети и пишет их в COM3. А какой-то клиенское пришложени (для которого все и затевалось) открывает COM5. И думает что это настоящий порт, а не "удаленный".

Получается цеочка

COM(железный)<->arduino<->EtherShield<->софтина-траслятор<->COM3(Virtual)<->Virtual Null Modem Cable<->COM5(Virtual)->Клиентское приложение

Если потом хватит упорства/знаний можно будет часть от "софтина-траслятор" до "COM5" написать в виде собственного драйвера.

bing пишет:

А вот с железом что посоветуете?

Дык а что тут с железом? Покупаем разъем RS232-порта, цепляем его на UART ардуины (через согласование уровней, естественно), дальше Ethnernet шилд.

На Wiznet5100 (официальный Ethernet шилд) или на enc28j60. Первый проще в использовании, экономней к ресурсам но чуток дороже.

Второй погиморойней, но дешевле. По идее с такой "тупой задачей" и второй справится на ура.

Ну можно еще, вместо Ethernet-шилда на Wifi-шилд посмотреть.

leshak
Offline
Зарегистрирован: 29.09.2011

 Хм... кстати вот тут очень инетересно почитать можно (че-то не нашел в прошлый раз этой страницы)

http://en.wikipedia.org/wiki/COM_port_redirector

Оказывается есть таки стандарт пересылки COM-порта по сети "RFC 2217". Так что наверняка софт можно найти. Остально только арудиной слать данынные в соотвествии с этим форматом.

Там же, кстати, и ссылочки на OpenSource редиректоры есть.  Так что можно посомотреть как они с сестью общаются. Что посылают, что ждут. Ну и "прикинутся правильным удаленным портом" :)

 

bing
Offline
Зарегистрирован: 04.09.2012

 спасибо leshak

А если взять два LVDS-приёмника и два LVDS-передатчика и на них сделать удлинитель, использующий две пары из UTP-кабеля в качестве LVDS-линий. И усё.

Ну а остальное - дело софта на компе. Даже ардуины не нужно.

leshak
Offline
Зарегистрирован: 29.09.2011

 

bing пишет:

спасибо leshak

А если взять два LVDS-приёмника и два LVDS-передатчика и на них сделать удлинитель, использующий две пары из UTP-кабеля в качестве LVDS-линий. И усё.

Если честно, то про LVDS первый раз слышу, но выглядит интерестно.

Но такое решение, естественно, будет менее универсальным. Нужно доп. кабель тянуть (Ethernet уже есть почти везде :)

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

bing пишет:

Ну а остальное - дело софта на компе. Даже ардуины не нужно.

Хе... так ведь "софт на компе" это почти всегда и есть самое трудоемкое. Поэтому и желательно постаратся "вписатся" в какие-то стандарты что-бы использовать уже имеющийся, а не свой делать. Плюс "стандарты" дают шансы на крос-платофрменность.
Но... в описаной вами схеме не очень-то видно где тут "софт на компе" нужен. На стороне LVDS приемника добавлете преобразователь в RS232 (или UART-USB конвертер) и все. Получился обыкновенный RS232-удлинитель. И комп вообще-то даже не в крусе что кто там к нему подключен.

И получилась обычная схема "удлинителя". А уж на чем он сделан XBee, блюпуп, обычный радио, LVDS - второстепенно (кстати глянте, может вам тогда что-то из "бепроводной" когорты подойдет?)

P.S. Только вспомните, еще, что у LPT вам прийдется "кучу линий" кидать. Это же "паралельный интерфейс". Если "в лоб" делать (или скорости LVDS не будет хватать).