VISA is a standard I/O API for instrumentation programming.
VISA can control GPIB, serial, USB, Ethernet, PXI, or VXI instruments, making the appropriate driver calls depending on the type of instrument you use so you do not have to learn instrument-specific communication protocol. It is platform independent, bus independent, and environment independent. In other words, the same API is used regardless of device type, platform, or programming language.
Before you begin using VISA, make sure you choose the appropriate method of instrument control.
GPIB, serial, USB, Ethernet, and some VXI instruments use message-based communication. You program message-based instruments with high-level ASCII character strings. The instrument has a local processor that parses the command strings and sets the appropriate register bits to perform the operations you want. The Standard Commands for Programmable Instruments (SCPI) standardizes the ASCII command strings used to program compliant instruments. Similar instruments often use similar commands. Instead of learning different command messages for each type of instrument from each manufacturer, you need to learn only one command set. The most common message-based functions are VISA Read, VISA Write, VISA Assert Trigger, VISA Clear, and VISA Read STB.
PXI and many VXI instruments use register-based communication. You program register-based instruments at a low level using binary information that you write directly to the instrument control registers. Speed is the advantage of this type of communication because the instrument no longer needs to parse the command strings and convert the information to register-level programming. Register-based instruments literally communicate at the level of direct hardware manipulation. The most common register-based functions are VISA In, VISA Out, VISA Move In, and VISA Move Out.