GPIB 시스템 성능 향상을 위한 8가지 방법

개요

자동화 측정 시스템을 구축할 때 성능은 지나쳐도 모자람이 없을만큼 중요한 요소입니다. 제조 테스트 및 GPIB 기반 데이터 수집 어플리케이션에서 성능 향상이 주는 영향은 명백합니다. 시스템 성능을 향상하면 다음과 같은 장점을 얻을 수 있습니다.

- 테스트 처리량 증대와 단축된 시간으로 더 많은 제품 테스트
- 새로운 제품을 신속하게 검증하여 시장 출시 경쟁에서 우위
- 테스트 및 기기에 대한 지출 경비 최소화

요약하면, 시간 절감은 제품의 신속한 제공을 통한 고객 만족 극대화, 더욱 빠른 제품 개발 및 기기에 대한 현명한 투자로 직결되어 수익 창출에 기여합니다. IEEE 488 (GPIB) 버스는 현재 여러 자동화 측정 시스템의 핵심이므로, GPIB 시스템 성능을 증대하기 위한 여러 옵션을 평가할 필요가 있습니다. 테스트 및 R&D 엔지니어들은 자동화 측정 시스템에 통합할 수 있는 광범위한 측정 디바이스를 제공하는 검증된 인터페이스인 GPIB를 오랫동안 사용하고 있습니다. 이와 같은 이유로 인해 본 어플리케이션 노트에서는 시스템 성능을 향상하기 위해 GPIB와 함께 사용할 수 있는 8가지 옵션에 대해 살펴보겠습니다.

내용

소프트웨어와 하드웨어를 망라한 솔루션

아래의 8가지 솔루션은 GPIB 시스템 성능 향상에 직결되는 하드웨어와 소프트웨어 옵션입니다. 본 8가지 솔루션을 함께 또는 각각 사용하고, 각 어플리케이션에 가장 적합한 제안 사항을 적용하십시오.

1. PCI용 버스-마스터링 GPIB 컨트롤러

PCI는 데이터가 GPIB에서 수신되면 최상의 데이터 전송 성능을 제공합니다. ISA 기반 컴퓨터와 달리, PCI 기반 컴퓨터에는 PC 메모리로 데이터를 직접 전송하기 위해 주변 카드가 공유하는 전용 DMA 컨트롤러가 없습니다. 최고의 성능을 위해 PCI 주변 보드는 데이터를 PC 메모리로 직접 효율적으로 전송하여 데이터가 마이크로프로세서에 의해 처리되도록 하기 위해 고유한 온보드 DMA 컨트롤러를 갖추어야 합니다. 본 기능이 있는 보드는 버스 마스터에 의해 식별됩니다. 다시 말해, 버스 마스터는 PCI 버스를 제어하며, 데이터를 시스템의 마이크로프로세서와 독립적으로 전송합니다.

버스-마스터 기능이 없는 주변 카드는 마이크로프로세서를 방해하여 모든 처리 태스크가 데이터를 전송하는 것을 중지시킵니다. 이같은 방해로 어플리케이션 작동이 원활하지 않으며 전체 시스템 성능이 대폭 저해됩니다.

2. 8-Mb/s 호환 GPIB 컨트롤러 및 계측기 사용

HS488은 GPIB의 최대 처리량을 8 Mb/s로 증대하는 IEEE 488의 고속 확장 형태입니다. 벤치마크 결과 25 ~ 3,000 %의 성능 향상이 있었습니다. 최근의 오실로스코프 벤치마크 결과 PC와 데이터 전송 속도가 최고 7.4 Mb/s를 기록하였습니다. HS488은 GPIB 컨트롤러 하드웨어에 실행되었으므로 사용이 편리합니다. 더욱 높은 성능 혜택을 얻기 위해 어플리케이션 소프트웨어를 변경할 필요가 없습니다. HS488은 필드 테스트되었으며 기존 IEEE 488 계측기와 완벽하게 호환됩니다. 고속 및 표준 IEEE 488 계측기는 호환 문제없이 동일 시스템에 공존할 수 있습니다.

