C'est très déroutant, mais vous n'avez pas à vous en préoccuper. Tout d'abord, pensez à un UART qui lui-même est un terme générique, mais pensez à celui qui produit un protocole avec un bit de départ, un ou deux bits d'arrêt, 7 ou 8 généralement des bits de données, et parfois une parité qui est paire ou impaire; cela peut varier à partir de là, ce qui le rend encore pire.
L'UART est au niveau TTL, quoi que cela signifie. Auparavant, c'était 5 V et maintenant 3,3 V, 1,8 V ou autre chose; peut-être que TTL est le mauvais terme. ALORS vous aviez / avez RS-232, RS-422, etc. Ce sont des normes de TENSION ET DE PIN, pas des normes de protocole. Il est incorrect de mélanger les termes et de dire RS-232 lorsque vous entendez une sorte d'UART.
À l'époque où votre UART était sur vos cartes mères et vous vouliez une sorte de connecteur vers le monde extérieur avec des niveaux de tension qui avaient du sens à l'époque et une sorte de brochage / câble standard. Ainsi, un standard populaire à 25 et 9 broches a souvent été trouvé pour divers périphériques, et dans le monde des PC Wintel, cela s'appelait un port COMmunication ou parfois un port série.
Bien sûr, un port qui transporte des données série peut et est appelé un port série, SPI, I²C, MDIO, UART, HDLC, SDLC, etc., et peut-être même USB et SCSI; vous pourriez devenir fou avec ça. Habituellement, un port série signifie quelques broches que vous pouvez obtenir sur un UART.
Le monde Unix / Linux dit tty
au lieu de com
/ serial
/ uart
, mais c'est la même chose.
Maintenant, il y a la MISE EN ŒUVRE. Vous pouvez acheter une puce UART avec une interface (oui, vous pouvez avoir un UART SPI, qui est série aux deux extrémités, ou I²C UART ou un bus dédié ou USB, etc.). Même à l'époque, l'UART avait un bus d'un côté grâce auquel le CPU communiquait. Aujourd'hui, nous avons FTDI et d'autres fournisseurs qui font de belles solutions USB UART, cela ne rend pas différentes couches d'interface entre le logiciel et l'UART et puis l'autre côté de l'UART a une certaine interface, que ce soit au niveau TTL / puce ou RS-232C ou RS-422, etc.
Au début des Arduinos, vous utilisiez souvent une carte FTDI USB-UART qui alimentait également l'Arduino. Certains ont cette alimentation USB et série / UART sur la carte Arduino elle-même, puis celle-ci est connectée à la carte UART sur la puce AVR (même accord avec un processeur avec quelques couches de bus pour permettre au logiciel de communiquer avec un UART qui a une interface de l'autre côté, dans ce cas, les broches sur le bord de l'AVR, aux niveaux de tension de la puce, TTL).
Étant donné que la fonctionnalité UART n'a pas changé depuis des décennies, pourquoi la terminologie logicielle ou même les applications logicielles devraient-elles changer au niveau de l'application? Écrivez une application Linux / Unix TTY il y a 10-15 ans contre une puce UART sur votre carte mère, et il y a de fortes chances qu'elle fonctionne encore aujourd'hui avec un niveau USB vers TTL ou USB vers RS-232C ou RS-422 ou autre broche / définition de niveau. Il en va de même pour Windows, et j'ai un code aussi ancien qui fonctionne toujours sur les deux. Dans le monde Windows, le terme COM est utilisé.
Je n'ai pas utilisé le bac à sable Arduino depuis un certain temps et si c'était le cas sur Linux, mais je ne serais pas surpris si ce programme qui est Java, si je me souviens bien, est générique et utilise le nom du système ainsi ttyS2
sur Linux et COM2 sur les fenêtres.
En relisant votre question, cela peut aller beaucoup plus loin, en tirant parti de la quantité de logiciels déjà existante qui utilise ces appels d'API. Encore une fois pendant des décennies, il n'y a aucune raison pour laquelle vous ne pouvez pas créer un port virtuel dans un logiciel qui transporte ces données bidirectionnelles à peu près tout ce à quoi vous pouvez penser. L'UART vers Ethernet est très courant, et dans les salles de serveurs où les serveurs utilisent encore beaucoup les ports COM / TTY / RS-232, vous pouvez avoir un serveur terminal qui a un certain nombre d'interfaces que vous pouvez connecter à un certain nombre de serveurs, puis Ethernet de l'autre côté, puis si vous choisissez de ne pas vous connecter à telnet, vous pouvez installer un pilote de port COM virtuel.
Ensuite, votre application sur votre ordinateur pense qu'elle parle à un port COM, mais en fait ce flux d'octets saute sur Ethernet puis frappe le serveur de terminal, ALORS, à un niveau UART vers RS-232C (mais pas nécessairement brochage) des câbles à le serveur et revenir de la même manière.
Parfois, il n'y a aucune raison de se rendre dans un véritable UART, pour une raison quelconque, virtualisez un port COM afin que le logiciel qui a été écrit pour ces appels API puisse toujours fonctionner. Vous pourriez peut-être penser à l'ancien logiciel bancaire que nous utilisons encore, qui possède un terminal stupide vers une interface UART qui, peut-être à l'époque, était câblé ou est entré dans un modem pour éventuellement devenir un serveur. Vous pouvez faire en sorte que le logiciel fonctionne toujours, grâce à différentes quantités d'émulation, y compris un port COM virtuel qui, aujourd'hui, descend probablement Ethernet vers le serveur en tant que flux série (TCP / IP par exemple).