RS-232C의 전송방식과 전기적 특성

첨부자료1 : RS232C인터페이스.hwp
데이터는 보통 8비트(1바이트)로 표현된다. 예컨대 "A"는 아스키 코드에서 41H라는 식이다. 이렇게 표현된 데이터를 전송하는 방식에는 다음 2종류가 있다.

1. 병렬 전송방식

 병렬 전송방식은 1문자를 표현하는 데이터 비트 수만큼 데이터선을 준비하고 즉, 8개를 사용해서 한 번에 1문자분의 비트정보를 전송하는 것이다. 또 직렬 전송방식은 데이터 비트를 최하위에서 1비트씩 계속하여 전송하는 방식이다. 각각 일장일단이 있어서 굳이 어느 것이 좋다고 정할 수는 없다. 병렬전송의 경우는 단시간에 많은 데이터를 보낼 수 있으나 데이터선을 많이 필요로 하기 때문에 비용이 많이 든다.

2. 직렬 전송방식

  직렬 전송은 그 반대로 데이터선은 한 가닥이면 되고 그 때문에 노이즈의 영향도 적지만 1문자를 전송하는 시간이 많이 걸린다. 병렬 인터페이스는 케이블을 길게 할 필요가 없는 비교적 가까운 위치에 있는 프린터 등의 주변장치에 대해 많이 쓰이며, 직렬 인터페이스는 원거리를 전송할 때 이용한다.

  RS232C는 직렬 인터페이스이며, 2번 핀과 3번 핀 간에서 1비트씩 직렬 전송되는 것이다.

  그런데 1비트씩 직렬 전송되게 되면 데이터 비트의 “0”과 “1”은 무엇에 의해 표현되고 보내지는 것인가. 또는 신호선의 ON/OFF를 판단하는 기준은 무엇에 의하는가? 그것은 전압 레벨을 정해진 범위내에서 변화시켜 행하고 있다. 케이블 안을 흐르고 있는 것은 데이터라고 하기 보다는 단순한 전기신호에 불과한 것이다. 다만 그 안의 전압을 바꾸는 것으로 데이터 비트의 “0”과 “1”, 신호선의 ON/OFF를 표현하고 있는 것이다. < 표 1 >에 데이터 비트와 신호선의 상태를 구별하는 전압 레벨을 나타내었다. 데이터의 “0”, 신호선의 ON을 전달할 경우에는 +5 ~ +15V의 전압을 흘리고 +3V이상으로 수신해야 한다. 또 -5 ~ -15V로 출력하고, -3V이하로 입력된 경우에는 데이터의 “1”. 신호선의 OFF를 나타내는 것으로 간주한다. 일반적으로 쓰이는 것은 +-12V이다.

                

< 표 1) > RS232C의 전압 레벨

해  석

0 / ON

1 / OFF

출력시

+5~15V

-5~-15V

입력시

>=+3V

<=-3V



*RS232C 인터페이스의 신호선

  RS232C 인터페이스는 미국의 EIA(Electromic Industries Association)에 의해 규격화된 것으로 정확하게는 EIA-RS232C규격이라고 불리며, 전기적 특성, 기계적 특성, 인터페이스 회로의 기능 등을 규정하고 있다. 이들 규격을 만족시키기 위해서는 2개의 송수신 신호선과 5개의 제어선, 그리고 3개의 어스선이 필요하다. RS232C인터페이스 규격은 본래 데이터 단말장치와 모뎀(MODEM)을 접속하기 위한 것으로,  이 경우 캐리어 수신의 확인 등 송신측과 수신측이 모뎀의 상태를 1대1로 대응시켜서 접속하여야 한다(<그림 1>). 이런 경우 모뎀은 DCE이며 컴퓨터는 DTE이다. 이럴때는 < 그림 1 >과 같이 1대1 대응이 가능하다.


< 그림 1) > 모뎀-컴퓨터간의 접속

            