HS488 호환 GPIB 컨트롤러는 현재 내쇼날인스트루먼트에서 제공하고 있습니다. HS488에 대한 더욱 자세한 내용은 관련 링크를 보십시오.

3. 측정 및 명령 파싱 기능을 최적화한 GPIB 계측기 찾기

명령을 처리하고 계측기의 GPIB 출력 버퍼에 측정을 저장하는 것은 GPIB 계측기로부터 측정을 수집할 때 시간 소모적인 작업입니다. 계측기 벤더는 가능한 최고 속도의 측정 성능을 보장하기 위해 잠재적인 병목을 반드시 최적화해야 합니다. 온보드 마이크로프로세서와 내부 시스템 버스의 속도 및 유형을 살펴보면 계측기의 처리 능력과 관련된 힌트를 얻을 수 있습니다. 그러나 강력한 하드웨어는 최적화된 펌웨어 없이는 완벽하게 활용될 수 없습니다. 계측기 벤더가 관련 사양이나 벤치마크 정보를 제공하지 않는다면, GPIB에서 측정을 구성하고 수집할 때 어떤 계측기가 최상의 성능을 구현하는지를 파악하기 위해 각기 다른 계측기를 실험해야 할 것입니다.

4. 고성능을 위해 설계된 GPIB 계측기 드라이버

IVI 드라이버라고 하는 새로운 드라이버 클래스는 특정 계측기의 상태를 기억함으로써 시스템 성능을 향상하도록 설계되었습니다. 상태 캐싱 엔진은 계측기에서 하드웨어 설정 상태를 추적합니다. 본 기능은 하드웨어 설정의 값이 변경되어야 할 때에만 인스트루먼트 I/O를 수행함으로써 시스템이 지능적으로 동작하도록 하므로 테스트 성능을 대폭 향상시킵니다. 예를 들어, 여기(excitation) 신호의 주파수 스위핑만을 진행하고자 하고자 한다면 진폭, 웨이브폼 형태, 위상 및 다른 유형의 신호 정보를 반복해서 보내기를 원치 않을 것입니다. 현 VXIplug&play 인스트루먼트 드라이버는 상태 캐싱 기능을 제공하지 않습니다.

IVI 드라이버로, 테스트 개발 또는 시스템 배포 동안 최상의 결과를 위해 특수 모드에서 실행하도록 계측기 드라이버를 구성할 수도 있습니다. 예를 들어, 계측기로 보내고자 하는 모든 값의 범위를 자동 체크하고 필요할 경우 이를 유효한 값으로 강제 전환하도록 드라이버를 구성할 수 있습니다. 또한 각 명령이 전송된 후에 계측기의 상태 바이트를 자동 체크하도록 드라이버를 설정할 수 있습니다. 이러한 모든 “개발 모드” 설정은 가장 신속한 실행을 위해 제조 라인에서 테스트 프로그램을 배포할 때 신속하게 꺼집니다. 따라서 최상의 디버그 기능 및 신속한 실행 시간 두 가지를 모두 얻을 수 있습니다.

관련 링크 "인스트루먼트 드라이버 상태 관리를 통해 테스트 성능 향상하기"를 통해 본 기능을 활용하는 방법에 대한 자세한 정보를 보십시오. IVI 드라이버는 20개 이상의 사용자 및 벤더 회사들로 이루어진 IVI Foundation에서 발표된 개방 산업 사양에 기반하여 구축되었습니다. IVI 웹 페이지 관련 링크에서 IVI 및 IVI Foundation에 관한 추가 정보를 확인하십시오. 다음은 상태 캐싱이 GPIB 시스템 성능을 어떻게 향상하는지 보여주는 벤치마크입니다.


