Forum: Mikrocontroller und Digitale Elektronik Wer kann sowas bauen?


von Lars Thalheim (Gast)


Lesenswert?

Hallo,

ich bin auf der Suche nach einer Lösung für folgendes Problem:

Ich möchte ein Gerät bauen, das zwei serielle Eingänge und einen
seriellen Ausgang haben soll (wobei Ein- und Ausgang nicht heißt, das
dort jeweils nur gesender ODER empfangen wird. Die seriellen
Schnittstellen sollen schon bidirektional betrieben werden).

Das Ganze soll dann wie ein serieller Umschalter funktionieren. Sprich:
ein Computer am Ausgang gibt an die Box ein Kommando "Schalte den COM 1
für 8 bit durch". Darauf hin schaltet die Box den COM 1 (Eingang) auf
den Ausgang. Dann kommt vom PC der Befehl "Schalte den COM 2 für 32
Bit durch". Dann schaltet die Box 32 Bit vom COM 2 (der andere
Eingang) auf den Ausgang durch.

Sowas sollte doch mit ein oder zwei µControllern machbar sein, oder?

Welche µController könnte man dafür nehmen, wenn es um den möglichen
Speicherbedarf des Programms geht. Ich habe noch keine Erfahrung mit
den Programmgrössen bei µControllern.

Für einen Tip wäre ich dankbar...

MfG, Lars Thalheim

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

ich kenne solche Umschalter als "elektronsiche Druckerweichen" für den
(sogar bidirektional) Parallelport. Da hab ich sogar noch ein paar von
im Keller rumfliegen.

Düster erinnere ich mich, daß man ds auch per Software umstellen
konnte.

Möglicherweise hat der Hersteller ja sowas auch in seriell gehabt (bin
mir nicht ganz sicher)

Wäre das nicht eine Idee, einfach ein solch fertiges Teil zu nutzen?

von Ruediger (Gast)


Lesenswert?

"Dann schaltet die Box 32 Bit vom COM 2 ..."

Wie bitte soll ein COM-Port (Serieller Controller) mehr
als 5-8 Bit plus 1-2 Stopbits übertragen!?

Schon mal die Literatur über Serielle Schnittstellen gelesen?

Gruß R.

von Philipp Sªsse (Gast)


Lesenswert?

µC? Wenn das tatsächlich einfach ein gesteuerter Umschalter sein soll
(also nicht z.B. Daten vom gerade nicht durchgeschalteten Port puffern
mußt), reichen doch ein paar FETs, vielleicht über eine nicht benutzte
Handshakeleitung angesteuert.

von Sebastian F. (Gast)


Lesenswert?

ATMEGA162

der hat 2 Hardware UARTS und den dritten könnte man per Software
machen. Alternativ könnte man auch mit nem Relais auf einen der Beiden
HW-Uarts die Drähte umschalten.

mit 16kb Speicher ist der auch ausreichend.

seb

von frank (Gast)


Lesenswert?

ein weiterer µC wäre der M16C62 (M30624FGFP bei Reichelt)
 Ist zwar ein 16-Bit-µC und für die Aufgabe sicherlich unterfordert,
hat aber Standardmäßig 3 SIOs drin

Frank

von TravelRec. (Gast)


Lesenswert?

Technisch ist das auch mit einem Controller möglich, der am Seriellen
Port lauscht, ob für ihn Befehle kommen und ensprechend über
Gatterschaltkreise die Signale von a nach b oder c leitet. Nicht so
trivial wäre allerdings die Steuerung, die per Treiber oder sonstwie
gearteter Software auf dem PC installiert werden müßte. Oder aber der
Controller müßte sich an ein bereits bestehendes Protokoll halten...

von Santa Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Wie wäre es mit dieser Schaltung?  "CTRL" ist der Steuereingang.
Liegt an ihm eine "1" an, so ist Port 1 mit Port Q verbunden; liegt
an ihm eine "0" an, so ist Port 2 mit Port Q verbunden.  An den
Steuereingang kannst Du einen machanischen Schalter anschließen, oder
Du kannst das Umschalten von einem µC erledigen lassen (grüner Teil).


