학습목표

학습주제

예습내용

   

실습방법

  

HOME

학습목표

시리얼 통신의 원리를 이해한다.

 학습주제

· RS232C

· RS422

· RS423

· RS485

· NULL 모뎀 케이블 제작

 예습내용

· 통신의 종류

t처음

 

  

 

컴퓨터와 마이크로프로세서의 통신은 시리얼(serial) 통신과 병렬(parallel) 통신이 있으며 다음과 같은 장단점이 있다.

시리얼(serial) 통신

병렬(parallel) 통신

RS232C, RS422, RS485 등이 있으며 저가로 구현되며 먼거리를 송신할 수 있다.

CPU, HDD, FDD, VIDEO 등이 병렬 통신이며 고가이며 통신거리가 짧다.

 

다음은 시리얼 통신을 요약한 것이다.

Specification

RS232C

RS423

RS422

RS485

동작 모드

Single-Ended

Single-Ended

Differential

Differential

최대 Driver/Receiver 수

1 Driver

1 Receiver

1 Driver

10 Receivers

1 Driver

10 Receivers

32 Drivers

32 Receivers

최대 통달거리

15 m

1.2 km

1.2 km

1.2 km

최고 통신속도

20 Kb/s

100 Kb/s

10 Mb/s

10 Mb/s

지원 전송방식

Full Duplex

Full Duplex

Full Duplex

Half Duplex

최대 출력전압

±25V

±6V

-0.25V to +6V

-7V to +12V

최대 입력전압

±15V

±12V

-7V to +7V

-7V to +12V

 t처음

1. RS232C

RS232C는 EIA(Electronic Industries Association)에 의해 규정되어 졌으며 그내용은 데이터단말기(DTE: Data Terminal Equipment)와 데이터통신기(DCE: Data Communication Equipment)사이의 인터페이스에 대한 전기적인 인수, 컨트롤 핸드쉐이킹, 전송속도, 신호 대기시간, 임피던스 인수등를 정의하였으나 전송되는 데이터의 포맷과 내용은 지정하지 않으며 DTE간의 인터페이스에 대한 내용도 포함하지 않는다.

 

 

1.1           전기적 특성

   컴퓨터 회로의 신호 레벨에서 디지털 신호 "1"은 +5V를 사용하고, 디지털신호 "0"은 0V를 사용하므로 각 신호간의 전압차는 5V이다.  그런데 통신은 가까운 곳에서부터 멀리 떨어져 있는 곳까지 이루어지므로 5V라는 전압차로는 먼 곳까지 통신을 하기란 어렵다.

   RS-232C에서는 전압 강하가 발생하여도 어느 정도의 거리는 안전하게 신호를 구분할수 있도록 각 신호간의 전압차를 늘렸다.  "1"의 값을 +12V를 "0"의 값으로 -12V를 사용하여 신호간의 전압차를 24V로 만들었다. 이와같이 신호간의 전압차를 늘렸을 때 약 50피트(약 15m)내의 거리에서 2000BPS(약 19.2Kbps)까지의 속도로 전송이 가능하다.  따라서 전기적 특성이란 신호의 레벨과 전압변동의 타이밍과 관련되고, DTE와 DCE사이의 부호화를 의미한다.  이러한 특성에 따라 데이터 전송률과 DTE와 DCE사이의 연결할 수 있는 거리가 결정된다.

 

  DTE(Data Terminal Equipment) : 데이터 단말장치(예 : 컴퓨터, 데이터 터미널 단말기)

  DCE(Data Circuit_terminal Equipment) : 회선 종단 장치(예 : 모뎀)

  t처음

 

1.2 기능적 특성

 기능적 특성이란 DTE와 DCE를 접속하는 각 회선에 기능을 부여하고 있으며 각 신호선의 기능에는 크게 데이터(data),제어(control),타이밍(timing),접지(ground)등으로 구분된다.

 

핀 규격

9핀

25핀

신호명

방향

설명

1

8

DCD (Data carrier detect)

In

모뎀이 컴퓨터 또는 터미널에게 자신이 송수신 가능한 상태임을 알려주는 신호선이다.

2

3

RX (Receive data)

In

외부 장치에서 들어오는 직렬통신 데이터를 입력받는 신호선이다

3

2

TX (Transmit data)

Out

