Hallo Gemeinde! Ich bin auf der Suche nach einer Möglichkeit, mehrere COM Schnittstellen auf einen COM-Port umzuleiten. D.h. ich möchte am PC mit verschiedenen Programmen z.B. COM1-4 ansprechen, diese sollen dann über EINE Verbindung ,am besten USB, an einen µC übertragen werden, wo ich das Ganze wieder auseinanderwursteln kann. Das Ganze sollte bidirektional funktionieren. An den einzelnen Ports fallen nicht viel Daten an, max.9600baud und es ist auch nichts Zeitkritisches. Einige 1/10 sek Verzögerung machen nichts, man könnte also alles in ein Protokoll verpacken. Eine Suche über Google hat bis jetzt kein sinnvolles Ergebnis gebracht. Mir fallen auch ehrlich gesagt nicht die richtigen Schlüsselwörter ein. Gibt es sowas fertig, am besten natürlich Free- oder Shareware mit einer grafischen Oberfläche zum Konfigurieren. Leider reichen meine Kenntnisse in der PC Programierung dafür nicht aus. Die Software sollte unter Windows laufen. Viele Grüße, Steffen
Am einfachsten (ohne Konfigurationsaufwand) sind wohl 4 usb-seriell Wandler an einem USB-Hub
Such mal nach "Virtual Com" oder "COm over Ethernet" und ähnliches. Da wirst Du sowas als Hard- und Softwarelösungen finden. Sowas gibt es auf jeden Fall und hatte ich auch schonmal laufen.
Oh sorry, ich habe PC statt µC herausgelesen. Dann betrachte meinen Beitrag bitte als hinfällig.
Die Schwierigkeit ist der virtuelle COMPort Treiber, der mehrere Ports auf eines zusammenfasst, und auf einem Protokoll beruht. Das ist zwar machbar, braucht aber sehr gute Kenntnisse in PC Treibern
Mit etwas Installationsaufwand lässt sich das auch ohne Treiberprogrammierung erzielen. Es wird ein Programm geschrieben, das fünf serielle Schnittstellen bedient, vier mit den langsamen Schnittstellen der eigentlichen Anwendungen als Gegenstück und eine deutlich schnellere, über die der µC bedient werden soll, was zum Beispiel der VCOM-Treiber eines FT232 o.ä. sein kann. Nun wird noch ein Gegenstück benötigt, das die Verbindung zwischen dem zu schreiben Programm und den vier Anwendungsprogrammen herstellt, denn die alle sollen über serielle Schnittstellen miteinander kommunizieren. Und da kommt com0com* ins Spiel. Das ist ein "virtuelles Nullmodem" und stellt Paare von (virtuellen) seriellen Schnittstellen zur Verfügung, die wie mit einem Nullmodemkabel miteinander verbunden sind. Und so sieht das dann aus: Vier com0com-Pärchen, die z.b. COM10-11, COM12-13, COM14-15 und COM16-17 zur Verfügung stellen (man muss gegebenenfalls die Nummern anpassen, wenn die "langsamen" Anwendungen zu schlecht programmiert sind, um mit beliebigen Schnittstellennummern klarzukommen) Anwendung A -> COM10 Anwendung B -> COM12 Anwendung C -> COM14 Anwendung D -> COM16 Das zu schreibende "Konzentratorprogramm" kommuniziert mit COM11,13,15 und 17 sowie der schnellen Schnittstelle zum µC hin. *) http://com0com.sourceforge.net/
Viele Programme haben Schwierigkeiten mit solchen virtuellen Com Treibern. Deshalb würde ich wirklich schauen, dass Du kompatibel zu den Programmen bleibst. Ich würde erst einmal kontrollieren, ob alle Programme einzeln mit dem Com Treiber des FT232 zurecht kommen. Wenn ja, würde ich einfach 4 von denen auf Deine Platine packen, davor noch einen USB Hub Chip, und mit einer Leitung zum PC Schicken. Die 4 Stück FT232 kannst Du dann an einen Prozessor hängen, wenn gewünscht - wie es Julian O. schon weiter oben beschrieben hat.
Hallo, ich habe gerade beim Configurator meiner Lantronix-Com-over-Ethernet-Installation nachgesehen: ich kann ohne weiteres 4 virtuellen COM-Schnittstellen den gleichen Empfänger, sprich IP-Adresse, zuordnen. Ob das allerdings dann auch im Betrieb klappt, kann ich nicht sagen - wahrscheinlich kann nur eines davon gleichzeitig geöffnet sein. Da die PC-Programme wahrscheinlich "ihr" COM offen halten, sind die Aussichten eher schlecht. Gruss Reinhard
Erst mal Danke für die Infos und Tipps! Ich sehe schon, es wird nicht einfach... Wahrscheinlich ist die Lösung mit den 4x FT232 die kompatibelste Lösung. Mittlerweile gibt es ja einen fertigen 4fach Wandler von FTDI, den FT4232. Ist es möglich unter dem VirtualComPort-Driver an den seriellen Datenstrom mit SPI oder ähnlichem ranzukommen? Ich will darauf hinaus, das die Anwendungen auf dem PC mit beliebiger Baudrate, Stop- und Paritätbits senden könnten und ich am anderen Ende den µC immer mit max. Geschwindigkeit auslesen lasse, ohne mich um die Einstellungen am PC zu kümmern. Würde die ganze Sache natürlich sehr Anwenderfreundlich machen. Gruß Steffen
Steffen N. schrieb: > ... Ich will darauf hinaus, das die Anwendungen auf dem PC mit > beliebiger Baudrate, Stop- und Paritätbits senden könnten und ich am > anderen Ende den µC immer mit max. Geschwindigkeit auslesen lasse, ohne > mich um die Einstellungen am PC zu kümmern. Würde die ganze Sache > natürlich sehr Anwenderfreundlich machen. Hallo Steffen, eine Möglichkeit (ohne Garantie), mit aufwendiger Hardware, aber ganz ohne eigene Software: An den µC ein XPort von Lantronix anschliessen - das ist ein V24 <-> Ethernet Adapter. Auf dem PC mit com0tcp 4 virtuelle COMx generieren und die IP-Adresse des XPort eintragen. Die senden dann (hoffentlich, der Teufel steckt im Detail) unabhängig von den COMx-Einstellungen die Daten per Ethernet an den XPort und der gibt sie an den µC weiter (mit seinen lokalen Einstellungen). Eine eigene Transfersoftware ist nicht nötig, das erledigt die Tatsache dass alle 4 COMx an den gleichen XPort senden. Scheitern kann das am Öffnen und Schliessen der COMx: normalerweise nimmt ein virtuelles Port beim Öffnen (per CreateFile) Kontakt zum XPort auf und der verweigert dann weitere Verbindungen - ist aber ziemlich komplex, vielleicht gibt es eine Einstellung, in der es geht. Gruss Reinhard
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.