[통신]

RS-232/422/485 통신의 개요

Neo Park 2012. 1. 4. 16:14

 

마이크로프로세서는 주변장치를 통해서 외부와 정보를 교환할 수 있으며

일반적으로 정보를 외부와 교환하는 방법으로는 병렬통신과 직렬통신 2가지로 나눌 수가 있다.

 

일반적으로 컴퓨터내의 장치와 정보교환을 할 때는 통상적으로 고속의 통신속도를 필요로 하여

한꺼번에 많은 정보를 처리할 수 있는 병렬통신 방식을 주로 쓴다.

 

이는 대량의 정보를 빠른 시간에 한꺼번에 처리함으로써 컴퓨터의 성능을

향상 시킬 수가 있기 때문이며 이것은 데이터 비트 수로써 나타난다.

 

하지만 모든 경우에 병렬통신 방식을 사용할 수는 없다.

그 이유는 통신거리의 제한성, 구현상의 기술적인 어려움과 비용이 너무 비싸다는데 있다.

 

또한 어플리케이션 자체가 고속의 통신속도를 필요로 하지않을 경우도 많다.

이러한 이유로 컴퓨터가 외부와의 통신을 할 때는 직렬통신 방식을 많이 사용한다.

 

직렬통신 방식이란 데이터 비트를 1개의 비트단위로 외부로 송수신하는 방식으로써 구현하기가 쉽고,

멀리 갈 수가 있으며, 기존의 통신선로(전화선 등)를 쉽게 활용할 수가 있어 비용의 절감이 크다는 장점이 있다.

 

직렬통신의 대표적인 것으로 모뎀, LAN, RS-232 등이 있다.

하지만 크게 직렬통신을 구분하면 비동기식 방식과 동기식 방식 2가지로 나누어진다.

 

많은 사람들이 비동기식 통신방식을 RS-232로 알고 있는데 실질적으로 RS-232라는 것은

비동기식 통신 컨트롤러에서 나오는 디지털신호를 외부와 인터페이스 시키는 전기적인 신호 방식의 하나일 뿐이다.

 

일반적으로 RS-232를 비동기식 통신방식으로 인식하고 있는 것도 큰 무리는 없다.

비동기식 통신 컨트롤러를 일반적으로 UART(Universal Asynchronous Receiver & Transmitter)라 부른다.

 

UART에서 나오는 신호는 보통 TTL신호레벨을 갖기 때문에 노이즈에 약하고 통신거리에 제약이 있다.

이러한 TTL신호를 입력 받아 노이즈에 강하고 멀리 갈 수 있게 해주는 인터페이스 IC를

LINE DRIVER/RECEIVER라 부르며 이중 대표적인 것이 RS-422 RS-485가 있다.

 

 

 

시리얼통신(Serial Communications)의 기본

☞ Baud Rate (보오레이트)와 BPS(비트/초)
보오(Baud)라고 말하는 단위는 19세기 후반에 프랑스 전신 공사의 Jean Maurice Baudot씨의 이름에서 유래한다.

보오(Baud)라고 말한 단위는 원래 변조율이나 1초간 통신선의 신호 변경 회수를 가리키는 단어로서 사용되고 있다.

2개의 시리얼 디바이스를 접속한 경우에는 보오(Baud)와 BPS는 사실상 똑같다.

만약 통신 속도를 19,200BPS로 통신하고 있다면, 1초간에 19,200회 선을 통과한 신호가 변화한다고 말할 수 있다.


☞ 비트 단위 데이터 전송
시리얼통신에서는 1 바이트를 8개의 비트로 분리해서 한번에 1비트씩 통신선로로 전송한다.

수신측에서는 통신선로를 통해 수신한 비트들을 조립해서 1 바이트를 만들어내야 하는데 이때 1 바이트의 범위를 식별하기 위하여

사용하는 것이 start bit 와 stop bit이다.

일단 start bit를 송신하면 송신 측(계측 장치)에서는 계속해서 데이터비트를 송신한다. 데이터 비트는 일반적으로 7또는 8bit를 주로

사용한다. 수신 측(PC측) 과 송신 측(계측 장치)은 이러한 데이터 비트 수와 보오레이트의 값을 일치하게 설정할 필요가 있다.

