Expansion I/O for LabVIEW RIO Systems: An In-Depth Comparison


NI reconfigurable I/O (RIO) products are used in system-level applications that require high-speed, closed-loop control with high-precision measurement on a flexible development platform. Sometimes, these applications require more channels or a more distributed architecture than what the core system can provide. Expansion I/O systems make a 1-to-N system topology possible with one controller and “N” field-programmable gate arrays (FPGAs) and I/O nodes for flexible, high-channel-count systems that can perform both distributed control and localized processing. 


It All Starts With the Bus

The needs for high-channel-count systems are diverse, and the expansion I/O platform from National Instruments offers a complete range of products to meet the varied needs of these systems. The main difference between the expansion I/O options is in the bus that separates the I/O from the processor, as seen in Figure 1.  Each bus offers unique benefits and advantages that make it ideal for a subset of expansion I/O applications.

Figure 1. Expansion I/O decouples the processor from the I/O. Each expansion option implements a different communication bus between the two and suits different application areas.

Expansion Comparison for CompactRIO Chassis

Each expansion I/O option is based on a unique communication bus (MXI-Express, Ethernet, EtherCAT, or wireless) that dictates certain features of the system. Table 1 summarizes some key differences between each expansion I/O option.




Use the high-performance expansion chassis for high-channel-count applications.


Add FPGA-enabled I/O to anywhere on your Ethernet network.


Use deterministic I/O over EtherCAT for distributed applications.

I/O Count8 or 14 C Series slots4 or 8 C Series slots8 C Series slots 
FPGAVirtex-5 (LX50/LX85/LX110)Artix-7/Spartan 2M/Spartan 6 (LX45)Spartan 2M 
Network TopologyDaisy Chain/StarSame as EthernetDaisy Chain/Star 
Distance7 m between chassis100 m before hub100 m before repeater 
Multidevice SynchronizationFPGA-based DIOFPGA-based DIOImplicit in bus 
Communication Jitter<10 μsNo Spec<1 μs 
Bus Throughput250 MB/s25 MB/s12.5 MB/s 
API SupportFPGA Host InterfaceFPGA Host Interface/RSIRSI 
HostWindows/Real-TimeWindows/Real-TimeReal-Time Only 

Table 1. A Comparison of Key Expansion I/O Features


MXI-Express RIO

The MXI-Express RIO expansion chassis offer a high-performance solution for applications that require high throughput, high channel counts, mixed signal conditioned I/O, and custom signal processing and control algorithms. Each MXI-Express RIO chassis supports either 8 or 14 C Series I/O modules and delivers a best-in-class Virtex-5 LX50, LX85, or LX110 FPGA. The chassis are daisy chainable up to six chassis deep, and communicate to a host controller over a cabled PCI Express x1 link for 20X greater throughput than Ethernet or EtherCAT RIO expansion chassis. This MXI-Express link makes it possible to connect to a variety of host systems, including multicore NI CompactRIO and dual- and quad-core PC, PXI, and industrial controllers running NI LabVIEW Real-Time or Windows. MXI-Express RIO systems are ideal for hardware-in-the-loop (HIL) testing, industrial machine condition monitoring, sound and vibration, and complex research applications, such as those found in big physics.

Ethernet RIO

You can use the rugged 4- or 8-slot Ethernet RIO chassis to add distributed, FPGA-enabled I/O to any Ethernet network. With the flexibility of standard CAT-5 cabling, you can connect Ethernet RIO systems to almost any host that supports Ethernet, including NI CompactRIO, real-time PXI controllers, and the NI industrial controller. You can also connect Ethernet RIO expansion systems to Windows-based PCs to create a highly distributed, flexible network of FPGA-enabled, mixed signal conditioned I/O. With the onboard FPGA, you can implement custom signal analysis, control, and safety interlocks that are local to each chassis, creating a truly modular system. Ethernet RIO-based systems are ideal for applications in which ease of use, cost, and flexibility are key concerns. These applications include distributed monitoring for single-point measurements such as temperature and flow.


EtherCAT (Ethernet Control Automation Technology) RIO is an 8-slot slave chassis that implements communication over Ethernet with the deterministic EtherCAT protocol. EtherCAT RIO allows you to add FPGA-enabled I/O to your high-channel-count or distributed I/O system with a defined amount of determinism and synchronization. Using EtherCAT RIO, you can daisy chain multiple slave devices from a single master and synchronize the I/O to a single master clock. EtherCAT RIO is best suited for distributed, single-point control and motion applications that require hard determinism over multiple synchronized chassis. Customers use EtherCAT RIO for structural monitoring of wind turbines, synchronized test rigs, and long-distance control applications.

