Keysight VEE에서 디바이스와 RS-232C 통신을 하려면 통신 속도와 비트 스트림에 관한 기본적인 사항을 확인 해야 합니다.
비트스트림 설정은 Start bit, Data bits, Parity bit, Stop bits 로 구성되는데, 윈도우 기본 세팅인 9600, none, 8, 1 중에서 9600은 통신속도(bits per second, 초당 비트수)를 none 은 Parity bit, 8은 Data bits, 1 은 Stop bit를 의미합니다. 참고로 Start bit는 1비트로 고정 되어 있으므로 설정 자체가 무의미하여 빠져있습니다.
자세한 사항은 아래 링크를 따라가 보도록 합니다.
https://www.lammertbies.nl/comm/info/RS-232_specs.html
1. 타겟 디바이스
컴파일사의 큐블록이라는 디바이스로 Basic 코드로 간단하게 제어가 가능한 컨트롤 보드입니다.
2. 소스 코드
소스코드는 대략 아래와 같이 작성했습니다. 여기서 중요한 것은 보레이트와 비트스트림 설정입니다.
‘ RS-232C CH0 설정
Opencom 0,115200,3,80,80
위 코드에서는 115200 bps, NONE,8,1 로 설정(파라미터 중 3으로 표현)했으며, 종료문자는 Carriage Return (\r, Cr) 을 선택했습니다.
구현한 SCPI 에뮬레이팅 명령어는 *IDN?과 *RST 두개를 구현했습니다.
SCPI는 Standard Command for Programmable Instrument 의 약자이며, 위의 두 명령어는 엄밀한 의미의 SCPI가 아닌 IEEE-488.2 표준 명령어 셋 중 일부입니다.
*IDN? > AT&SOFT, SCPI-Emulator, ATS18020001, 2018.02.20
*RST > 보드 Reset 후 초기 부팅문자열 출력
3. 통신 확인
아래 그림과 같이 Debug Terminal 을 실행시킨 상태에서 통신을 확인해 봅니다.
4. Connection Expert에서 디바이스 인식
사실 이 부분은 중요하지 않습니다. 설정하지 않아도 실험용으로 사용할 VEE에서 설정해 주면 됩니다.
그러나 굳이 캡쳐해 놓은 이유는 일부 사람들이 Connection Expert에서 설정한 아래 속성들이, VEE에서 그대로 인식된다고 생각하고 있기 때문에 실험을 해봤습니다. (여기서는 115200 으로 설정)
추가된 Device는 아래와 같이 Unknown Instrument로 나타납니다. 여기서는 종료문자를 지정할 수 없기 때문에 \n으로 설정된 Connection Expert가 \r 로 설정된 디바이스와 통신이 제대로 될 리 없습니다.
5. VEE에서 장비 인식
VEE에서 통신을 하기 위해 기본적으로 해야 할 부분이 장비 인식입니다. COM6(ASRL6)에 뭔가 감지되었으므로, 아래와 같이 *IDN? 명령어를 보내볼 것인가 사용자에게 물어봅니다. “확인” 버튼을 눌러주면 IEEE-488.2 통신스펙을 완전하게 지원하는 디바이스(계측기)의 경우, 이 과정에서 제조사와 모델명 등을 확인할 수 있습니다.
6. 장비 인식 결과 및 통신 설정
아래 그림에서 볼 수 있듯이, Connection Expert에서 115200으로 설정하였으나, VEE에는 9600으로 표시됩니다. 따라서, 아래 그림들과 같은 과정을 거쳐 보레이트(Baud rate)를 115200, Read Terminator와 EOL Sequence를 디바이스(Cubloc)에 프로그램된 대로 모두 \r로 변경해 주어야 합니다..
7. 옵션 문자열 설정
옵션 문자열은 별명 정도로 생각하면 됩니다.
8. 간단한 Direct IO 프로그램 예제
위에 구현했던 *IDN? 명령에 의해 리턴되는 응답을 보여줍니다.
소스코드는 아래 링크에서 다운로드 할 수 있습니다.