나의 이야기

낮은 울타리 2007. 11. 22. 11:13

1. INTRODUCTION

 1.1 Description

마이크로프로세서는 주변장치를 통해서 외부와 정보를 교환할 수 있으며 일반적으로 정보를               외부와 교환하는 방법으로는 병렬통신과 직렬통신 두 가지로 나눌 수 있다.

Parallel Communication CPU, DSP 등을 이용한 하드웨어 보드는 고속 정보교환을 위하여 한꺼번에 많은 정보를 처리할 수 있는 병렬통신 방식-현재는 주변 소자와의 통신을 위하여 고속 직렬 통신방식을 이용하기도 함-을 주로 이용한다. 이것은 대량의 정보를 빠른 시간에 한꺼번에 처리함으로써 하드웨어 보드나, 컴퓨터등의 속도와 성능을 향상 시킬 수가 있다, 이 방법의 대표적인 예로서 PC CPU의 데이터 비트수의 확장을 들 수 있다. 80286은 16비트의 외부 데이터 비트, 80386, 80486은 32비트의 외부 데이터 비트, 비록 내부에서는 32비트로 동작되지만 64비트의 외부 데이터 비트를 갖는 펜티엄 계열을 보아도 알 수 있다.) 그외 HDD, FDD, VIDEO 카드등이 대표적인 병렬통신 방식을 사용하는 장치이다.

Serial Communication 직렬통신 방식이란 데이터비트를 1개의 비트단위로 외부로 송수신하는 방식으로 구현하기 쉽고, 기존의 통신선로(전화선등)를 쉽게 활용할 수가 있어 비용의 절감이 크다는 장점이 있다. 직렬통신의 대표적인 것으로 모뎀, LAN, RS232 및 X.25등이 있다. 하지만 크게 직렬통신을 구분하면 비동기식 방식과 동기식 방식 두 가지로 나누어진다. 많은 사람들이 비동기식 통신방식을 RS232로 알고있는데 실질적으로 RS232라는 것은 비동기식 통신 콘트롤러에서 나오는 디지털신호를 외부와 인터페이스 시키는 전기적인 신호 방식의 하나일 뿐이지만 가장 일반적으로 사용되고 있는 방식이기 때문에 보통RS232를 비동기식 통신방식으로 인식되고 있다.

Asynchronous Communication 비동기식 통신방식을 지원하는 대표적인 콘트롤러는 NS사의 16C450과 16C550이며 그외 호환되는 콘트롤러가 다수의 회사에서 생산되고 있다. 아울러 기존에 NS와 비교해서 호환은 되지 않지만 성능상에는 차이가 없는 수십가지의 비동기 통신 콘트롤러가 시장에 나와있다. 비동기식 통신콘트롤러를 일반적으로 UART(Universal Asynchronous Receiver/ TransmItter)라 부른다. UART에서 나오는 신호는 보통 TTL신호레벨을 갖기 때문에 노이즈에 약하고 통신거리에 제약이 있어 각종 드라이버를 통하여 신호의 전기적인 규격을 변환하여 보내주게 되는데 일반적으로 RS232/485/422등이 있다. 주로 많이 이용하는 비동기 인터페이스 방식의 간단한 특성을 요약하면 아래 표와 같다.

 

 

 

                      1 RS 232C/422/485 Communication Comparison

 *Half duplex(반이중) 통신: 1개의 신호선으로 양 방향 통신 동작을 하므로 동시에 보내고 받을 수는 없고, 번갈아 가면서 통신 동작을 한다. *Full duplex(전이중) 통신: 보내는 신호와 받는 신호가 별도로 분리되어 있어 동시에 데이터를 주고 받을 수 있다.

RS-232은 통신방식은 외부의 노이즈 환경에 대하여 아주 민감한 특성을 가지므로 RS422과 RS485에 비해서 통신속도가 늦고 통신거리가 짧은 단점이 있고 또한 일대일 통신만 할 수 있다.

 

 

 

2. SERIAL COMMUNICATION

 2.1 Description

