PXI Overview
From Agilent VISA.NET
PXI Overview
PXI is a rugged, high-performance modular instrumentation platform designed for industrial measurement and automation applications. PXI allows you to use modules from multiple vendors and easily integrate them into a PXI system.
A PXI device is identified by the PCI bus number where it is located, the assigned PCI device number, and the device's function number. For single-function devices, the function number is 0 and is optional. For multi-function devices, the function number is device specific and ranges from 1 to 7.
The address string for a PXI device is defined as shown below (optional parameters are shown in square brackets []):
"PXI[bus]::device[::function][::INSTR]"
Some examples of PXI device addresses are:
PXI0::3-18::INSTR PXI device 18 on bus 3
PXI0::3-18.2::INSTR Function 2 on PXI device 18 on bus 3
PXI0::21::INSTR PXI device 21 on bus 0
PXI0::CHASSIS1::SLOT4::INSTR PXI device in slot 4 of chassis 1
PXI0::MEMACC Access to system controller memory available to devices in the PXI system.
Finding PXI Devices
You can use viFindRsrc() to search for specific resources, such as PXI resources. The VisaFindRsrc() function in the PXIVisaSample program demonstrates how to find all VISA PXI resources.
Each PXI device has a vendor code and model code. You can create a more refined search by adding a vendor and/or model code to the search using the VI_ATTR_MANF_ID attribute . For example, search for an Agilent E2929A PCI/PCI-X Bus Analyzer using Agilent's PCI vendor code (0x15BC) and the model code (0x2929) as follows:
"PXI?*INSTR{VI_ATTR_MANF_ID==0x15BC && VI_ATTR_MODEL_CODE==0x2929}"
PXI Device Types
PXI devices are register based. Programming a PXI device directly from VISA requires a knowledge of the register map of the device and must be done using the VISA memory functions. A PXI device typically does not have a processor to interpret high-level commands. Therefore, the device must be programmed with register peeks and pokes directly to the device's registers. VISA provides two different methods you can use to program register-based devices: high-level memory functions and low-level memory functions.
The Agilent Modular Driver Wizard
The Agilent Modular Driver Wizard generates device-specific .ini, The .inf file created by the PXI Driver Wizard specifies use of an Agilent generic kernel driver. This driver works for hardware with either a PCI or PCIe endpoint. This driver, together with Agilent IO Libraries, enables applications to call a VISA API and communicate with the device. .inf, and .sys files for a PXIe or AXIe device.These files enable the Agilent IO Libraries Suite to communicate with the device. You can launch the wizard from <drive>:\Program Files\Agilent\IO Libraries Suite\bin\Modular\ModularDriverWizard.exe.
Important This wizard is intended for use by modular hardware development engineers. It requires knowledge of hardware interrupts and the hardware memory map. If you are an end user (not a module designer) and need a driver for a module, you should refer to the installation software that came with your modular device instead of using the wizard.If, however, you need to regenerate installation files for the device, you can import the device's vendor-supplied .ini file in the first step of the wizard. After importing, the wizard can generate and install the files for that device.