Forum: Mikrocontroller und Digitale Elektronik Vier RS232 miteinander verschalten, einer der vier sendet, die anderen Empfangen


von Overflow (Gast)


Lesenswert?

Hallo, ich habe vier Geräte, die miteinander Kommunizieren sollen. Sie 
haben eine RS232 Schnittstelle. Daran möchte ich nichts ändern. (Hier im 
Forum wurde z.B. Umbau auf RS485 vorgeschlagen.)

Es ist quasi wie ein Chat. Einer der vier sendet, die anderen drei 
Empfangen. Senden soll nur möglich sein, wenn eben gerade nichts über TX 
herein kommt. Der Buffer soll 256 Zeichen betragen. Jeder der vier soll 
immer an die jeweiligen drei anderen senden können. Es gibt keinen 
Master. Alle gleichberechtigt. Baudrate bis 115k wäre nicht schlecht. 
Die Leitungslängen sind maximal zwei Meter lang.


Overflow

von Harald W. (wilhelms)


Lesenswert?

Overflow schrieb:

> Es ist quasi wie ein Chat. Einer der vier sendet, die anderen drei
> Empfangen. Senden soll nur möglich sein, wenn eben gerade nichts über TX
> herein kommt. Der Buffer soll 256 Zeichen betragen. Jeder der vier soll
> immer an die jeweiligen drei anderen senden können. Es gibt keinen
> Master. Alle gleichberechtigt.

Das wird m.E. mit RS232 nicht funktionieren, wie vermutlich schon
im anderen Thread (wie wärs mit einem Link?) stand.

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Es gibt Wandler von RS-232 auf RS-485.
Die Sende/Empfangsumschaltung kann man mit einem retriggerbaren Monoflop 
realisieren,
Den Buszugriff (CSMA/CD) muss dann die Software realisieren.

von Jan H. (jan_h74) Flattr this


Lesenswert?

Versuch es doch mal, ich binn gespannt was da passieren soll !
Ein tip : Wen 1 Rx parallel an 4 Tx geschaltet werden, functioniert ess 
nicht mehr. So wenn nicht gesendet werd, mussen den ausgagn Tx auch 
"frei" geschaltet werden. Noch einen tip : GND von alle 4 Teilnehmer 
mussen verbunden werden. Oder du muss mit optocoupler alles galvanisch 
trennen.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Overflow schrieb:
> Hallo, ich habe vier Geräte, die miteinander Kommunizieren sollen. Sie
> haben eine RS232 Schnittstelle. Daran möchte ich nichts ändern.

Um die RS232-Schnittstellen busfähig zu machen, musst du an der
bestehenden Hardware gar nichts ändern, sondern nur etwas hinzufügen,
nämlich jeweils einen RS232-RS485-Konverter. Auf Softwareseite brauchst
du natürlich ein darauf abgestimmtes Kommunikationsprotokoll.

Ganz ohne zusätzliche Elektronik geht es mit einer Ringtopologie
(ähnlich dem Token-Ring, aber mit Weiterleitung der Nachrichten per
Software). Du brauchst dafür lediglich eine spezielle Verkabelung und
natürlich ein entsprechendes Kommunikationsprotokoll. Ein möglicher
Nachteil dabei ist, dass eine Nachricht nicht ohne Zeitversatz an
mehrere andere Teilnehmer geschickt werden kann. Das geht nur in
Bussystemen.

Eine weitere Möglichkeit wäre eine Sterntopologie mit zentralem
Vermittler auf RS232-Basis. Für den Vermittler brauchst du aber
mehr Hardware als bei den beiden anderen genannten Verfahren.

von Stefan F. (Gast)


Lesenswert?

Overflow schrieb:
> Der Buffer soll 256 Zeichen betragen.
> Senden soll nur möglich sein, wenn eben gerade
> nichts über TX herein kommt.
> Es gibt keinen Master. Alle gleichberechtigt.

Das ist eine Frage der Software. Da aber auch diese nicht in die Zukunft 
schauen kann, müssen alle Teilnehmer Kollisionen erkennen und ggf. nach 
einem zufälligen Delay wiederholen. Wie im echten Leben, wenn sich Leute 
unterhalten.

Die Schaltung würde so aussehen:
1
                        10kΩ