Baud Rate 보드(Baud)라고 말하는 단위는 19세기 후반에 5단위 부호를 고안한 프랑스 전신 공사의 Jean Maurice Baudot씨의 이름에서 유래한다.보드(Baud)는 원래 변조율이나 1초간 통신선의 신호 변경 회수를 가리키는 단어로서 사용되고 있었다.이것은 BPS(bit per second)와 항상 똑같은 것은 아니다. 2개의 시리얼 디바이스를 접속한 경우에는 보드(Baud)와 BPS는 사실상 똑같다. 만약 통신 속도를 19,200BPS로 통신하고 있다면, 1초간에 19,200회 선을 통과한 신호가 변화한다고 말할 수 있다.보드레이트(Baud Rate)는 종래의 통신 회선으로는 최대 2400보오(Baud)까지로 제한되고 있다.이것은 전화회사에 의하여 공급되는 전화선의 물리적인 한계치이지만 최근에는 종래의 통신회선이라도 9,600BPS혹은 그 이상의 데이터 전송이 가능해지고 압축 기술등의 발달에 의하여 보다 고속의 데이터 통신이 가능해지고 있다.일반적으로 PC에서는 보드(Baud) 와 BPS는 같다. 그러나 각 신호에 복수의 2진 데이터를 중첩시키는 장치를 사용하는 고속 데이터 전송 분야에서는 BPS가 보드(Baud) 속도보다 빠르다.

Bit Data Transmission 시리얼통신에서는 1 바이트를 8개의 비트로 분리해서 한번에 1비트(Bit)씩 통신선로로 전송한다. 수신측에서는 통신선로를 통해 수신한 비트들을 조립해서 1바이트(Byte)를 만들어내야 하는데 이때 1바이트의 범위를 식별하기 위하여 사용하는 것이 스타트 비트와 스톱 비트이다. 일단 스타트 비트를 송신하면 송신측(계측 장치)에서는 계속해서 데이터비트를 송신한다.데이터 비트는 설정한 값에 따라 보통 5,6,7,8가 설정될 수 있다. 수신측(PC측) 과 송신측(계측 장치)은 이러한 데이터 비트수와 보드레이트의 값을 일치하게 설정해야 한다. 거의 대부분의 장비는 7 또는 8-RTM-100은 8 비트의 데이터비트를 쓴다- 데이터 비트를 사용해서 데이터 전송을 한다. 7 데이터 비트라고 설정되어 있는 경우에는 127보다 큰 ASCII값을 보낼 수 없다. 똑같이 5 데이터 비트의 경우는 31이상의 ASCII 값을 취급할 수 없다.데이터를 송출하면 마지막으로 스톱 비트를 보낸다.스톱 비트의 값은 1의 값 또는 기호이다.기호라면 이전 데이터 비트의 값이 1이라도 확실하게 스톱 비트로서 잡는 것이 가능하다.스톱비트의 데이터 길이는 1,1.5,2비트 중에 하나로 설정할 수 있다.

Parity Bit 스타트 비트와 스톱 비트에 의하여 데이터의 단락을 나타내지만,패리티 비트라고 불리는 것을 이용하여 데이터의 구조를 확인하는 경우가 있다.송신 중에 데이터에 어떠한 누락이나 에러가 생기고 있지 않을까 해서 그것을 체크하는 것이 패리티 비트이다.패리티에는 짝수 패리티(Even parity),홀수 패리티(Odd parity),혹은 패리티 없음(None at all)을 선택할 수 있다. 짝수 또는 홀수 패리티를 이용하면 각 데이터 바이트 중의 1의 개수를 헤아리고 보내진 그 수가 짝수 또는 홀수가 되도록 패리티 비트를 송신한다. 예를 들어 짝수 패리티를 선택했다면 데이터 중에 1이 짝수개 있는 경우,패리티 비트는 0로 된다. 즉,바이너리 데이터 0110 0011에 대한 짝수 패리티는 0 이다.역으로 바이너리 데이터 1101 0110 의 경우,패리티 비트는1로 된다.홀수 패리티는 이 반대로 생각한다.데이터 중에 기수개의 1 이 있는 경우,그것은 0 이 된다.패리티 비트에 의한 에러 체크는 기본적인 방법이다.에러가 발생한 때에 에러의 존재를 알리는 것은 가능하지만 그것이 어느 데이터 중에 있는가 그 소재를 알리는 기능은 있지 않다.또,짝수개의 에러가 데이터 중에서 발생한 경우 패리티 비트로 에러를 검출하는 것이 불가능하다.