벤치마크 예제 – 시스템 응답 VS 주파수 크기 측정어느 한 시스템의 주파수 응답을 확인하는 태스크를 생각해봅시다. 이를 위해 다양한 주파수에서 사인파를 생성하기 위해 웨이브폼/함수 발생기가 필요하며, 테스트 중인 시스템의 출력 전압을 측정하기 위해 DMM 또는 오실로스코프가 필요합니다. 아래에서 함수 발생기와 오실로스코프를 프로그래밍하기 위해 하이 레벨의 계측기 드라이버 호출을 사용하는 테스트 프로그램을 위한 의사 코드 (pseudocode)를 보십시오.

본 테스트 과정은 HP 33120A 함수 발생기 및 HP 54645D 오실로스코프를 사용하여 실행되었습니다. 표 1은 본 테스트에 대한 IVI 및 기존 드라이버간의 성능 차이를 나타냅니다.

표 1. 상태 캐싱 벤치마크
상태 캐싱 테스트 시간 (초) 성능 차이
Off
(기존 VXIplug&play 드라이버)
35.0 해당사항 없음
On
(IVI 드라이버)
13.2 265%

 

또한 다음을 참조하십시오:
IVI 웹 페이지
인스트루먼트 드라이버 상태 관리를 통해 테스트 성능 향상하기

5. 호스트 PC로 데이터 처리 오프로드

지금까지 우리는 계측기의 처리 및 분석 기능의 개선을 경험해오고 있습니다. 그러나 계측기 벤더에 있어 최신 처리 기술을 사용자에게 제공하기 위해 PC 업체와 격차를 지속적으로 좁히는 일은 결코 쉬운 일이 아닙니다. 새로운 프로세스를 통합하기 위해서 벤더는 계측기를 재설계해야 할때가 많습니다. 보다 뛰어난 성능의 혜택을 얻기 위해서 새로운 버전의 계측기를 구입해야 할 수도 있습니다.

항상 뛰어난 처리 기능의 사용을 보장받고 싶다면 계측기의 내부 기능과 오래된 처리 기능에 의존하기 보다는 일부 연산 집약적인 분석을 PC로 오프로드하는 것을 고려해 볼 수 있습니다. 일반적으로 PC 기능은 계측기 기능보다 훨씬 빠른 속도로 진보합니다. 따라서 계측기보다 PC를 더 자주 바꾸어야 할 가능성이 있습니다. 새 버전의 PC가 출시될 때마다 일부 측정 처리 및 분석에 PC를 사용하기 위해 선택함으로써 새로운 성능을 직접 체험할 수 있습니다.

또한, 계측기는 폐쇄된 상자이므로 분석을 직접 정의할 수 없습니다. PC를 사용하면 여러 계측 소프트웨어 벤더가 신호 처리, 필터링 및 일반 분석을 위한 완벽한 라이브러리를 제공하여 사용자 정의 분석 루틴 정의를 대폭 간소화하므로 맞춤 분석을 편리하게 추가할 수 있습니다.

6. 소프트웨어의 멀티스레딩 고려

멀티스레딩은 어플리케이션의 작업이 여러 다른 태스크 또는 스레드로 나뉘어진 프로그래밍 방식입니다. 어플리케이션의 주요 스레드에 의해 구축되는 각 다른 스레드는 시스템의 다른 스레드와 독립적으로 실행합니다. 스레드가 태스크를 완료하면 사라집니다. 어플리케이션의 주요 스레드는 모든 태스크가 완료되었을 때 어플리케이션을 닫는 역할을 합니다. 시스템에 하나 이상의 프로세서가 있다면 개별 프로세서에서 독립 스레드를 동시 실행함으로써 어플리케이션 성능을 향상할 수 있습니다. 또한 적절한 프로세서 시간 슬라이스를 어플리케이션의 각 스레드에 할당함으로써 더욱 향상된 성능을 도출하기 위해 단일 프로세서 시스템을 조정할 수 있습니다. 각 스레드에 할당된 프로세서 시간을 구성하면, 프로세서는 하나의 스레드를 실행하는 동안 다른 스레드 실행 이전에 외부 이벤트를 위해 대기하므로 어플리케이션 성능이 개선됩니다. 이는 GPIB 어플리케이션의 일반적인 시나리오입니다.

