Table Of Contents

Programming the Control I/O

Version:
    Last Modified: May 14, 2018

    The control I/O is part of the LabVIEW RIO architecture, which combines a real-time processor, a user programmable FPGA, and flexible user I/O.

    Figure 1. LabVIEW RIO Architecture

    The NI ELVIS III provides three levels of programming that give you access to the control I/O:

    • LabVIEW RT Express VIs
    • LabVIEW RT Low Level VIs
    • LabVIEW FPGA I/O nodes

    Refer to LabVIEW RIO Architecture for an introduction to the LabVIEW Real-Time system and LabVIEW FPGA.

    LabVIEW RT Express VIs

    The LabVIEW ELVIS III Toolkit includes configuration-based Express VIs to enable the rapid development of user programs.

    These Express VIs simplify the creation of applications that fulfill common I/O operations, such as waveform acquisition and generation, PWM output, encoder input, SPI communication, and so on, by eliminating the need for users to program with the FPGA. When you create a LabVIEW RT application using the Express VIs, a predefined FPGA personality is automatically downloaded to the FPGA. This FPGA personality implements all of the low level functionality required to support the execution of the Express VIs on the RT processor. The Express VIs support the following functionality:

    Function Number of Channels
    Analog Input (1 Sample) 16
    Analog Input (n Samples) 16
    Analog Output (1 Sample) 4
    Analog Output (n Samples) 4
    Digital Input (1 Sample) 40
    Digital Input (n Samples) 40
    Digital Output (1 Sample) 40
    Digital Output (n Samples) 40
    PWM Output 40
    Encoder Input 20
    SPI 2
    I2C 2
    UART 2
    Interrupt 8
    Button 1
    LED 4

    One sample and n samples are two I/O modes of signal acquisition and generation. For Express VIs that support both 1 Sample and n Samples, not all functions can operate simultaneously, due to resource conflicts. Find more information about the two I/O modes in the LabVIEW ELVIS III Toolkit Help.

    You cannot use an Express VI or Low Level VI in n samples mode to open channels from both banks. You can use two VIs in parallel and configure one to open channels from Bank A and another to open channels from Bank B.

    The following figure shows an example of using the Button Express VI (highlighted) to acquire values from the user programmable button[1] and display the values using a Boolean indicator. You can find this example in the LabVIEW Example Finder.

    Find detailed information about these Express VIs in the LabVIEW ELVIS III Toolkit Help.

    LabVIEW RT Low Level VIs

    The LabVIEW ELVIS III Toolkit also includes Low Level VIs that provide fully programmatic access to the predefined FPGA personality. This gives you more flexibility in configuring each function, while retaining the ease of use of LabVIEW RT programming. The Low Level VIs provide very similar functionality as the Express VIs, but at a lower level of abstraction.

    The following figure shows an example of using the Low Level VIs (highlighted) to open a reference to the user button, read the button value, and display the value by using a Boolean indicator.

    Find detailed information about each of these Low Level VIs in the LabVIEW ELVIS III Toolkit Help.

    LabVIEW FPGA I/O Nodes

    The LabVIEW FPGA I/O nodes provide the lowest level of access to the control I/O and offers the highest degree of flexibility and performance.

    Instead of using a predefined FPGA personality with fixed functionality, you can define your own functions by using the LabVIEW FPGA I/O nodes. LabVIEW FPGA allows for not only direct control of the control I/O, but also direct implementation of algorithms and data transfer in the FPGA. After defining the FPGA personality, you can then create a LabVIEW RT application that runs on the RT processor for high-level operations or further processing.

    The following figures show a LabVIEW FPGA application which reads values from the user button. The FPGA Main Default VI uses the FPGA I/O Node (highlighted) to write the values of the user button to the DI.BTN control. The RT Main VI uses the Read/Write Control method (highlighted) to read the value from the DI.BTN control and display it in the Button Value indicator.

    Refer to Getting Started With LabVIEW FPGA for a series of videos that help you get started with building a LabVIEW FPGA application. Find detailed information about each of these FPGA I/O nodes in the LabVIEW Help.

    Figure 2. LabVIEW FPGA Project
    Figure 3. FPGA Main Default VI
    Figure 4. RT Main VI
    • 1 The user programmable button, which is located on the left-hand side of the NI ELVIS III workstation, also aids in connecting the NI ELVIS III to your host computer. Refer to User Programmable Button for more details about the dual purposes of the button.

    Recently Viewed Topics