2
TxD 1 o----|>|----+----[===]----0 -12V
3
                  | 
4
RxD 1 o-----------+
5
                  |
6
                  |
7
TxD 2 o----|>|----+
8
                  | 
9
RxD 2 o-----------+
10
                  |
11
                  |
12
TxD 3 o----|>|----+
13
                  | 
14
RxD 3 o-----------+
15
                  |
16
                  |
17
TxD 4 o----|>|----+
18
                  | 
19
RxD 4 o-----------+

von MOSI (Gast)


Lesenswert?

Du musst eine Art CSMA/CD nachbauen.
das sollte nicht schwer sein.

von Achs (Gast)


Lesenswert?

Am Ende geht alles.

Einer sendet, alle hören geht mit dominatem Pegel (per Diode oder open 
Kollektor) oder tristate.

Kollisionserkennung und -Vermeidung geht auch "irgendwie" (Zeit, 
mehrfach,  mithören, Token passing,

Du kannst jedes Rad neu erfinden, von jedem beliebigen Startpunkt.

Und es ist lehrreich, also nur zu!

von MOSI (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wie im echten Leben, wenn sich Leute
> unterhalten.
Da hat die Labertasche mal recht ;-)

https://de.wikipedia.org/wiki/ALOHA

von Holger D. (hodoe)


Lesenswert?

Also einfach zusammenstricken geht nicht. Da muss schon etwas den 
Datenverkehr steuern.

Ich würde eine µC-Lösung nehmen. Vier Hardware-UART haben ja die z.B. 
ATMegas der Serie 640. SDRAM haben die auch genug für größere Buffer. 
Also ein vierfach 232-Chip dran und den Rest macht dann der µC mit 
geringem Softwareaufwand.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Overflow schrieb:
> ...Sie haben eine RS232 Schnittstelle. Daran möchte ich nichts ändern...
> ...es gibt keinen Master. Alle gleichberechtigt...

Ziemlich dumme Idee das ganze.

Die Ausgänge sind in der Regel Pull/Push und somit knallt es sowie du 
versuchst zwei davon zusammen zu schalten. Du musst dir erstmal eine 
Schaltung bauen die bei Bedarf nur einen Sender durchschaltet. Eine 
Kollision Erkennung gibt es bei RS232 von Hause aus auch nicht, auch 
hier musst du dir eine entsprechende Schaltung erstmal selbst 
zusammenbauen. Eine Menge Aufwand blos um krampfhaft an einem 
Designfehler festzuhalten...

- https://en.wikipedia.org/wiki/Push%E2%80%93pull_output
- 
https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection

von Zeno (Gast)


Lesenswert?

Overflow schrieb:
> Hallo, ich habe vier Geräte, die miteinander Kommunizieren sollen. Sie
> haben eine RS232 Schnittstelle.

Eigenlich ganz einfach. Du verschaltest die quasi zu einem Ring. TX vom 
erstenGerät wird mit RX vom 2. Gerät verunden. Dann immer so weiter. TX 
vom letzten Gerät wird mit RX vom 1. Gerät verbunden womit sich der 
Kreis schließt.
Der Rest ist dann ein passendes Protokoll, also im Endeffekt Software.
Jedes Gerät bekommt eine ID. Diese wird dann als erstes gesendet. Wird 
die ID von einem der Geräte erkannt dann werden alle folgenden Daten bis 
zu einer Endkennung verarbeitet. Nachrichten mit einer nicht passenden 
ID werden einfach durchgereicht.
Nachteil der Methode ist halt, das die Laufzeiten der Nachrichten von 
der Position der Geräte in der Kette abhängig sind.

von jo (Gast)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Das ist eine Frage der Software. Da aber auch diese nicht in die Zukunft
> schauen kann, müssen alle Teilnehmer Kollisionen erkennen und ggf. nach
> einem zufälligen Delay wiederholen. Wie im echten Leben, wenn sich Leute
> unterhalten.
>
> Die Schaltung würde so aussehen:
1
>                         10kΩ
2
> TxD 1 o----|>|----+----[===]----0 -12V
3
>                   |
4
> RxD 1 o-----------+
5
>                   |
6
>                   |

Entspricht funktionell deinem Vorschlag und war unter dem Titel "Das 
mc-Netzwerk" Thema in der MC 4/1983 und 5/1983.

R.-D. Klein hatte das damals breitgetreten, war aber nicht nur auf 
seinem Mist gewachsen. Hubert Eing hatte dazu schon was in der 
ELEKTRONIK 8/1982, S. 87 unter dem Titel "SP-Netz" publiziert.

Die Offenlegungsschriften
https://depatisnet.dpma.de/DepatisNet/depatisnet?action=pdf&docid=DE000003213051A1&xxxfull=1
https://depatisnet.dpma.de/DepatisNet/depatisnet?action=pdf&docid=DE000003142683A1&xxxfull=1
könnten auch was zum Thema hergeben.

von Jim M. (turboj)


Lesenswert?

Overflow schrieb:
> Hallo, ich habe vier Geräte, die miteinander Kommunizieren sollen. Sie
> haben eine RS232 Schnittstelle.

Dann baut man sich einen Master: RPi Zero oder vergleichbar (lies: PC) 
mit einem FT4232H für die 4 UARTs (plus RS232 Wandler falls RS232 Pegel 
benutzt werden).

RS232 ist nicht ernsthaft busfähig, daher benutzt man besser was 
"intelligentes" in der Mitte.

Alles andere bräuchte Änderungen auch auf den Geräten am Bus.

von mb (Gast)


Lesenswert?

Hallo,

das geht nicht mit mehr als zwei Teilnehmern gleichzeitig, da alle 
sendenden Teilnehmer ihren definierten (Ruhe)Pegel auf die Leitung 
legen.
RS485 hat open colector Ausgänge, da kann mehr als ein Teilnehmer 
nacheinander senden.

von Yalu X. (yalu) (Moderator)


Lesenswert?

mb schrieb:
> RS485 hat open colector Ausgänge

Tri-State-Ausgänge

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Overflow schrieb:
> Hallo, ich habe vier Geräte, die miteinander Kommunizieren sollen. Sie
> haben eine RS232 Schnittstelle. Daran möchte ich nichts ändern.
Kannst du nichts oder willst du nichts daran ändern?

Wenn du nichts daran ändern kannst, dann schalte fertige kommerzielle 
RS232-RS485-Schnittstellenwandler dazwischen.

Wenn du nichts daran ändern willst, dann schalte fertige kommerzielle 
RS232-RS485-Schnittstellenwandler dazwischen.

> Senden soll nur möglich sein, wenn eben gerade nichts über TX
> herein kommt.
Über TX kommt sowieso nichts rein, weil das T von transmit (= senden) 
kommt. Aber auch an RX ist eigentlich nach jedem einzelnen Byte erst mal 
"Schluss", bis mit einem neuen Startbit die Übertragung des nächsten 
Zeichens startet.

> Es gibt keinen Master. Alle gleichberechtigt.
Das funktioniert ja schon im echten Leben nicht. Selbst Gruppen mit 
vielen "gleichberechtigten" Diskussionsteilnehmern müssen sich 
organisieren, damit man den versteht, der gerade "das Wort hat".
Fazit: es gibt immer einen (temporären) Master. Das ist der, der gerade 
eine Kommunikation initiiert. Wenn der nicht alleiniger "Chef" sein 
darf, dann quatscht ihm ein anderer zweiter gleichberechtigter "Chef" 
einfach dazwischen und alle anderen hören nur Müll.
Das Problem, den nächsten Master zu bestimmen, nennt sich 
"Arbitrierung".

> Es ist quasi wie ein Chat. Einer der vier sendet, die anderen drei
> Empfangen.
In einem "Chat", wie du ihm kennst (z.B. von Foren oder FB oder 
WhatApp...) sorgt die Software dafür, dass du die Botschaften der 
anderen unverstümmelt am Stück erhältst. Denn sonst würde eine "Ja, 
Nein, Weiß nicht" Antwort von 5 Teilnehmern so aussehen: "WjeineaßN 
jniniecahtin".
Und jetzt ist das Entschlüsseln dieser Antworten ja noch relativ 
einfach. Im realen Leben mit ausführlicheren oder variablen Antworten 
käme nur Müll raus, auf die Frage "Wie alt seid ihr?" lautet die Antwort 
"3154378352" --> ?? Ende Gelände.

Wenn du also auch die Software nicht ändern "kannst", "willst" oder 
"möchtest", dann ist Schicht im Schacht.

> Baudrate bis 115k wäre nicht schlecht.
> Die Leitungslängen sind maximal zwei Meter lang.
Diese Parametern sind erstmal nicht dein Problem.

Und noch ein Nachtrag: eine der simplen Nutzungsbedingungen lautet
pro Thread nur 1 Nutzername
Das gilt auch für alteingesessene User!

: Bearbeitet durch Moderator
von Georg G. (df2au)


Lesenswert?

In diesem
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwi8ys6Gt6v0AhUNR_EDHf_vBy0QFnoECAoQAQ&url=http%3A%2F%2Fwww.db0eam.de%2Fdoku%2Ftn.pdf&usg=AOvVaw0eVtE9uXOmVGf7fGLbFmtg
pdf-File ist auf Seite 18 eine Diodenmatrix zu finden, die drei RS232 
miteinander verbindet. Das kann man schnell auf 4 Teilnehmer erweitern. 
Die dazu passende Software ist Public Domain.

von Achim H. (pluto25)


Lesenswert?

Das geht ganz problemlos.
Auch Stefanus hat das Anfangs schon gezeigt.
Die Empfangsroutine muß sowieso zwischen richtigen Daten und Störungen 
unterscheiden, da kann sie auch dem Sender sagen das er seine Nachricht 
wiederholen muß.(Und natürlich das er nicht losplappert solange 
gesprochen wird.) Vielleicht verschiedene Wartezeiten einstetzen sonst 
gehts wie bei den Diskusionen im TV: alle quatschen gleichzeitig. 485 
hätte die selben Einschränkungen wäre aber besser für lange Leitungen.

von Rainer V. (a_zip)


Lesenswert?

Lothar M. schrieb:
> damit man den versteht, der gerade "das Wort hat".

...das war doch Mr. Zylinder oder??
Gruß Rainer

von m.n. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Die Schaltung würde so aussehen:
>                         10kΩ
> TxD 1 o----|>|----+----[===]----0 -12V
>                   |
> RxD 1 o-----------+
>                   |
>                   |
> TxD 2 o----|>|----+
>                   |
> RxD 2 o-----------+


Man braucht keine negative Versorgungsspannung, wenn man über die Dioden 
je einen Widerstand 3k3 - 4k7 legt. Die passiven Teilnehmer ziehen die 
Leitung dann auf negativen Pegel.

von Heavy Metaller (Gast)


Lesenswert?

Ach was! Rs232-Teilnehmer sind von Natur aus geduldig und vor Allem 
neugierig, was die Gegenseite zu sagen hat. Das funktioniert wie beim 
Doppelkopf, da hat auch nur immer Einer den Hut auf.

von Rainer V. (a_zip)


Lesenswert?

Heavy Metaller schrieb:
> Doppelkopf, da hat auch nur immer Einer den Hut auf.

...aber nur beim Solo!

von A. S. (Gast)


Lesenswert?

Rainer V. schrieb:
> ...das war doch Mr. Zylinder oder??
> Gruß Rainer

Es war eine Muschel beim Herr der Fliegen.

Und nennt sich Token.

von Rainer V. (a_zip)


Lesenswert?

A. S. schrieb:
> Es war eine Muschel beim Herr der Fliegen.
>
> Und nennt sich Token.

OK, ich bin bei South-Park...
Rainer

von max123 (Gast)


Lesenswert?

hallo
ich schlage folgendes vor. Ein Arduino Mega hat 4  RS232 Schnittstellen.
Diese sind zu einen Ring zur schalten. Also mit einen, wie oben 
erwähnten Token arbeien.
Es wird das Programm einfacher als mit rs485. Bei diesen muss
noch berücksichtigt werden, wer am Buss senden darf.

Falls man über das
Protokoll wissen würde,könnte man vielleucht noch Vereinfachungen 
finden.
Resüme: Software nicht unterschätzen!

von Rainer V. (a_zip)


Lesenswert?

Nachdem nun wahrlich genug Vorschläge gemacht worden sind, wäre es doch 
interessant zu wissen, ob der TO sich schon entschieden hätt. Und wenn 
ja, wie es denn mit dem Erfolg aussieht!!
Gruß Rainer

Beitrag #6888534 wurde von einem Moderator gelöscht.
von Peter D. (peda)


Lesenswert?

Man kann auch CAN-Transceiver nehmen, dann entfällt die 
Richtungsumschaltung. Die Kollisionserkennung muß man ja eh in Software 
machen.
Die einfachste Lösung ist natürlich, man nimmt gleich MCs mit CAN.

von Klaus (Gast)


Lesenswert?

Rainer V. schrieb:
> Nachdem nun wahrlich genug Vorschläge gemacht worden sind, wäre es
> doch interessant zu wissen, ob der TO sich schon entschieden hätt.

Overflow hat sich nicht mehr gemeldet? Ja sowas aber auch!
Ihr sitzt aber auch jedem Troll auf ...

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Harald W. schrieb:
> Das wird m.E. mit RS232 nicht funktionieren, wie vermutlich schon
> im anderen Thread (wie wärs mit einem Link?) stand.

Mit etwas Geschick geht das schon. Einer meiner Kunden setzt das genau 
so ein. Wurde von mir in meiner Anfangszeit als Selbständiger 
entwickelt. Man kann bis zu 16 Geräte einsetzen, was am Ende durch die 
minimale Bandbreite begrenzt ist.

a) Die analoge Lösung:

