Це дуже заплутано, але турбуватися про це не потрібно. Спочатку придумайте UART, який сам по собі є загальним терміном, але подумайте про той, який виробляє протокол із початковим бітом, одним або двома стоп-бітами, 7 або 8, як правило, бітами даних, а іноді парним парним чи непомірним; він може змінюватися звідти, що робить його набагато гіршим.
UART знаходиться на рівні TTL, що б це не означало. Раніше вона була 5 В, а тепер 3,3 В, 1,8 В або що завгодно; можливо TTL - неправильний термін. ТАКОЖ у вас були / були RS-232, RS-422 і т. Д. Це стандарти НАЛОТИ ТА ПІН, а не стандарти протоколу. Неправильно змішувати терміни і говорити RS-232, коли ви маєте на увазі якесь UART.
Ще в той день, коли ваш UART був на материнських платах, і ви хотіли якийсь роз'єм для зовнішнього світу з рівнем напруги, який на той час мав сенс і якоюсь стандартною розеткою / кабелем. Так популярний стандарт 25 та 9-контактних часто зустрічався для різних периферійних пристроїв, і в світі Wintel PC це називали портом комунікацій або іноді послідовним портом.
Звичайно, порт, який несе серійні дані, може і називається послідовним портом, SPI, I²C, MDIO, UART, HDLC, SDLC тощо, і, можливо, навіть USB і SCSI; ви можете зійти з розуму з цим. Зазвичай послідовний порт означає деякі шпильки, які ви можете отримати в UART.
Світ Unix / Linux говорить tty
замість com
/ serial
/ uart
, але це те саме.
Тепер є ВПРОВАДЖЕННЯ. Ви можете придбати чип UART з деяким інтерфейсом на ньому (так, ви можете мати SPI UART, який є послідовним на обох кінцях, або I²C UART або якусь виділену шину або USB тощо). Навіть у той час, коли UART мав автобус на одній стороні, через який процесор спілкувався. Сьогодні у нас є FTDI та інші постачальники, які роблять приємні рішення USB UART, не відрізняються деякими шарами інтерфейсу між програмним забезпеченням та UART, а потім інша сторона UART має певний інтерфейс, будь то рівень TTL / чіп або RS-232C або RS-422 тощо.
На початку Arduinos ви часто використовували плату FTDI USB-UART, яка також забезпечувала живлення Arduino. Деякі з них мають USB-накопичувач та серійний / UART на самій платі Arduino, а потім підключається через плату до UART на AVR-мікросхемі (той самий стосується деякого процесора з деякими шарами шин, щоб програмне забезпечення могло спілкуватися з UART, який має деякий інтерфейс з іншого боку, у цьому випадку штифти на краю AVR, на рівнях напруги чіпа, TTL).
Оскільки функціональність UART не змінюється протягом десятиліть, чому слід змінювати термінологію програмного забезпечення або навіть програмні програми на рівні програми? Напишіть програму Linux / Unix TTY 10-15 років тому проти мікросхеми UART на материнській платі, і є хороший шанс, що вона все ще працює сьогодні з рівнем USB на TTL або USB на рівень RS-232C або RS-422 або будь-яким іншим штифтом / визначення рівня. Те саме стосується Windows, і я маю той старий код, який все ще працює на обох. У світі Windows використовується термін COM.
Я певний час не використовував пісочницю Arduino, і якби це було б в Linux, але я не здивуюся, якщо програма, яка є Java, якщо я пам'ятаю правильно, є загальною і використовує ім'я системи так ttyS2
на Linux та COM2 на вікнах.
Перечитавши своє запитання, це може піти набагато далі, скориставшись уже наявним обсягом програмного забезпечення, яке використовує ці дзвінки API. Знову ж таки, протягом десятиліть немає жодної причини, чому ви не можете створити віртуальний порт у програмному забезпеченні, яке переносить ці двонаправлені дані майже все, що ви можете придумати. UART в Ethernet дуже поширений, і в серверних кімнатах, де сервери все ще дуже часто використовують порти COM / TTY / RS-232, ви можете мати термінальний сервер, який має ряд інтерфейсів, які можна підключити до декількох серверів, потім Ethernet з іншого боку, то якщо ви вирішите не входити в telnet, ви можете встановити віртуальний драйвер COM-порта.
Тоді ваша програма на комп’ютері вважає, що вона розмовляє з COM-портом, але насправді цей потік байтів стрибає на Ethernet, після чого потрапляє на термінальний сервер, ТОГО, до рівня UART до RS-232C (але не обов'язково розбиття) кабелів до сервер і назад аналогічно.
Іноді немає ніяких причин насправді перетворювати його на справжній UART, з будь-якої причини віртуалізувати COM-порт, щоб програмне забезпечення, написане для цих дзвінків API, все ще могло працювати. Ви можете, можливо, подумати про стародавнє банківське програмне забезпечення, яке ми все ще використовуємо, яке має німий термінал для інтерфейсу UART, який, можливо, ще в той час був провідним кабелем або перейшов у модем, щоб врешті-решт сервер. Ви можете зробити так, щоб програмне забезпечення все ще працювало за допомогою різної кількості емуляції, включаючи віртуальний COM-порт, який сьогодні, швидше за все, просто опускається по Ethernet до сервера як послідовний потік (наприклад, TCP / IP).