É muito confuso, mas você não precisa se preocupar com isso. Primeiro, pense em um UART que seja um termo genérico, mas pense em um que produza um protocolo com um bit de início, um ou dois bits de parada, 7 ou 8 geralmente bits de dados e, às vezes, paridade par ou ímpar; pode variar a partir daí, o que a torna muito pior.
O UART está nos níveis TTL, o que quer que isso signifique. Costumava ser 5 V e agora 3,3 V, 1,8 V ou o que for; talvez TTL seja o termo errado. ENTÃO você tinha / possui RS-232, RS-422, etc. Estes são padrões de VOLTAGEM E PIN, não de protocolo. É incorreto misturar os termos e dizer RS-232 quando você quer dizer algum tipo de UART.
No passado, seu UART estava em suas placas-mãe e você desejava algum tipo de conector para o mundo exterior com níveis de tensão que na época faziam sentido e algum tipo de pinagem / cabo padrão. Portanto, um padrão popular de 25 e 9 pinos foi freqüentemente encontrado para vários periféricos e, no mundo dos PCs Wintel, isso era chamado de porta de comunicação ou, às vezes, porta serial.
Certamente, uma porta que transporta dados seriais pode e é chamada de porta serial, SPI, I²C, MDIO, UART, HDLC, SDLC, etc., e talvez até USB e SCSI; você pode enlouquecer com isso. Normalmente, uma porta serial significa alguns pinos que você pode obter em um UART.
O mundo Unix / Linux diz em tty
vez de com
/ serial
/ uart
, mas é a mesma coisa.
Agora existe a IMPLEMENTAÇÃO. Você pode comprar algum chip UART com alguma interface (sim, você pode ter um SPI UART, que é serial nas duas extremidades, ou I²C UART ou algum barramento dedicado ou USB, etc.). Mesmo naquela época, o UART tinha um barramento de um lado pelo qual a CPU estava se comunicando. Hoje, temos o FTDI e outros fornecedores que oferecem boas soluções USB UART, não diferenciam algumas camadas da interface entre o software e o UART e, em seguida, o outro lado do UART possui alguma interface, seja no nível TTL / chip ou RS-232C ou RS-422, etc.
Nos primeiros Arduinos, você costumava usar uma placa USB-UART FTDI que também fornecia energia ao Arduino. Alguns têm essa energia USB e serial / UART na placa Arduino e, em seguida, são conectados através da placa ao UART no chip AVR (da mesma forma que alguns processadores com algumas camadas de barramentos para permitir que o software se comunique com um UART que tenha alguma interface do outro lado, neste caso os pinos na borda do AVR, nos níveis de tensão do chip, TTL).
Como a funcionalidade UART não mudou em décadas, por que a terminologia do software ou mesmo os aplicativos de software devem mudar no nível do aplicativo? Escreva um aplicativo TTY Linux / Unix há 10 a 15 anos contra um chip UART na sua placa-mãe e existe uma boa chance de ele ainda funcionar hoje com um nível USB para TTL ou USB para RS-232C ou RS-422 ou qualquer outro pino / definição de nível. O mesmo vale para o Windows, e eu tenho um código antigo que ainda funciona em ambos. No mundo do Windows, o termo COM é usado.
Eu não uso a sandbox do Arduino há algum tempo e, se estiver, estaria no Linux, mas não ficaria surpreso se o programa Java, se bem me lembro, for genérico e usar o nome do sistema ttyS2
no Linux e COM2 no windows.
Relendo sua pergunta, isso pode ir muito mais longe, aproveitando a quantidade de software já existente que usa essas chamadas de API. Novamente, há décadas, não há razão para que você não possa criar uma porta virtual em software que transporta esses dados bidirecionais para praticamente qualquer coisa em que possa pensar. O UART to Ethernet é muito comum e, nas salas de servidores em que os servidores ainda usam muito as portas COM / TTY / RS-232, você pode ter um servidor de terminal com várias interfaces que podem ser conectadas a vários servidores, depois Ethernet do outro lado; se você optar por não fazer a telnet, poderá instalar um driver de porta virtual COM.
Em seguida, seu aplicativo no computador pensa que está falando com uma porta COM, mas, de fato, o fluxo de bytes está entrando na Ethernet e atingindo o servidor de terminal, ENTÃO, em um nível de UART para RS-232C (mas não necessariamente pinagem) para o servidor e volte da mesma maneira.
Às vezes, não há motivo para realmente torná-lo um UART real, por qualquer motivo que virtualize uma porta COM, para que o software que foi escrito para essas chamadas de API ainda funcione. Talvez você possa pensar no software bancário antigo que ainda usamos, que possui um terminal estúpido para uma interface UART que talvez antigamente fosse conectada por fio ou que entrou em um modem para eventualmente um servidor. Você pode fazer com que o software ainda funcione, através de várias quantidades de emulação, incluindo uma porta COM virtual que hoje provavelmente liga a Ethernet ao servidor como um fluxo serial (TCP / IP, por exemplo).