< 그림 2) > 컴퓨터간의 접속



  그러나 모뎀에 접속하는 경우(DTE와 DCE의 접속)와 접속방법이 다르므로 주의하여야 한다.

  컴퓨터 간(DTE와 DTE)의 통신에서는 모든 제어선을 사용하지 않아도 최소 3개의 송신 데이터선(SD), 수신 데이터선(RD) 및 시그널 그라운드선(SG)이 있으면 통신이 가능하지만, 실제로는 커넥터 내부에서 < 그림 2> 와 같이 4,5,6,7,8,20번의 핀을 연결해 둘 필요가 있다. 이 방식은 컴퓨터끼리를 케이블로 직접 접속하는 경우로서 서로 상대방의 하드웨어의 상태를 확인할 필요가 없는 경우의 가장 간단한 인터페이스 방법이다.


[각 신호선의 역할]

1. FG(FG) Frame Ground

        기기에 연결하는 어스라인.

2. SD(TxD) Send Data(Transmitted Data)

        시리얼 데이터의 송신선. 출력은 전압이다.

3. RD(RxD) Received Data

        시리얼 데이터의 송신을 요구하기 위한 제어선.

4. RS(RTS) Request to Send

        송신 요구. 데이터의 송신을 요구하기 위한 제어선.

5. CS(CTS) Clear to Send

        송신허가. RS에 대한 응답신호.

6. DR(DSR) Data Set Ready

        기기의 전원이 ON인지의 여부와 같은 기기의 준비상태를 조사한다.

7. SG(SG) Signal Ground

        신호선의 어스

8. CD(DCD) Carrier Detect

        캐리어 검출. 모뎀 등의 캐리어가 수신되고 있는가를 조사한다.

20. ER(DTR) Data Terminal Ready

        데이터 터미널이 DR과 마찬가지로 OK인가를 조사한다.


  여기서 괄호 속의 것은 구 규격명이다. 이밖에도 동기식 통신을 행할 경우에 한해 사용하는 신호선이 있다. 대부분의 퍼스컴은 비동기식 통신이므로 미사용으로 되어 있는 경우가 많은 핀이다.

15. ST2

        DCE가 발생하는 동기 클록의 타이밍신호이며, DTE가 데이터를 송신할 때 이에 따른다.

17. RT

        DCE가 발생하는 동기 클록의 타이밍신호이며, DTE가 데이터를 수신할 때 이에 따른다.

24. ST1

        DTE가 발생하는 동기 클록의 타이밍신호이며, DTE가 데이터를 송신할 때 이에 따란다.


*신호선의 역할

  데이턴통신은 이상과 같은 신호선에 의해 DTE와 DCE간에서 서로의 상태를 확인하면서 이루어진다. 이것을 핸드 셰이크라고 하는데, 그 일반적인 순서를 쫓아가 보자

< 그림 3) > DTE와 DCE의 접속

  데이터통신에 앞서 우선 DTE는 20핀의 ER신호를 OK으로 한다. 이것을 받으면 DCE는 동작 가능한 상태라면 6핀의 DR신호를 ON으로 하여 응답한다. 이 확인에 의해 2대의 장치 모두 데이터 통신의 준비가 갖춰져 있다는 것과 쌍방이 케이블로 접속되어 있다는 것을 알 수 있다.

  다음에는 DTE가 상대 기기로 데이터를 송신하고 싶은 경우 DTE는 DCE로 4핀의 RS신호를 ON으로 하여 그 의향을 전한다. DCE는 DTE에서 RS신호를 받으면 통신회선을 떨어진 상대 기기로 캐리어신호를 출력한다. 수신측과 같이 수신측의 DCE에서는 그 캐리어의 검출에 의해 8핀의 CD신호를 ON으로 하여 데이터가 보내져 오는 것을 DTE로 전한다. 송신측의 DCE는 출력한 캐리어가 안정하는 시기를 가늠하여 5핀의 CS신호를 ON으로 한다. 여기서 비로소 DTE는 데이터의 송신을 개시할 수 있는 것이다.

  데이터 송신 종료 후 DTE는 RS를 OFF로 한다. DCE는 그 시점에서 캐리어신호의 출력을 정지하고 CS신호를 OFF로 한다. 수신측에서도 캐리어가 검출되지 않는 것으로 CD신호를 OFF로 한다.

  이상이 일반적인 데이터통신에 대한 각 신호선의 핸드셰이크이다.


