RS232 <--> Ethernet

Jun 11, 2006 11 Replies

Hello,



For a remote monitoring application, we want to have an embedded Linux computer (call it computer "A") with eight RS232 (1200Baud - 256KBaud) and two 1Gb/100Mb ethernet ports.



The computer "A" will be connected to two different networks. We want any computer (running Linux, Windows or other OSs) on these networks be able to access over the ethernet to the serial ports on the computer A.


1- Is there any utility HW/SW tools that allow multiple computers (Linux, Windows, etc.) to access multiple RS232 ports on an embedded (Linux) computer via ethernet ?
2- We want the computer A be as small as possible. Can you recommend any embedded computer with eight RS232 (1200Baud - 256KBaud) and two
1Gb/100Mb ethernet ports and capable of running Linux ?

TIA



Miem



You may have a look at "socat":

formatting link

I don't know anything about non-posix compatible clients however.

Sven

Kernel panic: I have no root and I want to scream (Linux Kernel Error Message) /me is giggls@ircnet, http://sven.gegg.us/ on the Web

I've read the README and manpage, but don't see how that's going to work for any application that expects to be talking to a real serial port. Even if you use a pty, that doesn't provide the normal ioctl() interface.

Grant Edwards grante Yow! I want the presidency at so bad I can already taste visi.com the hors d'oeuvres.

Look at SLIP - Serial Line Internet Protocol

--

Regards,

Graham Baxter Graham Baxter (Software) Limited (VxWorks, Linux, pSOS BSPs) http:// snipped-for-privacy@NOSPAMgbsw.co.uk

SLIP has absolutely nothing to do with what the OP is asking for.

Grant Edwards grante@visi.com

Maybe you can try

formatting link
?

wimpunk.

1) The "Remote" Site:

A device connecting a serial port to TCP/IP is known as "Terminal Server" or "COM-Server"

You can just buy such a device from many brands (e.g. digi: _very_ small: the TTL version is just as big as an Ethernet socket, same uses an ARM7 processor and there is a version that can run Linux) starting from some $50.

There are single port and multi port devices.

Of course there is free software to be run in Linux to perform this work (e.g. "Poor Man's Terminal Server"

formatting link

2) The "User Site:

If you want to have the user interact (type) directly with the remote machine you can use Telnet or ZOK or similar software.

If the user runs unmodifiable software that accesses the PC's serial port API you can either use a "serial port virtualization software", creating a new remote serial port in the OS, or use a hardware device that is connected to the user PC's serial port (Terminal Server in client mode, many but not all devices can do this), here, too.

DOS: You need to use a hardware device.

Linux: The "Poor Man's Terminal Server" should work here, too. AFAIK, the software provides both ends.

MAC: I suppose the "Poor Man's Terminal Server" can be compiled for MAC.

Windows: I once used a commercial product as a "serial port virtualization software". I seem to remember this:

formatting link

-Michael

A pty _does_ provide the normal ioctl() interface. Reading the manpage however I think they are not really send to the remote side. This will however be sufficient for your purpose, if your application does not change the parameters during operation.

I was wondering about a generic forwarding mechanism for character device for quite some time now, but did not find a related client-server application.

Sven

C is quirky, flawed, and an enormous success (Dennis M. Ritchie) /me is giggls@ircnet, http://sven.gegg.us/ on the Web

No, it doesn't (at least it didn't when I checked a few months ago). You can't enable parity. You can't set the word size to anything besides 8 bits. All of them TIOCM ioctl calls return errors.

I'm not sure what you mean by "send to the remote side.

For the ioctl calls that are implimented, some of the user-supplied values are overridden by code in the pty driver. For example, the set/get termios calls read/write a termios struct that's available from the master end, but the pty code messes with the values.

Some ioctl calls (e.g. set/get modem control/status lines) aren't implemented at all and return errors.

That's like saying that a pty emulates a serial port as long as the application doesn't try to use it as a serial port.

Applications do change serial port parameters.

Grant Edwards grante Yow! INSIDE, I have the at same personality disorder visi.com as LUCY RICARDO!!

In the special case of a serial port it is often sufficient to just use stativ parameters like 9k6,8,n,1 and such.

Anyway, as I already said, I was unable to find any generic network character device forwarding code which would be sufficient for your purpose as well.

Sven

Der "normale Bürger" ist nicht an der TU Dresden und schreibt auch nicht mit mutt. (Ulli Kuhnle in de.comp.os.unix.discussion) /me is giggls@ircnet, http://sven.gegg.us/ on the Web

In the special case of a serial port it is often sufficient to just use stativ parameters like 9k6,8,n,1 and such.

Anyway, as I already said, I was unable to find any generic network character device forwarding code which would be sufficient for your purpose as well.

Sven

Der "normale Bürger" ist nicht an der TU Dresden und schreibt auch nicht mit mutt. (Ulli Kuhnle in de.comp.os.unix.discussion) /me is giggls@ircnet, http://sven.gegg.us/ on the Web

The Digi Connect ME is only a component. It has an Ethernet jack and one TTL level serial port on a 20 pin header, but it needs to be mounted on a PC board and fed power to be useful. There are two basic versions, one that uses the Digi firmware, (which does support the remote serial port API) with a locked down POST and loader, and one with no locked flash that can be used for Linux or other kernels. They also have WiFi versions. Prices for the Ethernet units started at US$47.00 last time we bought some. WiFi were about US$100 more than that. But the SDK was US$14,000.00 including the prototype board and JTAG debugger package.

For a more complete package, look at the Systek RCS series of port servers. They come in two to eight port options with firmware and drivers that turn them into external serial ports on Windows or Unix systems. They look like COMx-COMy to the local application, but link over a TCP/IP socket. There is also an SDK that allows you to replace their firmware with your own application. They use an MC68EC363 CPU and the GCC compilers.

Bob McConnell N2SPP

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required