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

시리얼 통신 - RS232C

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

 

오늘은 직렬통신 중에서 시리얼 통신에 대해 얘기해 볼까 합니다.

시리얼 통신에는 많은 통신방식이 있습니다.

그중에서 우리는 대표적으로 RS232C, RS422, RS485 통신 규격을 제일 많이 사용합니다.

(여기서 우리는 플랜트 산업계를 이야기 하는거에요. ㅎㅎ 일반인들은 USB를 제일 많이 쓰죠. ㅎㅎㅎ)​

 

먼저 세가지 통신규격에 대하여 분류표를 통해 잠시 간단히 알아보도록 하죠.

Spec. RS-232C RS-422 RS-485
동작방식 Single ended Differential Differential
통신방식 1:1통신
(1마스터 - 1슬레이브)
1:N통신 (약10EA)
(1마스터 - 10슬레이브)
N:N통신 (약32EA)
(32마스터 - 32슬레이브)
전송거리 15m 1.2km 1.2km
전송속도 20 kb/s 10 Mb/s 10 Mb/s
전송방식 전이중 전이중 4Wire : 전이중
2Wire : 반이중
결선방식 최소 3Wire 4Wire 2Wire or 4Wire

 

위 스펙보다 지금은 기술이 더 많이 발전해서 전송거리라던가

전송속도등 각종 스펙이 더 좋아지긴 했지만,

안전하게 사용하려면 위 스펙 안에서 사용하는걸 추천합니다.

이제 위의 표에 대한 설명과 더불어 상세히 이야기해 보겠습니다.

먼저 RS-232C입니다.

RS-232C에서 RS는 (Recommended standard)의 약자

해석 그대로 권고하는 표준이라는 의미입니다.

그 중에서 232라는 식별번호를 가진 통신규격인것이며

C는 세번째 Rev.되었다는 뜻입니다.

(현재 가장 최신의 Rev.은 RS-232E 입니다.)

여튼 국제적으로 많이 사용하는 이 통신규격은

미국의 EIA(미국전자공업회)에서 1969년 발표된 규격으로

이 규격이 목적으로 하는 바는 데이터 터미널장비[DTE (예:컴퓨터)]와

데이터 통신장비[DCE (예:통신모뎀)]사이의 인터페이스에 대한

전기적 특성을 정의하는 것입니다.

간단히 설명하자면 컴퓨터 내부에서 사용하는 병렬통신을

외부기기와 통신하기 위해 직렬통신으로 바꾸어 송수신해야 하는데

이것을 RS-232C가 수행해 주는 것입니다.

 

(산업용 기기들은 애초에 12V ~ 24V정도의 전압레벨을 가지고 있는데,

PC나 일반적인 마이크로 프로세서들은

TTL level이라고 0 ~ 5V의 전압레벨을 가지고 있는 UART통신으로

사용하고 있다고 합니다.

이 사이에서 통신을 하기위해 갭을 채우기 위해 MAX232라는 IC를 사용한다고 하네요.)

 

RS-232C의 통신케이블의 커넥터 규격은 DB25핀과 DB9핀이 있는데 배치는 아래와 같습니다.

각 핀의 용도는 아래와 같습니다.

 

TXD (Transmit data) : 외부장치로 데이터를 보낼때 데이터가 나오는 포인트

 

RXD (Receive data) : 외부장치로 부터 데이터를 입력 받는 포인트

 

RTS (Ready to send) : DTE(컴퓨터)가 DCE(모뎀)에게 데이터 수신준비완료를 알리는 포인트

 

CTS (Clear to send) : DCE(모뎀)가 DTE(컴퓨터)에게 데이터 수신준비완료를 알리는 포인트

 

DTR (Data terminal ready) : 컴퓨터 혹은 터미널이 모뎀에게 자신이 송수신 가능한 상태임을 알리는 포인트이며

일반적으로 컴퓨터가 처음 켜진 후 통신포트를 초기화 하고 이 신호를 송신한다.

 

DSR (Data set ready) : 모뎀이 컴퓨터 혹은 터미널에게 자신이 송수신 가능한 상태임을 알리는 포인트이며

일반적으로 통신모뎀이 처음 켜진 후 자신의 상태를 확인 하고

이상이 없을때 이 신호를 송신한다.

 

DCD (Data carrier detect) : 모뎀이 상대편 모뎀과 전화선 등으로 연결되었을때 상대편 모뎀이 캐리어 신호를

보내오면 이 신호를 검출하였음을 컴퓨터에 알려주는 신호포인트.

 

RI (Ring indicator) : 상대편 모뎀이 우리편 모뎀에게 전화를 걸어오면 우리편 모뎀이 이를 인식하여 컴퓨터

또는 터미널에게 알려주는 신호 포인트이며, 일반적으로 컴퓨터가 이 신호를 받게되면

상대편이 걸어온 전화로 인해 우리편 모뎀에서 울리는 벨에 대해 응답하는 프로그램을

인터럽터등을 통해 호출하게 된다.

 

GND (Ground) : signal 접지

이제 232C 결선에 대해 얘기해 보겠습니다.

산업용으로 사용할 경우에는 최소가닥수인 3가닥만 사용하는 경우가 많이 있습니다.

(제가 개인적으로 생각했을때는 대부분인것 같습니다.)

 