Es funktioniert mit einer Arbitrierungsphase, Kollisionserkennung und 
vorgeschriebenen time slots. Jeder Sensor, der sich anmeldet, muss 
mithören, ohne zu RX zu bestätigten, also TX zu bedienen. Es gibt immer 
einen freien TimeSlot, in dem sich nichts tut. Diese werden 
durchgezählt, indem sich die Sensoren melden und eine Nummer funken. 
Bestätigen tut es nur der nächste / oder der der angefunkt wird. Erkennt 
ein neuer Sensor, dass er einen freien time slot hat, macht er einfach 
mit, was die anderen merken und sich einen neuen Teilnehmer in ihre 
Tabelle eintragen. Nötig dafür ist eine Steuerung der TX-Leitung per 
Tristate-Buffer oder einem wired "or".

Nutzbar ist das für teilinstallierte Strecken mit einer nicht änderbaren 
Verkabelung im token-style, wie es früher für Busse gerne benutzt wurde, 
die man aber beschleunigen möchte. Faktische Geschwindigkeit: 230bps 
über bis zu 30m, mit rund rund 80% Nettobandbreite für alle Teilnehmer. 
Also z.B. 10% für 8 Sensoren.

d) Die digitale Lösung: Es gibt ein zentrales Steuersystem, bei dem alle 
Leitungen einlaufen und ein PLD, dass jeden einzelnen abfertigt und als 
Matrix läuft. Solange die Bandbreite und das Sendeverhalten es hergeben, 
können alle an alle senden. Nötig: Abtastrate im PLD = 2x Teilnehmerzahl 
x 230kbps. Allerdings ist auch hier overhead, weil die Zentrale 
konfiguriert werden muss, auswählen muss etc. Insgesamt war das der 
Vorläufer von dem hier: http://www.96khz.org/htm/midiviaspdif.htm

