RS232 Software Repeater

Hallo Leute

Habe auf Arbeit eine Aufgabe bekommen, die Zeit ist wie immer knapp und ich bin leider ziemlich unerfahren was das ganze angeht - m=F6chte es aber gerne hinbekommen. Ehe ich mich also verenne wollte ich mir ein paar Tips einholen.

Ich soll ein kleines (nichtgrafisches) Linux-Programm (2.6er Kernel) schreiben, so simple wie m=F6glich (C als Programmiersprache und GCC als Compiler). Es soll ein ich nenne es mal ein "RS232 Repeater" sein. Sprich Daten von einer RS232 Schnittstelle (/dev/ttyS0) an eine andere (/dev/ttyS1) repeaten (also praktisch das was z.B. an ttyS0 reinkommt empfangen und an ttS1 weiterleiten und dort ausgeben, wenn eine Antwort an ttS1 reinkommt, diese empfangen und an ttySS0 weiterleiten... Repeater eben).

Wie fange ich nun an? Habe mir SlickEdit f=FCr Linux installiert, da ich damit schon unter Windows viel entwickelt habe und kann damit sogar kompilieren, der nimmt mir erstmal das mit dem Makefile ab, soweit so gut. Das werden zwar die Koreaner hier nicht verstehen.. man braucht ja nur vim und comandline zum Software entwickeln... aber ich bin da nun mal anders und etwas verw=F6hnter, bzw. habe ich keine Zeit mich da auch noch reinzuarbeiten jetzt.

Die Programm-parameter (baudrate, pariteat usw.) sollen sich =FCber ein ConfigFile anpassen lassen.

Fragen die sich schonmal aufgetan haben:

Welchen Serial-Mode soll ich nehmen? - canonical - Non-canonical - asynchron

Danke schon mal. Schreibt einfach alles was euch dazu einf=E4llt.

Euer Steffen

Reply to
Steffen
Loading thread data ...

Und warum fragst du das nicht in einer passenderen Newsgroup, z.B. einer in der über Linux diskutiert wird? Warum möchtest du dazu ein Programm schreiben? Habe es nicht getestet, aber zwei setserial-Aufrufe für die Konfiguration der beiden Ports, gefolgt von irgendwas in der Art cat /dev/ttyS0 > /dev/ttyS1 & cat /dev/ttyS1 > /dev/ttyS0 & sollte eigentlich schon alles sein was du brauchst.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Hallo,

einen Einstieg in die Programmierung der ser. Schnittstelle unter Linux findest Du hier:

formatting link
formatting link
man termios

Die Doku zur glibc sollte auch ein paar Beispiele hergeben.

Gruß, Bernhard

Reply to
Bernhard Deny

Steffen schrieb:

Also wenn man es nicht kann sollte man es Leuten überlassen die es können. Zumindest wenn es eine Firmenlösung sein soll.

Und wozu soll sowas gut sein? Das ist per fertiger(!) oder selbstgebauter Hardwarelösung doch wesentlich simpler.

Ihc muss da echt lachen. Wozu denn so eoin Aufwand?

Nimm etwas fertige Hardware für ein paar EUR. Das funktioniert dann sicher und stabil im gegensatz zu einer Bastellösung auf Software wenn man noch gar keine Ahnung hat.

kommt drauf an!

Done - vielleicht erklärst du mal wozu das eigentlich gut sein soll. Um RS232-Daten von A nach B zu bekommen braucht man keine RS232 Repeater!

Das tun 2 kleine Wandler auf RS 422 oder 485 z.B. dann per 2 oder

4-Draht-Leitung über hunderte von Metern.

Und selbst per RS232 lassen sich locker große Entfernungen überbrücken wenn man eine niedrige Baudrate wählt. 100 Meter sind bei 2400 Baud kein Problem.

Gruss Wolfgang

--
Achtung Spamfilter: Bei Mailantwort muss das Subjekt
                    das Wort NGANTWORT enthalten.
Reply to
Wolfgang Gerber

Und falls nicht, ist socat das Schweizer Taschenmesser für solche Angelegenheiten.

Ich vermute aber eher, daß die Aufgabe lediglich pädagogischen Nutzen haben soll.

Gruß Henning

Reply to
Henning Paul

"Simple" in welcher Hinsicht? Wartungs- und entwicklungstechnisch wäre es wesentlich simpler, wenn du stattdessen eine Skriptsprache wie Python (mit pyserial) benutzt.

Grüße,

Björn