비동기식 직렬통신 장치가 외부 장치로 정보를 보낼 때 데이터가 나오는 신호선이다.

4

20

DTR (Data terminal ready)

Out

컴퓨터 또는 터미널이 모뎀에게 자신이 송수신 가능한 상태임을 알리는 신호선이다.

5

7

GND (Signal ground)

 

 

6

6

DSR (Data set ready)

In

모뎀이 컴퓨터 또는 터미널에게 자신이 송수신 가능한 상태임을 알려주는 신호선이다.

7

4

RTS (Request to send)

Out

컴퓨터와 같은 DTE장치가 모뎀 또는 프린터와 같은 DCE장치에게 데이터를 받을 준비가 됐음을 나타내는 신호선이다.

8

5

CTS (Clear to send)

In

모뎀 또는 프린터와 같은 DCE장치가 컴퓨터와 같은 DTE장치에게 데이터를 받을 준비가 됐음을 나타내는 신호선이다.

9

22

RI (Ring indicator)

 

상대편 모뎀이 통신을 하기위해서 먼저 전화를 걸어오면 전화 벨이 울리게 된다.

이때 이신호를 모뎀이 인식하여 컴퓨터 또는 터미널에 알려주는 신호선이며 일반적으로 컴퓨터가 이신호를 받게되면 전화벨 신호에 응답하는 프로그램을 인터럽터등을 통해서 호출하게 된다.

 t처음

 

코넥터 사양

 

결선도

DTE to DCE 9 Wire Cables

DTE to DCE 8 Wire Cables

DTE to DTE 3 Wire Cables

DTE to DTE 7 Wire Cables

 t처음

DCE DTE 사이에 데이터는 다음과 같이 주고 받는다.

DTE

DCE

TD

RD

RTS

CTS

DTR

DSR


데이터를 보낼 (DTE에서 DCE)

1: DTR RTS 연다.

2: DSR 신호를 기다린다.

3: CTS 신호를 기다린다.

4: 데이터를 보낸다.

데이터를 받을 (DCE에서 DTE)

1: DTR 연다.

2: DSR 신호를 기다린다.

3: 데이터를 받는다.

 t처음

보오 레이트(baud rate)란 1초당의 변조횟수인데, RS232C 인터페이스에서 변조횟수와 전송속도(bps:bit per second)가 일치하므로 단위로서는 보오(baud) 또는 bps가 사용된다. 데이터의 전송속도는 송수신에 필요한 프로그램의 실행속도와 통신 케이블 등의 통신매체의 특성에 따라 크게 좌우된다.

보오는 1초당 변조횟수이고, bps는 1초당의 전송 횟수이다. 따라서 변조방식을 연구하면 1회의 변조에 의해 2비트 또는 그이상의 정보량을 전송할 수 있다. RS232C 인터페이스는 전압의 High와 Low로 변조(AM 변조)하고 있으므로 1회의 변조로 1비트의 정보량을 전송하는 셈이 되며, 보오와 bps는 일치한다.

다음은 마이크로프로세서에 쓰이는 MAX232의 결선도이다.

 

MAX232 외부구조 내부구조

 

*멀티드롭이란?

   하나의 시리얼 버스에 여러개의 드라이버/리시버를 접속하고, 임의로 데이터를 전송할 수 있는 것을 말하고,  이 경우, 여러개의 드라이버가 동시에 동작되면 버스 상에서 데이터가 충돌하기 때문에 전송하지 않는 드라이버를 OFF할 수 있도록 3스테이트OFF스테이트를 지닌 출력의 드라이버를사용해야 한다.

 t처음

 

RS-422통신이란

 

RS422는 RS232C보다 장거리,고속용 규격이다. 전송 거리는 최대 1.2km,전송 레이트는  최대10Mbps가 가능하다. 단, 거리와 속도를 동시에 최대로 할수 없다,  

   장거리,고속의 전송을 하기 위해 RS422에서는 신호선을 종단하여 반사를 억제하고, 또 내노이즈성이 높은 평형 전송을 채택하고 있다.  이때 사용되는 케이블은 누화를 줄이기 위해서 일반적으로 꼬임선을 사용한다.  RS-422는 균형 회로를 지원하므로 신호를 위해 각각 2개의 분리된 선, 다시 말해서 송신과 수신 선을 필요로 하기 때문에 회로는 2배로 늘어나게 된다.  그러나 수신기는 입력으로 들어오는 2개의 신호차이로서 데이터를 인지하므로 잡음이 발생하더라도 2개의 잡음 자체의 편차가 데이터들의 편차와 다르기 때문에 데이터로 인지하지 않게 된다.  그러므로 잡음에 의해 기준 전위가 변동되는 RS-232C보다 전송률을 높일 수 있다. 