GPIB 어플리케이션은 여러 가지 방법으로 멀티스레딩을 활용합니다. 멀티스레딩을 사용하면 시스템 리소스를 더욱 효율적으로 관리하기 위해 개별 어플리케이션 태스크가 분리됩니다. 따라서 멀티스레딩을 사용하여 Service Request (SRQ)와 같은 시간 결정적인 이벤트를 모니터링하는 동시에 메모리에 이미 사용가능한 데이터를 처리할 수 있습니다.

예를 들어, 어플리케이션에는 다른 기능을 하는 세 개의 스레드가 있을 수 있습니다. 즉, 하나는 사용자 입력을 관리하고 다른 하나는 데이터 수집 및 로깅을 수행하며 나머지 하나는 데이터 처리 및 디스플레이에 관여합니다. 데이터 처리 및 디스플레이는 시간 소모적이며 프로세서 집약적입니다. 데이터 양 및 데이터가 수집되는 주파수는 다양합니다. 어플리케이션은 계측기로부터 SRQ를 지속적으로 체크할 때가 많습니다. 사용자 연동은 어플리케이션에서 일어나는 다른 활동과 비교하면 자주 일어나지 않는 이벤트라고 할 수 있습니다. 멀티스레딩을 사용하면 본 태스크를 분리할 수 있으며 각 개별 태스크의 처리 요구를 해결할 수 있습니다. 또한 하나 이상의 GPIB 인터페이스를 사용하는 어플리케이션의 경우 단일 스레드는 각 GPIB 인터페이스 및 각 인터페이스 컨트롤의 계측 관리 전용입니다.

내쇼날인스트루먼트의 Windows NT/98/95용 NI-488.2 소프트웨어는 멀티스레드 안전하며, 멀티스레드 어플리케이션을 위한 완벽한 기능을 제공합니다. 더욱 자세한 정보를 위해 관련 링크 "Windows NT 및 Windows 95에서 멀티스레드 GPIB 어플리케이션 개발하기"를 보십시오. NI LabWindows™/CVI 및 LabVIEW에는 또한 인스트루먼트 컨트롤 어플리케이션을 위한 멀티스레딩 기능이 포함되어 있습니다. LabVIEW를 사용한 멀티스레딩에 대한 자세한 정보는 관련 링크 LabVIEW를 사용하여 최대 성능과 안정성을 갖춘 멀티스레드 어플리케이션 구축하기를 보십시오.

또한 다음을 참조하십시오:
Windows NT 및 Windows 95에서 멀티스레드 GPIB 어플리케이션 개발하기

7. 원시 인스트루먼트 데이터 포맷 사용

마이크로프로세서는 2진 포맷으로 측정 계산을 수행합니다. 그러나 GPIB에서 데이터를 전송할 때 데이터는 영숫자 포맷 (보통 ASCII)으로 변환될 때가 많습니다. 두 번의 데이터 변환에 시간이 소요되기 때문에 성능에 영향을 미칩니다. 첫 번째 변환은 GPIB에서 전송을 위해 2진 데이터가 ASCII로 변환될 때 계측기에서 발생합니다. 본 변환은 계측기의 프로세서가 현재 시중의 최신 PC 처리량의 일부분 정도만을 제공하므로 시간이 많이 소요될 수 있습니다. 두 번째 변환은 데이터 추가 처리 및 분석을 위해 측정 데이터를 ASCII에서 이진으로 변환하는 데이터 파싱 루틴을 작성하는 PC에서 발생합니다. 이 두 가지 작업의 오버헤드를 줄이기 위해서는 계측기의 원시 데이터 포맷 (이진)으로 데이터를 전송하는 것이 권장됩니다.

8. 까다로운 사양의 어플리케이션에 모듈형 플러그인 계측기 사용

