:: 진공에 대해 알려주마.

시리얼 통신 본문

진공/노하우

시리얼 통신

하이백 2022. 9. 17. 20:27

이전에 이런 글을 썼는데 뭔가 좀 아쉬워 다르게 다시 써본다. 시리얼 통신을 처음 접하는 사람도 쉽게 이해 할수 있도록 써본다. 


시리얼 통신, 패러럴 통신이 공존하던 시대가 있었다. 통신을 위해서는 저속의 시리얼 통신이 프린터와 같은 고속의 통신에는 패러럴 통신이 사용되었다. 그러나 이제는 USB, EtherNet이 주류가 되었다. 예전에 고속이라던 패러럴 통신은 이제 저쪽으로 사라져 갔다.  

예전에 저속이라던 시리얼 통신은 장치간 문자를 전달하기 위하여 개발된 신호 체계이다. 문자마다 신호를 정의하여 규격을 만들고 이 규격에 맞추어 신호를 주고받는다. 

케이블을 연결하여 하드웨어를 구성하고 규격에 맞추어 전기 신호를 보내고 상대 장치에 미리 정의된 문자를 보내면 그에 해당하는 문자를 회신하게 된다. 

 


 

시리얼 통신을 위해서는 다음과 같은 순서를 가진다. 커넥터와 핀 배열, 통신규격, 명령어가 필요하다.

 

하드웨어 구성
장치의 Tx, Rx, GND의 핀 배열과 커넥터를 확인하고 이에 맞게 케이블을 제작한다.
이것에 관한 규정이 전기전자공학자협회(IEEE) 인가에 정의 되어 있다. (관련 내용을 찾아보는데 안보임)
아래와 같이 구성된 장치는 PC의 2번핀 RxD와 장치의 2번핀 TxD를 연결하고 PC의 3번 핀과 장치의 3번 핀을 연결하고 각각의 5번 핀을 연결하면 된다. 이런 경우는 Direct cable로 구성하여 연결하면 된다. 전장팀에서 정확히 연결하겠지만 간혹 오 배선이나 RxD가 2번인 장치가 있다.
통신 커넥터는 D-Sub 타입만 있는 것이 아니라 다양하게 제공된다. 여기에 맞추어 케이블이 구성되어야 한다. 

PC용 RS-232 PIN MAP
왼쪽은 Power supply 오른쪽은 RF Generator의 통신 커넥터 규격이다.
장치의 다양한 시리얼 통신 커넥터

 

프로토콜 설정
장치에서 기본으로 제공하는 프로토콜을 확인한다. PC와 장치의 프로토콜 규격을 동일하게 설정하고 명령어를 전송한다. 프로토콜 규격으로는 baudrate, parity bit, data bit, stop bit, termination character 등을 말한다. 
당연한 이야기 겠지만 서로의 장치가 같은 신호 체계를 가져야 하므로 이를 표준으로 정의한 문서가 ASCII Code이다. 이것 역시 IEEE에 정의되어 있다.


9600N81, 19200E71처럼 정의된 값을 설정하거나 다른 규격으로 설정할 수 있어야 한다.

장치에서 제공하는 배선도 및 통신 규격 설명서

 

명령어 전송
장치에 미리 정의된 명령어를 확인하여야 한다. 장치가 서버 역할을 한다. 미리 정의된 문자를 수신하면 필요한 정보를 매뉴얼에 정의 한대로 회신을 한다. 이것이 통신 프로토콜이라 한다.

장치를 제어하기 위한 Command list중 일부

 

PRE-CHECK

오 배선을 확인하기 위하여 통신 테스트를 통하여 미리 확인하여야 한다. 실제 제어 프로그램을 실행하기 전 범용 통신 테스트 프로그램을 이용하여 프로토콜을 설정하고 명령어를 보내 회신이 정확히 오는지 확인하여야 한다.

전장 부서에서 하네스를 구성하여 연결하면 나머지는 제어의 일이다. 오 배선이나 쇼트, 오픈 등을 확인하여야 한다. 제어 프로그램을 실행하여 테스트 하기는 동시 다발로 통신을 하므로 개별 확인이 어렵다.