I/O Count

MXI-Express, Ethernet, and EtherCAT

MXI-Express RIO, Ethernet RIO, and EtherCAT RIO systems can connect to any sensor on any bus through C Series I/O modules. The I/O is directly available to the FPGA, where you can implement inline signal processing, custom timing, specialized triggering, and closed-loop control. Each C Series I/O module contains built-in signal conditioning and screw terminal, BNC, or D-SUB connectors. Currently, there are more than 100 NI and third-party C Series modules for different measurements including thermocouple, voltage, resistance temperature detector (RTD), current, resistance, strain, digital (TTL and other), accelerometers, and microphones. Channel counts on the individual modules range from three to 32 channels to accommodate a wide range of system requirements.


MXI-Express, Ethernet, and EtherCAT

FPGA chip adoption across all industries is driven by the fact that FPGAs combine the best parts of application-specific integrated circuits (ASICs) and processor-based systems. FPGAs provide hardware-timed speed and reliability, but they do not require high volumes to justify the large upfront expense of custom ASIC design.

Reprogrammable silicon also has the same flexibility of software running on a processor-based system, but it is not limited by the number of processing cores available. Unlike processors, FPGAs are truly parallel in nature, so different processing operations do not have to compete for the same resources. Each independent processing task is assigned to a dedicated section of the chip, and can function autonomously without any influence from other logic blocks. As a result, the performance of one part of the application is not affected when you add more processing.


Block RAM 


NI 9149Artix-7--106,40053,2002204,480
NI 9148Spartan-3 20002 million40,96040,96040720
NI 9147Artix-7--106,40053,2002204,480
NI 9146Spartan-6 LX45--54,57654,576582,088
NI 9144Spartan-3 20002 million40,96040,96040720
NI 9159Virtex-5 LX110--69,12069,120644,608

 NI 9157,

NI 9155

Virtex-5 LX85--51,84051,840483,456
NI 9154Virtex-5 LX50--28,80028,800481,728

Table 2. See FPGAs used in Expansion RIO products.


Network Topology

MXI-Express RIO

On MXI-Express RIO, you can use star or daisy-chain configurations. The number of chassis possible is system-dependent, but, in general, you can achieve up to six chassis per daisy chain. Total chassis in a star configuration is dependent on available PCI bus segments in the host controller, with more than 40 chassis possible on a single controller.


The theoretical device limit for an EtherCAT network is 65,535 slaves, and Fast Ethernet (100 Mbit/s) limits are similarly high. The real limiting factor in the maximum number of devices in this system is the number of I/O channels you are deploying, the speed of the controller, and the application you are running.

Note that all chassis in a daisy chain share the same “pipe” or bandwidth back to the host controller when configuring a system and calculating total throughput requirements. Also, loop rate is affected by device count and data on the bus, as each chassis and cable adds latency to the system.



MXI-Express RIO is limited to 7 m distances between chassis on the bus. Both Ethernet RIO and the EtherCAT slave chassis support up to 100 m before needing a hub, switch, or repeater between devices.

Note: To extend the range of an EtherCAT network, you must use an EtherCAT compatible device; a normal Ethernet switch is not compatible with an EtherCAT network. 

Multidevice Synchronization

Timing and synchronization allows for the correlation or coordination of events in time, which is an integral part of many control and measurement applications, especially as they scale to high channel counts.

MXI-Express RIO and Ethernet RIO

MXI-Express RIO and Ethernet RIO chassis do not support native synchronization over the communication bus (MXI-Express and Fast Ethernet, respectively). Clock sharing is not built into the bus architecture and the delay induced by missed packets or collision due to network topology is not accounted for (communication between nodes on the system is asynchronous). However, all modules in a single chassis can be synchronized because they share the chassis backplane, and multiple MXI-Express RIO or Ethernet RIO chassis can be synchronized using a C Series digital I/O module to distribute a reference clock signal among chassis.  


EtherCAT RIO is synchronized to other parts of the system automatically because the EtherCAT bus communication standard defines a master system clock that all devices on the network reference. This makes the EtherCAT bus an ideal choice for systems that require tight synchronization (less than one microsecond) and hard determinism.

Communication Jitter

This specification refers to the jitter introduced by the communication bus only. The main source of jitter in a system is usually associated with the controller rather than the communication bus (especially if it’s a Windows controller). Also, jitter in a system is dependent on the system architecture and the number of chassis the data must negotiate in a daisy chain to reach the host. 

