EIA-232 규격에서는 그림 1과 같이 수신단에서 데이터 “1”(마크)을 -3V ~ -15V, 데이터“0”(스페이스)를 +3V ~ +15V의 신호로 나타낸다. 그림 2는 전용 IC인 MAX232 등을 사용한 TTL/CMOS 로직 레벨과의 변환회로 예이다. IC 내부에는 인터페이스에 필요한 ±5V 이상의 전압을 얻기 위해 차지 펌프 방식 DC-DC 컨버터가 내장되어 있기 때문에 +3.3V나 +5V 단전원에서 규격을 충족시키는 신호가 얻어진다. 외장된 4개의 콘덴서는 내장 DC-DC 컨버터 동작용이다. 이 내장 DC-DC 컨버터의 전류 공급능력은 10mA 정도로, 출력단자의 단락에서 회로를 지키기 위한 전류 제한회로도 부가되어 있으므로 3.3V나 5V에서 ±5V 정도의 전압을 얻기 위한 전원회로에도 자주 사용된다. MAX232 시리즈는 각 사에서 세컨드 소스를 공급하고 있고 표에 나타난 것 외에도 파생 종류가 많다. 2. CMOS 로직 IC에 의한 간이형 EIA-232 라인 드라이버/리시버 회로 그림 3은 표준 로직 IC를 사용한 간이형 EIA-232의 드라이버 회로와 리시버 회로이다. IC의 입출력 단자를 보호할 목적으로 게이트의 입력단자에는 수십㏀의 저항을 부가한다. 이것이 너무 작으면 입력단자에 과대한 전류가 흘러 래치업 현상을 일으키고 IC가 파괴되는 경우가 있다. EIA-232 측에서 출력단자로 과대 전류가 유입되는 경우는 없지만, 만일의 경우를 고려하여 수백Ω의 저항을 부가해 놓는다. 3. 트랜지스터 1개로 만드는 간이형 EIA-232 라인 드라이버/리시버 회로
1. 트랜지스터 1개와 저항 2개에 의한 드라이버 회로와 리시버 회로
그림 4는 수신과 송신에 트랜지스터를 각 1개씩 사용한 회로이다. 그림 4(b)에 나타난 드라이버 회로인 경우, EIA-232 측은 트랜지스터가 L 레벨을 출력하고 있을 때 약 0V로 된다. 이것으로는 EIA-232 규격 입력단자의 데이터“1”(마크)을 나타내는 전압범위(-3∼-15V)를 충족하고 있지 않다. 그러나 대부분의 PC 라인 리시버는 입력전압 0V를 마크“1”으로서 인식해주기 때문에 실용상으로는 별 문제없이 사용할 수 있다. 0V를 스페이스(데이터“0”)로 인식해버리면 케이블 미접속 시 스페이스를 스타트 비트로 인식하여 잘못 동작해버린다. 그래서 대부분의 PC는 0V를 마크(데이터“1”)로 인식하도록 설계되고 있다.
EIA-232 입력단자의 임피던스는 5㏀typ.로 작기 때문에 드라이버 측에서는 트랜지스터의 컬렉터 저항을 1k∼2.2㏀으로 작게 하여 스페이스(+3V 이상)의 규격을 충족시키도록 주의해야 한다.
2. 트랜지스터 1개의 리시버 회로
1석으로 만든 간이 리시버 회로를 그림 5에 나타낸다. BE사이의 다이오드는 베이스가 부(-)측에 드라이버되었을 때 클램프하기 위해 넣고 있다.
3. 바이어스 저항 내장 트랜지스터 1개에 의한 드라이버 회로의 3가지 예
드라이버 회로 부분은 신중하게 생각해야 한다. EIA-232 신호는 플러스/마이너스로 구동하는 것이 기본이다. 그러나 대부분의 리시버 IC(SN75189/189A, MC1489/89A 등)는 0∼5V의 신호 레벨에서도 동작한다. MAX232를 대표로 하는 차지 펌프형 IC에서도 리시버의 입력 특성은 0∼5V를 수용한다. 리시버의 입력 오픈에서 출력“H”로 되기 때문이다. 그래서 그림 6(a)와 같이 NPN 트랜지스터를 인버터로서 사용하면 리시버로 바르게 수신된다. 그러나 이 회로에서는 비통신 시 R1에 전류가 흘러버린다. 저소비전력으로 하고 싶은 경우에는 PNP 트랜지스터를 사용하여 그림 6(b)와 같이 한다. 또한 통신 상대로부터 RXD를 받을 필요가 없는 경우에는 RXD의 마이너스 전압을 이용하여 그림 6(c)와 같이 하면 부전원을 준비하지 않고도 라인을 플러스/마이너스로 구동할 수 있다.
4. 절연형 EIA-232 라인 드라이버/리시버 어댑터
1. 규격상 전기적 특성과 IC의 실력값
EIA-232 규격에 의하면 출력신호는 3㏀ 이상의 부하를 신호 그라운드에 대해 5V 이상으로 드라이브하는 능력이 필요하다고 정하고 있다. 그러나 실제로는 하나의 출력을 2개의 입력에 접속하는 경우가 있으므로 적어도 그 2배 이상(3.3mA)의 능력이 없으면 사용할 수 없다. 널리 알려져 있는 MAX232의 출력신호는 사양상 3㏀ 부하에 대해 5Vmin.이지만 특성 그래프를 보면 10mA 정도로 흘러도 5V를 유지할 수 있다는 것을 알 수 있다.
2. COM 포트의 출력선을 전원으로 한 절연형 드라이버/리시버 회로
이 정도 흐르면 출력신호선을 이용하여 간단한 회로를 동작시킬 수 있다. 그림 7에 나타난 것은 PC의 COM 포트 출력선을 전원으로 한 절연형 드라이버/리시버 회로이다. 제어신호 출력을 전원에 이용하고 있으므로 외부에서 전원을 공급할 필요는 없다.
단, 하드웨어에 의한 핸드세이크(플로 제어라고도 부르는)는 사용할 수 없다. 핸드셰이크가 필요하다면 소프트웨어 핸드셰이크(X-ON/X-OFF)를 이용한다. 드라이버/리시버부를 커넥터로 분리하여 어댑터화한 것은 어댑터를 디버그 또는 메인티넌스용으로 이용하고 통상적으로는 사용하지 않는다는 점을 고려하고 있기 때문이다. 포토커플러 PC2는 오픈 컬렉터형이다. PC에서 데이터가 전송돼 오지 않는 상태(스페이스)에서는 오프으로 되어 있으므로 마이크로컴퓨터가 통전된 상태에서도 인터페이스 어댑터를 탈착할 수 있다. R4는 어댑터를 접속했을 때 C2에 흐르는 충전전류를 완화하기 위한 것이다. 이것이 없으면 인터페이스 어댑터를 접속한 순간, 마이크로컴퓨터가 리셋될 수 있다. 포토커플러 PC1의 출력 측은 PC의 RTS 출력을 플러스 전원으로 하고 있으므로 그러한 설정이 필요하다. 일반적으로 ‘하드웨어에 의한 플로 제어’라 불리는 설정이 해당한다. PC의 송신출력은 데이터가 없는 상태에서 마이너스 레벨(스페이스)을 유지하므로 D2를 통해 PC1의 마이너스 전원으로 사용하고 있다. PC에서 데이터가 전송돼 오면 송신출력이 플러스일 때만 D3를 통해 PC2에 추가되고 그 동안 PC1의 전원은 C1을 통해 공급된다. 장시간에 걸쳐 플러스 레벨이 계속되는 연속 데이터를 송신하지 않도록 주의하기 바란다.
5. MAX485나 SN75176에 의한 EIA-485 라인 트랜시버 회로
EIA-422나 EIA-485는 1쌍의 신호경로에 2개의 선을 사용하여 2선간 전압의 차이가 신호로 전달되는‘디퍼렌셜(차동) 방식’을 사용하고 있다. 이것은 2개의 케이블로 동시에 들어가는 외부 노이즈의 영향이 매우 작아 노이즈에 강한 전송방식이다. 100kbps 정도의 전송속도라면 1,200m 정도, 단거리라면 10Mbps의 속도로 전송할 수 있다. EIA-422에서는‘1 대 다수’, EIA-485에서는‘다수 대 다수’의 접속이 가능하다. 그림 8은 전용 IC인 MAX485나 SN75176 등의 라인 트랜시버를 사용한 회로 예이다. 통신방식은 2선의 반 2중이다.
전송선로는 트위스트 페어선을 사용하여 같은 형태의 외래노이즈를 없앤다. 종단저항 Rt(120Ω)는 전송선로의 임피던스에 맞추지만 구체적으로는 전송파형을 오실로스코프 등으로 확인하면서 최적화한다.
6. 전용 IC나 표준 로직 IC에 의한 트위스트 페어선 드라이버/리시버
보드간 디지털 신호 전송에서는 반사나 선로용량 등의 영향에 의해 파형이 일그러져 신호를 바르게 전송할 수 없는 문제가 발생한다. 특히 케이블이 긴 경우에는 심각하다. 전송 케이블이 긴 경우는 트위스트 페어선 등을 사용하여 전송선로의 임피던스를 내리고 저저항에 의해 종단한다. 이로써 반사에 의한 파형 변형을 작게 할 수 있다. 그러나 전송 선로를 저저항으로 종단하면 74HC 시리즈 등 일반적인 로직 IC에서는 드라이브 능력이 부족하다. 그래서 그림 9와 같이 전송선로를 충분히 구동할 수 있는 드라이버 IC를 사용해야 한다. 그림 9(a)는 EIA-422 드라이버의 26LS31을 사용한 경우이다. 차동신호로서 전송하므로 외래 노이즈에 강한 방법이다. 그림 9(b)는 표준 로직 속에서 IOH=32mA, IOL=64mA로 드라이버 능력이 큰 74ABT나 74LVT 시리즈 등을 사용한 예이다.
7. 4∼20mA, 0∼20mA 전류 루프 드라이버
4∼20mA 전류 인터페이스는 공업계측이나 제어관계 분야에서 흔히 사용되는 국제적인 통일 규격이다. 종래에는 신호전달에 0.2∼1.0kg/cm2의 공기압이 통일된 신호로 사용, 메이커가 다른 변환기나 기록계 등을 용이하게 조합하여 사용 할 수 있었다. 그 전달신호가 전기식으로 바뀌었을 때 이 사상이 채택되어 4∼20mA, 1∼5V가 사용되었다.
그림 10은 0∼4V의 입력전압을 4∼20mA 출력으로 변환하는 회로이다. 전류신호를 사용함으로써 기기 사이를 접속하는 케이블이 길어져 저항이 커져도 정확하게 신호를 전달 할 수 있다. 또 전류이므로 복수 기기의 입력을 직렬 접속할 수 있다는 이점도 있다. 기기의 입력 측에서는 250Ω의 저항을 사용하여 1∼5V로 변환하는 것이 일반적이다. 그림 10의 회로에서는 VREF=2V를 부여함으로써 4mA분의 오프셋을 부여하고 있다. 전류출력을 0∼20mA로 하고 싶은 경우에는 VREF를 인가하지 않고 초단의 OP 앰프의 이득을 2배에서 1.25배로 작게 한다.
8. 시리얼 포트를 이용하여 복수의 시리얼-USB 변환 어댑터를 식별하는 회로
시리얼-USB의 변환 어댑터를 복수 이용할 때 유의해야 할 점은 포트 번호이다. 삽입된 시점에서 포트 번호가 제멋대로 할당되는 경우도 있다. 어댑터에 고유번호를 붙이면 편리하지만 그러한 제품은 없는 것 같다. 그래서 시리얼 포트의 미사용 신호를 사용하여 식별하는 방법을 소개한다. 시리얼 포트에는 모뎀 이외의 기기에서 거의 사용하지 않는 신호가 있다. 1번 핀의 DCD와 9번 핀의 RI로, 모두 입력 신호이다. 통신제어를 실행하는 출력신호는 4번 핀의 DTR과 7번 핀의 RTS이기 때문에 이들을 미사용 입력 신호선으로 리턴시키면 그 조합으로 포트를 인식할 수 있게 된다. 그림 11이 인식용 어댑터의 회로도이다.
접속이 다른 어댑터를 준비하여 측정기 등의 기기와 PC의 시리얼 포트 사이에 넣는다. 프로그램에서는 포트를 순서대로 조사하여 어느 포트에 어느 측정기가 접속되어 있는가를 확인한 다음 처리로 들어간다. SW1과 SW2가 모두 OFF인 접속은 보통의 기기와 판별되지 않으므로 사용되지 않는다. 반대로 이 상태를‘어댑터가 부가되어 있지 않은 보통의 기기’라 판단할 수 있다.
9. 시리얼 포트의 미사용 입력단자를 이용하여 제작하는 타이밍 입력 어댑터
데이터를 연속적으로 모으는 방법 중 일반적인 것은‘정시 간격, 변화량, 수동’의 3종류이다. 자동계측 시스템을 작성하는 경우를 제외하면 마지막의‘수동’이 가장 안전하고 확실하며 더욱이 프로그램이 간단히 기술되므로 재빠른 데이터 수집에 도움이 되는 경우가 있다. 그러나 측정하는 사람이 PC에서 떨어진 위치에 있으면 데이터를 받는 타이밍을 마우스 클릭이나 키보드 타이핑으로는 부여할 수 없다. EIA-232에서 접속한 측정기와 가까운 위치에서 푸시버튼 스위치를 눌렀을 때 데이터를 얻을 수 있으면 편리하다. 사실 엑셀의 VBA로 제작한 툴“EasyComm”에 관한 질문 중 이것이 상위를 차지할 만큼 많다.
그림 12는 2개의 푸시버튼 스위치를 부가한 타이밍 입력 어댑터의 회로도이다. 외부 기기와 PC를 접속하는 케이블 중간에 삽입하여 사용한다.
사진 1에 PSW1만 설치한 예를 나타낸다. 사진에서 좌측에는 PC가, 우측에는 측정기가 각각 접속되어 있으며 푸시버튼을 누를 때마다 1개씩 데이터를 받아 엑셀의 워크시트에 기록하게 된다. 모양은 깔끔하지 않지만 실제로 사용해 보면 바로바로 조작할 수 있는 편리성을 실감할 수 있다. 입력신호를 개방했을 때의 로직은 규정되지 않고 있지만 내가 조사한 수십 종류의 시리얼 포트는 전부, 입력 핀이 오픈인 상태를 -3V가 가해지고 있는 상태와 같은 값이라 판단했다. 원래는 ±3V 이상의 값을 가해야 하지만 1a 접점의 푸시버튼 스위치로 0V나 +3V의 2값을 가하는 것만으로도 문제없이 동작한다.