Die Aufgabe des µC ist denkbar einfach: Er schreibt die an Port 1
"gelauschten" Bytes, die über seinen UART reinkommen, in einen z. B.
8 Bytes großen Ringpuffer in seinem RAM.  Nach jedem eingetroffenen
Byte prüft er, ob der Pufferinhalt mit einer von zwei
"Steuer-Kennungen" übereinstimmt (z. B. Kennung 1 = 'SWITCH_TO_1',
Kennung 2 = 'SWITCH_TO_2').  Ist dies der Fall, gibt er auf einem
seiner Ausgangspins entsprechend der Kennung entweder eine "0" oder
eine "1" aus.  Das ist alles.  Sichergestellt sein muß bei der
Geschichte nur, daß die Kennungs-Strings niemals im regulären
Datenstrom auftreten.

Möchtest Du nicht nur die RxD- und TxD-Leitung schalten, sondern z. B.
auch noch die DTR- und RTS-Leitungen, so mußt Du das Netzwerk sinngemäß
erweitern.  Wie, sollte klar sein.

von Lars Thalheim (Gast)


Lesenswert?

Ich danke erstmal für die vielen Anregungen.

Eine Frage hätte ich allerdings noch. Im Prinzip handelt es sich wie
Wegstabenverbuchsler oben sagte, tatsächlich um einen
"Druckerumschalter" für die serielle Schnittstelle. Er muß nur eben
per Software-Kommando umgeschaltet werden können.

Da gibt es offensichtlich recht viele elegante Lösungen. Die Lösung mit
dem µC war in gewisser Weise ein Schnellschuß von mir.

Da mir die Kenntnisse für so etwas fehlen, frage ich einfach mal nach:
Gibt es hier im Forum nicht jemanden, der so ein Gerät einigermaßen
stabil (Schrägstrich: professionell) bauen kann? Natürlich nicht
umsonst.

Bei Bedarf: meine Email-Adresse ist lars.betzin@gmx.de

von TravelRec. (Gast)


Lesenswert?

@lars:

Wie gibst Du denn das Kommando: "Umschalten", welche Software macht
das mit welchen Bytes? Die Schaltung an sich ist dann trivial, ein
kleiner Prozessor wartet am RS232 auf den Befehl "...schalte von x
nach y" und schaltet dann mehrere Tristate-Gatter in der gewünschten
Weise um. Solange muß dann die Daten-Übertragung natürlich ruhen. Ich
sehe das Problem mehr auf der PC/Treiberseite.

von GerhardB (Gast)


Lesenswert?

Hallo

Soll die beschriebene Hardware mit deiner eigenen Software laufen oder
sollen später jegliche Geräte, die mit einer RS232 arbeiten betrieben
werden, die auch ihre eigene Software zur Kommunikation verwenden?

Soll Hardware-Handshaking verwendet werden? Ansonsten wären ja noch
einige Steuerbits frei.

Sollen Text oder Binärdaten ausgetauscht werden?

Wie viele solcher "Umschalter" sollen hergestellt werden?

Kannst du die geplante Anwendung evtl. noch etwas beschreiben. Dann
kann man sich auch überlegen, welche Hardware und Software notwendig
sein wird.

Beste Grüsse

Gerhard

von Lars Thalheim (Gast)


Lesenswert?

Ich fasse das Gerät noch mal zusammen.

Ich brauche im einfachsten Sinne ein Y-Kabel für die serielle
Schnittstelle, die aber nicht zwangsweise universell sein muß, sondern
ruhig für diesen einzelnen Anwendungsfall spezialisiert sein darf.

Ich habe einen PC, den ich frei programmieren kann. Zu deutsch, ich
kann am PC mit meinem eigenen Programm bestimmen, welchen Befehl ich
zum Umschalter schicke, um die Box umschalten zu lassen.

