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
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?
"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.
µ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.
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
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
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...
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.
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
@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.
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
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.
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
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.