Ingo W. schrieb:
> Es gibt Wandler von RS-232 auf RS-485.
Das ist die sauberste Lösung, wenn man alles selber aufbauen kann.

von Stefan F. (Gast)


Lesenswert?

Der TO hat sich jetzt 6 Tage lang nicht zu den Antworten geäußert. Ich 
finde das ziemlich undankbar.

von m.n. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Ingo W. schrieb:
>> Es gibt Wandler von RS-232 auf RS-485.
> Das ist die sauberste Lösung, wenn man alles selber aufbauen kann.

Ich weiß nicht, was daran nun sauber sein soll, zumal es die Vorgaben 
vom TO einfach ignoriert. Differnetielle Übertragung ist überhaupt nicht 
notwendig und bei 2 m Leitungslänge reicht Klingeldraht.

von m.n. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der TO hat sich jetzt 6 Tage lang nicht zu den Antworten geäußert. Ich
> finde das ziemlich undankbar.

Na ja, mit dem Umzug mußt Du ja auch noch bis zum 8. Mai warten: in D 
Tag der Befreiung mit neuer Bedeutung ;-)

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

m.n. schrieb:
> Ich weiß nicht, was daran nun sauber sein soll, zumal es die Vorgaben
> vom TO einfach ignoriert. Differnetielle Übertragung ist überhaupt nicht
> notwendig und bei 2 m Leitungslänge reicht Klingeldraht.

