Hallo zusammen, nach einer verzweifelte Suche im Web, dachte ich mir ich stelle mal die Frage hier. es kann für viele von euch eine banale Sache sein aber ich kann keine vernünftige Informationen im Netzt finden. Es geht um COM-Schnittstelle. ich weiss bereit dass es um die serielle Schnittstelle RS232 handelt. Was mich aber durcheinander bringt ist der Zusammenhang zwischen: COM-Ports, USB und die COM Schnittstelle. Hier ist mein Problem: Mein PC hat nur eine Physikalische COM-Schnittstelle. Aber über die angeschlossene Geräte melden sich jeweils an COM1, COM2... selbst wenn die über USB angeschlossen sind. wie ist geht das denn? was sind die COM1 bzw COM2? ist es eine reine virtuelle Geschichte? Kann man das beeinflussen oder ist es eine Sache vom Betriebssystem oder vom USB-Host?wie kann ich rausfinden über welchem COM sind ein Device meldet? Ich bedanke mich bei euch und freue mich auf jede Erklärung
"COM Port" ist die Hardware, "RS232" das Übertragungsverfahren, und "COM Device" bzw COM1 ..COM4 ist der Name, den DOS damals an die einzelnen Schnittstellen vergeben hat, das wurde seitdem beibehalten. (Nur irgendwann auf COM-Port-Nummern > 9 erweitert, '\\.\COM42' oder so...) USB hat damit garnichts zu tun, ausser: Es gibt Geräte, die mit Hilfe des Betriebsystems vorgaukeln, sie wären an einem COM-Port angeschlossen, obwohl sie das nicht sind, und der PC evtl so einen garnichtmehr besitzt. Solche Geräte sind oft, aber nicht zwingend, per USB verbunden. Herausfinden, welches Gerät welche Port-Nummer erhalten hat, kann man wohl mit Registry-Suchereien oder so. Da frag aber besser einen Windows-Profi.
:
Bearbeitet durch User
Εrnst B✶ schrieb: > erausfinden, welches Gerät welche Port-Nummer erhalten hat, kann man > wohl mit Registry-Suchereien Einfacher über den Gerätemanager. Dort kann man die Zuordnungen auch ändern, wenn es sein muß.
Zuerst vielen Dank für die schnelle Antworte. also nur um sicher zu gehen dass ich richtig verstanden habe: "COM PORT" ist die Hardware Schnittstelle. und COM1 bis COMx sind jeweils die Namen der einzelnen Ports, also Anschlüsse. Ich weiß schon dass USB nichts mit COM zutun hat, aber es kommt schon vor, wie du gesagt hast, dass einige Geräte, obwohl die übe USB angeschlossen sind,sich von einem COMx Port anmelden. Wie ist das Möglich? ist es also ein reines Virtuelles Port? denn auf dieser Art kann ich mir schon vorstellen dass ihre Anzahl beliebig erweiterbar ist. Außerdem zeigt manchmal der Geräte Manager COM1 bis COMx obwohl es nur eine einzige Hardware-Schnittstelle gibt. Oder irre ich mich gerade ?? Das mit dem Geräte Manager werde ich probieren. Vielen Dank noch mal
chaqy Bruno schrieb: > Wie ist das > Möglich? Ganz einfach: Programm sagt: ich will auf COM2 zugreifen. Betriebsystem sagt: COM2 ist ein echter Comport, ich benutze meinen default-Treiber. Oder: Betriebssystem sagt: COM2 gehört einem USB-ACM Gerät, ich benutze usbser.sys Oder: Betriebssystem sagt: COM2 gehört einem FTDI, Prolific, XXX, YYY, ZZZ Gerät, ich benutze den Treiber, der dazu installiert wurde.
Aha, Es wird nicht nur vom Betriebssystem zugewiesen, sondern die Geräte selbst können einen bestimmten Port über ihren Treiber wählen. Dann je nach der Art des gewählten Port reagiert der Betriebssystem auf die Anfrage mit der Wahl des jeweiligen Schnittstellentreiber. jetzt habe ich es verstanden Danke,
chaqy Bruno schrieb: > COM1 bis COMx sind > jeweils die Namen der einzelnen Ports, also Anschlüsse. Genauer ausgedrückt sind es die Namen der Softwareschnittstellen, unter denen Programme das Betriebssystem ansprechen können, um serielle Datenkommunikation zu starten. Dem Programm kann es dabei völlig egal sein, welche Art von Hardware dahinter steckt (bzw. es weiß davon gar nix), denn darum kümmern sich OS und Devicetreiber. > Außerdem zeigt manchmal der Geräte Manager COM1 bis COMx obwohl es nur > eine einzige Hardware-Schnittstelle gibt. Da COMx nur Softwareschnittstellen sind, muß nicht unbedingt auch ein Gerät dahinter stecken. Das Programm bekommt in dem Falle einfach einen Fehler á la "Gerät nicht vorhanden oder nicht bereit" zurückgemeldet.
chaqy Bruno schrieb: > sondern die Geräte > selbst können einen bestimmten Port über ihren Treiber wählen Nein. Welche COMx dem Gerät (Hardware) zugewiesen wird, legt das Betriebssystem fest. Unter Windows kann man die Zuordnungen auch manuell ändern, wenn z.B. die Software nur COM1 bis COM4 erlaubt, das Device aber bspw. auf COM9 liegt (die entsprechende COM darf natürlich nicht schon von anderer Hardware belegt sein).
Das gibt auch Sinn. Denn die Schnittstellen sind ja da um den Datenaustausch zu ermöglichen egal was das für Geräte sind solang das Abkommen "Schnittstellen-Definition" respektiert wird. Bei mir war das Problem dass ich nicht wusste was ich von allen diesen Begriffe an HW bzw SW zuordnen sollte. Ich dachte nämlich die COM-Ports sind genau "und genau nur " die RS-232 HW Schnittstellen "HW-Anschlüsse". Das heißt es müsste also nur COM1 geben wenn es nur eine HW-Schnittstelle gibt. Und das hat mich verwirrt!! Du bist mein Held ;-) danke dir noch mal
chaqy Bruno schrieb: > Denn die Schnittstellen sind ja da um den > Datenaustausch zu ermöglichen egal was das für Geräte sind solang das > Abkommen "Schnittstellen-Definition" respektiert wird So ist es. > Ich dachte nämlich die COM-Ports > sind genau "und genau nur " die RS-232 HW Schnittstellen > "HW-Anschlüsse". Die Verwirrung kommt möglicherweise daher, daß früher, als die PCs noch in ISA-Architektur aufgebaut waren und es weder USB noch virtuelle Geräte gab, hinter einer COM-Schnittstelle i.d.R. auch immer RS232-Hardware steckte. Wenn da jemand COM sagte, meinte er damit die physische serielle Schnittstelle. Obwohl DOS bereits entsprechende Softwareschnittstellen (DOS-Interrupts genannt) besaß, umgingen "findige" Programmierer diese und sprachen die Hardware direkt über die zugehörigen I/O-Ports an, um ein paar der wertvollen CPU-Takte zu sparen, Das hat seinerzeit funktioniert, weil nur ein einziger Task lief und somit keine Konflikte auftraten. Heute geht das nicht mehr, da direkte Hardwarezugriffe aus gutem Grund vom Betriebssystem unterbunden werden und somit die "findig" programmierten Anwendungen nicht laufen.
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.