본문 바로가기
계장/제어 이론

시리얼 통신 - RS422, RS485

by 쪼렙엔지니어 2020. 4. 23.
반응형

이번 포스팅에서는 RS-422과 RS-485통신에 대해서 얘기해볼까 합니다.

시리얼통신과 RS232C에 대한 내용은 이전 포스팅을 참조해 주시기 바랍니다.

https://mech19.tistory.com/30

 

시리얼 통신 - RS232C

이제 직렬통신 중에서 시리얼 통신에 대해 얘기해 볼까 합니다. ​ 시리얼 통신에는 많은 통신방식이 있습니다. 그중에서 우리는 대표적으로 RS232C, RS422, RS485 통신 규격을 제일 많이 사용합니다. (여기서 우..

mech19.tistory.com

이전 포스팅에서 이야기한대로 시리얼 통신 중 RS232C통신의 경우 Single ended방식으로

노이즈에 굉장히 취약합니다.

그러다 보니 실드케이블을 많이 사용하는데 신호케이블과 실드케이블사이에 부유용량이 생겨 통신속도가

(최대 약115200bps정도)굉장히 제한적이게 되고.... 또 1:1통신밖에 안되니 통신을 구성하는데 있어

굉장히 제약사항이 많이 있었습니다.

그래서 나온게 RS422과 RS485입니다.

1. RS422통신

먼저 RS422통신에 대해서 얘기해 보겠습니다.

RS422의 경우 일단 4선식의 전이중통신이며 입출력신호 자체가 Differential(차동신호) 타입으로 노이즈를

능동적으로 제거 할 수 있습니다.

차동신호 방식이란

Data신호가 1선이 아니라 2선으로 Data+ 케이블과 Data - 케이블이 있다고 생각하시면 됩니다.

그리고 차동신호 방식의 노이즈 제거방법은 아래와 같습니다.

예를들어 Data신호가 +12V와 -12V로 전송된다고 하면 노이즈가 없는 경우

수신측은 (+12V) - (-12V) = 24V 이런식으로 받아들이는데

노이즈(N)가 발생하여 들어오게 되면 [(+12V)+N] - [(-12V)+N] = 24V로 되어 능동적인 제거가 되는겁니다.

(노이즈가 발생하면 양쪽 Data신호케이블에 모두 영향을 미치기 때문에 이러햔 현상을 이용하는 것)

그래서 RS422은 송신 2가닥, 수신 2가닥 으로 총 4가닥의 통신케이블이 필요합니다.

그리고 이런 차동신호방식의 통신케이블의 경우 트위스트타입으로 케이블을 꼬아주는것이 좋다고 합니다.

요즘은 굳이 실드케이블을 사용하지 않아도 되는 이러한 타입의 통신케이블을 많이 사용합니다.

그럼 RS422의 결선방식에 대해 알아보겠습니다.

먼저 1:1 연결일때 입니다.

주의 할 점은 수신과 송신을 서로 교차 연결해야 한다는 점입니다.

그리고 RS422통신은 멀티드랍 모드를 이용하여 1:N통신이 가능한데,

이때 마스터는 P2P모드로 설정되어 있어도 상관없으나,

슬레이브는 반드시 멀티드랍 모드로 설정이 되어져 있어야 합니다.

일단 1:N의 경우 결선방식은 아래와 같습니다.

여기서 주의할 점은 슬레이브의 TX신호라인은 정보를 출력시키는 슬레이브만 공동TXD라인에 접속이

되어야만 합니다.

그렇지 않고 2개이상의 슬레이브(1번과 2번이라고 가정)가 공동TXD라인에 접속해 있다면,

마스터가 2번 슬레이브를 호출하여도 1번슬레이브때문에 공동TXD라인에 전기적 충돌로 인해

2번슬레이브의 신호가 마스터로 전달되지 않습니다.

즉 항상 공동TXD라인에는 하나의 슬레이브만 접속되어야 합니다.

그렇기 때문에 이러한 접속 타이밍을 소프트웨어 적으로 처리해야 하는데

이 경우 일반적으로 접속타이밍의 개폐신호를 RTS나 DTR신호중 하나를 사용합니다.

2. RS485통신

마지막으로 RS485통신에 대하여 알아보겠습니다.

RS485는 RS422과 거의 흡사합니다.

RS485의 경우 RS422과 다르게 2선식으로 연결이 가능합니다만 대신 전이중통신이 아닌

반이중통신방식입니다.

전이중통신 : 양방향통신으로 송신과 수신이 자유롭게 동시에 가능함.

반이중통신 : 양방향통신이긴 하지만 송신중에는 수신이 불가, 수신중에는 송신이 불가.

 

(4선식도 가능하다고는 하는데 자료를 도통 못찾겠네요... 저도 2선식으로 밖에 해본적이 없어서...;;;;)

일단 2선식 결선방식은 아래와 같습니다.

그리고 현장에 보시면 단자가 4개가 있는 RS-422과 호환해서 사용하는 설비들이 있을겁니다.

그럴때는 아래와 같이 결선하시면 됩니다.

설명하자면 +단자는 +단자끼리... -단자는 -단자끼리 common잡으시면 됩니다.

마지막으로 시리얼통신을 작업하다가 보면 나오는 에러검출 방식에 대해 얘기해 보겠습니다.

1. Parity bit (패리티비트)

2진 데이터 전송 중 오류가 생겼는지 검사하기 위해 추가된 비트.

문자열 내 1비트의 모든 숫자가 짝수인지 홀수인지를 보증하기 위해

전송하고자 하는 데이터의 각문자에 1비트를 더하여 전송하는 방법.

데이터는 7비트 + 패리티비트는 1비트 = 도합 8비트가 됨.

Even은 짝수, Odd는 홀수를 뜻하는데,

Even의 경우 데이터비트에서 1의 갯수가 짝수이면 패리티비트는 0, 홀수이면 패리티비트는 1이 되어

전체를 짝수로 만듬.

Odd는 데이터비트에서 1의 갯수가 홀수이면 패리티비트는 0, 짝수이면 패리티비트는 1이되어

전체를 홀수로 만듬.

패리티비트는 데이터전송의 제일 마지막에 붙는다.

그리고 패리티 비트는 사용하기에 단점이 있는데,

첫번째 오류의 검출만이 가능하고 수정이 불가능 하다는 점.

두번째 홀수개의 비트에서 발생한 에러는 검출이 가능하지만 짝수개의 비트에서 발생한 에러는 검출이 불가능 함.

2. Check sum (체크섬)

패리티비트에서 업그레이드(?)된 오류 검출 방법.

송신측에서 전송하려고 하는 데이터를 모두 더한 값이 sum.

여기서 -1을 곱해서 -sum을 만들고, 데이터를 모두 더한값에 -su,을 더해서 00이 되면 이상이 없는 것.

이런 방법으로 오류 검출을 함.

단 체크섬으로도 데이터 보정은 힘듬.

오늘은 이렇게 시리얼 통신중 RS-422과 RS-485에 대하여 알아보았네요.

다음 포스팅에서는 직렬통신 중에서 Ethernet 통신에 대해 알아보겠습니다.

감사합니다.

반응형

'계장 > 제어 이론' 카테고리의 다른 글

제어기초(4) - 인터록(선입우선회로)  (0) 2020.04.25
제어기초(3) - A접점 B접점 C접점 기기  (0) 2020.04.25
시리얼 통신 - RS232C  (0) 2020.04.23
통신이란?  (1) 2020.04.23
제어기초(2) - 자기유지  (0) 2020.04.21

댓글