Es geht ja um die Verschaltung mehrerer Einheiten auf einem Bus und das 
ist nur bei RS-485 so einfach als Stern machbar. RS 232 ist erst einmal 
eine P2P.

von Stefan F. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Es geht ja um die Verschaltung mehrerer Einheiten auf einem Bus und das
> ist nur bei RS-485 so einfach als Stern machbar. RS 232 ist erst einmal
> eine P2P.

Ich denke, dass siehst du falsch. Es wurden einfache Schaltungen 
gezeigt, die das bei RS232 ermöglichen.

Viel wichtiger ist aber, dass die Software auf Half-Duplex Kommunikation 
umgeschrieben wird (falls nicht bereits der Fall) und dass sie mit 
Kollisionen sinnvoll umgeht. Ein Umbau auf RS485 ändert daran gar 
nichts.

Die Software ist der Knackpunkt. Das wurde bereits in den ersten 
Antworten klar gestellt. Ob der TO die Software anpassen kann/will, 
wissen wir nicht. Bis dahin ist es völlig sinnlos, hier weiter zu 
diskutieren. Zumal bereits alles erdenkliche mehrfach geäußert wurde, 
nur noch nicht von jedem.

Die Diskussion dreht sich weiterhin planlos im Kreis.

von Harald A. (embedded)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der TO hat sich jetzt 6 Tage lang nicht zu den Antworten geäußert. Ich
> finde das ziemlich undankbar.

