Es ist sehr verwirrend, aber Sie müssen sich keine Sorgen machen. Denken Sie zunächst an einen UART, der selbst ein Oberbegriff ist, aber denken Sie an einen, der ein Protokoll mit einem Startbit, einem oder zwei Stoppbits, 7 oder 8 Datenbits und manchmal Parität erzeugt, die gerade oder ungerade ist. es kann von dort abweichen, was es noch schlimmer macht.
Der UART befindet sich auf TTL-Level, was auch immer das bedeutet. Früher waren es 5 V und jetzt 3,3 V, 1,8 V oder was auch immer; Vielleicht ist TTL der falsche Begriff. DANN hatten / hatten Sie RS-232, RS-422 usw. Dies sind VOLTAGE- und PIN-Standards, keine Protokollstandards. Es ist falsch, die Begriffe zu mischen und RS-232 zu sagen, wenn Sie eine Art UART meinen.
An dem Tag, als sich Ihr UART auf Ihren Motherboards befand, wollten Sie eine Verbindung zur Außenwelt herstellen, deren Spannungspegel zu der Zeit Sinn machte, und eine Art Standard-Pinbelegung / -Kabel. So wurde häufig ein beliebter 25- und 9-Pin-Standard für verschiedene Peripheriegeräte gefunden, und in der Wintel-PC-Welt wurde dies als COMmunication-Port oder manchmal als serieller Port bezeichnet.
Sicher, ein Port, der serielle Daten überträgt, kann und wird serieller Port, SPI, I²C, MDIO, UART, HDLC, SDLC usw. und möglicherweise sogar USB und SCSI genannt. Sie könnten verrückt werden. Normalerweise bedeutet eine serielle Schnittstelle einige Pins, die Sie bei einem UART erhalten können.
Die Unix / Linux-Welt sagt tty
anstatt com
/ serial
/ uart
, aber es ist dasselbe.
Jetzt gibt es die IMPLEMENTIERUNG. Sie können einen UART-Chip mit einer Schnittstelle kaufen (yep, Sie können einen SPI-UART verwenden, der an beiden Enden seriell ist, oder I²C-UART oder einen dedizierten Bus oder USB usw.). Schon damals hatte der UART auf einer Seite einen Bus, über den die CPU letztendlich kommunizierte. Heute haben wir FTDI und andere Anbieter, die nette USB-UART-Lösungen anbieten. Einige Schnittstellenebenen zwischen der Software und dem UART sind nicht unterschiedlich. Die andere Seite des UART verfügt über eine Schnittstelle, sei es TTL / Chip-Ebene oder RS-232C oder RS-422 usw.
Frühe Arduinos verwendeten Sie häufig ein FTDI-USB-zu-UART-Board, das auch dem Arduino Strom lieferte. Einige haben diese USB-Stromversorgung und serielle / UART auf der Arduino-Platine selbst, und dann wird sie auf der gesamten Platine mit der UART auf dem AVR-Chip verbunden einige Schnittstellen auf der anderen Seite, in diesem Fall die Pins am Rand des AVR, auf Span-Spannungspegeln (TTL).
Warum sollte sich die Softwareterminologie oder sogar Softwareanwendungen auf Anwendungsebene ändern, da sich die UART-Funktionalität seit Jahrzehnten nicht geändert hat? Schreiben Sie eine Linux / Unix-TTY-Anwendung vor 10-15 Jahren gegen einen UART-Chip auf Ihrem Motherboard, und es besteht eine gute Chance, dass sie auch heute noch mit einem USB auf TTL-Level oder USB auf RS-232C-Level oder RS-422 oder einem anderen Pin funktioniert / Ebenendefinition. Das gleiche gilt für Windows, und ich habe Code, der so alt ist, dass er immer noch auf beiden funktioniert. In der Windows-Welt wird der Begriff COM verwendet.
Ich habe die Arduino-Sandbox seit einiger Zeit nicht mehr verwendet, und wenn ja, wäre dies unter Linux gewesen, aber es würde mich nicht wundern, wenn das Programm, das Java ist, wenn ich mich recht erinnere, generisch ist und den Systemnamen verwendet ttyS2
unter Linux und COM2 unter Windows.
Wenn Sie Ihre Frage erneut lesen, kann dies noch viel weiter gehen und die bereits vorhandene Menge an Software nutzen, die diese API-Aufrufe verwendet. Es gibt keinen Grund, warum Sie seit Jahrzehnten keinen virtuellen Port in Software erstellen können, der diese bidirektionalen Daten so gut wie alles nach unten bringt. UART zu Ethernet ist sehr verbreitet, und in Serverräumen, in denen Server immer noch sehr viel COM / TTY / RS-232-Ports verwenden, können Sie einen Terminalserver mit mehreren Schnittstellen haben, an die Sie eine Reihe von Servern anschließen können. dann Ethernet auf der anderen Seite. Wenn Sie sich nicht für Telnet entscheiden, können Sie einen virtuellen COM-Port-Treiber installieren.
Dann glaubt Ihre Anwendung auf Ihrem Computer, dass sie mit einem COM-Port kommuniziert. In der Tat springt der Bytestrom auf das Ethernet und schlägt dann auf den Terminalserver, dann auf ein UART-zu-RS-232C-Kabel (aber nicht unbedingt auf Pinbelegung) den Server und zurück auf die gleiche Weise.
Manchmal gibt es keinen Grund, tatsächlich zu einem echten UART zu gelangen. Virtualisieren Sie einen COM-Port aus irgendeinem Grund, damit Software, die für diese API-Aufrufe geschrieben wurde, weiterhin funktionieren kann. Sie könnten vielleicht über die alte Bankensoftware nachdenken, die wir immer noch verwenden, die ein stummes Terminal mit einer UART-Schnittstelle hat, das vielleicht früher einmal fest verdrahtet war oder in ein Modem ging, um schließlich einen Server zu verwenden. Sie können es so einrichten, dass die Software weiterhin funktioniert, und zwar durch verschiedene Emulationsgrößen, einschließlich eines virtuellen COM-Ports, der heute wahrscheinlich nur noch als serieller Stream (z. B. TCP / IP) vom Server zum Server geleitet wird.