Pre-check는 이런 부담을 줄여준다. 제어 프로그램을 실행하기 전 미리 오 배선과 오류를 검증한다. 범용 시리얼 프로그램을 구동하여 해당 명령을 미리 전송해 본다. 원하는 회신이 오는가? 그렇지 않다면 오 배선이거나 매뉴얼에 오류가 있다는 것이다. 이를 해결해야 한다. 장치 메이커에서 제공하는 유틸리티도 있다. 이것으로 확인하는 방법도 있다.

우선 장치 하나씩 테스트한다. COM5번에 특정 장치가 연결되어 있으면 

  • 범용 통신 프로그램으로 COM5를 선택하고 baudrate, databit, paritybit, stopbit를 설정하고 연결한다.
  • 명령어를 입력하고 전송한다. (CR, LF를 붙일 것인지 매뉴얼에서 확인 후 선택 등)
  • 회신이 오는지 확인한다. 회신이 오면 케이블, 장치까지 정상이다. 
  • 회신이 오지 않는다면 케이블(Tx, Rx), 장치 설정, 통신 프로토콜 등 하나씩 하나씩 확인해야 한다. (아래 사진처럼 twisted cable 커넥터를 연결해 본다. 여기서 문제가 해결되면 훌륭한 전장팀을 만난 것을 자랑스러워해도 된다. 해결이 안 되면 장치의 핀 맵을 확인하고 케이블이 제대로 연결되어 있는지 확인하고 장치의 세팅이 바른 지 확인해야 한다.)

 


 

여기서 테스트 노우하우를 전한다. 

1. RS-232

  • 데스크톱 PC에 내장된 시리얼 포트 혹은 USB 시리얼 컨버터용 시리얼 이든 PC용 핀 맵은 동일하다. 
  • Tx와 GND 사이에 9 Volt의 전압이 발생한다. DVM으로 찍어보면 9 Volt가 찍히고 이것이 Tx다.
  • PC 쪽은 표준으로 pin map이 정해져 있다.
  • 장치는 Tx가 2번, Rx가 3번이거나 혹은 Tx가 3번, Rx가 2번인 경우가 있다. 장치마다 틀리다.
  • D-SUB 9핀을 사용하면 2, 3, 5번 핀을 사용한다. 또는 여러 가지 형태의 커넥트를 사용한다.
  • 주로 Tx와 Rx 신호가 바뀌는 경우가 있다. 그래서 2, 3번을 꼰 케이블을 준비해야 한다. 

 

2. RS-485

  • RS-485 2 wire는 Data+, Data-로 두 개의 신호로 여러 개의 장치와 통신을 한다. (Multi Drop이라고 한다.) 
  • 두 개의 케이블이 바뀌는 경우가 있다.
  • RS-485 4 Wire는 4개의 선으로 통신을 주고받는데 많이 사용되지 않는다.
  • 통신이 이상이 있을 경우 문제점을 찾기가 너무 어렵다. 
  • 장치에 반드시 ID를 설정해야 한다. 
  • 종단 저항을 설치해야 한다. 경험상 설치를 안 해도 문제가 없는 경우도 많다.
  • 통신이 안되면 PC에서 RS-232, 485 컨버터를 사용하여 우선 케이블과 장치의 이상 유무를 확인하여야 한다.

 

문자 'A'를 오실로스코프로 보면 ..
통신 테스트를 위한 기본 준비물 (2,3번 교차 연결한 케이블)

 위의 사진 중 왼쪽은 잠시 사용을 위해 만들어 사용 하였다. 좀 빠지는 느낌이 나서 찾다 보니 오른쪽과 같은 제품이 널려 있다.  이것 말고도 RJ45 포트를 PCB 단자대로 변경해주는 제품도 있다. 요즘은 시리얼 통신도 RJ45를 많이 사용하다 보니 유용하다. 

'진공 > 노하우' 카테고리의 다른 글

"A\0B\0C\0\0\0\0\0\0\0\0\0"  (0) 2023.04.08
VIEW MON of RS-485  (0) 2022.11.20
Access CC-LINK  (0) 2022.08.31
Install WINDOWS XP  (2) 2022.04.27
오실로스코프  (0) 2022.02.14
Comments