로보맨 > 로봇컬럼 > robo_정보&자료

robo_정보&자료
 
함께  만들어가는 로봇 게시판입니다.  게시판의 주제에 맞게 올려주세요..
 
 
 
작성일 : 09-07-11 22:55
RS232C -시리얼 버스
 글쓴이 : 로보맨
조회 : 4,344   추천 : 0  
컴퓨터에서 통신을 위한 각종 인터페이스가 표준 또는 옵션으로 장비되어 있다. 이들 중 대표적인 것으로는 데이터를 시리얼 (serial)로 전송하는 RS232C, RS422, RS485등이 있다. 물론 데이터를 병렬로 보낼수 있다. 예를 들면 CPU, HDD, FDD, VIDEO 등이 병렬 통신이다. 하지만, 모든 장비가 병렬 통신을 할수 없다.

병렬 통신은 구현하기 힘들고 고가이다. 그리고, 거리 또한 제한이 된다. 이에 반해서 시리얼 통신은 구현하기 쉽고, 저가이고, 거리 제한이 패러럴 보다 덜 제한을 받는다. 여기서 대표적인 인터페이스인 RS232C에 대해서 알아 보겠다.

RS232C 인터페이스는 미국의 EIA(Electronic Industries Association)에 의해 규격화된 것으로 정확하게는 EIA-RS232C 규격이라고 불리며, 전기적 특성, 기계적 특성, 인터페이스 회로 의 기능 등을 규정하고 있다.(RS232C의 제한 거리는 15M이다.) 이들 규격은 2개의 송수신 신호 선과 5개의 제어선, 그리고 3개의 어스 선이 필요하다.

RS232C 인터페이스 규격은본래 데이터 단말장치와 모뎀(Modulator DEModulator:변 복조기)을 접속하기 위한 것으로, 이 경우 캐리어 수신의 확인 등 송신 측과 수신 측이 모뎀의 상태를 1 대 1로 대응시켜서 접속하여야 한다.

통상, 퍼스널 컴퓨터 등에서는 RS232C의 규격의 일부를 사용하여 그 접속을 간략화하고 있다. 그러나, 모뎀에 접속하는 경는 경우에는(DTE와 DCE의 접속)와 접속방법이 다르므로 주의하여야 한다. 컴퓨터 간(DTE와 DTE 간)의 통신에서는 모든 제어 선을 사용하지 않아도 최소 3개의 송신 데이터선(SD), 수신 데이터선(RD) 및 시그널 그라운드선(SG)이 있으면 통신이 가능하지만, 실제로는 커넥터 내부에서 4+5번과 6+8+20번 핀을 연결해 둘 필요가 있다. 이 방식은 컴퓨터끼리를 케이블로 직접 접속하는 경우로서 서로 상대방의 하드웨어의 상태를 확인할 필요가 없는 경우의 가장 간단한 인터페이스 방법이다.

RS232C 인터페이스에 있어서는 비동기(조보동기) 방식과 동기방식이 사용되는데, 통상 퍼스널 컴퓨터에서는 비동기 방식을 사용하고 있다. 같은 규격이 CCITT(Consultative Committee for International Telegraph and Telephony)에서도 CCITT V.24에서 DTE와 DCE간의 상호 접속회로의 정의, 핀번호와 회로의 의미에 대해서 규정을 하고 있다.

비동기식 통신방식을 지원하는 대표적인 콘트롤러는 NS사의 6C450과 16C550이며 그외 호환되는 콘트롤러가 다수의 회사에서 생산되지만 성능상의 차이는 없고 호환은 되지 않지만 비동기 통신의 기능을 갖는 콘트롤러는 수십가지의 종류가 있다.

비동기식 통신콘트롤러를 일반적으로 UART(Universal Asynchronous Receiver/TransmItter)라 부른다. UART에서 나오는 신호는 보통 TTL신호레벨을 갖기 때문에 노이즈에 약하고 통신거리에 제약이 있다. 이러한 TTL신호를 입력받아 노이즈에 강하고 멀리갈 수 있게 해주는 인터페이스 IC를 LINE DRIVER/RECEIVER라 부르며 이중 대표적인 것이 RS232, RS422 및 RS485가 있다.

데이터를 보내기 위해서는 최소한 3개의 선이 필요하다. DB25 인 경우 2번 TXD와 3번 RXD 7번 GRN가 필요하다. DTE(컴퓨터)와 DCE(모뎀) 사이에는 바로 2번 -> 2번, 3번 -> 3번, 7번 -> 7번 으로 연결된다. 그러나, DTE와 DTE 사이에서는 연결이 바뀌어 2번->3번, 3번->2번, 7번->7번으로 TXD와 RXD로 연결이 된다. 여기서 살펴 볼 것은 TXD와 RXD는 연결이 되어야 한다는 것이다. 외관상으로 DTE와 DCE가 바로 연결 되어 있을수 있으나, 내부적으로는 RXD와 TXD가 연결되어 있다. 그래야만 통신이 되기 때문이다. 이런 것을 선이 CROSS 되어 있다고 한다. 물론 DB9는 다 같으나, 7번선이 아니라 5번이다. 여기서 중요한 것은 DTE와 DCE 사이의 연결은 9개 선이 모두 필요하다는 것이다. 그래야지만, DCE가 제대로 동작하게 된다.


