Forum: Mikrocontroller und Digitale Elektronik Mehrere COM Schnittstellen an einem USB Port


von Ste N. (steno)


Lesenswert?

Hallo Bastel-Gemeinde,

ich suche nach einer Lösung um mit einem Mikrokontroller über einen USB 
Anschluß mehrer virtuelle serielle COM Schnittstellen anzuprechen. Also 
ähnlich dem bekannten FT232 nur das ich mindestens 3-4 COM Ports 
benötige. Kann man Mikrokontrollerseitig mehrere FT232 parallel 
schalten? bzw. gibt es dafür spezielle IC. Wie vehält es sich mit den 
Treibern auf der Windowsseite. Wenn mehrere FT232 an einem USB Port 
hängen, kommt es zu irgendwelchen Konfilkten und woher weiß das System 
welchem FT232 welcher COM Port zugewiesen ist, wenn sie Zwischendurch 
mal abgesteckt waren?

Ich hoffe meine Fragen waren einigermaßen verständlich? Wäre für eure 
Hilfe sehr dankbar.

Es gibt doch auch PICs mit USB Schnittstelle, eventuell gibt es in dem 
Bereich eine Lösung für mein Problem?

Viele Grüße,
Steffen

von Justus S. (jussa)


Lesenswert?


von Alex W. (a20q90)


Lesenswert?

Ich habe selbst 4 FT232 über einen USB-HUB-IC an einen USB-Port hängen. 
ergibt 4 einzellne COM-Schnittstellen.

Der FT4232 wäre aber ideal, leider ist er noch nicht wirklich zu 
bekommen...

von Daniel P. (daniel86)


Lesenswert?


von Juergen (Gast)


Lesenswert?

Mikrokontrollerseitig brauchst du enstsprechend viele serielle Ports.

Aber willst du wirklich von einem Mikrokontroller mehrere serielle 
Verbindungen zu ein und demselben Host machen? Das wäre ziemlich 
sinnlos, eine Datenverbindung mit einem geeigneten Protokoll sollte 
reichen.

von Jörg S. (joerg-s)


Lesenswert?

>vehält es sich mit den Treibern auf der Windowsseite. Wenn mehrere FT232
>an einem USB Port hängen, kommt es zu irgendwelchen Konfilkten und woher
>weiß das System welchem FT232 welcher COM Port zugewiesen ist, wenn sie
>Zwischendurch mal abgesteckt waren?
Ich meine das geht über Seriennummern.

Hatte vor einiger Zeit an der Arbeit an einem Rechner an die 30! 
identische USB-RS232 Wandler hängen (Allerdings nicht mit FTDI Chip). 
Hat tadellos funktioniert. Auch beim wiedereinstecken wurden wieder 
exakt die gleichen COM Ports wiederhergestellt.

von Ste N. (steno)


Lesenswert?

Erst mal Danke für die vielen nützlichen Hinweise!

Der FT4232 scheint ja wirklich wie für mein Problem gemacht :-) Mit der 
Verfügbarkeit ist es vorerst kein Problem, da ich die Schaltung eh erst 
mal testen muß. Dafür können ja auch 2x FT2232 herhalten. Wie ich das 
mit den 4 seriellen Ports am µC mache, werde ich sehen. Bei der 
Controllerwahl bin ich recht flexibel und bei den PICs gibt es auch 
welche mit 4 Hardware UARTs. Natürlich wäre es optimal wenn dafür nur 
ein SPI bzw. I2C Port benötigt würde. Da habe ich gleich noch einige 
spezielle Frage dazu. Bei diesen USB-COM Wandlern kann man doch sicher 
die Baudrate einstellen. Ideal wäre ja nun, wenn am anderen Ende der µC 
immer mit einer fixen Baudrate mit dem FT232 kommunizieren könnte. 
Unabhängig von der Einstellung auf dem PC. Die FTs haben ja einen recht 
großen I/O Puffer. Ist das möglich? Wie ich weiterhin gelesen habe, 
besitzen die FT2232 einen Fast Opto-Isolated Serial Interface Mode. 
Galvanisch getrennt wäre noch das I-Tüpfelchen. Sind die FTs in diesem 
Modus auch als virtuelle COM-Ports ansprechbar?

>Aber willst du wirklich von einem Mikrokontroller mehrere serielle
>Verbindungen zu ein und demselben Host machen? Das wäre ziemlich
>sinnlos, eine Datenverbindung mit einem geeigneten Protokoll sollte
>reichen.

Das wäre natürlich das Optimum! Leider bin ich nicht in der Lage, die 
dafür nötigen Treiber auf Windows, Linux und MacOS Seite 
bereitzustellen. Oder gibt es dafür irgend ne Free- bzw. Shareware? Das 
erwartete Datenaufkommen wird sich sehr in Genzen halten, pro Minute nur 
wenige Bytes. Reichen würde so ein Protokoll, welches mehrere COM-Port 
bündelt, allemal.

Viele Grüße,
Steffen

von P. S. (Gast)


Lesenswert?