7 데이터 비트라고 설정되어 있는 경우에는 127보다 큰 ASCII값을 보낼 수 없다. Hexa 값을 보내기 위해서 8bit 통신을 사용 한다.

데이터를 송출하면 마지막으로 스톱 비트를 보낸다. 스톱 비트의 값은 1 의 값 또는 기호이다.

기호라면 이전 데이터 비트의 값이 1이라도 확실하게 스톱 비트로서 잡는 것이 가능하다.

스톱비트의 데이터 길이는1,1.5,2비트 중 선택 사용이 가능하다.


☞ 패리티 비트(Parity Bit)
start bit 와 stop bit에 의하여 데이터의 단락을 나타내지만,패리티 비트라고 불리는 것을 이용하여 데이터의 구조를 확인하는 경우가 있다. 데이터의 송신 중에 데이터에 어떠한 누락이 생기고 있지 않을까 해서 그것을 체크하는 것이 패리티 비트이다.

패리티에는 짝수 패리티(Even parity),홀수 패리티(Odd parity),마크 패리티(Mark parity),스페이스 패리티(Space parity),

혹은 패리티 없음(None at all)을 선택할 수 있다. 짝수 또는 홀수 패리티를 이용하면

각 데이터 바이트 중의 1의 개수를 헤아리고 보내진 그 수가 짝수 또는 홀수가 되도록 패리티 비트를 송신한다

 

☞ 케이블 길이

RS-232C 규격으로는 케이블의 길이는 약150cm로 되어 있다. 실드가 불안한 케이블의 경우,외부 환경이 크게 영향을 주며 전기적인 노이즈가 발생하기 쉬운 환경에서는 짧은 케이블을 이용해도 노이즈에 영향을 받는다. 표준적인 사용 환경에 있어서 24게이지 와이어의 실용적인 길이를 다음에 나타낸다. 이것 이상의 길이에 이용한 경우는 신호 증폭기나 옵티칼 아이솔레이터(Optical Isolators)를 사용한다.

 

 


☞ RS-232C
RS-232C는 「Recommend Standard number 232」의 약어이고, 「C」는 표준 규격의 최신판을 나타내는 것이다. 거의 대부분의 PC의 시리얼 포트는 RS-232C의 서브 세트(9핀)가 표준 장비되어 있다. 풀 규격은 25-pin의 "D"형태 커넥터로,이 중 22핀을 통신에 사용한다. 그러나 보통의 PC 통신에서는 이들 대부분의 핀은 사용되지 않는다. 대부분의 PC에는 통상 수컷(male)의 9핀 "D" 타입 커넥터가 장비되고 있다. 최근의 P/C는 RS-232C 대신에 USB를 채용하고 있어 RS-232C를 사용하기 위해서는 RS-232C Adapter를 사용하여야 한다.

 


☞ DCE와 DTE 장치
DTE는 데이터 단말장치(Data Terminal Equipment)의 약어이고, DCE는 데이터 통신장치(Data Communications Equipment)의 약어이다. 이러한 약어를 이해한 것으로 데이터를 송신한 장치와 그 신호를 수신한 장치의 관계를 올바르게 이해할 수 있다. 보통 PC는 DTE 장치이고 그 반면에 대부분의 다른 디바이스는 보통 DCE 장치이다.RS-232스탠더드에서는 DTE장치는 25핀의 male 커넥터를 사용하고, DCE장치는 25핀의 female커넥터를 사용한다. DTE장치를 DCE장치에 접속하는 경우에는 스트레이트 케이블을 이용한다


☞ 동기(Synchronous) 통신과 비 동기(Asynchronous) 통신
시리얼 통신에는 동기통신과 비 동기 통신의 2 종류의 통신 방식이 있다. 동기 통신의 경우,2개의 디바이스 사이에서 동기를 취하고 그 타이밍에 따라 데이터를 송수신한다. 데이터의 교환이 없는 사이도 제어용의 신호가 흐르고 있으므로 상대와의 동기를 유지하는 것이 가능하다. 실 데이터를 송신한 때는 그것을 수신하고 데이터가 없는 때에는 대기 상태를 나타내는 신호를 교환한다. 이처럼 통신이 확립되면 실 데이터를 송수신한 것에 데이터의 시작과 종료를 나타내는 신호가 존재하지 않기 때문에 데이터 전송 속도는 빨라진다. PC의 시리얼 포트는 비 동기장치 이다. 그러므로 비 동기 시리얼 통신만 지원한다.

 

   