Kommt ja leider öfter hier vor. Ich frage mich, was für „Leute“ das sein 
mögen… Vermutung: Denen wird auf der Arbeit eine Aufgabe vorgeworfen, 
tippen den Kram mangels eigener Ideen ins Internet ein. Dann kommt ein 
Kollege um die Ecke und sagt, ah brauchst net, das geht doch so und so. 
Abgehakt, scheißegal, was kümmert einen schon das Hilfsangebot von 
Mitmenschen, das man nicht mehr benötigt.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich denke, dass siehst du falsch.
? Ich zitiere mal den TO:

Overflow schrieb:
> Es ist quasi wie ein Chat. Einer der vier sendet, die anderen drei
> Empfangen.
Das geht P2P nur mit 4 Ausgängen bei 4 Teilnehmern oder einem 
multiplexten Bus.

Stefan ⛄ F. schrieb:
> Es wurden einfache Schaltungen
> gezeigt, die das bei RS232 ermöglichen.
Worauf beziehst du dich?

von Stefan F. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Worauf beziehst du dich?

Stefan ⛄ F. schrieb:
> Die Schaltung würde so aussehen

jo schrieb:
> Entspricht funktionell deinem Vorschlag ...

von DS (Gast)


Lesenswert?

Peter D. schrieb:
> Man kann auch CAN-Transceiver nehmen,

Ja, das geht sehr gut. DMX Transceiver gehen auch.
75176B

VG
DS

von Overflow (Gast)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Der TO hat sich jetzt 6 Tage lang nicht zu den Antworten geäußert. Ich
> finde das ziemlich undankbar.

Der TO ist nicht undankbar, aber viel beschäftigt. Also erst einmal 
vielen Dank für die Infos und Anregungen!

Ich habe mich erst einmal für eine andere Lösung entschieden. Ich habe 
ein Java-Programm geschrieben (vorerst nur COM-Ports, also Windows), 
welches mein Problem soweit löst.

Mein Programm verlangt nach mindestens drei Schnittstellen, sonst macht 
es ja auch keinen Sinn.

Neben allen möglichen Einstellungen, gibt es die Möglichkeit einen 
Standard z.B. 9600 8 N 1 zu laden. Dafür existiert eine separate Datei.

Solange freie Schnittstellen vorhanden sind, kann man sie hinzufügen. 
Man kann sie auch wieder entfernen. Bis auf drei natürlich.

Mit Laden bzw. Speichern kann ich Einstellungen speichern.

Über Angleichen werden die Konfigurationen der ersten Schnittstelle 
(ganz links) auf die anderen übertragen.

Für jede Schnittstelle kann ich noch festlegen ob RX + TX oder nur TX 
oder nur RX.

