TCP/IP via SERIAL RS232

866 views
Skip to first unread message

Gorio

unread,
Jan 15, 2013, 1:45:16 PM1/15/13
to sis_emb...@googlegroups.com
Boa tarde amigos,

Estou com uma missão um tanto quanto interessante, porém como este feito é inédito em minha carreira gostaria da colaboração de todos do grupo.

Preciso fazer uma comunicação TCP/IP entre dois equipamentos conectados via RS232 (Serial). O objetivo de se usar a porta Serial é a falta de Ethernet disponível no momento.

Obrigado

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)
 

André Rairan

unread,
Jan 15, 2013, 1:54:46 PM1/15/13
to sis_emb...@googlegroups.com, Miguel Wisintainer

Miguel Wisintainer <tcpi...@hotmail.com>


Uso aquí e mais fácil que isso impossível rs

Carlos Delfino

unread,
Jan 15, 2013, 2:27:16 PM1/15/13
to sis_emb...@googlegroups.com
http://www.mycal.net/projects/unetserial/

veja este ai se te atende.
--
Carlos Delfino
Consultor
Tel: (31) 8406-9811 (claro) (31) 9838-7171 (vivo)
Para conhecer meu site visite: http://www.carlosdelfino.eti.br
Quer apoiar meus projetos curta minha fan page: http://fb.me/cdcp.ong

Sergio Prado

unread,
Jan 15, 2013, 2:35:19 PM1/15/13
to sis_emb...@googlegroups.com
Gorio,

Você precisa converter o meio fisico de serial para Ethernet ou fazer duas aplicações TCP/IP conversarem pela serial?

Se for converter o meio fisico, a sugestão dada pelo pessoal deve te atender.

Se for a segunda opção, dá uma olhada na ferramenta socat [1]. Ela permite, dentre outras coisas, redirecionar uma conexão TCP para uma porta serial.


Um abraço,

Sergio Prado
www.sergioprado.org
Twitter @sergioprado

Gorio

unread,
Jan 16, 2013, 5:23:45 AM1/16/13
to sis_emb...@googlegroups.com
Preciso da segunda opção - SERIAL < - > SERIAL

Obrigado pelas dicas !!

Assim que tiver um parecer volto a me comunicar..

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)
 



Sergio Prado

unread,
Jan 16, 2013, 8:29:00 AM1/16/13
to sis_emb...@googlegroups.com
Então o socat resolve seu problema. Dá uma olhada na ferramenta e qualquer dúvida é só falar.

Um abraço,

Sergio Prado
www.sergioprado.org
Twitter @sergioprado


Gorio

unread,
Jan 22, 2013, 7:15:43 AM1/22/13
to sis_emb...@googlegroups.com
Então Sergio, 

Acabei encontrando um adaptador USB-ETHERNET aqui na empresa e me parece que foi reconhecido pelo SO, porém não estou conseguindo ativá-lo. Veja abaixo.

(dmesg)

usb 1-1.2: new high speed USB device using ehci-omap and address 3
usb 1-1.2: New USB device found, idVendor=0b95, idProduct=772a
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.2: Product: AX88x72A
usb 1-1.2: Manufacturer: ASIX Elec. Corp.
usb 1-1.2: SerialNumber: 000002

No /sys/class/net foi identificado o usb0

Configurei o IP na mão (ifconfig usb0 IP up) e tive o resultado abaixo.

eth0      Link encap:Ethernet  HWaddr F8:DC:7A:00:A7:D8
          inet addr:155.1.1.66  Bcast:155.1.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7073 errors:0 dropped:0 overruns:0 frame:0
          TX packets:458 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:579683 (566.0 KiB)  TX bytes:74903 (73.1 KiB)
          Interrupt:67

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:86 (86.0 b)  TX bytes:86 (86.0 b)

usb0      Link encap:Ethernet  HWaddr 4E:74:22:13:30:B2
          inet addr:155.1.1.67  Bcast:155.1.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Nota-se que o IP está diferente da eth0, porém ocorre de que quando o cabo da eth0 é tirado, a rede usb0 para de funcionar. Preciso efetuar alguma configuração para que essas redes sejam independentes ?

Lembrando que no /etc/network/interfaces tenho a seguinte configuração

# Wired or wireless interfaces
auto eth0
iface eth0 inet static 
address 155.1.1.66
network 155.1.1.2
netmask 255.255.255.0
broadcast 155.1.1.255
gateway 155.1.1.2
 
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
auto usb0
iface usb0 inet static 
address 155.1.1.67
network 155.1.1.2
netmask 255.255.255.0
broadcast 155.1.1.255
gateway 155.1.1.2

Obrigado

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)
 



Flavio Castro Alves Filho

unread,
Jan 22, 2013, 3:22:58 PM1/22/13
to sis_emb...@googlegroups.com
Eu acho que é mais simples.

O que você precisa é de PPP over Serial.

O Linux suporta, e funciona muito bem.

Boa sorte,

Flavio

Sergio Prado

unread,
Jan 23, 2013, 5:31:20 AM1/23/13
to sis_emb...@googlegroups.com
Olá Gorio,