RS232

RS-232C는 EIA(Electronic Industries Association)에 의해 규정되었으며 그 내용은 데이터단말기(DTE: Data Terminal Equipment)와 데이터통신기(DCE: Data Communication Equipment)사이의 인터페이스에 대한 전기적인 인수, 컨트롤 핸드쉐이킹, 전송속도, 신호 대기시간, 임피던스 인수 등을 정의하였으나 전송되는 데이터의 포맷과 내용은 지정하지 않으며 DTE간의 인터페이스에 대한 내용도 포함하지 않는다. 같은 규격이 CCITT(Consultative Committee for International Telegraph and Telephony) 에서도 CCITT V. 24에서 DTE와 DCE간의 상호 접속회로의 정의, 핀 번호와 회로의 의미에 대해서 규정을 하고 있다.

 

☞ 신호선에 대한 설명
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
      상대편 모뎀이 통신을 하기위해서 먼저 전화를 걸어오면 전화 벨이 울리게 된다. 이때 이 신호를 모뎀이 인식하여 컴퓨터 또는 터미널에 알려주는 신호선이며 일반적으로 컴퓨터가 이 신호를 받게 되면 전화벨 신호에 응답하는 프로그램을 인터럽터 등을 통해서 호출하게 된다.


☞결선도

 

RS422

RS-422는 EIA에 의해서 전기적인 사양이 규정되어 있으며 RS-422에서는 Point To Point 모드와 Multi-Drop 모드 두 가지가 있다. Point To Point 모드인 경우 RS-232와 신호선 당 2개의 라인이 필요한 것만 빼고 사용하는 방법에 있어서 별다른 필요가 없다. 하지만 Multi-Drop 모드인 경우는 Stream 에 의한 사용 방법이므로 다소 사용법이 복잡하다. 일반적으로 사용되는 신호선은 TXD+, TXD-, RXD+ 및 RXD- 이고 나머지 신호선은 거의 사용되지 않는다.

물리적으로 하나의 신호선에 두 개의 라인이 필요한데 그들의 표현은 신호선 명 뒤에 + 와 - 로써 구분표기 한다. 즉, 예를 들면 RS-232의 TXD 신호선이 RS-422에서는 TXD+와 TXD-로 나누어 지는 것과 같다.

 

☞ 신호선에 대한 설명
  물리적으로 하나의 신호선에 두 개의 라인이 필요한데 그들의 표현은 신호선 명 뒤에 + 와 - 로써 구분표기 한다. 즉, 예를 들면 RS-232의 TXD 신호선이 RS-422에서는 TXD+와 TXD-로 나누어 지는 것과 같다.


☞ 결선도

 

 

 

RS485

RS-485는 EIA에 의해서 전기적인 사양이 규정되어 있으나 물리적인 코넥터 및 핀에 대한 사양은 아직 규정되어 있지 않다. 앞으로 나오는 이들의 내용은 한 예로 규정하여 사용하는 사양이니 이에 대해서 오해가 없으면 한다. RS-485인 경우 RS-232나 RS-422처럼 Full Duplex가 아닌 Half Duplex 전송방식만 지원하기 때문에 RS-422의 Multi-Drop 모드의 슬레이브 처럼 RS-485의 모든 마스터는 TXD신호를 멀티포인트 버스(RS-485의 모든 마스터가 공유하는 신호라인을 그렇게 부른다.)에 접속 또는 단락 시켜야만 할뿐만 아니라 RXD신호 역시 모드에 따라서는 접속, 단락의 제어를 하여야 한다. RS-485에서는 Echo 모드와 Non Echo 모드 두 가지가 있다


☞신호선에 대한 설명
RS-422와 별차이가 없이 물리적으로 하나의 신호선에 두 개의 라인이 필요한데 그들의 표현은 신호선 명 뒤에 + 와 - 로서 구분표기 한다. 하지만 UART의 TXD, RXD신호선이 멀티포인트 버스에 의하여 공동으로 사용하게 됨에 유의하여야 한다. 즉 하나의 마스터는 멀티포인트 버스를 출력이면 출력, 입력이면 입력으로 구분하여 사용할 수 밖에 없다.


☞결선도