RS422에서는 Point To Point 모드와 Multi-Drop 모드 두가지가 있다. Point To Point 모드인 경우 RS232와 신호선당 2개의 라인이 필요한 것만 빼고 사용하는 방법에 있어서 별다른 필요가 없다. 하지만 Multi-Drop 모드인 경우는 사용법이 좀 복잡하다.

코넥터 사양

( )안의 신호선은 시스템베이스의 제품중 MULTI-1 모델에만 적용됨. 신호선에 할당된 핀번호는 시스템베이스 제품에만 적용되며 다른제품과 틀릴 수 있음. 일반적으로 사용되는 신호선은 TXD+, TXD-, RXD+ 및 RXD- 이고 나머지 신호선은 거의 사용되지 않는다.

 t처음

신호선에 대한 설명

신호선에 대한 설명은 RS232와 별차이가 없고 다만 물리적으로 하나의 신호선에 두 개의 라인이 필요한데 그들의 표현은 신호선명뒤에 + 와 - 로써 구분표기 한다. 즉, 예를 들면 RS232의 TXD 신호선이 RS422에서는 TXD+와 TXD-로 나누어 질 뿐이다.

 

결선도

<Point to Point 모드 결선도>

<Multi-Drop 모드 결선도>

DTE to DTE 2 Twisted Pair Cables

* GND는 연결하지 않아도 됨.
* + 신호선은 + 신호선과 - 신호선은
- 신호선과 연결됨에 유의 바람.

 t처음

RS422 Multi-Drop 모드에 대한 설명

Multi-Drop모드가 사용되는 시스템은 하나의 마스터에 여러개의 슬레이브가 연결되어 마스터가 어떤 슬레이브와 통신을 할것인지를 결정하고 해당 슬레이브를 호출하면 호출된 슬레이브가 응답을하는 체제로 구성되어진다. (앞 쪽의 Multi-Drop 모드 결선도 참조) 이때, 하나의 마스터에 최대 10개까지의 슬레이브가 연결될 수가 있고 이때 마스터는 Point To Point모드로 설정되어 있어도 상관이 없으나 슬레이브는 반드시 Multi-Drop 모드로 설정이 되어져 있어야 한다.

여기서 주의하여야 할내용은 모든 슬레이브의 TX신호라인을 정보를 출력시킬때만 공동 TXD라인에 접속 시켜야만 하며 그렇지않고 하나의 슬레이브가 계속 TX신호라인을 공동 TXD라인에 접속시키면 마스터에 의해서 호출된 다른 슬레이브가 정보를 출력시켜도 계속 접속된 슬레이브 때문에 공동 TXD라인에 전기적인 충돌이 발생되어 마스터로 정보가 전달되지 않는다. 즉 동시에 2개이상의 슬레이브가 공동 TXD라인에 접속하면 않되는 것을 반드시 지켜야만 한다.

TX신호선과 공동 TXD라인에 TX신호선을 접속 또는 단락시켜주는 개폐신호사이에는 S/W 또는 H/W에 의한 적절한 타이밍의 조절이 필요한데 일반적으로 S/W에 의한 방법을 많이 사용한다.
우선 TX신호선과 개폐신호사이의 관계를 알아보는 것이 중요한데 이들간에 필요한 타이밍 정보를 아래 그림을 통해서 알아보자.

t처음