Acho que o problema é roteamento. Você precisa colocar as duas
interfaces em redes diferentes. Pela configuração que passou, elas
estão na mesma rede (155.1.1.2).

Sobre a comunicação serial <-> serial, a idéia do Flavio é boa. Você
vai ter um pouco mais de trabalho para criar os scripts ppp. Com o
socat você resolve com uma linha, mas com o ppp fica mais transparente
para a aplicação. A performance é melhor também com ppp.

Um abraço,

Sergio Prado
www.sergioprado.org
Twitter @sergioprado


Em 22 de janeiro de 2013 18:22, Flavio Castro Alves Filho
<flavio...@gmail.com> escreveu:
>> Em 16 de janeiro de 2013 11:29, Sergio Prado <sergi...@gmail.com> escreveu:
>>
>>> Então o socat resolve seu problema. Dá uma olhada na ferramenta e qualquer dúvida é só falar.
>>>
>>> Um abraço,
>>>
>>> Sergio Prado
>>> www.sergioprado.org
>>> Twitter @sergioprado
>>>
>>>
>>> Em 16 de janeiro de 2013 08:23, Gorio <gori...@gmail.com> escreveu:
>>>
>>>> Preciso da segunda opção - SERIAL < - > SERIAL
>>>>
>>>> Obrigado pelas dicas !!
>>>>
>>>> Assim que tiver um parecer volto a me comunicar..
>>>>
>>>> Atenciosamente
>>>>
>>>> Eduardo Gorio
>>>> (www.gorio.eng.br)
>>>>
>>>>
>>>>
>>>>
>>>> Em 15 de janeiro de 2013 17:35, Sergio Prado <sergi...@gmail.com> escreveu:
>>>>>
>>>>> Gorio,
>>>>>
>>>>> Você precisa converter o meio fisico de serial para Ethernet ou fazer duas aplicações TCP/IP conversarem pela serial?
>>>>>
>>>>> Se for converter o meio fisico, a sugestão dada pelo pessoal deve te atender.
>>>>>
>>>>> Se for a segunda opção, dá uma olhada na ferramenta socat [1]. Ela permite, dentre outras coisas, redirecionar uma conexão TCP para uma porta serial.
>>>>>
>>>>> [1] http://linux.die.net/man/1/socat
>>>>>
>>>>> Um abraço,
>>>>>
>>>>> Sergio Prado
>>>>> www.sergioprado.org
>>>>> Twitter @sergioprado
>>>>>
>>>>>
>>>>> Em 15 de janeiro de 2013 16:45, Gorio <gori...@gmail.com> escreveu:
>>>>>
>>>>>> Boa tarde amigos,
>>>>>>
>>>>>> Estou com uma missão um tanto quanto interessante, porém como este feito é inédito em minha carreira gostaria da colaboração de todos do grupo.
>>>>>>
>>>>>> Preciso fazer uma comunicação TCP/IP entre dois equipamentos conectados via RS232 (Serial). O objetivo de se usar a porta Serial é a falta de Ethernet disponível no momento.
>>>>>>
>>>>>> Obrigado
>>>>>>
>>>>>> Atenciosamente
>>>>>>
>>>>>> Eduardo Gorio
>>>>>> (www.gorio.eng.br)
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
>

Gorio

unread,
Jan 23, 2013, 7:28:36 AM1/23/13
to sis_emb...@googlegroups.com
Obrigado mais uma vez pela ajuda de vocês !

Sergio, alterei a configuração do adaptador para rede local 192.168.1.x e mesmo assim não funcionou. Percebi que colocando o adaptador no Linux PC ele ativa o Link, já no ARM não está ativando.

Vou investigar um pouco mais sobre PPP over Serial, pois essa rede precisa ser transparente pra aplicação.

Obrigado

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)
 

Gorio

unread,
Jan 23, 2013, 10:37:07 AM1/23/13
to sis_emb...@googlegroups.com
Só para reportar,

A princípio eu "apelei" usando o adaptador USB->Ethernet e a forma de fazê-lo funcionar corretamente foi compilando o driver do fabricante de acordo com a minha plataforma.

Porém, gostaria muito de aprender a fazer uma rede via RS232 utilizando o PPP over Serial e também o Socat. Caso alguém já tenha passado por essa situação e possa colaborar comigo (todos) eu agradeço.

Muito Obrigado a todos !!



Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)
 



Rogerio Machado

unread,
Feb 10, 2013, 8:19:49 AM2/10/13
to sis_emb...@googlegroups.com
Acho que existem varias solucoes dependendo dos recursos disponiveis no equipamento: memoria, SO(linux,RTOS,bare metal,tools...). Uma possivel solucao. Estabelecer um link de comunicacao via RS232 usando o protocolo PPP. E um interface com pilha TCP/IP e o PPP. A keil oferece essa solucao: http://www.keil.com/rl-arm/rl-tcpnet.asp. Agora se o equipo usar LINUX(talvez ateh uClinux,nunca usei) basta configurar o PPP. Ja fiz isso para conectar meu notebook Linux com uma estacao Windows via RS232 
Reply all
Reply to author
Forward
0 new messages