시리얼 통신 (UART)
UART
UART(Universal Asynchronous Receiver/Transmitter, 범용 비동기 송수신기)는 데이터를 직렬(Serial)로 전송하는 하드웨어로서 일반적으로 아두이노, 라즈베리파이등에 탑재되어 있습니다. 흔히 시리얼 통신은 UART 프로토콜을 사용한 통신을 의미합니다.
UART는 Tx(송신), Rx(수신) 2개의 핀을 사용하여 1:1로 통신하며, CPU와 같은 장치로부터 입력 받은 병렬(parallel) 데이터를 직렬(serial) 형태로 변환하거나 외부 장치로부터 수신한 직렬 데이터를 다시 병렬 데이터로 변환하여 CPU와 같은 장치에 전달하는 역할을 합니다.
아래는 UART 통신에 사용되는 프로토콜 구조입니다. 비동기 (Asynchronous) 통신이며, 두 기기가 통신을 하기 위해서는 통신속도(Baud rate), Data bits의 갯수, Parity bit의 타입 등을 서로 일치시켜야 정상적인 통신이 가능합니다.

TTL
아두이노, 라즈베리파이, PC와 같은 제어 장치는 0(OFF)과 1(ON)을 이용해 데이터를 표현합니다. 예를 들어 십진수 숫자 10은 이진수로 1010이며 내부 트랜지스터 소자를 ON(High)-OFF(Low)-ON(High)-OFF(Low)하여 표현합니다.
TTL(Transistor-Transistor Logic) 레벨은 ON(High) 또는 OFF(Low)로 인식하는 전압의 레벨을 결정하는 방식중의 하나이며 5V TTL 레벨은 아래와 같습니다.
구분 | INPUT | OUTPUT |
---|---|---|
ON(High, 1, True) | 2~5V | 2.7~5V |
OFF(Low, 0, False) | 0~0.8V | 0~0.4V |
UART 통신은 TTL레벨을 사용합니다. TTL레벨을 이용한 통신은 전압 레벨이 낮고 노이즈 마진 (Input, Output 전압의 차이)이 작기 때문에 노이즈에 약하고 통신 거리에 제약이 있는 단점이 있습니다. 그렇기 때문에 UART통신은 주로 기기 내부의 통신 또는 단거리 통신에만 사용됩니다.
RS-232, RS-422, RS-485
UART 통신의 단점을 보완하여 노이즈에 강하고 좀 더 먼 거리까지 통신이 가능하도록 한 것이 RS-232, RS-422, RS-485입니다. 다만, 이 규격들은 하드웨어, 전압 레벨 등에 관한 것이며 통신 프로토콜은 UART를 사용합니다.
항목 | RS-232 | RS-422 | RS-485 |
---|---|---|---|
동작모드 | Single-Ended | Differential | Differential |
네트워크 | 1:1 (Point To Point) | 1:N (Multi-drop) | 1:N (Multi-drop) |
전송방식 | half duplex full duplex | half duplex | half duplex |
최대 통신거리 | 15m | 1.2km | 1.2km |
최대 통신속도 | 20kb/s | 10Mb/s | 10Mb/s |
최대 출력전압 | ±25V | -0.25V to +6V | -7V to +12V |
최대 입력전압 | ±15V | -7V to +7V | -7V to +12V |
RS-232
좀 더 먼 거리까지 통신하기 위해 ±12V 전압 레벨을 사용합니다. 1:1 통신만 가능하며 최대 통신 거리는 약 15m입니다. Rx, Tx, GND 3개의 선을 사용하여 통신합니다.

RS-422
노이즈에 강하고 좀 더 먼 거리까지 통신하기 위해 differential 연결 방식을 사용합니다. TX+, TX-, RX+, RX- 4개의 선을 사용하며 +선과 -선의 노이즈는 동일하므로 서로 상쇄할 수 있는 원리입니다.
1:N (Multi-drop)통신이 가능하며 최대 통신 거리는 약 1.2km 입니다. 다만, 1개의 기기만 마스터가 될 수 있고 나머지 최대 10개의 기기들은 슬레이브만 가능하다는 점에서 진정한 Multi-drop 구성은 아닙니다.


• 슬레이브: 마스터로 부터 명령을 받아서 처리 또는 회신하는 장치
RS-485
RS-422와 유사하나, 네트워크 내의 어떤 기기도 마스터 또는 슬레이브가 될 수 있으므로 최대 32개의 진정한 Multi-drop 네트워크를 구성할 수 있습니다. 2선식 또는 4선식을 사용할 수 있으며, 장거리 통신의 경우 노이즈를 저감하기 위해서 통신선 양단에 종단 저항 (Termination Resistors)을 연결하기도 합니다. (아래 그림에서 Res)