먼저 슬레이브가 마스트로 데이터를 출력하기전(슬레이브측의 UART TXD 신호선) 먼저 개폐신호를 출력시켜야 한다.(슬레이브측의 RS422 개폐신호(Logic "1"이면 접속 Logic "0" 이면 단락)를 참조)
즉, TXD라인을 통해서 출력하는 첫 번째 데이터 "A"의 스타트비트가 출력되기전 최소한 RS422 드라이버칩이 개폐신호를 받고 접속되는데 걸리는 시간인 Driver Enable to Output High Delay Time(tZH)이나 Driver Enable to Output Low Delay Time(tZL)이전에 RS422 개폐 신호를 접속하는 상태로 출력시켜야만 한다.(Logic "1"상태)
여기서 tZH와 tZL의 수치는 칩제조회사마다 약간씩 틀리나 보통 수십에서 수백 nS사이의 값이다.
하지만 이수치값이 최소수치이기 때문에 정확하게 지킬필요는 없고 여유있게 주면된다. 즉, S/W에서 먼저 RS422 개폐신호를 접속상태로 출력시키고 난후 TXD라인에 데이터를 출력시키며 TXD라인에 마지막 데이터의 스톱비트까지 출력되고 난 것을 확인후 개폐 신호를 단락상태로 출력시키면 된다.(그림상에서 데이터 "B"의 스톱비트가 출력된후 RS422 개폐신호가 단락상태(Logic "0")로 전환되는 것을 보면 알수가 있다.)
위그림에서 알수있드시 RS422 개폐신호가 접속상태일 때 슬레이브측의 RS422칩의 출력단인 TXD+와 TXD-출력단에 신호가 출력되어(데이터 "A", "B") 마스터측의 UART RXD입력단에 신호가 입력됨을 알수가 있고(데이터 "A", "B") RS422 개폐신호가 단락 상태일 때 슬레이브측의 TXD+와 TXD-출력단이 플로팅(Hi-Z)상태가 되어 신호가 출력 되지 않아(데이더 "C") 마스터측의 UART RXD입력단에 아무신호가 입력되지 않음을 알수가 있다
TXD+와 TXD-신호는 공동 TXD라인에 접속시 서로 반대의 상태를 갖고 출력되고 단락시 동시에 플로팅 상태임을 그림을 통해 알 수 있다.

일반적으로 RS422 개폐신호는 RTS나 DTR신호중 하나를 사용하며 시스템베이스의 경우는 대부분 RTS신호를 사용한다.

사실 TXD신호선을 S/W에 의해서 접속 또는 단락하는 것 자체에 별문제는 없으나 프로그래머 입장에서는 까다롭고 귀찮은 일임에 틀림없다. 이러한 불편함을 해소하가 위해서 나온방법이 TXD신호선에서 데이터가 나올때만 H/W가 이를 감지하여 자동으로 접속 또는 단락 동작을 자동으로 하는 것이다. 이 방법은 프로그래머에게 편리함과 다른 S/W와의 호환성유지(Multi-Drop용의 S/W가 아닌 경우)에 유용하다라고는 하겠으나 전세계적으로 그러한 기능을 제공하는 칩 및 제품은 없다.

t처음

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R t = 선택 가능 케이블 종단 저항

Vg = 접지 전위차

A, B = 신호원측 인터페이스점

A', B' = 부하측 인터페이스점

C = 신호원측 접지 회로

C' = 부하측 접지 회로

   t처음

                  RS-422 평형형 인터페이스 회로

 

 

RS-422,485통신 전용 MAX 489 외부구조 내부구조

 

 

3. RS-485통신이란

 

   422과 같은 계열인 규격으로 RS-423과 RS-485가 있다.  RS-423은 RS-422를 무종단, 불평형 전송으로 grade down한 것으로서 거리는 같지만 저속이다.

    RS-485는 RS-422를 업그레이드하여 32대 32까지 다점사이의 전송을 할 수 있도록 한 것이다.

RS-485는 RS-422에 대하여 상위 호환으로,  RS-485에 적합한 것은 RS-422에도 적합하다.  

    RS-485는 양측 종단을 큰 부하에 견딜수 있도록 하였고, 리시버를 고입력 임피던스로 하였다.

 t처음

RS-485전용 IC MAX485 내부구조

 

RS485인 경우 RS232나 RS422처럼 Full Duplex가 아닌 Half Duplex 전송방식만 지원하기 때문에 RS422의 Multi-Drop 모드의 슬레이브처럼 RS485의 모든 마스터는 TXD신호를 멀티포인트 버스(RS485의 모든 마스터가 공유하는 신호라인을 그렇게 부른다.)에 접속 또는 단락시켜야만 할뿐만 아니라 RXD신호 역시 모드에 따라서는 접속, 단락의 제어를 하여야 한다. RS485에서는 Echo 모드와 Non Echo 모드 두가지가 있다. 이들에 대한 자세한 내용에 대해서는 다음 란에서 다루고 먼저 코넥터의 사양, RS485 신호선과 케이블 결선도에 대해서 먼저 설명하겠다.

 

