RS-232 시리얼 통신 캡쳐 케이블 제작 방법: 데이터 모니터링 및 디버깅

Last modified date

시리얼 통신장비의 디버그용 RS-232 데이터 캡춰 케이블을 만드는 방법과 결선도, DE-9(DB-9) 핀 배열, 시리얼 장비의 접속법에 대한 소개

시리얼통신을 사용하는 장비의 개발이나 디버그(혹은 역설계)를 위해서는, 해당 포트를 통해 어떤 메시지들이 오고 가는지 확인해야 할 필요가 있다.

특히, 제어장치와 피제어장치의 제조사가 다른데 장비간에 통신으로 인한 문제가 발생했을 경우, 서로 자기네 문제가 아니라고 궁뎅이를 뒤로 빼기에 바쁘다. 이런 상황에서 누구 궁뎅이를 걷어차 줘야 하는지 결정하려면, 제어하는 놈이 말을 잘못 한건지, 제어 받는 놈이 말귀를 못 알아 먹은건지 알아내야 하는데, 이를 위해서는 통신포트의 데이터를 중간에서 직접 들여다 봐야 한다. (증거를 들이밀어도 발 빼려고 하는건 나중에 생각하기로 하자)

본 글에서는, 이러한 상황에 유용하게 사용할 수 있는 시리얼 데이터통신 캡춰 케이블을 직접 제작하는 과정과 그에 관련한 정보들을 소개한다.

직렬통신 RS-232 신호 캡처의 개념

시리얼 통신 규격은 여러가지가 있으나, 그 중 가장 흔하게 접할 수 있는 방식은 RS-232라고 하는 규격이다.

RS-232의 신호선

RS-232는 8개의 신호선과 1개의 신호접지선을 사용하며, 보통 DE-9(DB-9 라고도 불린다)라고 하는 9핀 커넥터를 사용한다.

DE-9 암 수 커넥터 - mbedded.ninja
DE-9 (DB-9) 암/수 커넥터 – mbedded.ninja
DE-9(DB-9) RS-232 핀 배열
PIN이름방향역할
1DCD(Data Carrier Detect)수신통신 선로의 캐리어 신호 감지 여부
2RXD(Receive Data)수신대국에서 들어오는 데이터
3TXD(Transmit Data)송신대국으로 내보내는 데이터
4DTR(Data Terminal Ready)송신자국의 통신 가능 상태
5GND(Ground)양방향신호 기준 접지
6DSR(Data Set Ready)수신대국의 통신 가능 상태
7RTS(Request To Send)송신자국의 수신 가능 상태
8CTS(Clear To Send)수신대국의 수신 가능 상태
9RI(Ring)수신종명신호 검출

본래 RS-232 규격은 PC와 모뎀을 연결하기 위한 규격으로, 모뎀통신에 필요한 여러가지 제어 신호선들이 함께 있다. 이 중 순수하게 데이터의 송수신에 사용되는 선은 RXD, TXD 2개 뿐이다. 우리는 이 2가지 신호와, 이 신호의 기준이 되는 GND만 생각하면 된다. (흐름제어를 사용할 경우 CTS/RTS도 고려 대상이 되나, 여기서는 논외로 치겠다.)

RS-232의 연결

RS-232의 장비간 접속은 매우 간단하다. 자국(또는 제어장치)의 TX가 대국(또는 피 제어장치)의 RX로, 자국의 RX가 대국의 TX로 연결되면 된다. 그리고, 두 장치가 공통된 신호의 전압 기준을 가질 수 있도록 GND끼리 연결해 주면 된다.

시리얼 통신 장비의 선로 연결 방법. RX와 TX를 서로 교차해 연결해 준다.

신호 캡춰 방법

우리는 TXDRXD를 캡춰할 장비로 보내 주어야 한다. 사실 복잡할 건 없다. 캡춰를 받을 장비 입장에서는, TXD신호와 RXD 모두 수신받는 신호가 된다. TXD신호선과 RXD신호선을 하나 더 딴 다음, 캡춰받을 장비의 RX로 넣어주면 된다. 하나의 포트는 하나의 RX만 가지고 있으므로, 캡춰받을 장비는 포트가 2개 있어야 겠다.

