매우 혼란 스럽지만 걱정할 필요는 없습니다. 우선, UART 자체는 일반적인 용어이지만 시작 비트, 하나 또는 두 개의 정지 비트, 일반적으로 데이터 비트 7 또는 8, 때로는 짝수 또는 홀수 인 패리티를 갖는 프로토콜을 생성하는 UART를 생각해보십시오. 그것은 거기에서 다를 수 있습니다.
UART는 무엇이든 TTL 수준에 있습니다. 예전에는 5V, 현재는 3.3V, 1.8V 또는 그 이상이었습니다. 아마도 TTL은 잘못된 용어 일 것입니다. 그런 다음 RS-232, RS-422 등을 가지고 있거나 가지고 있습니다. 이는 프로토콜 표준이 아니라 전압 및 PIN 표준입니다. 어떤 종류의 UART를 의미 할 때 용어를 혼합하여 RS-232라고 말하는 것은 올바르지 않습니다.
예전에는 UART가 마더 보드에 있었고 당시에는 이해할 수있는 전압 레벨과 표준 핀아웃 / 케이블과 같은 외부 연결 커넥터를 원했습니다. 따라서 다양한 주변 장치에 널리 사용되는 25 및 9 핀 표준이 종종 발견되었으며 Wintel PC 세계에서는이를 통신 포트 또는 직렬 포트라고했습니다.
물론, 직렬 데이터를 전달하는 포트는 직렬 포트, SPI, I²C, MDIO, UART, HDLC, SDLC 등, 심지어는 USB 및 SCSI라고도합니다. 당신은 이것에 미쳐 갈 수 있습니다. 일반적으로 직렬 포트는 UART에 연결할 수있는 핀을 의미합니다.
유닉스 / 리눅스 세계는 / / tty
대신 사용 하지만 같은 것입니다.com
serial
uart
이제 구현이 있습니다. 인터페이스가있는 UART 칩을 구입할 수 있습니다 (양쪽에 직렬 인 SPI UART 또는 I²C UART 또는 일부 전용 버스 또는 USB 등을 가질 수 있음). 당시에도 UART에는 한쪽에 버스가 있었기 때문에 궁극적으로 CPU가 통신했습니다. 오늘날 우리는 멋진 USB UART 솔루션을 만드는 FTDI 및 기타 공급 업체를 보유하고 있으며 소프트웨어와 UART 간의 일부 인터페이스 계층을 다르게 만들지 않으며 UART의 다른쪽에는 TTL / 칩 레벨 또는 RS-232C 또는 RS-422 등
초기 Arduino는 종종 Arduino에 전원을 공급하는 FTDI USB-UART 보드를 사용했습니다. 일부는 Arduino 보드 자체의 USB 전원 및 직렬 / UART를 가지고 있으며 AVR 칩의 UART에 보드를 통해 연결됩니다 (일부 프로세서는 일부 버스 레이어를 사용하여 소프트웨어가 UART와 통신 할 수 있음) 다른 쪽면의 일부 인터페이스,이 경우 칩 전압 레벨 (TTL)에서 AVR의 가장자리에있는 핀).
UART 기능이 수십 년 동안 변경되지 않았으므로 소프트웨어 용어 또는 소프트웨어 응용 프로그램이 응용 프로그램 수준에서 왜 바뀌어야합니까? 10-15 년 전에 마더 보드의 UART 칩에 대해 Linux / Unix TTY 응용 프로그램을 작성하십시오. USB-TTL 수준 또는 USB-RS-232C 수준 또는 RS-422 또는 기타 핀으로 오늘날에도 여전히 작동 할 가능성이 높습니다. / 레벨 정의. Windows에서도 마찬가지이며, 이전 버전 모두 여전히 작동하는 코드가 있습니다. Windows 세계에서는 COM이라는 용어가 사용됩니다.
나는 잠시 동안 Arduino 샌드 박스를 사용하지 않았으며 Linux에 있었을 것입니다.하지만 Java라는 프로그램이 일반적인 경우 기억 ttyS2
하고 Linux 및 COM2 에서 시스템 이름을 사용하는 경우 놀라지 않을 것입니다 창문에.
귀하의 질문을 다시 읽으면 이러한 API 호출을 사용하는 기존의 소프트웨어 양을 활용하여 훨씬 더 나아갈 수 있습니다. 수십 년 동안이 양방향 데이터를 여러분이 생각할 수있는 거의 모든 것으로 전달하는 소프트웨어로 가상 포트를 만들 수없는 이유는 없습니다. UART- 이더넷은 매우 일반적인 것으로, 서버가 여전히 COM / TTY / RS-232 포트를 많이 사용하는 서버 룸에서 여러 서버에 연결할 수있는 여러 인터페이스가있는 터미널 서버를 가질 수 있습니다. 그런 다음 다른 쪽의 이더넷을 누른 다음 텔넷을 사용하지 않으면 가상 COM 포트 드라이버를 설치할 수 있습니다.
그런 다음 컴퓨터의 응용 프로그램이 COM 포트와 통신하고 있다고 생각하지만 실제로 바이트 스트림이 이더넷에 연결되어 터미널 서버를 THEN하여 UART-RS-232C 레벨 (그러나 반드시 핀아웃은 아님) 케이블로 연결합니다. 서버와 같은 방식으로 되돌립니다.
어떤 이유에서든 COM 포트를 가상화하여 API 호출을 위해 작성된 소프트웨어가 여전히 작동 할 수 있도록 실제 UART에 실제로이를 이유가 없습니다. UART 인터페이스에 대한 벙어리 터미널이있는 고대 은행 소프트웨어에 대해 생각할 수도 있습니다. 오늘날 이더넷을 직렬 스트림 (예 : TCP / IP)으로 서버에 다운시키는 가상 COM 포트를 포함하여 다양한 양의 에뮬레이션을 통해 소프트웨어가 여전히 작동하도록 할 수 있습니다.