데이터 스트리밍, 빠른 저용량의 데이터 전송, 매우 정밀한 동기화 및 트리거링 기능이 필요한 어플리케이션의 경우, 측정을 위해 모듈형 플러그인 계측기 사용을 권장합니다. 본 계측기는 PCI, PXI/CompactPCI 및 VXI 플랫폼에서 사용가능합니다. 본 플랫폼을 사용하면 GPIB 계측기를 편리하게 제어할 수 있으며 따라서 최상의 결과를 얻을 수 있습니다.

비용 측면에서, PXI/CompactPCI는 데스크탑 PC에서 볼 수 있는 동일한 PCI 버스에 기반하며 견고하므로 제조 테스트 환경을 위한 경제적인 솔루션을 제공합니다. PXI/CompactPCI에 기반한 모듈형 플러그인 계측은 여러 장점을 제공합니다.

  • 7개의 PCI 슬롯
  • 컴퓨터 메모리에 직접 데이터 스트리밍을 위한 버스-마스터 DMA 기능
  • 매우 견고한 모듈형 패키지
  • 백플레인 타이밍 및 트리거링
  • 표준 Windows 상용 소프트웨어 – 데스크탑 PC에서 사용하는 것과 유사
  • PXI/CompactPCI 임베디드 컴퓨터에서 작동하는 데스크탑 PC 시스템의 소프트웨어
  • 측정 정확도를 떨어뜨리지 않은 저가형 계측기와 디지타이저
  • 낮은 첫 번째 바이트 지연
  • GPIB 측정 디바이스의 편리한 제어

모듈형 계측 솔루션은 측정 및 자동화 시스템에 존재하는 세 가지 다양한 요구를 만족하기 때문에 이상적인 옵션입니다. 첫 번째 요구 사항은 PC 메모리로 대용량 데이터를 스트리밍하는 기능입니다. 오실로스코프, 임의 함수 발생기, 고속 디지타이저와 같은 디바이스는 데이터가 가장 짧은 시간에 전송되도록 보장하기 위해 충분한 버스 대역폭을 필요로 합니다.

두 번째 요건은 카운터/타이머, 전원 공급 및 디지털 멀티미터와 같은 극소량의 데이터를 전송하는 디바이스를 위한 효율적인 통신입니다. 본 디바이스를 위한 효율적인 통신은 정보의 첫 번째 바이트 (첫 번째 바이트 지연)를 전송할 때 걸리는 시간에 달려 있습니다. 본 오버헤드는 전송하려는 데이터의 전체 양이 적기 때문에 중대합니다. PCI, PXI/CompactPCI 및 VXI를 위한 첫 번째 바이트는 10~ 100 ns 범위입니다. GPIB의 경우 첫 번째 바이트 지연은 약 100 µs입니다. 첫 번째 바이트 지연이 작을수록 전송되는 데이터 양이 작은 디바이스에서 신속한 통신이 보장됩니다.

세 번째 조건은 모듈형 플랫폼에서 사용 가능하지 않은 기존 GPIB 계측기에 인터페이스할 수 있는 기능입니다. NI에서 제공하는 GPIB 컨트롤러가 본 조건을 충족합니다.

결론

GPIB 시스템 성능을 증대하기 위한 여러 옵션이 있습니다. 본 어플리케이션 노트에서 설명한 옵션은 선택한 계측기, 구입한 GPIB 컨트롤러, 어플리케이션 구축에 사용하는 소프트웨어 및 설계 방식 등이 있습니다. 위에서 설명한 팁 또는 여러분의 생각을 바탕으로 현실적인 체크리스트를 만든 다음 적합한 방식을 사용하여 문제를 해결하십시오. 여러분은 현재 사용하는 GPIB 시스템의 성능을 충분히 활용하고 있지 않을 수도 있기 때문입니다.

LabWindows 마크는 Microsoft사의 라이센스 하에서 사용됩니다. Windows는 미국 및 여러 나라에서 Microsoft 사의 등록 상표입니다.