그라운드 임베디드 유튜브 구독

노트 / 통신 프로토콜

RS-232, RS-422, RS-485: UART를 멀리 보내기

같은 UART 프레임을 전압 레벨과 차동 신호로 바꿔 수십 m~1km까지 보냅니다. 세 규격의 차이와 RS-485 방향 제어.

GROUND EMBEDDED · 정리 노트통신 03RS-232, RS-422, RS-485규격신호거리RS-232±3~15V, 단일~15mRS-422차동, 단방향 쌍~1200m

MCU의 UART는 3.3V 단일 신호라 1~2m만 넘어도 불안합니다. 트랜시버 칩으로 신호 모양만 바꾸면 프레임은 그대로 두고 멀리 보낼 수 있습니다.

규격 신호 거리 노드 특징
RS-232 ±3~15V, 단일 ~15m 1:1 PC 시리얼 포트. 논리가 반전됨
RS-422 차동, 단방향 쌍 ~1200m 1:10 수신 전이중 (4선)
RS-485 차동, 양방향 ~1200m 32노드 이상 반이중 (2선), 산업 표준

RS-232 주의

1이 음의 전압입니다. MCU 핀에 바로 연결하면 망가집니다. MAX3232 같은 트랜시버가 필요합니다.

RS-485 실전

  • 한 선(A, B 쌍)을 여러 장치가 공유하므로 송신할 때만 드라이버를 켜야 합니다. 트랜시버의 DE 핀을 GPIO로 켜고, 마지막 비트가 다 나간 뒤(UART TC 플래그) 끕니다. 너무 일찍 끄면 마지막 바이트가 깨집니다.
  • 선 양 끝에 120Ω 종단 저항을 둡니다.
  • 아무도 말하지 않을 때 선 상태를 정하는 페일세이프 바이어스 저항을 한 곳에 둡니다.
  • Modbus RTU가 RS-485 위에서 가장 많이 쓰는 프로토콜입니다.