Hallo zusammen, ich hoffe, ich hab das richtige Forum erwischt. Da ich mehrere Geräte habe, die ich gleichzeitig via RS232 bedienen will, bin ich auf die Idee gewommen eine Art RS232 Switch zu bauen. Hier mal meine Idee: Der Switch wird via USB mit dem PC verbunden. Auf dem PC werden mehrere virtuelle COM Ports erstellt, die dann von den entsprechenden Programmen genutzt werden können. Der Switch entscheidet dann anhand des (noch zu definierenden) Protokolls, an welches Gerät er nun was senden muss. Ich weiss, USB ist eigentlich nicht für solche Dinge geeignet, aber wenn ich im PC, sowie im Switch genug Daten puffern kann, sollte dies hoffentlich keine Probleme geben. Auch könnte ich den Vorteil nutzen, dass USB schneller als RS232 ist und ich somit mehrere Geräte "gleichzeitig" bedienen könnte. Ich tendiere gegen bis zu zehn RS232 Schlittstellen mit einem Switch. Nun meine Fragen: 1. Ist das ganze Vorhaben überhaupt realisierbar und sinnvoll? Oder ist es besser, für jedes Gerät gleich einen USB zu RS232 Konverter zu kaufen und diese an einem USB Hub zu betreiben? (Das wäre sicher die schnellste und einfachste Lösung, aber ein bisschen basteln macht doch auch Spass) 2. Wie verwalte ich mit einem Programm/Treiber mehrere virtuelle COM Ports? Hat da jemand Links dazu (bin in Windows Programmierung nicht so fit). 3. Um zehn RS232 Schnittstellen bedienen zu können, benötige ich hardwareseitig schon mächtig Dampf, wenn alle Schnittstellen voll ausgelastet sind. Was wäre da am besten geeignet? Schneller Mikrocontroller oder gleich Richtung FPGA? Vielen Dank für eure Antworten!
be stucki schrieb: > 1. Ist das ganze Vorhaben überhaupt realisierbar und sinnvoll? Oder ist > es besser, für jedes Gerät gleich einen USB zu RS232 Konverter zu kaufen > und diese an einem USB Hub zu betreiben? (Das wäre sicher die schnellste > und einfachste Lösung, aber ein bisschen basteln macht doch auch Spass) von FTTI gibt es doch welche mit mehr als 1 RS232 > 2. Wie verwalte ich mit einem Programm/Treiber mehrere virtuelle COM > Ports? Hat da jemand Links dazu (bin in Windows Programmierung nicht so > fit). genausso wie du es mit einer faschst. Einfach eine neues Handle anlegen.
be stucki schrieb: > Oder ist es besser, für jedes Gerät gleich einen USB zu RS232 Konverter > zu kaufen und diese an einem USB Hub zu betreiben? > (Das wäre sicher die schnellste und einfachste Lösung, Noch wichtiger: es ist die sinnvollste Lösung. > aber ein bisschen basteln macht doch auch Spass) Schnitz ein hübsches Gehäuse drumdrum... > Um zehn RS232 Schnittstellen bedienen zu können, benötige ich > hardwareseitig schon mächtig Dampf, wenn alle Schnittstellen voll > ausgelastet sind. Was wäre da am besten geeignet? Schneller > Mikrocontroller oder gleich Richtung FPGA? Was willst du machen? 1x PC -> 1x USB -> 10x RS232 -> 1x uC? Definiere "voll ausgelastet".
Die Multiplexerei hatte ELV mal als Bausatz vermarktet. http://www.elv.de/controller.aspx?cid=683&detail=10&detail2=167328 http://www.elv-downloads.de/service/manuals/MUX232/MUX232_KM_G_000531.pdf Eventuell kannst du ja so was nachnutzen, wobei das Besorgen des Prozessors da schon das Problem sein könnte. Die USB Seite kannst du ja dann mit einem USB-COM Adapter machen.
Da ein USB-RS232-TTL Konverter nur 2-3€ beim Chinesen kostet würde ich sagen.. das lohnt nicht.
Lothar Miller schrieb: > Was willst du machen? > 1x PC -> 1x USB -> 10x RS232 -> 1x uC? 1x PC -> 1x USB -> 1x uC/FPGA -> 10x RS232 -> 10x Gerät Lothar Miller schrieb: > Definiere "voll ausgelastet". Jedes Gerät sendet und empfängt kontinuierlich Daten mit 115.2kbit/s. Paul Hamacher schrieb: > Da ein USB-RS232-TTL Konverter nur 2-3€ beim Chinesen kostet würde ich > sagen.. das lohnt nicht. Taugen die was? Hatte schon mit einigen Konvertern Probleme, weil sie zu wenig Daten puffern konnten. Hatte mal einen guten von Moxa, kann ihn aber nicht mehr finden. Kostete aber auch ein bisschen mehr.
Besonders wenn das ganze noch unter Windows laufen soll sind selbst die USB-Seriell Wandler riskant. Treiberentwicklung unter Windows ist absolut nicht trivial. Wenn möglich steck eine PCI-Karte mit vielen RS-232 Ports in den Rechner. Die gibts mit bis zu 32 Ports.
Ich mach's mir mal einfach: http://www.delock.de/produkte/G_61860/merkmale.html http://www.logilink.eu/showproduct/AU0033.htm ... um nur die einfachen und günstigen Verdächtigen zu nennen.
Hallo, dein Konzept hat einen Haken: gleichzeitiger Emfang ist nicht möglich. Du hast ja in Wirklichkeit nur eine Schnittstelle die du umschaltest. Sowas geht unter bestimmten Bedingungen, z.B. habe ich das mit einem Protokoll geregelt: 1. Gesendet wird an alle parallel 2. Es antwortet nur das mit einer Adresse angesprochene Gerät Für so ein Protokoll kann man das schon rein in Hardware lösen, da man die Empfangsdaten verodern kann, aber dazu muss eben der Punkt 2 streng eingehalten werden. Kannst du das nicht garantieren, musst du bei deiner USB-FTDI-Lösung alle Empfänger (und ev. auch Sender) bis auf einen hardwaremässig blockieren, aber dann gehen auf den anderen Leitungen eingehende Daten natürlich verloren. Gruss Reinhard
Reinhard Kern schrieb: > dein Konzept hat einen Haken: gleichzeitiger Emfang ist nicht möglich. LOL, und wie meinst Du funktionieren dann die FT2232H (2* UART) und FT4232H (4*UART)? Natürlich kann man gleichzeitig empfangen (und auch senden), solange die Datenmenge insgesamt kleiner als die USB Schnitstellengeschwindigkeit bleibt. Die o.g. Chips arbeiten mit USB 2.0 High-Speed, also 480 MBit brutto. Natürlich haben die Schnittstellen FIFOs, aber bei 115200 Baud kann man IMO die Bytes auch einzeln in USB Pakete packen.
Reinhard Kern schrieb: > dein Konzept hat einen Haken: gleichzeitiger Emfang ist nicht möglich. Danke für deine Zweifel, ich versuche es deutlicher zu erklären: Mein Switch hat z.B. 10 RS232 Schnittstellen. Dann werden auf dem PC 10 virtuelle COM Ports erstellt, die andere Programme regulär nutzen können. Mein Treiber wurstelt die Daten in ein Protokoll und sendet dieses an meinen Switch. Der Switch weiss nun anhand des Protokolls, auf welcher RS232 Schnittstelle er die Daten an das Endgerät senden muss. Diese 10 RS232 Schnittstellen sind nicht physikalisch miteinander verbunden, sondern werden alle von meinem uC/FPGA bedient. Da USB schneller als RS232 ist, kann ich somit "gleichzeitig" an mehrere Endgeräte senden. Klar, es ist nicht gleichzeitig, doch das Endgerät bemerkt dies nicht. Rufus Τ. Firefly schrieb: > Ich mach's mir mal einfach: > http://www.delock.de/produkte/G_61860/merkmale.html Vielen Dank! Delock kannte ich noch gar nicht. Diese scheinen einige interessante Produkte zu haben. Wahrscheinlich wird es auf deinen Vorschlag hinauslaufen, eine Eigenentwicklung ist auf alle Fälle nicht günstiger. Christian Berger schrieb: > Wenn möglich steck eine PCI-Karte mit vielen > RS-232 Ports in den Rechner. Die gibts mit bis zu 32 Ports. Das ist sicher die zuverlässigste Möglichkeit, einen Steckplatz habe ich gerade noch frei. Allerdings schreckt mich das benötigte Adapterkabel ein bisschen ab. Hab jetzt schon einen armdicken Kabelbaum hinter dem PC...
be stucki schrieb: > ich versuche es deutlicher zu erklären: > Mein Switch hat z.B. 10 RS232 Schnittstellen. Der Begriff "Switch" ist hier unpassend gewählt. Das ist kein "Switch", denn es ist auch kein Umschalter, sondern es ist einfach nur eine USB-Seriell-Bridge mit mehreren simultan nutzbaren seriellen Ports. So etwas gibt es --wie ich bereits zeigte-- als fertiges Gerät von diversen Herstellern, so etwas gibt es aber auch als Baustein von FTDI, in diesem Fall mit vier simultan nutzbaren Schnittstellen: http://www.ftdichip.com/Products/ICs/FT4232H.htm So etwas entwickelt man nicht selbst, weil der Aufwand der Treiberentwicklung in überhaupt keinem Verhältnis zum erzielbaren Nutzen steht. Für die oben genannten Fertiggeräte oder auch diesen Baustein von FTDI gibt es fertige, millionenfach erfolgreich eingesetzte und getestete Devicetreiber. Und auch wenn die vier Ports des FT4323H nicht ausreichen, dann nimmt man halt mehrere davon und ein USB-Hub-IC. Auch diese Kombination ist ganz erheblich einfacher zu handhaben als die Treiberselbstentwicklung, und immer noch deutlich leistungsfähiger und flexibler als es eine CDC-Lösung wäre (die auf mit üblichen Betriebssystemen standardmäßig ausgelieferte Treiber zurückgreifen könnte).
So, ich habe mich für folgendes Produkt entschieden: http://www.delock.de/produkte/G_61860/merkmale.html Werde es in den nächsten Tagen bestellen, eine Weile lang testen und dann hier berichten ob das Ding was taugt. Oder hat das schon jemand erfolgreich im Einsatz? Vielen Dank für eure Hilfe, hat mir sehr weitergeholfen!
be stucki schrieb: > So, ich habe mich für folgendes Produkt entschieden: > http://www.delock.de/produkte/G_61860/merkmale.html die Beschreibung klingt aber irgendwie merkwürdig: > • Automatische Selektion der IRQ und I/O Adressen wie kann ein USB gerät IO oder IRQ vewenden?
Peter II schrieb: > wie kann ein USB gerät IO oder IRQ vewenden? Mit IO sind wohl die COM Ports gemeint. Warum sollte der Treiber des Konverters kein IRQ auslösen können? Mein bisheriger 1 Fach Konverter kann das auch.
be stucki schrieb: > Warum sollte der Treiber des > Konverters kein IRQ auslösen können? wenn überhaupt dann Events. IRQ werden dafür nicht verwendet.
Wozu tut man sich eigentlich immer wieder dieses USB-Treiber-Gefruzzel an? Wäre nicht eine Etehrnet-basierte IP-zu-multi-RS232-Bridge viel simpler zu nutzen? - kein Treiber auf der PC seite erforderlich - bei Bedarf beliebige Entfernung überbrückbar - plattformunabhängig vom Smartfon bis zum Mainframe Reicht das nicht an Vorteilen?
Frank schrieb: > Wozu tut man sich eigentlich immer wieder dieses USB-Treiber-Gefruzzel > an? Wäre nicht eine Etehrnet-basierte IP-zu-multi-RS232-Bridge viel > simpler zu nutzen? > - kein Treiber auf der PC seite erforderlich > - bei Bedarf beliebige Entfernung überbrückbar > - plattformunabhängig vom Smartfon bis zum Mainframe > > Reicht das nicht an Vorteilen? nein, den größten Nachteil hast du vergessen. Es funktioniert nicht mit anwendungen, die einen Com-Port brauchen.
Peter II schrieb: > wenn überhaupt dann Events. IRQ werden dafür nicht verwendet. Hmm, sobald via Konverter kontinuierlich Daten an den PC sende, habe ich laut Process Explorer jede Menge Interrupts, die ich sonst nicht habe. Das muss doch fast der Konverter oder dessen Treiber sein. Oder Process Exlorer zeigt Mist an.
be stucki schrieb: > Hmm, sobald via Konverter kontinuierlich Daten an den PC sende, habe ich > laut Process Explorer jede Menge Interrupts, die ich sonst nicht habe. > Das muss doch fast der Konverter oder dessen Treiber sein. Oder Process > Exlorer zeigt Mist an. das ist aber die USB Interrupts. Das hat nichts mit dem Treiber oder dem Gerät zu tun. Sie würde auch kommen, wenn du eine Festplatte an den USB anschluss anschließt.
Peter II schrieb: > das ist aber die USB Interrupts. Ob es ein USB Interrupt oder ein echtes RS232 Interupt ist, ist eingentlich egal. Hauptsache die Daten werden schnell verarbeitet :)
Peter II schrieb: > Es funktioniert nicht mit anwendungen, die einen Com-Port brauchen. Guckle nach tcp2com, ist ein Remapper, funktioniert.
Georg G. schrieb: > Guckle nach tcp2com, ist ein Remapper, funktioniert. was auch wieder ein Treiber ist, das problem wollst er ja umgehen.
Peter II schrieb: > was auch wieder ein Treiber ist, das problem wollst er ja umgehen. Unter Windumm oder Tunix ist es ein (virtueller) COM-Port, von einem "echten" nicht zu unterscheiden. Um das bis auf die Register Ebene zu simulieren, muss man schon etwas mehr Aufwand treiben.
Georg G. schrieb: > Unter Windumm oder Tunix ist es ein (virtueller) COM-Port, von einem > "echten" nicht zu unterscheiden. Um das bis auf die Register Ebene zu > simulieren, muss man schon etwas mehr Aufwand treiben. und wer wollte das wissen? Frank hatte gesagt, das die IP lösung einfacher ist. Dabei den Vorteil erwähnt > - kein Treiber auf der PC seite erforderlich und das stimmt nun mal nicht, wenn die Software eien COM erfordert.
Was spricht denn gegen einen RS422 but, mit allen devices dran. Die Topologie ist ja eh Master-Slave. Mit dem PC als Master.
Viktor N. schrieb: > Was spricht denn gegen einen RS422 but, mit allen devices dran. Die > Topologie ist ja eh Master-Slave. Mit dem PC als Master. Meine Geräte unterstützen das nicht. RS232 ist nicht für mehrere Teilnehmer auf einer Leitung ausgelegt. Einige Geräte senden nur auf Anfrage, lassen sich dann aber nicht mehr unterbrechen bis die Übertragung fertig ist, andere senden "einfach so" Daten raus. Bei den Eigenentwicklungen liesse sich das ja beheben, bei gekauften Geräte eher weniger. Edit: Und dann wirds auch lustig, wenn alle gleichzeitig senden wollen. Auch wenn da noch irgendwas dazwischen hängt, das die Übertragungen verwaltet, RS422 ist nicht schneller als RS232
>Edit: Und dann wirds auch lustig, wenn alle gleichzeitig senden wollen.
Auch wenn da noch irgendwas dazwischen hängt, das die Übertragungen
verwaltet, RS422 ist nicht schneller als RS232
Eben. Bei einem Master Slave sendet immer nur einer aufs mal, und der
Master bestimmt wer. Ich ging davon aus, das Protokoll sein noch nicht
festgelegt.
Und doch RS422 erreicht viel hoehere Geschwindigkeiten, das es
differentiell mit definierter Impedanz ist. RS422 ist im wesentlichen
RS485 ohne Richtungsumschaltung dafuer einem geshaerten
(differentiellen)Rueckkabel. Das eine (differentielle) Kabel geht vom
Master zu allen. Un das andere geht von allen zum Master.
Peter II schrieb: > Es funktioniert nicht mit anwendungen, die einen Com-Port brauchen. Ok, ich bin jetzt von eigenen Anwendungen ausgegangen. Die macht man dann einfach passend ...
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.