*9핀 포트

        





*RS-232C의 전송 방식

  RS-232C를 이용해서 데이터를 전송하려 한다면 수신측과 송신측에 다음 5가지를 일치시켜야 한다.


1. 데이터 전송(동기 전송과 비동기 전송)

2. 패리티 체크

3. 스타트 비트와 스톱 비트

4. 데이터 전송 단위

5. 보율(boud rate)


*RS232C 인터페이스의 동기방식

  RS232C를 사용하여 데이터를 전송하기 위해서는 상대방이 언제 데이터를 보냈으며, 또 어디서부터 데이터인가를 알 필요가 있다. 또 어떤 방식에 있어서는 어떤 방법으로 동기를 취하지 않으면 안된다. RS232C인터페이스에 있어서는 비동기(조보동기) 방식과 동기방식이 사용되는데, 통상 퍼스널 컴퓨터에서는 비동기 방식을 사용하고 있다.

  동기식은 DTE나 DCE간에서 공통의 타이밍을 잡으면서 데이터를 주고 받는 방법이다. DTE가 송신할 때의 타이밍은 DTE 내부의 클록이나 DCE측 클록 어느 것인가를 취하여 하나의 클록에 맞춰 송신한다. DCE는 이들 두 가지 신호를 나누어 DTE로 보내고, DTE가 수신 클록에 따라 데이터를 읽어내도록 한다.

  비동기식은 클록으로 타이밍을 잡는 것은 아니다. 1문자를 나타내는 데이터 비트의 머리에 스타트 비트를 붙이고, 뒤에는 스톱 비트를 붙여서 송신한다. 문자열을 전송하려는 경우에도 1문자마다 이것을 붙여서 1문자마다 동기를 잡는다.

  비동기식의 경우, 실제의 데이터에는 필요없는 비트가 1문자에서 최저 2비트나 부가되기 때문에 동기식보다 효율이 좋지 않다. 다만 구조가 간단하며 타이밍을 잡기 위한 클록 신호를 염려할 필요도 없다. 이러한 이유에서 퍼스컴으로는 동기식을 서포트하지 않는 기종도 많다.

  이하, 응용범위가 넓은 비동기 방식에 대해서 이용시 필요한 사항을 설명하기로 한다.

 

*패리티 체크

  패리티 체크(parity check)는 어떤 데이터를 송신할 떄 1캐럭터 데이터의 최후에 1비트를 체크용으로 부가하여 수신측에서 데이터가 정확히 보내져 왔는가를 체크할 수 있도록 하기 위한 것이다. 패리티 체크는 패리티의 채용 여부에 따라서 결정된다. 채용하는 경우에는 짝수 패리티인가 홀수 패리티인가를 선택할 필요가 있다. 캐럭터 데이터가 8비트일 때는 패리티 비트를 부가할 수 없다.


*비동기 전송방식(스타트 스톱 전송 방식)

  < 그림 4 > 에 나타낸 포맷은 1캐럭터 데이터의 처음에 1비트의 스타트 비트와 끝에 1비트의 스톱 비트를 부가하여 송신한다. 수신측의 LSI는 스타트 비트(논리 0)와 스톱 비트(논리 1)로 1캐릭터마다 동기를 잡는다.

  또, 앞서의 예에서는 스톱 비트는 1비트이지만 1.5비트 또는 2비트를 부가하는 경우도 있으므로, 송신측 수신측 모두 스톱 비트를 일치시켜 둘 필요가 있다;.


 < 그림 4) > 비동기 방식의 데이터 포맷(스타트 비트 1, 스톱 비트 1, 패리티 유, 7비트 길이인 겨우)



*반 2중, 전 2중

  반 2중 방식(half-duplex system)에서는 송신한 데이터가 상대측으로부터 반송되지 않으므로(대형 컴퓨터의 단말에는 이 방식이 많다) 키이보드로부터 입력된 데이터가 화면에 표시되도록(셀프 에코)하면 송신한 캐럭터를 직접 송신측에서 알 수 있다. 전 2중방식(full-duplex system)에서는 송신한 캐럭터를 상대측 기기가 반송하므로 송신측은 그 캐럭터가 확실히 보내졌는가를 확인할 수 있다.