--
BOFH excuse #307:

emissions from GSM-phones
Reply to
Bjoern Schliessmann

Wolfgang Gerber schrieb:

Zum Beispiel kann man mit einem so gestrickten Repeater die Übertragungsparameter (zum Beispiel die Baudzahl, haha) ändern.

Und bei deinem grandiosen "Tipp" kommen dann wieder so d.s.e-Postings raus in der Art "Suche einen RS232-Repeater als Bausatz, businesstauglich und im 19" Gehäuse für unter 15 EUR und das wichtigste: KEIN MICROCONTROLLER!!!"

Der typische Dummlall eines ahnungslosen Gerbers am Nachmittag.

Es ist echt entsetzlich, wie du dich immer aufspielst.

Viele Grüße, Johannes

--
"PS: Ein Realname wäre nett. Ich selbst nutze nur keinen, weil mich die
meisten hier bereits mit Namen kennen." -- Markus Gronotte aka "Makus"
aka "Kosst Amojan" aka "maqqusz" aka "Mr. G" in de.sci.electronics
Reply to
Johannes Bauer

Dann sollte ein Studium der Sourcecodes von Socat hilfreich sein.

Falk

Reply to
Falk Willberg

Wenn schon "schummeln", dann kann er sich ja auch gleich meinen unkommentierten, vor einigen Jahren schnell zusammengeschusterten Kram angucken:

formatting link

Gruß Henning

Reply to
Henning Paul

Nachtrag:

Im Gegensatz zu deinem saudummen Geschwätz habe ich "Ahnungsloser" dem OP wenigsten einen Hilfeansatz gegeben und ihn durch meine Frage meine weitere Hilfsbereitschaft angeboten.

Du dagegen hast nur sinnlosen Provokationsmüll abgesondert!

*PLONK*
Reply to
Wolfgang Gerber

Ich bin kein Experte auf diesem Gebiet, hatte aber sowas in einer Anlage. Dabei mussten auch Zustaende der Leitungen beobachtet und gemeldet werden, zum Beispiel wenn jemand den D-Sub Stecker abgezogen hat. Man nennt das nicht Repeater (das waeren die Hardware Boxen), sondern "Re-director" oder "Redirector". Falls Du mit Google suchen moechtest.

In Windows Luxus-Version aus deutschen Landen in etwa das hier:

formatting link

Oder wende Dich direkt an den Hersteller in Frankfurt, ob die Euch nicht eine passende Routine verkaufen koennen:

formatting link

--
Gruesse, Joerg

http://www.analogconsultants.com/
Reply to
Joerg

Hi,

nur um reinkommende Daten zB auf /dev/ttyS0 nach /dev/ttyS1 weiterzuschieben geht auch sowas wie cat /dev/ttyS0 > /dev/ttyS1 vorher evtl beide UARTs mit stty einstellen. Das Leben ist schoen wenn alles eine Datei ist ;)

man stty (oder auch setserial)

UARTs sind per se immer asynchron. Die RS232 Bausteine tasten nach eingegangenem Startbit die RxD Leitung mit (meistens) 16x overclocking ab und nehmen den Pegel der sozusagen "in der Mitte" herrschte. Darum muessen die Clocks nicht 100,000% stimmen.

Natuerlich haengt das alles noch davon ab ob die RS232-Quelle alle Jubeljahre ein paar bytes mit 2400 baud sendet, dann geht das obige problemlos, oder ob die die Schnittstelle mit 115200 oder noch schneller "zuballert".

Suche mal beim serial-programming HOWTO und der manpage von stty.

gruss, Thomas

Reply to
Thomas Schnuerer

Thomas Schnuerer schrieb:

Wahrscheinlich meint er die Feinheiten von blocking/non-blocking IO mit dem ganzen select()-Gedöns und was dazu gehört. Und raw-Zugriff vs. Interpretation durch einen etwaigen Konsolentreiber.

Gruß Henning

--
henning paul home:  http://home.arcor.de/henning.paul
PM: henningpaul@gmx.de , ICQ: 111044613
Reply to
Henning Paul

Dann wirf am besten C weg. Für all so ein Zeug nimmt man heute Python

formatting link
Und das PySerial Modul in diesem Fall.

Schau die paar Zeilen in "Short introduction" auf

formatting link
an. Sollte intuitiv klar sein.

oder gar nur den >>> Prompt interaktiv :-) Die Probier-Session ist dann geputzt quasi schon das Skript.

Grüsse Robert

Reply to
robert

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.