11-24-2010 10:35 AM
11-24-2010 07:23 PM
There are 3 types of IVI drivers. IVI-C, IVI-COM, and the new IVI.NET. IVI-C is what is supported by NI and since you posted here, I would assume that is what you want to create. IVI-C drivers are created with LabWindows/CVI, an ANSI C compiler. There are many companies that will write IVI-C drivers (like the company I work for).
VISA is an API that allows a single driver to communicate to GPIB, RS-232, USB, Ethernet, PCI, and PXI instruments. It is not something you create. It is something that the IVI driver calls to read/write to the instrument. A VISA license comes with NI hardware such as the GPIB controllers or software such as CVI or LabVIEW. It can also be purchased. The VISA driver resides on the pc and sits above the low level hardware drivers.
SCPI is a standard for instrument command syntax and was originally developed for GPIB instruments. For example, a DMM would have a command like CONF:VOLT DC. It is a syntax that is easy to read and understand. If you wish to add SCPI syntax to your instrument, you would need a SCPI parser added to your firmware. It would probably be a welcome feature to the developer of your driver.
You might also want to consider USBTMC as a standard for the USB driver and VXI-11 or LXI for Ethernet. There is a lot of information at the IVI Foundation on the different types of IVI drivers, the instrument classes, SCPI, and VISA.
11-25-2010 01:52 PM
Hi
Please do not develop only an IVI driver. If everything was perfect IVI would have been perfect too but most of the time it is not and debugging and changes are almost impossible. Please look at standard LabVIEW drivers and implement your driver in that way. Debugging in LabVIEW is very powerful and we don't have a blackbox implementation we can't debug.
The idea of IVI of a standard API for a group of instruments is very good but can more easily be implemented by a small LVOOP layer on top of a standard labview driver.
look at this video for the tools available in LabVIEW already
11-28-2010 08:19 PM
VISA driver (or library) is one-level lower layer protocol than IVI drivers. So you don't have to develop VISA driver itself. VISA is simply an I/O driver, which does not depend on specific device models. Any vendor's devices can be used with existing VISA drivers, as long as the devices are correctly supporting the required protocols (such as USBTMC, VXI-11, HiSLIP).
As for SCPI, the command parser is all responsible by the device firmware. VISA does not interpret any command strings even if they are SCPI-compatible. VISA is only a protocol-wrapper of I/O interfaces.
As for IVI drivers, you will have to develop them for your device model basis. (Of course you can develop one driver that supports all the model variations in the same series at once.)
Therefore,
PC side:
IVI Driver --- you need develop
VISA Driver --- *** no need to develop ***
USBTMC's kernel-mode class driver --- *** no need to develop ***
Firmware side:
USBTMC/VXI-11/HiSLIP protocols --- you need develop
USB physical driver --- you need develop
SCPI parser --- you need develop