* 보오 레이트

  보오 레이트(baud rate)란 1초당의 변조횟수인데, RS232C 인터페이스에서는 변조횟수와 전송속도(bps:bit/sec)가 일치하므로 단위로서는 보오(baud) 또는 bps가 사용된다.

  데이터의 전송속도는 송수신에 필요한 프로그램의 실행속도와 통신케이블 등의 통신매체의 특성에 따라 크게 좌우된다.

  통상, 보오 레이트는 다음 중의 하나를 선택한다.

        75, 150, 300, 600, 1200, 2400, 4800, 9600, 19200보오

  컴퓨터간의 통신에서는 300~9600보오 중에서 하나를 선택하여 사용하는 것이 일반적이며, 전화회선을 사용하여 통신을 하는 경우에는 300보오 또는 1200보오를 사용하는 경우가 많다.


*비트 길이

  비트 길이(bit length)는 1캐럭터를 나타내는데 사용되는 비트수로서 5,6,7,8비트를 사용하지만, 일반적으로는 7,8비트를 많이 사용한다.


*X파라미터

  송신측에서 보내온 데이터는 수신측에 의해서 처리되는데, 만일 처리하는 속도가 느린 경우 데이터의 일부가 누락된다. 이와 같은 사태가 생기지 않도록 하기 위해서는 어떤 방법으로 송신측의 데이터의 송출을 정지시켜야 한다. X파라미터에 의한 제어방법은 수신측이 송신측에 컨트롤 코드 DC3(13H)을 보냄으로써 데이터의 송출을 정지시키고, DC1(11H)을 보냄으로써 다시 데이터를 보내게 하는 방법이다. DC3은 ^S, DC1은 ^Q와 같은 코드이다.


* 전송 제어 절차(통신 규약 : protocol)

  전송 제어는 데이터 전송의 제어 절차를 말하며, 전송 제어를 실행하기 위한 규칙을 전송 제어 절차라 하는데, 이는 데이터 통신의 문제점을 해결하기 위해서 나타내게 되었다. 전송 제어 절차는 1960년대 컴퓨터를 통해서 데이터를 전송시키기 시작할 때부터 사용되기 시작했다. 처음에는 여러 가지 전송 제어 절차의 사용으로 많은 문제점과 혼란이 발생되었으나 이 문제점과 혼란을 방지하기 위해서 1976년 국제 전신 전화 자문 위원회(CCITT)에서 전송제어 절차의 표준화를 발표했다.

  전송 제어 절차는 문자 전송 방식과 바이트 전송방식, 그리고 비트 전송 방식의 3가지로 구분할 수 있는데, 문자 전송 방식은 전송 제어 문자를 데이터의 처음과 끝에 나타내서 전송하는 방식이고, 바이트 전송 방식은 데이터의 처음과 끝에 포함한 특수 문자와 데이터의 문자 수, 그리고 정보 메시지 수신 상태를 나타내는 제어 정보와 블록 검사를 함께 전송하는 방식이다. 비트 전송 방식은 특정 플래그를 데이터의 처음과 끝에 나타내 비트 메시지를 전송하는 방식이다. 이 전송 제어 절차에는 IBM사의 BSC와 ISO의 HDLC등이 있다.


* 기본형 데이터 전송 제어 절차

 기본형 데이터 전송 제어 절차는 KSC 5636의 7비트 부호를 사용해서 데이터를 전송하는 방식으로 전송 제어 문자를 포함하는 정보 메시지를 전송한다.


코 드

기 호

명 칭

01

SOH

Start Of Heading

정보 메시지의 헤딩시작

02

STX

Start Of Text

정보 메시지의 텍스트 시작과 헤딩의 종료

03

ETX

End oOf Text

정보 메시지의 텍스트 종료

04

EOT

End Of Transmission

전송의 종료

05

ENQ

Enquity

상대국의 응답을 요구

06

ACK

Acknowledge

수신된 정보 메시지에 대한  긍정 응답

10

DLE

Data Link Escape

다른 정송 제어 문자와 조합해서 전송 제어를 확장

15

NAK

Negative Acknowlege