Oehm, willst du da unbedingt was basteln, oder warum tut es kein 
fertiger USB<->RS232 Multiport Wandler?

von Ste N. (steno)


Lesenswert?

>Oehm, willst du da unbedingt was basteln, oder warum tut es kein
>fertiger USB<->RS232 Multiport Wandler?

Nun ja, die ankommenden Daten sollen natürlich im µC weiterverarbeitet 
werden und dieser soll eine entsprechende Rückantwort liefern. Auch 
Schrittmotore, Temperatur- und Feuchtesensoren kommen noch dran.

Viele Grüße,
Steffen

von Jörg S. (joerg-s)


Lesenswert?

>Natürlich wäre es optimal wenn dafür nur ein SPI bzw. I2C Port benötigt
>würde.
Es gibt I2C UART Bausteine.

>Bei diesen USB-COM Wandlern kann man doch sicher die Baudrate einstellen.
>Ideal wäre ja nun, wenn am anderen Ende der µC immer mit einer fixen
>Baudrate mit dem FT232 kommunizieren könnte. Unabhängig von der
>Einstellung auf dem PC.
Geht nicht. Die Wandler sind transparent. D.h. du stellst am PC die 
Baudrate ein, und die wird selbstverständlich dann auch am Chip 
ausgegeben.

von Rolf Magnus (Gast)


Lesenswert?

> Leider bin ich nicht in der Lage, die dafür nötigen Treiber auf
> Windows, Linux und MacOS Seite bereitzustellen.

Was für Treiber?

> erwartete Datenaufkommen wird sich sehr in Genzen halten, pro
>Minute nur wenige Bytes. Reichen würde so ein Protokoll, welches
> mehrere COM-Port bündelt, allemal.

Irgendwie verstehe ich dein Problem nicht. Du hast also einen PC, und an 
den möchtest du einen µC anschließen. Du hast nur sehr wenig 
Datenaufkommen, möchtest diese Daten aber dennoch auf vier serielle 
Schnittstellen verteilen, weil du glaubst, sonst irgendwelche Treiber zu 
benötigen? Soweit ergibt das irgendwie erstmal keinen Sinn.

von Ste N. (steno)


Lesenswert?

>Was für Treiber?

Irgendwie müssen die COM Schnittstellen doch auf USB umgeleitet werden? 
Ich hätte gedacht, das das mit einem passenden Treiber funktioniert. Auf 
der Linux und Mac Plattform kenn ich mich gleich gar nicht aus, deswegen 
will ich ja was fertiges.

>Irgendwie verstehe ich dein Problem nicht. Du hast also einen PC, und an
>den möchtest du einen µC anschließen. Du hast nur sehr wenig
>Datenaufkommen, möchtest diese Daten aber dennoch auf vier serielle
>Schnittstellen verteilen, weil du glaubst, sonst irgendwelche Treiber zu
>benötigen? Soweit ergibt das irgendwie erstmal keinen Sinn.

Natürlich laufen auf dem Windows, Mac, Linux-Rechner mehrere Anwendungen 
bzw. Plugins die irgendwelche Geräte über die serielle Schnittstelle 
steuern. Z.B. eine Aufnahmesteuerung für Kameras. Dort muß fokussiert 
werden, die Temperatur abgefragt, das Filterrad bewegt, evtl. noch ein 
Bildfeldrotator angesteuert werden usw. Und jedes Gerät benötigt 
logischerweise eine eigene Schnittstelle.


Viele Grüße,
Steffen

von Rolf Magnus (Gast)


Lesenswert?

> Auf der Linux und Mac Plattform kenn ich mich gleich gar nicht aus,
> deswegen will ich ja was fertiges.

Ich hatte das wohl falsch verstanden. Es kam für mich so an, als ob du 
bei einer Schnittstelle statt vier irgendwelche zusätzlichen Treiber zu 
brauchen glaubst.

> Dort muß fokussiert werden, die Temperatur abgefragt, das Filterrad
> bewegt, evtl. noch ein Bildfeldrotator angesteuert werden usw. Und
> jedes Gerät benötigt logischerweise eine eigene Schnittstelle.

Ach, es sind mehrere Geräte. Oben hast du doch geschrieben:

> Wie ich das mit den 4 seriellen Ports am µC mache, werde ich sehen.
> Bei der Controllerwahl bin ich recht flexibel und bei den PICs gibt es
> auch welche mit 4 Hardware UARTs.

Deshalb war ich davon ausgegangen, daß nur ein einziges an den vier 
COM-Ports hängt. Wozu brauchst du sonst einen µC mit 4 UARTS?

von Ste N. (steno)


Lesenswert?

> Ach, es sind mehrere Geräte. Oben hast du doch geschrieben:

> > Wie ich das mit den 4 seriellen Ports am µC mache, werde ich sehen.
> > Bei der Controllerwahl bin ich recht flexibel und bei den PICs gibt es
> > auch welche mit 4 Hardware UARTs.

> Deshalb war ich davon ausgegangen, daß nur ein einziges an den vier
> COM-Ports hängt. Wozu brauchst du sonst einen µC mit 4 UARTS?

