Jest to bardzo mylące, ale nie musisz się tym martwić. Po pierwsze, pomyśl o UART, który sam jest terminem ogólnym, ale pomyśl o takim, który tworzy protokół z bitem początkowym, jednym lub dwoma bitami stopu, 7 lub 8 zwykle bitami danych, a czasami parzystością, która jest parzysta lub nieparzysta; może się różnić od tego, co czyni go znacznie gorszym.
UART jest na poziomie TTL, cokolwiek to znaczy. Kiedyś było to 5 V, a teraz 3,3 V, 1,8 V lub cokolwiek innego; być może TTL to zły termin. NASTĘPNIE miałeś / masz RS-232, RS-422 itp. Są to standardy NAPIĘCIA I PIN, a nie standardy protokołu. Błędne jest mieszanie warunków i mówienie RS-232, gdy masz na myśli jakiś UART.
W tamtym dniu Twój UART był na twoich płytach głównych i chciałeś jakiegoś złącza do świata zewnętrznego z poziomami napięcia, które w tamtym czasie miały sens i jakimś standardowym pinoutem / kablem. Dlatego często spotykano popularny standard 25 i 9 pin dla różnych urządzeń peryferyjnych, aw świecie komputerów Wintel nazywa się to portem komunikacyjnym lub czasem portem szeregowym.
Pewnie, port, który przenosi dane szeregowe może i jest nazywany portem szeregowym, SPI, I²C, MDIO, UART, HDLC, SDLC itp., A może nawet USB i SCSI; możesz oszaleć z tym. Zwykle port szeregowy oznacza niektóre piny, które można uzyskać w UART.
Świat Unix / Linux mówi tty
zamiast com
/ serial
/ uart
, ale to jest to samo.
Teraz jest WDROŻENIE. Możesz kupić układ UART z jakimś interfejsem (tak, możesz mieć SPI UART, który jest szeregowy na obu końcach lub I²C UART lub jakąś dedykowaną magistralę lub USB itp.). Nawet w tamtym dniu UART miał po jednej stronie szynę, przez którą ostatecznie komunikował się procesor. Dzisiaj mamy FTDI i innych dostawców, którzy tworzą fajne rozwiązania USB UART, nie różnią się w żaden sposób niektóre warstwy interfejsu między oprogramowaniem a UART, a następnie druga strona UART ma jakiś interfejs, czy to na poziomie TTL / chip lub RS-232C lub RS-422 itp.
Wczesne Arduinos często używałeś płyty FTDI USB-U-UART, która również zasilała Arduino. Niektóre mają tę moc USB i szeregowy / UART na samej płycie Arduino, a następnie są podłączone na całej płycie do UART na chipie AVR (to samo dotyczy niektórych procesorów z niektórymi warstwami magistrali, aby oprogramowanie mogło komunikować się z UART, który ma jakiś interfejs po drugiej stronie, w tym przypadku piny na krawędzi AVR, przy poziomach napięcia układu, TTL).
Ponieważ funkcjonalność UART nie zmieniała się od dziesięcioleci, dlaczego terminologia oprogramowania, a nawet aplikacje, powinny się zmieniać na poziomie aplikacji? Napisz aplikację TTY dla systemu Linux / Unix 10–15 lat temu na chipie UART na płycie głównej i istnieje duża szansa, że nadal będzie działać dzisiaj z poziomem USB na TTL lub USB na RS-232C lub RS-422 lub dowolnym pinem / definicja poziomu. To samo dotyczy systemu Windows i mam ten stary kod, który nadal działa na oba. W świecie Windows używany jest termin COM.
Od jakiegoś czasu nie korzystałem z piaskownicy Arduino i jeśli tak, byłby na Linuksie, ale nie zdziwiłbym się, gdyby ten program, którym jest Java, o ile dobrze pamiętam, byłby ogólny i używa nazwy systemu tak ttyS2
na Linuxie i COM2 w systemie Windows.
Ponowne przeczytanie pytania może pójść o wiele dalej, korzystając z już istniejącej ilości oprogramowania korzystającego z tych wywołań interfejsu API. Znowu przez dziesięciolecia nie ma powodu, dla którego nie można stworzyć wirtualnego portu w oprogramowaniu, który przenosi te dwukierunkowe dane w zasadzie wszystko, co tylko można sobie wyobrazić. UART na Ethernet jest bardzo powszechny, aw serwerowniach, w których serwery nadal bardzo korzystają z portów COM / TTY / RS-232, możesz mieć serwer terminali, który ma wiele interfejsów, które możesz podłączyć do wielu serwerów, następnie Ethernet po drugiej stronie, a jeśli nie zdecydujesz się na telnet, możesz zainstalować sterownik wirtualnego portu COM.
Wtedy twoja aplikacja na twoim komputerze myśli, że rozmawia z portem COM, ale w rzeczywistości strumień bajtów przeskakuje do Ethernetu, a następnie uderza w serwer terminali, a następnie na kabel UART do poziomu RS-232C (ale niekoniecznie pinout), aby serwer i powrót w ten sam sposób.
Czasami nie ma powodu, aby faktycznie dostać się do prawdziwego UART, z jakiegokolwiek powodu zwirtualizuj port COM, aby oprogramowanie napisane dla tych wywołań API mogło nadal działać. Być może pomyślisz o starożytnym oprogramowaniu bankowym, którego wciąż używamy, które ma głupi terminal interfejsu UART, który być może w tamtym czasie był podłączony lub został podłączony do modemu, aby ostatecznie zostać serwerem. Możesz sprawić, aby oprogramowanie nadal działało, poprzez różne emulacje, w tym wirtualny port COM, który dziś prawdopodobnie po prostu przesyła Ethernet do serwera jako strumień szeregowy (na przykład TCP / IP).