시리얼 통신 장비간의 통신신호를 중간에서 캡춰하기 위한 개념도. 캡춰장비는 장비간의 통신에 사용되는 2가닥의 선을 모두 RXD 로 받는다.
캡춰 장비는 장비1과 장비2의 신호를 모두 RXD로 입력받는다.

이를 결선도로 그려보면 이렇게 되겠다.

캡춰 케이블의 결선도

시리얼 캡춰 케이블을 만들어 보자

필요 자재

먼저 필요한 자재를 준비한다.

  • 적당한 길이의 3선 케이블 3EA (필자는 남는 Canare L-282AL 오디오 선을 사용했다.)
  • 입력단자용 숫놈 DE-9 1EA
  • 출력단자용 암놈 DE-9 3EA (RXD 모니터, TXD 모니터, THRU)
  • 납땜도구

입력 단자

신호를 입력받을 단자로, 숫놈이다. 수신 장치로 들어가는 케이블을 여기에 연결해 주면 된다. 사용할 선들을 색별로 묶어 납땜해 준다. 필자는 황색선을 RXD용으로, 백색선을 TXD용으로, 쉴드를 GND로 사용 했다.

시리얼 캡춰 케이블의 입력단자를 납땜한 모습

THRU 단자

입력 단자와 병렬로 연결된 단자이다. 원래의 수신 장치에 연결해 주면 된다. 입력단자와 1:1로, 동일하게 납땜해 준다.

시리얼 캡춰 케이블의 THRU단자를 납땜한 모습

RXD 모니터 단자

입력 단자의 RXD에 연결된 주황색 선을 2번 핀에 연결해 준다. 수신 장치에서 입력 단자를 향해 전송한 신호들은 이 포트에서 모니터 할 수 있다.

시리얼 캡춰 케이블의 RXD 모니터 단자를 납땜한 모습

TXD 모니터 단자

입력 단자의 TXD에 연결된 흰색 선을 2번 핀에 연결해 준다. 입력 단자에서 수신 장치를 향하는 신호들은 이 포트에서 모니터 할 수 있다.

시리얼 캡춰 케이블의 TXD 모니터 단자를 납땜한 모습

완성

완성된 모습이다. 수축튜브로 정리 해 주고, 단자 구분을 위한 라벨을 붙여 준다. 캡춰용 PC에서 PuTTY등을 이용해 케이블과 연결된 직렬포트를 확인해 보면 오고가는 데이터들이 보인다. 다만, 사진에 보이는 것 처럼, 오래 쓰지는 못할 것 같긴 하다. 하지만 어쩌겠는가? 일단 써 먹어야지..

시리얼 캡춰 케이블의 완성된 모습

마무리

본 글은 본 필자가 방송 시스템의 직렬통신관련 이슈를 해결하기 위해, 방송장비간 통신 데이터 내역을 살펴보고자 캡춰 케이블을 제작하며 작성한 글이다. 구조상 별 문제가 발생할 만한 거리는 없으며, 실제 본 필자가 수년동안 사용하는 동안 별 문제가 발생한 바 없었다. 다만, 단순한 병렬연결 구조로 되어있어 신호의 물리적 규격을 검증하기에는 무리가 있으며, 송수신장치 전송부의 (막장)설계에 의해 예기치 못한 동작이 발생할 수 있다는 것을 참고하기 바라는 바이다.

1998년 라이브 음향 엔지니어로 시작해 2005년부터 방송 송출 및 미디어 전송 엔지니어의 삶을 살아가고 있습니다. 아날로그 제작 시스템부터 최신 IP 미디어 라스트마일 환경까지, 미디어 기술과 정보 통신 기술(ICT)의 융합을 통해 새로운 솔루션을 제안하고 실현시켜 왔습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Post comment