Du hattest es schon richtig verstanden. Da die Steuerungsaufgaben nicht 
sehr komplex sind, wollte ich nur einen µC benutzen. Er hat ja nicht 
viel zu tun. Und da die zu steuernden Geräte zusammen an einem Platz 
stehen, könnte man sie alle an die zu bauende Kontrollerbox anschließen. 
Diese würde nun wiederum nur 1 USB Kabel zu PC benötigen.

Ich hoffe mein Vorhaben ist jetzt soweit klar. Werde mal schauen, wo ich 
so einen FT2232 herbekomme. Bei 
http://www.csd-electronics.de/de/index.htm sind sie recht günstig zu 
bekommen, allerdings handelt es sich um den FT2232L. Laut 
http://www.ftdichip.com/Products/FT2232C.htm soll man aber für neue 
Desings den FT2232D benutzen. Hat der Vorgänger irgendwelche Bugs?

von Gast (Gast)


Lesenswert?

Hallo Steffen,

die FTDI-Typenbezeichnung ist wie folgt:
FT2232C - alter Typ, mit Blei
FT2232L - Bleifrei
FT2232D - Bleifrei und zusätzliche Modi möglich

Man sollte wirklich nur noch den D-Typ verwenden.
Hier gibts auch fertige Module: www.b-redemann.de

Gruß

von gast (Gast)


Lesenswert?

frage :

warum verwendet man den µC wenn er ja nicht viel zu tun hat als 
datensammler??
also wenn es simple sensoren + motoren sind ....
alles den einen µC mache lassen und über 1 COM die daten schicken


ich habe es vlt falsch verstanden ....
bisher vertshe ich es so ...

er hat zB 4 sensoren/aktoren diese werden mit 1 µC  ausgewertet
dieser µC schickt die daten nun über 4 UARTs an 4 FTDI um in einem 
4fachHUB IC zu landen wo im PC 4 COM schittstellen auftauchen

jede COM hat nun einen sensor/aktor


effizienter ist es aber nun wirklich nur 1 COM zu nutzen und 
einpassendes protokoll zu verwenden

von Ste N. (steno)


Lesenswert?

Danke für die vielen weiteren Infos...

> effizienter ist es aber nun wirklich nur 1 COM zu nutzen und
> einpassendes protokoll zu verwenden

Sicher wäre das von allen die beste Lösung. Das Problem ist nur, das die 
Steuerungssoftware auf dem PC schon existiert. Siehe z.B. 
http://www.cyanogen.com/index.php, es gibt noch einige mehr von der 
Sorte. Die meisten Sensoren/Aktoren werden halt über COM Schnittstellen 
gesteuert. Finde ich ja auch in Ordnung, läßt sich nämlich sehr leicht 
für eigene Anwendungen nutzen. Wenn es eine einfache Möglichkeit gibt, 
mehrere COM-Schnittstellen softwaremäßig über einen Kanal zu bündeln, 
ohne das die Anwendung was davon merkt... immer her damit :-) Das sollte 
dann aber bitte auch für Linux und MacOS ohne Lizenzgebühren verfügbar 
sein. Wie ich schon weiter oben schrieb, bin ich nicht in der Lage 
solche Treiber selbst zu erstellen. Deshalb soll es etwas sein, was sich 
in der Praxis schon 1000fach bewährt hat. Für mich sind das, von der 
Handhabung her, eben diese USB-Seriell Wandler. Und das man davon 
problemlos mehrere an einen USB-Bus hängen kann, haben ja nun schon 
einige Poster erwähnt.

Viele Grüße!

von BinGast (Gast)


Lesenswert?

Sehr gute Erfahrungen habe ich mit moxa gemacht (http://www.moxa.com/)

Läuft dann über Ethernet. In Industriehallen bisher (toitoitoi) 
jahrelang ohne Störung. Dort habe ich riesen Kabelwirrwar durch eine 
Cat6 Dose ersetzt.

Zentral administrierbar und programmierbar ist das ganze auch.

Deutsche Vertretung ist Sphinx Computer, sehr professionell und 
freundlich.

von BinGast (Gast)


Lesenswert?

Kleiner Nachtrag,

die Steurungssoftware war auch vorhanden und wurde nicht geändert.
Lösung lautet COM-Server mit virtuellen COM-Ports im PC.

von BinGast (Gast)


Lesenswert?

Ein Erfahrungsbericht zu USB/seriell:

Das ganze ist bei mir 2 Wahl. Im Betrieb verlieren selbst die besten die 
ich kenne (FTDI) ab und zu die Verbindung. Verm. wenn Störimpulse kommen 
oder Ausgleichsströme fliessen. Dann hilft häufig nur ein Neustart des 
PCs.

USB ist halt kein Industrieprotokoll und hat im Gegensatz zu Ethernet 
auch keine galvanische Trennung.

Das ganze fällt auch häufig nur bei Geräten im 24/7 Einsatz auf. Bei 
einem Notebook (der eh ständig rauf und runter gefahren wird) ist das 
selten zu bemerken.

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.