Deterministic communication is important in applications where communication of data between distributed real-time computing nodes is an integral part of the control loop. This means that any jitter induced by the network results in jitter for the control loop. Acceptable control loop jitter depends on the system in question, but a standard range is ±10 percent of the control-loop time. Considering a 1 kHz control loop, this means each iteration could execute in anywhere from 900 to 1,100 μs and the system would still respond appropriately. 

The communication jitter for MXI-Express RIO and EtherCAT RIO is less than 10 microseconds and less than one microsecond, respectively. Ethernet RIO devices do not have a specification for jitter. This is because Fast Ethernet and wireless transmission are not deterministic methods of transferring data.

Bus Throughput

MXI-Express RIO provides the biggest pipe back to the controller with 250 MB/s maximum theoretical bandwidth compared to 25 MB/s for Ethernet RIO, and 12.5 MB/s for EtherCAT. Keep in mind that bus performance depends on more than just the theoretical maximum bandwidth of the bus; consider factors such as latency, implementation, power requirements, and your application in addition to bandwidth. For high-throughput applications, MXI-Express RIO is the best option.  The throughput capabilities of Ethernet RIO and EtherCAT RIO is sufficient for most control and monitoring applications.


An API, or application program interface, is a set of routines used as the building blocks for software applications. There are two methods of programming expansion I/O targets: CompactRIO Scan Mode or the LabVIEW FPGA Host Interface API.

You can use CompactRIO Scan Mode (also called the RIO Scan Interface or RSI) on the EtherCAT and Ethernet chassis. CompactRIO Scan Mode automatically detects your I/O modules and adds them to a LabVIEW project. You can then drag and drop the I/O variables onto your LabVIEW Real-Time and host VI block diagrams and instantly read and write scaled, calibrated I/O data without any FPGA programming or compiling. 

Figure 2. Using CompactRIO Scan Mode

If you want to program the FPGA directly, use the LabVIEW FPGA Module. Once you have written your FPGA VI, it is compiled to a bitstream and deployed to the FPGA. To communicate with the FPGA from your host application, use the LabVIEW FPGA Host Interface API. This allows you to perform functions such as reading and writing to registers, and DMA transfers.

Note that with the EtherCAT chassis, you can use only user-defined I/O variables to talk between the controller’s real-time VI and the expansion chassis’ FPGA VI. (User-defined I/O variables are used to synchronize FPGA data with the NI Scan Engine.) This means that for the expansion chassis’ FPGA VI, you have no FPGA Host Interface, DMA transfer functions, or front panel debugging.

You can only use the LabVIEW FPGA Host Interface API to interface with the MXI-Express RIO. 

There are also some limitations on the types of C Series modules that are compatible with each chassis based on the modules’ ability to support NI Scan Mode. Because MXI-Express RIO supports only LabVIEW FPGA, modules that rely on NI Scan Mode, such as the NI 986x CAN modules, are not compatible with MXI-Express RIO. For a complete list of C Series compatibility, see the NI C Series Compatibility Chart.

Host Controllers

All four expansion options use different buses, so they require different connections on the controller side.

MXI-Express RIO

MXI-Express RIO requires a MXI-Express interface to the host system: options include multicore CompactRIO, PXI, or industrial controllers, as well as PCs running a Windows or real-time OS that have a MXI-Express PCI card interface. You can use a MXI-Express ExpressCard adapter to connect the MXI-Express RIO chassis to controllers that don’t already have a MXI-Express interface, but do have a built-in ExpressCard slot such as the NI PXIe-8115. You can also use the NI PXIe-8364 MXI-Express interface to connect a MXI-Express RIO to your PXI system. You can use a MXI-Express to PCI or PCI Express adapter to connect MXI-Express RIO to a PC.  

Ethernet RIO

Ethernet RIO can plug into any system that has an Ethernet port, and can be used with most standard network topologies. To connect the Ethernet RIO directly to the secondary Ethernet port of a real-time controller, see Connecting an Ethernet RIO Expansion Chassis to the Secondary Ethernet Port on a Real-Time Controller. The 9149 and 9147 Ethernet RIO chassis also include a USB port for easy device configuration. This port is not, however, meant to be used in place of the Ethernet port. 


The EtherCAT RIO chassis is compatible with all real-time controllers with two Ethernet ports, including the CompactRIO, PXI, and industrial controller platforms. Note that for EtherCAT, if a real-time PXI controller does not have two Ethernet ports, you must include an NI PXI-8231/8232 Ethernet interface (the NI 8234 Ethernet interface is not compatible), which is supported only on real-time controllers. You also need the NI-Industrial Communications for EtherCAT driver software, and the second Ethernet port must be in “EtherCAT” mode.