wake-up-neo.com

Was ist der Unterschied zwischen "COM", "USB", "Serial Port"?

Ich bin verwirrt über diese 3 Konzepte.

Mein Verständnis ist, Serial Port bedeutet normalerweise RS-232-kompatibler Anschluss (RS = Recommended Standard). USB steht für Universal Serial Bus. Der Name enthält also den seriellen Anschluss. Unterstützt er RS-232? Was bedeutet das Universal?

Und was bedeutet COM-Port?

ADD 1

Einiges Verständnis aus Hans 'Antwort:

Um den Aufwand zu verringern, können Gerätehersteller in der Regel festlegen, dass sich ihr Gerät auch wie ein Gerät mit serieller Schnittstelle verhält. Dies beruht auf der Tatsache, dass viele Betriebssystem- und Sprachbibliotheken bereits die Unterstützung der Kommunikation über die serielle Schnittstelle enthalten. Eine solche Unterstützung ist jedoch nicht mit einem echten passenden Gerätetreiber vergleichbar.

HINZUFÜGEN 2

Ein gutes Nachschlagewerk über Serial Port HOW-TO .

Und übrigens das Linux-Dokument-Projekt ist wirklich nützlich.

23
smwikipedia

Serial port ist ein Gerätetyp, der einen UART Chip, einen universellen asynchronen Empfängersender, verwendet. Eine der beiden grundlegenden Möglichkeiten, einen Computer früher zu verbinden, waren parallele Anschlüsse die andere. Seriell ist einfach anzuschließen, es sind nicht viele Drähte erforderlich. Parallel war nützlich, wenn Sie schnell arbeiten wollten, Typ 8-mal schneller als seriell, aber Kabel und Anschlüsse waren teuer. Parallele E/A sind vollständig vom Computer verschwunden Entwürfe, die von den enormen Fortschritten bei den Bus-Transceivern erfasst wurden. Diese Art von Chip kann ein elektrisches Signal über eine Leitung übertragen.

COM stammt von MS-Dos und ist ein Gerätename . Abkürzung für "COMmunication port". Computer in den 1980er Jahren hatten normalerweise zwei serielle Anschlüsse, die auf der Rückseite des Geräts mit COM1 und COM2 beschriftet sind. Dieser Name wurde in Windows übernommen. Die meisten Treiber, die eine serielle Schnittstelle simulieren, erstellen ein Gerät mit dem Namen "COM". LPT war der Gerätename für Parallelports, kurz für "Line PrinTer".

RS-232 war ein elektrischer Signalisierungsstandard für serielle Schnittstellen. Es ist das einfachste Gerät mit sehr geringen Anforderungen an das Gerät, das nur eine Punkt-zu-Punkt-Verbindung unterstützt. RS-422 und RS-485 waren keine Seltenheit, da für jedes Signal ein Twisted Pair verwendet wurde, wodurch eine viel höhere Störfestigkeit erzielt und mehrere Geräte miteinander verbunden werden konnten.

USB bedeutet Universal Serial Bus. Unterstützt durch die Fähigkeit, einen Mikroprozessor in Geräte zu integrieren, die wenige Millimeter groß sind und ein paar Cent kosten. In den späten 1990er-Jahren wurden ältere Geräte ersetzt. Es ist universell, weil es viele verschiedene Arten von Geräten unterstützt, von Kaffeekannenwärmer über Festplattenlaufwerke bis hin zu WLAN-Adaptern für die Audiowiedergabe. Es ist seriell, es werden nur 4 Drähte benötigt. Und es ist ein Bus, Sie können ein USB-Gerät an einen beliebigen Port anschließen. Es konkurrierte mit FireWire, einem sehr ähnlichen Ansatz, der von Apple vertreten wurde, aber durch eine Landrutsche gewonnen wurde.

Der einzige Grund, warum serielle Anschlüsse heutzutage unter Windows immer noch relevant sind, ist, dass für ein USB-Gerät ein benutzerdefinierter Gerätetreiber erforderlich ist. Gerätehersteller mögen es nicht , Treiber zu schreiben und zu unterstützen. Sie verwenden häufig eine Verknüpfung in ihrem Treiber, die es zu einem Emulator für ältere Geräte mit seriellem Anschluss macht. So können Programmierer die Legacy-Unterstützung für in das Betriebssystem integrierte serielle Schnittstellen und für alle Sprachlaufzeitbibliotheken verwenden. Diese Emulatoren unterstützen Plug-and-Play-Funktionen eher unvollständig. Das Ermitteln des zu öffnenden spezifischen seriellen Anschlusses ist sehr schwierig. Und diese Treiber verhalten sich oft so, dass es unmöglich ist, Fehler zu diagnostizieren, wenn Sie ein USB-Gerät ruckeln, während Ihr Programm es verwendet.

35
Hans Passant

USB steht für Universal Serial Bus nicht Port . Der Begriff "serielle Schnittstelle" bedeutet einfach, dass die Daten bitweise über einen einzelnen Signalpfad übertragen werden - in diesem Sinne ist sogar Ethernet seriell Natur. Das Wort serial impliziert in beiden Begriffen keine andere Beziehung als die Breite des Datenpfads.

Sie haben Recht, dass der Begriff serielle Schnittstelle im Kontext eines PCs normalerweise eine RS-232-Schnittstelle bedeutet, aber es gibt andere serielle Schnittstellenstandards, wie z B. RS-422 und RS-485, die häufig in industriellen Anwendungen verwendet werden. Gemeinsam ist diesen, dass sie mit einem UART ( niversal Asynchronous Receiver/Transmitter ) implementiert werden.

Der Begriff Universal in USB spiegelt lediglich die Tatsache wider, dass es sich nicht um eine bestimmte Geräteschnittstelle handelt, wie z. B. die dedizierten Maus- oder Tastaturanschlüsse älterer Hardware. In ähnlicher Weise ist eine UART basierte serielle Schnittstelle nicht gerätespezifisch, was durch das U in UART widergespiegelt wird.

USB unterscheidet sich in vielerlei Hinsicht erheblich von RS-232. Es ist ein Master/Slave (oder Host/Gerät in USB-Terminologie) und kein Peer-to-Peer. Das USB-Gerät kann keine Kommunikation initiieren. Es muss vom Host abgefragt werden. USB enthält ein Niederspannungsnetzteil, mit dem Geräte mit mäßigem Strombedarf über den Bus mit Strom versorgt werden können. Daher können auch USB-Anschlüsse zum Laden von batteriebetriebenen Geräten verwendet werden. USB ist wesentlich komplexer als RS-232, das nur die physische (Hardware-) Schicht definiert, wohingegen USB einen vollständigen Softwareprotokollstapel erfordert.

Der Begriff COM ist lediglich ein Gerätenamenpräfix, das in Windows (und zuvor in MS-DOS) für einen seriellen (UART) Anschluss verwendet wird. Kurz für "Kommunikation", können Sie zum Beispiel einen COM-Port als Stream-E/A-Gerät mit sagen FILE* port = fopen( "COM1", "wr" ) ; öffnen.

8
Clifford