아래 사진은 제가 가지고 있는 LS산전 PLC XGB시리즈의 시리얼통신 단자 사진입니다.

위쪽 두단자는 RS485단자이고, 아래쪽 세단자가 RS232C 단자입니다.

이렇게 3가닥만 연결해주어도 통신에 큰 문제가 없습니다.

다만 정식으로 DB-9핀으로 구성되어 있는 PLC나 설비들도 있으니 현장상황에 맞춰 대응해야 합니다.

마침 제가 가지고 있는 멜섹PLC중에도 DB-9핀 포트가 있네요.

참고로 올려두겠습니다.

 

 

 

그럼 최소 가닥 수인 3가닥으로 결선하는 법을 그림으로 보겠습니다.

크게 어려운것은 없으며 데이터를 송신하고 수신하는 단자인 RXD, TXD를 상호 교차하여

연결하면 됩니다.

그리고 시리얼 통신시에는 통신속도를 상호 맞추는것이 굉장히 중요합니다.

통신속도 Baud Rate(보오레이트)라고 불리며,

1200, 2400, 4800, 9600, 19200같은 수치로 나와 있습니다.

이것을 상호 맞추어야 한다.

그리고 각 시리얼통신간의 차이점에서 동작방식이

Single ended와 Differential 방식이 있는걸 보셨을텐데요.

Differential은 차동신호라는 뜻으로 많이 사용하데 그 이유는 다음과 같습니다.

통신에 있어 가장 문제가 되는것이 노이즈 인데 이 노이즈를 줄이는 방법은 아래와 같습니다.

1. 신호 전압레벨을 높이는것.

2. 실드케이블을 이용하여 노이즈를 차폐시키는 것.

3. 차동신호(Differential)를 이용하여 능동적으로 노이즈를 제거하는 방법.

4. 소프트웨어 적으로 CRC(Check sum)를 이용하여 에러를 검출하는 방법.

그렇지만 위의 방식중 1번은 전압레벨이 높아지는 만큼

통신속도가 느리게 되는 단점이 있고,

2번의 경우도 통신선과 차폐선 사이의 부유용량 때문에 통신속도가 저하됩니다.

또 4번의 경우 Check sum 코드가 추가되는 만큼 통신속도가 저하되는 단점이 있습니다.

그래서 차동신호(Differential)를 많이 선호하기도 합니다.

 

차동신호는 노이즈가 신호케이블 양단에 동시에 유입된다는 특성으로

원래 신호를 제외하고 양단에 동일하게 들어온 노이즈를 찾아내어

능동적으로 제거할 수 있기에 굉장히 편리합니다.

 

이때는 케이블을 꼬아서 (트위스트타입) 사용하는것이 좋다고 합니다.

사용시 유의할 점으로는 아래 내용들을 읽어보자. (출처 나무위키)

비동기 통신이기 때문에 통신속도가 매우 중요하다. 통신속도가 다르게 세팅되었다면 통신 자체가 안 된다.

접지 또한 중요하다. BP_NRZ (양극식 영점 무귀환) 통신이기 때문에 전압 레벨을 가지고 0과 1을 구분하는데 접지가 안 돼있으면 전압 레벨을 구분할 수가 없어 쓰레기 값만 나오는 모습을 볼 수있다.

PC나 공작기기와 임베디드 기기 간 통신 시 주의할 점이 있다. 데이터 통신 규격은 동일하다 하더라도 산업용 기기의 전압 영역은 DC 24V, 가정용 PC의 전압 영역은 +12V~-12V인 반면 임베디드 기기는 5V대의 전압을 사용하는 설비나 부품이 대다수이기 때문에 아무 생각없이 산업용 설비/가정용 PC와 임베디드 기기와 연동할 경우 임베디드 기기 쪽이 망가질 수 있다. 따라서 MAX-232 등의 전압레벨 컨버터를 사용해야한다. 비슷하게 5V 기기와 3.3V 임베디드 기기와의 통신도 유의할 필요가 있다.

Tx, Rx구분을 주의하자. 항상 Tx에서 출발한 선은 상대 측 Rx에 연결해야 통신이 된다.

통신 유효 거리가 길다고 설명하긴 했지만 15m 정도이기 때문에, 산업 현장 등에서 건물 내부에 통신 선을 설비할 때나 초장거리 통신용으로 사용하기는 적합하지 않다.

이번 포스팅에서는 RS232C까지 알아보는걸로 마무리 하고

다음 포스팅에서 RS422과 RS485에 대해 알아보겠습니다.

https://mech19.tistory.com/31

 

시리얼 통신 - RS422, RS485

이번 포스팅에서는 RS-422과 RS-485통신에 대해서 얘기해볼까 합니다. 시리얼통신과 RS232C에 대한 내용은 이전 포스팅을 참조해 주시기 바랍니다. https://mech19.tistory.com/30 시리얼 통신 - RS232C 이제 직

mech19.tistory.com

 

감사합니다.

반응형

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

제어기초(3) - A접점 B접점 C접점 기기  (0) 2020.04.25
시리얼 통신 - RS422, RS485  (0) 2020.04.23
통신이란?  (1) 2020.04.23
제어기초(2) - 자기유지  (0) 2020.04.21
제어기초(1) - A접점 B접점 C접점  (0) 2020.04.18

댓글