:: 시리얼 데이터 케이블 만들기

serial 통신을 하기 위해 가장 기본적인 선을 만들어 보도록 하자. 준비물은 남땜 인두, 납, 3선 케이블(3선 이상 케이블이면 모두 괜찮다.), 코넥터 2개가 필요하다. 커넥터는 DB25나 DB9 아무 것이나 2개면 된다.(자신에 맞는 커넥터를 선택하면 된다.) 보통 수놈 DB25 이므로 2개를 납땜하면 된다. 인두를 달군후에 납을 커넥터 2, 3, 7번 커넥터에 묻혀 놓는다. 반대편에도 똑같이 묻혀 놓는다. 그리고 나서 3선 케이블 선을 잘 벗겨 놓고 선의 색을 잘 보아둔 다음, 예를 들어 빨간색, 노란색, 검은색 일경우에 빨 간색은 왼쪽 커넥터 2번, 오른쪽 커넥터 3번에 납땜을 한다. 물론 이때는 납을 추가로 묻히지 않아도 된다. 처음에 납을 묻혀 놨기 때문이다. 물론 중간에 모자르면 조금 묻혀도 된다.

노란색은 왼쪽 커넥터 3번, 오른쪽 커넥터 2번에 납땜을 한다. 검은색은 왼쪽 7번과 오른쪽 7번을 연결하면 된다. 만약 선이 남으로 그대로 놔두어도 된다. 나머지 부품을 조립하면 깔끔한 데이터 케이블이 완성이 된다. 그리고 이 케이블로 컴퓨터 끼리 데이터를 전송하면 된다. 만약 외장 모뎀이라면 이 선으로는 통신이 안된다. 컴퓨터와 외장 모뎀의 데이터 케이블 선 제작은 밑에 그림에 있는 것과 똑같이 9개 신호선을 모두 동일하게 연결하면 된다.
 

신호선의 차례는 다음과 같다.

DTR(컴퓨터 준비가 됐나?) -> DSR(모뎀 준비가 됐나?) -> RTS(컴퓨터가 모뎀 준비 됐나?) -> CTS(모뎀이 컴퓨터 준비 됐나?) -> DCD(모뎀이 모뎀 준비 됐나?) -> TXD(데이타를 보낸다.) -> RXD(데이터를 받는다.)


DTE(Data Terminal Equipment)란

컴퓨터 등의 제어장치이며, 이것에 대해 DCE(Data Communication Equipment)란 모뎀 등의 단말을 의미한다.

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


보오는 1초당 변조횟수이고, bps는 1초당의 전송 횟수이다.

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


:: 코넥터 사양

          ┌┐
          │└┐
          │  └┐
          │ 1  └┐
TXD ─│  2 14 │
RXD ─│  3 15 │                      ┌┐
RTS ─│  4 16 │                      │└┐
CTS ─│  5 17 │                      │  └┐
DSR ─│  6 18 │            DCD ─│ 1  └┐
GND ─│  7 19 │            RXD ─│ 2  6 │─ DSR
DCD ─│  8 20 │─ DTR  TXD ─│ 3  7 │─ RTS
          │  9 21 │            DTR ─│ 4  8 │─ CTS
          │10 22 │─ RI    GND ─│ 5  9┌┘─ RI
          │11 23 │                      │  ┌┘
          │12 24 │                      │┌┘
          │13 25 │                      └┘
          │      ┌┘          DB-9 RS232 코넥터
          │  ┌┘
          │┌┘
          └┘
DB-25 RS232 코넥터



:: 신호선에 대한 설명

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


:: 시리얼 포트의 표준 IRQ와 I/O주소

포트번호 - IRQ - I/O주소
COM1    -  4  -  3F8
COM2    -  3  -  2F8
COM3    -  4  -  3E8
COM4    -  3  -  2E8


:: 출처
http://my.netian.com/~tsnok/lesson/board/rs232c.htm
[이 게시물은 로보맨님에 의해 2009-08-02 00:31:48 robo_묻고 답하기에서 이동 됨]
[이 게시물은 로보맨님에 의해 2009-08-04 19:53:10 Toy_갤러리에서 이동 됨]
[이 게시물은 로보맨님에 의해 2009-08-15 01:28:17 robo_자료실/사전에서 이동 됨]
[이 게시물은 로보맨님에 의해 2009-08-16 00:40:50 robo&디자인에서 이동 됨]
[이 게시물은 로보맨님에 의해 2009-08-19 01:20:50 robo_뉴스/기사에서 이동 됨]
[이 게시물은 로보맨님에 의해 2013-09-14 18:27:37 robo_정보&자료에서 이동 됨]
[이 게시물은 로보맨님에 의해 2013-09-15 12:37:42 정보&자료에서 이동 됨]