Getting Started with NI-SCOPE
PDF | Submit your review
Publish Date: 八月 01, 2013 | 14 评级 | 3.00 out of 5 |
Overview
This document intends to give the beginner a general idea of how to get started with NI-SCOPE. It begins
with a brief introduction to the structure of instrument drivers generally, and continues into more detail on
the National Instruments NI-SCOPE instrument driver for NI high-speed digitizers. The Instrument Driver
Programming Basics section covers basic waveform acquisition and some basic measurement options.
For a more thorough explanation of the NI-SCOPE instrument driver and more information on
programming with NI-SCOPE, refer to the NI High-Speed Digitizers Help.
Table of Contents
1.
Instrument Driver Programming Basics
2.
Getting Started with NI-SCOPE
Signal Measurements with NI-SCOPE
3.
1. Instrument Driver Programming Basics
What is an instrument driver?
An instrument driver is a set of software routines that control a programmable instrument. Each routine
corresponds to a programmatic operation such as configuring, reading from, writing to, and triggering the
instrument. Instrument drivers simplify instrument control and reduce test program development time by
eliminating the need to learn the programming protocol for each instrument.
The Structure of an Instrument Driver
All instrument drivers have the same basic hierarchy. Instrument drivers are written from low-level
components that are used to program the instrument. These low-level calls are combined to form
application functions that simplify programming the instrument. These application functions present only
the common instrument features and capabilities, whereas low-level functions are organized into a
modular assortment containing all the instrument configuration and measurement capabilities. The
component functions fit into six categories – Initialize, Configuration, Action/Status, Data, Utility, and
Close. Below is a model structure of a program written with an instrument driver.
This model represents the basic programming structure of a program written with an instrument driver.
Initialize
All instrument drivers have an Initialize function. It is the first instrument driver function called and
establishes communication with the instrument. Optionally, it can also perform instrument identification
query and reset operations. Initialization also places the instrument in a specific state, usually its default
power on state.
Configuration
Configuration functions are collections of software routines that configure the instrument to perform a
desired operation. The number of Configuration functions depends on the complexity of the instrument.
After the Configuration functions are called, the instrument is ready to take measurements.
Action/Status
The Action/Status category contains two types of functions. Action functions cause the instrument to
initiate or terminate test and measurement operations such as arming the triggering system or generating
a stimulus. Action functions differ from Configuration functions in that they do not change instrument
settings; instead, they order the instrument to carry out an action based on its current configuration
settings.
Status functions return the current status of the instrument or of pending operations. Specific routines in
this category and the actual operations they perform are at the discretion of the instrument driver
developer, and are usually created as required by other functions.
Data
Data functions include calls to transfer data to or from the instrument. Examples of Data function
operations include reading a measured value or waveform from a measurement instrument, and
downloading waveforms or digital patterns to a source instrument. Specific routines in this category
depend on the instrument.
Utility
Utility functions perform a variety of operations auxiliary to the most-used instrument driver calls. These
functions include the majority of the template instrument driver calls (described below) such as reset,
self-test, revision, and error query, and may include other custom routines such as calibration or
storing/recalling instrument configurations.
Close
All instrument drivers include a Close function. The Close function terminates the software connection to
the instrument and deallocates system resources used during that instrument session.
Back to Top
2. Getting Started with NI-SCOPE
The NI-SCOPE instrument driver is the application programming interface (API) that allows interactive
programming of your National Instruments high-speed digitizer in LabVIEW, LabWindows/CVI, Microsoft
Visual C++, and Microsoft Visual Basic. All information in this section, along with more in-depth details on
programming with the NI-SCOPE instrument driver, can be found in the NI High-Speed Digitizers Help.
NI-SCOPE provides the same functionality and example programs in all supported programming
environments. For simplicity, the included LabVIEW examples are referred to in this document, but
equivalent examples using other development environments also ship with NI-SCOPE. The following
steps illustrate the structure of a typical signal acquisition program using a National Instruments
high-speed digitizer and NI-SCOPE:
Step 1: Initialize
For any instrument driver application, you must call the Initialize function first in order to open a
session and establish communication with your high-speed digitizer.
niScope Initialize.vi
C Function: niScope_Init
Initialize sets the NI-SCOPE driver and the digitizer to a known state. Because this function may
take a significant amount of time compared to all other NI-SCOPE function calls, do not include it in a
loop when repeatedly acquiring data. Ideally, your program should call Initialize only one time. Other
NI-SCOPE functions, except Close, may be called when needed to change configuration settings or
acquire more data.
Step 2: Configure
After you have opened a session with the high-speed digitizer, you need to configure the hardware
settings. The most common configuration settings for a high-speed digitizer are vertical, horizontal, and
trigger settings.
Vertical
The Configure Vertical function call adjusts the vertical range of each or both digitizer channels.
This is the full-scale (peak-to-peak) voltage range at the digitizer input. For example, a vertical range of
10V means the digitizer can measure a signal between –5V to +5V. For optimum resolution, choose the
smallest vertical range that still contains the entire range of the input signal.
niScope Configure Vertical.vi
C Function: niScope_ConfigureVertical
The Configure Vertical function also configures the vertical offset, channel coupling (AC or
DC), and probe attenuation settings.
Horizontal
The Configure Horizontal function call adjusts the sample rate and the min record length of all
channels on your digitizer. Sample rate is the frequency at which digitized samples are stored specified
in samples per second. The min record length is the minimum number of samples to store for each
record in the acquisition. The total acquisition time is equal to the min record length divided by
the sample rate (samples/sec).
niScope Configure Horizontal Timing.vi
C Function: niScope_ConfigureHorizontalTiming
The Configure Horizontal function call also configures the reference position parameter, which
determines the number of pretrigger versus post trigger samples acquired.
Trigger
There are several kinds of triggering available for use with NI-SCOPE and NI high-speed digitizers. The
niScope Configure Trigger Edge.vi is a polymorphic VI with the different options for triggering.
niScope Configure Trigger.vi
C Function: niScope_ConfigureTrigger
For complete descriptions of the different triggering options, refer to the Triggering section of the
High-Speed Digitizer Development library or chapter 3 of the NI High-Speed Digitizers Help
Auto Setup
The Auto Setup function can be used to automatically set the vertical range, sample rate, minimum
record length, and the trigger level.
niScope Auto Setup.vi
C Function: niScope_AutoSetup
The Auto Setup function senses the input signal and automatically configures the instrument settings.
This function is best used in simple applications and as a tool for less experienced programmers to get
started.
Step 3: Acquire Data
After the digitizer is configured for your application, you may start the acquisition. Acquiring data can be
separated into two parts, initiating the acquisition and fetching the data from the digitizer’s onboard
memory.
Initiate
The Initiate Acquisition function arms the board to begin taking data after the trigger has
occurred. If immediate triggering has been configured, then the board starts acquiring data immediately.
niScope Initiate.vi
C Function: niScope_InitiateAcquisition
Fetch
The Fetch function transfers the acquired data from the digitizer memory to your
program. The Fetch function is also a polymorphic VI, which allows you to select between single
waveform or multiple waveforms. You can also select the format of data in which you want to fetch the
waveform.
niScope Fetch Cluster.vi
C Function: niScope_Fetch
In LabVIEW, NI-SCOPE has different functions for single waveform and multiple waveform
acquisitions. Fetch is used with single waveform acquisitions and Multi Fetch is used with multiple
waveform acquisitions. For more information on the Fetch functions refer to the NI High-Speed
Digitizers Help.
Read
The Read function combines the initiate acquisition, wait for complete, and retrieve data calls into one
function. It does not return until the entire operation is complete.
niScope Read Cluster.vi
C Function: niScope_Read
Although Fetch functions require an addition function to initiate an acquisition, they offer several
advantages to the Read function, including freeing the host computer processor for other operations
while you wait for the digitizer to acquire data. For more information on the Read and Fetch functions
refer to the NI High-Speed Digitizers Help.
Step 4: Error Checking
The Error Handler function translates error codes into explanations to help you debug your application.
niScope Error Message.vi
C Function: niScope_error_message
For additional information on error handling, consult your NI-SCOPE Function Reference Help file or your
NI-SCOPE VI Reference Help, which is installed with the NI-SCOPE instrument driver.
Step 5: Close
The last step is to call the Close function, which closes the session and de allocates any resources the
session used.
niScope Close.vi
C Function: niScope_Close
It is important to close the session because it releases any temporary buffers created to transfer data
between the digitizer and the host computer memory.
Putting it all Together
The following diagram illustrates a flow diagram of a typical acquisition. This section includes a brief
overview of basic programming with NI-SCOPE and National Instruments high-speed digitizers. For a
more complete overview of all the functions and available features refer to the NI High-Speed Digitizers
Help and your digitizer’s hardware user manual.
NI-SCOPE Basic Signal Acquisition Flowchart