통신은 병렬 통신의 속도가 가장 빠를 것입니다.

1:1로 넘겨주기에 방해받을 것이 없기 때문입니다.

허나 모든곳에서 병렬 통신을 쓴다면,  하나씩 연결해야하기에 자원이 너무 많이 쓰일 것입니다.

그런 병렬통신을 보완하기 위해 존재하는 통신이 직렬통신입니다.

시리얼 통신이 이러한 직렬통신이며, 전세계 공통 표준으로 가장 많이 쓰이는 RS(Recommended standard)표준이 있습니다.

 

UART(Universal asynchronous receiver/transmitter) 라는 것이 있습니다.

범용 비동기화 송수신기라는 하드웨어인데, 병렬의 데이터를 직렬데이터로 바꾸어 보내주는 장치입니다.

이러한 식으로 UART는 병렬의 데이터를 직렬로 변경시켜주어 보내줍니다.

이러한 UART에서 나오는 직렬신호는 TTL신호 레벨을 사용합니다.

그런데 이러한 TTL신호 레벨에는 한계가 있습니다.

이렇게 0~5V까지 존재하여

2~5V일 때 1로 알고, 0~0.8V일 때 0으로 인식하는 신호방법을 TTL신호 레벨이라 합니다.

이러한 TTL신호 레벨은 전압이 변경되면서 생기는 노이즈에 취약하여

0.4V의 노이즈마진만 벗어나도 신호를 제대로 인식하지 못할 수 있습니다.

그리하여 232통신의 방법이 나옵니다.

위 이미지를 232통신의 TX혹은 RX중의 한선이라고 가정하겠습니다.

RS-232통신은 +15V부터 -15V까지의 전압차로 신호를 전송하는데,

보통 -15V~ -3V일 때 로직 1이라는 데이터를 전송하며, +3V~ +15V일 때 로직 0이라는 데이터를 전송합니다.

이렇게 +-전압차로 신호를 보내기에 기존 TTL신호 레벨보다  강한 노이즈 마진을 가지고 있습니다.

그렇기에 기존의 0~5V 전압차이로 통신하던 TTL신호보다 더 멀리 신호를 안정적으로 보낼 수 있습니다. 

하지만 이러한 232통신은 일단 1:1 통신이라는 제한도 있고, 거리도 TTL신호보다는 길지만 15m라는 제한된 통신 길이가 있기에 이를 더 보완한

422이라는 통신 방법이 나옵니다.

422 통신은 TX를 +- 두 선 RX를 +- 두 선을 씁니다.

위 이미지는 TX+선과 TX-선을 본거라고 하겠습니다.

위 사진처럼 TX+와 TX- 두 선에 동시에 신호가 실어져서 가고

두 신호의 전압차를 가지고 1과 0의 데이터 신호를 구분합니다.

 

422이, +2 ~ +6V을 받았을 때 로직 0으로,  -2 ~ -6V를 받았을 때 로직 1로 인식하는 경우를 예로 들겠습니다.

송신측에서 로직 0을 보내기 위해서 TX+ TX- 두 선으로 각각 +3V -3V 씩 보낸다고 한다면, 수신측은

(+3V) – (-3V) = +6V로 받아들이게됩니다.

반대로 송신측에서 로직 1을 보내기 위해서 TX+ TX- 두 선으로 각각 -3V +3V 씩 보낸다고 한다면, 수신측은

(-3V) – (+3V) = -6V로 받아들이게됩니다.

 

보통 RS-422통신의 경우 +2~+6V는 로직 0, -2~-6V는 로직 1입니다.그렇기에 +6V가 들어오게 되었다면, 로직 0로 받아들이게 되는 것입니다.

노이즈가 생기더래도 차등신호방식으로서 노이즈를 제거할 수 있기에, 노이즈에 매우 강한 특징을 지니고 있습니다.

 

예를들면 노이즈 1V가 생겼다 하더래도

[(+3V)+1V] – [(-3V)+1V] = +6V이기때문에 이런식으로 노이즈 제거가 가능합니다.

232는 TX RX 한선씩 쓴다면,

422의 differential 방식은 각 선을 +- 두선을 써서 두선의 전압차로 데이터를 송신하는 것입니다.

 

232가 15m의 제한거리가 있다면, 422은 1km 길이만큼 데이터 전송이 가능합니다.

422와 같은 differentail 방식은 485도 마찬가지로 사용합니다.

422뿐만 아닌 485의 방식이라고 봐도 되겠습니다.

다시 232방식으로 넘어와서,

232통신은 1:1통신입니다.

그렇기에 한쪽의 TX 반대편은 RX가 물려야하고 RX의 반대편은 TX가 물려야 합니다.

통신 양단의 기준점이 다르면 정상적인 통신이 불가능하기에, 양단의 기준을 맞추기위해 GND선을 연결해주어야 합니다.

422은 1:다수 통신이 가능합니다.

이때 한쪽이 MASTER가 되고, 나머지 반대쪽 다수는 전부 SLAVE가 됩니다.

위 사진으로보면 A는 MASTER라고 하면,

B에는 SLAVE로 B 한개가 아닌, B2 B3 등등 여러개와 연결이 가능합니다.

하지만 A(Mater)의 TX는 선들이 갈라져 다른 B(Slave)들의 RX에 연결되고,

B(Slave)의 TX들은 하나로 모여서 A(Master)의 RX로 들어간다는 것을 유의 해야합니다.

이때문에 A(Master)는 여러 B(Slave)에 TX로 데이터 전송이 가능하나,

B(Slave)의 입장에서는 A(Master)에게 한 B만 전송이 가능합니다.

즉 같은 시간대에 두 B가 A에게 전송할 경우 데이터가 막혀 전송이 안될 수 있습니다.

485는 422처럼, +와 – 두 선의 전압차를 이용하여 신호를 보내는 differential 방식이나,

다른점은 TX와 RX를 쓰는 것이 아닌 SIG(시그널) 선을 쓰는 것입니다.

485의 SIG선은 TX와 RX의 두 기능을 다 담당하여 TX할 때는 TX가 됬다가 RX할 때는 RX가 됩니다.

즉 485의 SIG선은 TX기능도 RX기능도 다 가지고 있습니다.

그렇기에 1:다수가 아닌, 다수:다수 통신이 가능하며, 422과 다르게 어떤것도 MASTER가 될 수 있고 어떤것도 SLAVE가 될 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다