Und beim Programmstart kann automatisch die letzte gespeicherte 
Konfiguration eingelesen und direkt gestartet werden.

Als Libs kommen jssc-2.9.2.jar und slf4j-jdk14-1.7.32.jar zum Einsatz.

von H. (Gast)


Lesenswert?

Overflow schrieb:
> Der TO ist nicht undankbar, aber viel beschäftigt.

8 Tage nicht antworten hat definitiv etwas mit Undankbarkeit zu tun und 
nicht mit ging nicht weil "viel beschäftigt". Tip: Im Zweifelsfall mal 
andere Menschen befragen, die naturgemäß viel Umgang mit anderen 
Menschen haben.

Schön auch, dass wir jetzt einen Roman und einen Screenshot deiner 
Speziallösung haben, in der Du Baudraten ändern und sogar speichern 
kannst. Das ist der Input, auf den alle gewartet haben.

von Overflow (Gast)


Lesenswert?

H. schrieb:
> Das ist der Input, auf den alle gewartet haben.

Danke, freut mich!

von Stefano (Gast)


Lesenswert?

Overflow schrieb:
> Ich habe mich erst einmal für eine andere Lösung entschieden. Ich habe
> ein Java-Programm geschrieben (vorerst nur COM-Ports, also Windows),
> welches mein Problem soweit löst.

Das wäre auch mit VSPE von eterlogic gegangen. Kostet um die 30 € für 
zwei PCs.

von Thorsten S. (Gast)


Lesenswert?

Overflow schrieb:
> Als Libs kommen jssc-2.9.2.jar und slf4j-jdk14-1.7.32.jar zum Einsatz.

Versteh nun nur Bahnhof, ich dachte es geht darum wie man das technisch 
machen kann?

Overflow schrieb:
> Es ist quasi wie ein Chat. Einer der vier sendet, die anderen drei
> Empfangen. Senden soll nur möglich sein, wenn eben gerade nichts über TX
> herein kommt. Der Buffer soll 256 Zeichen betragen. Jeder der vier soll
> immer an die jeweiligen drei anderen senden können. Es gibt keinen
> Master. Alle gleichberechtigt. Baudrate bis 115k wäre nicht schlecht.
> Die Leitungslängen sind maximal zwei Meter lang.

Wie machst du es denn nun mit Java? Kann man mit Java löten und 
verdrahten? Welche der Libs ist das, das hätte ich gern gewusst :-)

TS

von Peter D. (peda)


Lesenswert?

Thorsten S. schrieb:
> Versteh nun nur Bahnhof, ich dachte es geht darum wie man das technisch
> machen kann?

Der erste Text war nur zur völligen Verwirrung und beschreibt nicht sein 
Problem.
Er will nur 3 serielle Geräte an einen PC anschließen und dafür kann man 
einfach 3 COMs öffnen.

von Overflow (Gast)


Lesenswert?

Peter D. schrieb:
> Er will nur 3 serielle Geräte an einen PC anschließen und dafür kann man
> einfach 3 COMs öffnen.

Tja, die Blüten des Forums. Nein, er will nicht einfach drei COMs 
öffnen. Sondern es sind vier Geräte vorhanden, deren TX-Daten von den 
anderen empfangen werden sollen.

Stefano (Gast) schrieb::
> Das wäre auch mit VSPE von eterlogic gegangen.

Das kannte ich nicht. Habe mir eine Lizenz gekauft. Nicht ganz 
selbsterklärend, aber man splittet die COM-Ports und bekommt vier 
virtuelle COM-Ports. Und dann verbindet man die vier virtuellen 
COM-Ports mittels Bridges.

Als nächstes wird es wohl auf eine µC-Lösung hinaus laufen.

von m.n. (Gast)


Lesenswert?

Overflow schrieb:
> Nicht ganz
> selbsterklärend, aber man splittet die COM-Ports und bekommt vier
> virtuelle COM-Ports. Und dann verbindet man die vier virtuellen
> COM-Ports mittels Bridges.

Das ist ja clever!

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Sowas hatte ich seinerzeit mit meinem COMTROL DeviceMaster gemacht. 
Musste aber über Windows und WxWidgets gehen.

von Horst S. (h3aau)


Lesenswert?

schon von TokenRing gehöhrt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.