티스토리 뷰

IVI 드라이버(Interchangeable Virtual Instruments) 란 무엇인가?

IVI(Interchangeable Virtual Instruments) Driver는 계측기와 컴퓨터간의 통신을 위한 하나의 인터페이스 입니다. 이는 IVI Foundation에서 정의한 API를 이용하여 계측기와 컴퓨터의 통신을 도와주는 역할을 합니다.


그럼 IVI Foundation은 무엇일까요?


IVI Foundation은 계측기 프로그램 표준 API를 정의하여, 계측기의 교환사용, 실행성능 향상 및 시뮬레이션 기능 구현등의 프로그래밍 과제를 해결할 수 있는 방안을 제시하는 표준화기관입니다.


이는 1997년 내쇼날인스트루먼트가 주관으로 시작하였으며, GDE Systems, GEC Marconi, Lucent Technologies, National Instruments, Northrop Grumman 및 Raytheon TI Systems등이 IVI Working Group 미팅을 시작하여 1998년 이들 회사를 중심으로 출범하였다. 


IVI가 나오기 이전에는 기존의 인터페이스 표준은 SCPI, Plug & Play Instrument Drivers가 있었습니다. 하지만 IVI Foundation에 대 다수의 계측 회사들이 참여하여 IVI가 가장 강력한 표준이 되었습니다. 


IVI는 상호 연동되는 가상 장비라는 뜻을 가지고 있습니다. 이 말의 의미를 종합해보면 컴퓨터를 활용하여 컴퓨터 기능을 이용하여 측정 장비에 대한 생산성을 향상 시키며, 상호 연동되게 만들어 어떠한 장비를 이용해서도 측정을 가능하게끔 하겠다는 겁니다. 즉 수많은 장비를 컴퓨터와 연결하여 사용하는 API를 이용하자 라고 생각을 하시면 되겠습니다. 하지만 상호 연동이 되기 위해서는 IVI 규격을 엄격히 따라야 합니다.


IVI의 규격은 프로그래머 부분과 드라이버 개발자 부분으로 나뉘어져 있습니다.

Driver_Architecture_Spec는 IVI에 대한 전반적인 개념과 아키텍쳐를 설명하고 있습니다. 이 스펙에 따르면 IVI 드라이버는 크게 시뮬레이션, 디버그. 런타임 3가지의 모드로 정의되고, 이는 시뮬레이션, 범위 확인, 상태 확인, 멀티쓰레드 안전, 계측기간의 상호작용이 반드시 만족해야 합니다.


스펙에서 정의된 내용을 간략히 살펴보면 아래와 같습니다. 


시뮬레이션

  • 계측기를 실행하지 않고 드라이버가 시뮬레이트된 데이터 발생
  • 계측기를 보유하지 못했을 때 유용하게 사용(기능적 한계 보유)
  • 시뮬레이션 모드에서 제공되는 기능은 드라이버 제공회사에 따라 달라짐

멀티 스레드 안전기능
  • 동일한 프로세스에서 다수의 스레드가 동일한 IVI 드라이버 세션을 사용 가능
  • 동일한 IVI 드라이버의 다른 세션이 다른 스레드를 실행할 수 있는 기능
  • 아직 IVI Foundation에서 규격을 정의하지는 않음

범위 확인(Range Checking)
  • IVI 고유드라이버의 기능. 입력변수가 해당 계측기의 유효범위에 드는지 확인
  • 개발 단계에서 많이 사용

상태 캐싱(State Caching)
  • IVI 드라이버는 특정 장비의 어트리뷰트 모델 기반
  • 계측기가 새로운 상태로 변화시에 이에 대한 설정에 필요한 입출력 최소화를 위해 사용


IVI API 개발 범위


VI Foundation에서 제공하는 공통 API를 통해서 개발하기 위해서는 스펙에 정의되어 있는 API 범위를 알아야 합니다.


Base

계측기 사용을 위해 각 클래스마다 클래스의 기본 기능에 대한 API를 제공


Extended

기본 기능을 확장하기 위한 API


Specific

해당 계측기만 가지고 있는 특정 기능에 대한 API


IVI API 개발 방법


IVI API를 개발하기 위해서 IVI Foundation은 2가지 방식을 제안하고 있습니다. 하나는 IVI-C Driver 방식이고, 다른하나는 IVI-COM Driver 방식입니다. 


VI-C Driver

C API로 제공이 되는 ANSI C기반의 API로 윈도우 플랫폼에서 Win32 DLL 형태로 제공이 됩니다.

이를 이용하여 LabVIEW, LabWindows/CVI 및 Visual C++등으로 개발이 가능합니다.


VI-COM Driver

COM API로 제공이 되는 API로 윈도우 플랫폼에서 Win32 DLL 형태로 제공이 됩니다.

이를 이용하여 LabVIEW, LabWindows/CVI 및 Visual C++등으로 개발이 가능합니다.


이상 간략히 IVI 드라이버에 대해서 알아보았습니다.

추후에는 이를 활용한 Hardware Abstraction Layer(HAL)에 대해서 알아보도록 하겠습니다.


이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.



댓글