본문 바로가기
임베디드 개발/펌웨어

RS-422 (+ RS-232/422/485 비교)

by eteo 2023. 9. 15.

 

 

RS-422 Specification

 

Attribute Specification
Cabling Point-to-Point, Single-ended Multi-drop
Max Driver 1
Max Receiver 10
Maximum distance 1200m at 100kbps
Maximum data rate 10 Mbps at 15m
Signaling Balanced
Maximum Nominal Voltage ± 7V
Minimum Transmitter's Driver Output Voltage ± 2V
Receiver Input Sensitivity ± 200mv
Mark (1) Positive difference (A - B > 200mv)
Space (0) Negative difference (A - B < -200mv)
Signals Tx+, Tx-, Rx+, Rx- (full duplex)

 

 

RS-232와의 비교

 

  • RS-232는 Single-ended Signaling을 사용하지만, RS-422은 Differential Signaling(차동신호)을 사용하여 비교적 노이즈에 강하고, 장거리 통신이 가능하다.
  • RS-232는 Tx, Rx 두가닥(with GND)으로 데이터를 전송하지만, RS-422은 Tx+, Tx-, Rx+, Rx-의 네가닥 통신케이블이 필요하다.
  • RS-232는 1대 1 통신만 가능하지만, RS-422은 1대1통신 뿐만 아니라, 1대 다 통신도 가능하다.
  • 전송방식은 둘다 Full duplex(전이중)방식이다.

 

 

 

 

RS-422 1대 1 통신 연결도

 

이미지 출처 : https://www.kwshop.co.kr/tech/manual/IP-100,110%20manual-kor.pdf

 

 

 

RS-422 1 대 다 통신시 연결도

 

 

 

 

 

 

RS-422 종단 저항

 

장거리 통신을 할 경우 케이블의 반사파에 의한 신호 왜곡을 방지하는 역할로 케이블의 특성 임피던스 값과 동일한 값의 저항을 선로의 종단에 연결한다. 선로의 중간에 연결할 경우 신호레벨이 작아지므로 반드시 선로 양 끝단에만 연결한다. 일반적으로 RS-422 (RS-485) 통신선로에 사용하는 종단저항은 120Ω을 사용하나, 케이블 길이 등 선로 상태에 따라 가감해주어야할 경우도 있다.

 

 

 

 

 

RS-422 신호 레벨

 

RS-422은 balanced(differential) signaling을 사용하여 두 신호선의 전압차로 데이터를 송신하고 수신하는데, 양극성 신호라인과 반대극성 신호라인의 전위차가 positive이면 mark(1), negative이면 space(0)로 표현한다.

 

송신단에서 driver output은 보통 ±2V 이상이고, 수신단에서는 Rx+, RX- 두 라인의 전위차가 200mV 이상이면 로직 1, -200mV 이하이면 로직 0으로 판단한다.

 

 

 

 

 

 

 

 

 

 

차동신호가 노이즈에 강한 이유

 

RS-422이 RS-232보다 노이즈에 강하고 보다 장거리에서 안정적인 데이터 전송이 가능한 이유는 두 신호선을 사용하는 차동신호 방식이기 때문이다.

 

두 신호는 어느 하나가 양의 값을 가질 때 다른 신호는 음의 값을 가지며, 서로 반대방향으로 움직이기 때문에 외부 노이즈가 영향을 미치더라도 두 신호간 차이를 측정하면 노이즈가 상쇄되는 경향이 있다.

 

차동신호 방식 통신에는 보통 Twisted pair cable이 사용되는데, 예를들어 +5V, -5V신호에 노이즈가 끼더라도 꼬아진 두 가닥이 같이 영향을 받으니 신호가 +7V, -3V로 변하더라도 여전히 전위차는 10V이다.

 

 

 

 

 

 

 

 

 

RS-232 vs RS-422 vs RS-485 비교

 

 

 

 

비교 요약

 

  • RS-232는 1 대 1 통신만을 지원하고 전송 속도와 거리 모두 짧은 편이며, Single Ended 방식이기에 노이즈에 상대적으로 취약하다. 간단한 1:1 통신에 적합하다.
  • RS-422는 차동 방식으로 장거리 통신에 적합하고 1대 다 환경에서 사용할 수 있으며, 더 높은 전송 속도를 한다.
  • RS-485는 역시 차동 방식으로 여러 노드를 하나의 통신 회선에 연결하는 멀티 드롭 네트워크에 적합하다. 긴 거리와 높은 속도를 지원하여 다양한 산업용 통신 환경에서 많이 사용된다.

 

 

 

❓ 그럼 232, 422, 485 사용 시 소프트웨어를 짤 때 어떤 차이가 있을까?

 

232랑 422은 송수신 API 작성시 차이가 없다. 하지만 485의 경우 대부분이 하프 듀플렉스 배선 구성을 사용하기 때문에 데이터 방향을 제어하는 코드가 추가적으로 들어가야 한다.

 

 

❓ UART와 RS-232, RS-422, RS-485 어떤 차이일까?

 

UART(Universal Asyncronous Receiver Transmitter)는 논리적인 통신 프로토콜을 정의한 것이고, UART 물리 계층의 표준이 RS-232, RS-422, RS-485이다. 

 

 

그럼 UART TTL은 뭘까?

 

TTL은 5V 또는 3.3V 등 디지털 논리 회로에서 사용되는 전압 레벨을 의미하는데 이는 딱히 UART의 물리 표준은 아니다. 보통 마이크로컨트롤러에 내장된 UART 회로가 TTL 레벨로 작동하기 때문에 일부 UART라고 하면 5V 또는 3.3V의 TTL 레벨 UART를 가리키는 경우가 있다. 하지만 UART는 OSI 7 layer에서 Data link 계층의 프로토콜이고 TTL/232/422/485는 Physical layer이기 때문에 TTL 레벨로 동작하는 UART는 UART TTL이라고 부르거나 TTL Serial 이라고 부르는게 맞겠다.

 

 

UART TTL과 RS-232랑은 어떤 차이가 있을까?

 

마이크로컨트롤러에 내장된 TTL레벨로 동작하는 UART로 외부 장치와 RS-232 통신을 하려면 전압 레벨을 맞춰주는 MAX232와 같은 라인 드라이버 칩을 사용해야 한다. 그리고 또 하나의 차이는 UART TTL은 논리 상태와 전압이 일치하는데 반해 RS-232는 논리 상태와 전압 극성이 반대이다.

UART TTL은 Logic 1이 5V 또는 3.3V이고 Logic 0이 0V인 반면 RS-232는 Logic 1이 -12V이고 Logic 0이 +12V이다.

 

 

 

Reference : 

https://www.delock.com/infothek/RS-422_RS-485/RS-422_RS-485_e.html

http://www.jeh-tech.com/serial_rs232_rs422_rs485.html

https://www.kwshop.co.kr/tech/manual/IP-100,110%20manual-kor.pdf