본문 바로가기

용어 정리

RS-485 통신

RS-485 통신이란?

RS-232는 전송 속도가 낮고 전송 거리가 짧으며 11 통신만 가능하다.

이를 보완하기 위해 개발된 RS-422는 한 개의 마스터 장치와 슬레이브 장치 간에 데이터를 주고 받는 방식으로 통신한다.

반면, RS-485는 모든 장치들이 같은 라인에서 데이터 전송 및 수신을 할 수 있다.

그림1

 

결선 방식

통상 2개의 선을 사용하여 반이중 통신 방식으로 사용하나 2개의 RS-485 통신망을 사용하면 전이중 통신도 가능하다.

참고로 그림1처럼 선이 2개라서 전이중 통신이 가능한 것 같지만, 2개의 선으로 한 신호를 만들어내는 차동신호 방식을 사용하므로 사실상 선이 1개라고 생각하면 된다.

 

전기적 특성: 차동신호 방식

RS-232 통신과 다르게 데이터가 한 선이 아니라 두 선이라서 차동으로 데이터를 송수신한다.

중요한 점은 이렇게 차동신호로 주고 받을 때 외부 노이즈 영향을 받지 않는다는 점이다.

자세한 내용은 아래와 같다.

그림2

예를 들어 그림2처럼 UART TXD5V, 5V, -5V로 신호를 보낸다면, RS-485 Transceiver는 그 신호를 받아서 TXD+TXD-로 나누어 차동신호로 내보낸다.

이때 TXD+는 그대로, TXD-는 반전해서 보내는데 그림2처럼 TXD+쪽은 5V, 5V, -5V가 나가고, TXD-쪽은 -5V, -5V, 5V가 나가게 된다.

 

그림3

그리고 그림2에서 내보낸 차동신호는 그림3의 초록색부분처럼 들어오게 되는데 아래와 같이 해석된다.

(DATA+) – (DATA-) >= 200 mV        ex. (+5V) - (-5V) = +10V => Logic ‘1’

(DATA+) – (DATA-) =< -200 mV        ex. (-5V) - (+5V) = -10V => Logic ‘0’

 

, 위의 식대로 계산하면 처음에 UART에서 보낸 신호 +5V, +5V, -5V+10V, +10V, -10V가 되어 Logic1, 1, 0으로 동일하다.

그리고 중요한 점은 만약 노이즈(Noise)가 들어온다고 해도 아래처럼 상쇄되어서 Logic 값에는 영향이 없다는 것이다.

(+5V + Noise) - (-5V + Noise) = +10V => Logic ‘1’

(-5V + Noise) - (+5V + Noise) = -10V => Logic ‘0’

 

통신 방법

그림4

RS-485 2선 방식에서 RE, DE 핀은 보통 하나로 묶어서 제어한다.

이 두 개의 핀을 하나로 묶은 핀을 RTS라고 부르고 이 RTS핀 제어에 따라 RS-485통신이 송신모드 혹은 수신모드로 선택되어 통신하게 된다.

대부분 RTSHigh일 때 송신모드로 Setting되고 Low일 때 수신모드로 Setting된다.

RS-485 2선 방식은 반 이중 방식이기 때문에 송수신이 동시에 되지 않는다.

따라서 송신 측에서 데이터를 보내고 응답을 받는 형식으로 사용해야 한다.

이 동작은 아래처럼 RTS 스위칭에 의해 구현할 수 있다.

순서적으로만 보면 정말 간단하게 표현할 수 있지만 여기에는 한 가지 문제가 있다.

바로 스위칭 타이밍으로, 만약 스위칭 타이밍이 맞지 않으면 데이터 송신에는 성공할 수 있지만 수신 시에는 원하는 데이터를 받지 못하고 데이터가 잘린다거나 깨지는 문제가 발생한다.

따라서 이를 해결하기 위해 송신버퍼의 상태를 체크하는 과정을 추가해야 하는데 RS-485 송신 버퍼가 비워졌는지를 확인한 뒤 전송이 완료되어 송신 버퍼가 비워지면 그와 동시에 RTS Low Setting을 통해 수신 모드로 변경하면 된다.

, 전송 뒤 수신모드로 바꾸는 타이밍 자체를 송신 버퍼가 비는 시점(데이터 전송이 완료된 바로 직후)에 스위칭하는 방식으로 사용하는 것이다.

최종적인 동작 순서는 아래와 같이 구현할 수 있다.


<참고 자료>

https://codinghero.tistory.com/19

 

[임베디드] RS485 통신이란?

RS485란 공장 설비 등에서 많이 사용되는 반이중(Half-duplex) 통신방식을 말합니다. 즉 송신과 수신을 동시에 진행하지 못하고 Max485 Transceiver 등을 이용하여 송, 수신 모드를 선택하여 사용하는 방식

codinghero.tistory.com

 

'용어 정리' 카테고리의 다른 글

DMA(Direct Memory Access)  (1) 2023.11.22
ADC  (1) 2023.11.18
클럭과 주파수  (1) 2023.11.18
동기(Synchronous)와 비동기(Asynchronous) 방식  (0) 2023.11.17
Baud rate과 Bit rate  (0) 2023.11.16