Cable Length RS232C 규격으로는 케이블의 길이는 약150cm로 되어 있다.그러나 실제 고품질로 실드(shielded)된 케이블을 사용한다면 최장 3km정도까지 향상시키는 것이 가능하다.실드가 불충분한 케이블의 경우,외부 환경이 크게 영향을 준다.전기적인 노이즈가 발생하기 쉬운 환경에서는 짧은 케이블을 이용해도 노이즈에 영향을 받는다.

 

 

 

                              2 Baud Comparison(RS232C)

 

 2.2 RS232C RS232C는 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간의 상호 접속회로의 정의, 핀번호와 회로의 의미에 대해서 규정을 하고 있다.

*DTE: 데이터 단말장치(Data Terminal Equipment)의 약어이고,

*DCE: 데이터 통신장치(Data Communications Equipment)의 약어이다.

*보통 PC는 DTE 장치이고 그 반면에 대부분의 다른 디바이스(예:시리얼 디바이스)는 보통 DCE                     장치이다.

단순히 DTE 장치를 그냥 PC라 하고 DCE 장치를 원격장치(Remote Device)라고 바꾸어 읽어도 괜찮다. *RS232C스탠더드에서는 DTE장치는 25핀의 수컷 커넥터를 사용하고, DCE장치는 25핀의 암컷 커넥터를 사용한다. DTE장치를 DCE장치에 접속하는 경우에는 스트레이트 케이블을 이용한다.역으로 2개의 같은 종류의 장치를 접속하는 경우는 널모뎀(Null Modem) 케이블,즉 크로스 케이블(송신라인과 수신라인을 서로 꼬인 케이블)을 사용한다.

Signal Line

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

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

Connector Specification

 

 

                                     그림 1 DB-25 RS232 Connector

 

                                          그림 2 DB-9 RS232 Connector

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Connection Diagram

                                         그림 3 DTE to DCE Connection

                                         그림 4 DTE to DTE Connection

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 2.3 RS422

RS422는 EIA에 의해서 전기적인 사양이 규정되어 있으나 물리적인 컨넥터 및 핀에 대한 사양은 아직 규정되어 있지 않다. 아래 그림에 나오는 컨넥터는 한 예로서 나타낸 것이다. RS422에서는 Point To Point 모드와 Multi-Drop 모드 두 가지가 있다. Point To Point 모드인 경우 RS232와 신호선당 2개의 라인이 필요한 것만 빼고 사용하는 방법에 있어서 별다른 필요가 없다. 하지만 Multi-Drop 모드인 경우는 사용법이 좀 복잡하다. 컨넥터의 사양, RS422 신호선과 케이블 결선도 및 Multi-Drop에 대한 사양은 아래와 같다.

 

Connector Specification

 

                                  그림 5 DB-25 RS422 Connector

 

 

                                  그림 6 DB-9 RS422 Connector

 

Signal Line

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

 

 

 

 

 

 

Connection Diagram

                                          그림 7 Point to Point Mode

l        GND 는 연결하지 않아도 된다.

 

 

그림 8 Multi-Drop Mode

RS422 Multi-Drop Mode

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

 

 2.4 RS485

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

 

Connector Specification

                                      그림 9 DB-25 RS485 Connector

                                      그림 10 DB-9 RS485 Connector

 

Signal Line

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

Connection Diagram

                                    그림 11 Master to Master Mode

 

RS485 Echo or Non-Echo Mode

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

PC to RTV100 Communication via RS485

PC에서 RTM-100과 연결하기 위해서는 우선 RS232/485 컨버터가 필요하다. 일단 PC의 RS232신호를 RS485로 변환하고 그 변화된 신호가 RS485 단자가 RTM-100의 485 단자를 통하여 연결된다. 즉 PC가 마스터가 되고 RTM-100이 슬레이브가 되는 Multi-Drop 모드이다. RS232/485 컨버터-RTS 자동 개폐 모드를 지원하는 종류 추천-는 일반 시중에 얼마든지 구할 수 있다.

 

                                                                           NP100

                              그림 12 Master to Slave 485 Communication

출처 : 인기대 전자과 04학번
글쓴이 : 이상훈 원글보기
메모 :