Angeschlossen sind zwei Messgeräte, die Ihre Daten auf "Anfrage vom PC
an den PC liefern sollen. Da ich am PC nur einen COM-Port habe (und auch
keinen weiteren einbauen kann), soll der Umschalter aus EINER seriellen
Schnittstelle, ZWEI machen.

Übertragen werden binäre Daten. Ich könnte mir also vorstellen, ähnlich
wie bei HAYES-kompatiblen Modems mit einer Escape-Sequenz zu arbeiten.

Beispiel:

Der PC (angeschlossen am "COM-Out" der Box) sendet an die Box ein
"+++#1" für den ersten COM-Port ("COM-In1" an der Box) und
"+++#2" für den zweiten COM-Port ("COM-In2" an der Box).

Die Box lauscht auf den Datenstrom vom PC (eingehende Daten am
COM-Out). Sobald die Bytes "+++#" auf der Leitung gesehen werden,
schaltet die Box auf den mit der Ziffer bezeichneten Port um. Sie
verbindet quasi auf Kommando COM-In1 mit COM-Out, oder alternativ
COM-In2 mit COM-Out.

Ansonsten läßt die Box alle Daten in beide Richtungen entsprechend der
momentanen Schaltung durch.

Wenn ich das richtig sehe, dürfte dafür ein µC als Umschalter, zwei
MAX232 und etwas Fußvolk (Widerstände, Kondensatoren, logische Gatter,
DB9-Buchsen, etc.) nebst Platine benötigt werden. Ansonsten braucht man
sicher noch ein Stück Software für den µC als Firmware. Die horcht auf
den Datenstrom und schaltet bei entsprechendem Kommando die
Schnittstelle um.

Wenn ich mehr Zeit hätte, würde ich mich an diese Box selber machen.
Leider habe ich nur max. 4 Wochen Zeit und das reicht nicht, um mein
spärliches Wissen über Elektronik entsprechend aufzufrischen.

Deshalb die Frage an dieses Forum, ob jemand diesen Umschalter für mich
baut: gegen Bezahlung.

von GerhardB (Gast)


Lesenswert?

Hallo Lars

Besten Dank für Deine Infos. Wenn ich richtig aus Deinen Angaben
entnehme, sollen nicht gerade eine grosse Menge an Geräten entstehen.

Unter der Annahme, dass du einen USB-Anschuss hast, könntest du dein
Problem elegant auch mit USB lösen.
Nämlich:
1 x USB-Hub
2 (oder n mal) x USB-zu Serial

Diese Teile gibt es als Kommerzware, du kannst Deine Anwendung beliebig
skalieren und es ist keine Programmierung eines uP. resp. der Aufbau
einer Schaltung notwendig. Ausserdem änderst du nichts am
Kommunikatiosnprotokoll der RS232.
Diese Lösung ist zudem sehr kostengünstig (etwa 50 Euro).

Beste Grüsse

Gerhard

von Philipp Sªsse (Gast)


Lesenswert?

Nimm ein Doppel-Umschaltrelais und einen Ansteuertransistor. Dafür
sollte Dein "spärliches Wissen" reichen! (-;

Du schaltest nicht kompliziert durch übertragene Bytes um, sondern über
eine Handshakeleitung, DTR oder sowas. Wenn das high wird, schaltet der
Transistor das Relais und RX und TX werden auf das andere Leitungspaar
umgeschaltet.

Ehrlich: es wäre unmoralisch, Dir das verkaufen zu wollen!

von Klaus Esser (Gast)


Lesenswert?

ich kann das machen, ruf' mich mal an!

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Nimm einfach einen "KVM" Switch (Keyboard_Video_Mouse Umschalter),
manche von denen können auch ferngesteuert werden. anstelle Keyboard
oder Mouse nimmst du halt deine Signalleitungen

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.