코넥터 사양

신호선에 할당된 핀번호는 시스템베이스 제품에만 적용되며 다른제품과 틀릴 수 있음.

 t처음

신호선에 대한 설명

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

 

결선도

 t처음

RS485 Echo, Non Echo 모드에 대한 설명

멀티포인트 버스를 사용하는 시스템은 하나의 버스에 여러개의 마스터가 연결되어 사용한다. 이 때문에 하나의 마스터가 다른 마스터와 통신을 할 경우에는 반드시 출력 개폐를 하여야만 한다.
이것의 원리는 RS422의 Multi-Drop 모드와 동일하니 그쪽을 살펴보시기 바람. 하지만 동시에 여러개의 마스터가 출력을 하여 데이터가 충돌하는 현상이 발생하기 때문에 이러한 문제는 S/W에 의하여 해결되어야 한다. 이렇게 충돌 여부를 확인하는 방법 중 하나가 자기가 보낸 정보를 자기가 받아보아 충돌여부를 확인하는 것인데 이것을 RS485 Echo 모드라 부른다.
즉, 어떤 마스터가 멀티포인트 버스에 예를 들어 "ABC"라는 데이터를 보내면 이것이 자동적으로 되돌아 오므로(Echo) 이것을 읽어와 "ABC"여부를 확인하여 동일한 정보가 아니거나 들어온 데이터의 수가 틀리면 충돌한 것으로 보고 적절한 시간의 지연을 거쳐 다시 출력시켜 정확한 값이 되돌아 올 때 까지 되풀이하면 된다. 이때 마스터의 RXD신호선은 항상 멀티포인트 버스에 접속되어 있어 자신의 데이터 뿐만 아니라 다른 어느 마스터가 보내는 데이터를 받을 수가 있다.
이러한 데이터를 자신에게 필요한 정보 인지를 판단 하는 것은 S/W에 의해서 결정된다. 위의 내용을 요약하면 RS485 Echo 모드는 마스터의 RXD신호선은 항상 멀티포인터 버스 에 접속되어 있고 TXD신호선은 데이터를 출력할 때만 멀티포인터 버스에 접속시키야 하고 나머지는 반드시 단락 시켜야한다. 만약 단락시키지 않으면 RS422의 Multi-Drop모드와 같이 다른 마스터가 데이터를 보내도 충돌이 발생하여 절대로 올바른 송수신이 발생 할 수가 없다.
위의 RS485 Echo 모드에서 자기가 보낸 데이터가 자기자신에게 되돌아 오는 기능을 없앤 것이 RS485 Non Echo 모드이다. RS485 Non Echo 모드는 TXD신호선을 멀티포인트 버스에 접속시키면 그즉시 RXD신호선 이 멀티포인트 버스에서 단락되고, TXD신호선을 멀티포인트 버스에서 단락시키면 그즉시 RXD신호선이 멀티포인트 버스에 접속하게 된다.
멀티포인터 버스에 접속 및 단락할 때 필요한 타이밍관계는 RS422 Multi-Drop에 대한 설명에서 자세하게 다루었기 때문에 더 이상 언급하지 않겠다. 일반적으로 RS485 개폐신호는 RTS나 DTR신호중 하나를 사용하며 시스템베이스의 경우는 대부분 RTS신호를 사용한다.

 t처음

4. 통신케이블(NULL Modem Cable)의 제작

데이터 통신을 주고 받기 위해서는 RX와 TX가 서로 교차해야 한다. PC간의 통신에는 아래 NULL 모뎀이 쓰인다. 그리고 PC의 컨넥터는 Mail이므로 케이블의 양 단자는 Femail로 제작해야 한다.

 

9#

25#

 

 

25#

9#

 

5

7

GND

-

7

5

GND

3

2

TX

-

3

2

RX

7

4

RTS

-

5

8

CTS

1+6

6+8

DSR

-

20

4

DTR

2

3

RX

-

2

3

TX

8

5

CTS

-

4

7

RTS

4

20

DTR

-

6+8

1+6

DSR

t처음

실습방법

생략