수신된 정보 메시지에 대한 긍정 응답

16

SYN

Synchronous Idle

문자 동기의 유지

17

ETB

End Of Transmission Block

전송 블록의 종료


  정보 메시지는 기본형 데이터 전송 제어 절차에서 문자나 문자열로 전송되는 정보를 말하며 텍스트와 헤딩으로 구성된다. 텍스트는 전송되는 자료의 실제 내용을 표시하고, 헤딩은 텍스트 전송을 원활하게 하도록 보조해 주는 정보로 통신 회선의 방향과 상대측의 주소, 그리고 우선 순위 등을 포함한다. 정보 메시지의 길이는 일반적으로 가변 길이를 사용하지만 하나의 정보 메시지의 길이가 너무 크다면 정보를 몇 개의 블록의 텍스트 집합으로 나누어서 정보 메시지를 전송한다.

  정보 메시지를 사용할 때 전송 제어 문자는 SOH와 STX 그리고 ETB와 ETX를 사용하는데, 헤딩을 갖는 정보 메시지를 사용할 경우에는 헤딩의 시작을 SOH로 하며, 본문이 연결될 때에는 STX로 끝내고, 그렇지 않을 경우에는 ETB로 끝낸다. 그리고 정보 메시지를 여러 개의 블록으로 나눌 때의 각 블록의 시작을 STX로 하고 ETB나 ETX로 끝나게 된다. 또한, 정보 메시지나 블록의 오류를 검출하기 위해서는 BCC나 BCS를 사용하기도 한다. 그리고 SYN 이외의 전송 제어 문자는 헤딩과 텍스트에 사용되어서는 안 되는데, SYN은 헤딩이나 텍스트의 문자 동기와 타임 필러(time filler)를 유지하기 위해서 사용되기도 한다.



  기본형 데이터 전송 제어 절차에서는 데이터를 전송하기 위한 동작으로 다음과 같은 5가지의 독립적 단계로 구성된다.


1단계 : 교환 회선을 사용할 경우에 필요하고 데이터를 전송할수 있도록 통신 회선을 접속시켜 주는 단계를 말한다.


2단계 : 1단계에서 접속된 통신 회선에서 송수신측에 정확한 데이터를 송수신하기 위해 논리적 경로를 구성하는 단계로, 수신측의 데이터 전송 준비 상태와 입축력 기기 지정 등의 제어 정보가 교환된다.


3단계 : 2단계에서 설정된 데이터 링크를 사용해서 수신측에 정보 메시지를 전송하는 단계로, 정확한 데이터를 수신하기 위해서 오류 제어를 수행한다.


4단계 : 정보 메시지를 전송이 끝나면 수신측과 확인해서 데이터 링크를 종료시키고 원상태로 복구시키는 단계를 말한다.


5단계 : 1단계와 마찬가지로 교환 회선을 사용할 경우에 필요하며 1단계에서 접속한 데이터 통신 회선을 절단시키는 단계이다.


*BSC 전송 제어 절차

  이 방식은 반이중 전송 방식의 경우에만 사용이 가능하다. EBCDIC 코드나 ASCII 코드를 문자 코드로 사용하며, 15종류의 제어 코드를 사용한다. 그리고 2개의 제어 문자를 함께 사용해서 하나의 의미를 나타내기도 한다.

  BSC 전송 제어 절차의 메시지 구성은 기본 모드 구성과 투명 모드 구성의 두가지로 나눌 수 있으며, 기본 모드는 전송할 때 생기는 오류의 발생을 줄이기 위해서 데이터를 여러 개의 블록으로 나누어서 전송한다.

 < 표 2) > BSC 전송 제어 문자

ASCII 코드

EBCDIC 코드

기 호

명 령

01

01

SOH

헤딩의 시작

02

02

STX

텍스트의 시작

172

26

ETB

전송 블록의 종료

03

03

ETX

텍스트의 종료

04

37

EOT

전송의 종료

05

2D

ENQ

조회

15

3D

NAK

부정 응답

16

32

SYN

동기 신호

10

10

DLE

전송 제어의 확장

1F

1F

ITB

중간 전송 블록의 종료

1030

1070

-->