User Programmable FPGAs Power CompactRIO Embedded Systems
- Created: Friday, 31 August 2007
With a laundry list of design constraints, including a combination of real-time requirements, reliability/durability requests, and functionality and performance needs, it’s not surprising that engineers may find successfully building a competitive embedded solution difficult. To simplify the process, National Instruments developed a rugged, new high-performance embedded system, called CompactRIO, that combines the processing power and flexibility of a field-programmable gate array (FPGA) with the reliability of a real-time processor.
CompactRIO is based on new reconfigurable I/O (RIO) technology, the core functionality of which is provided by a user-programmable FPGA that can be accessed and configured using NI LabVIEW graphical development software. Typically, programming an FPGA requires detailed knowledge of the specific hardware setup as well as the use of a low-level description language such as VHDL, which has a steep learning curve. RIO technology reduces the complexities of embedded hardware and low-level languages to provide simple access to FPGAs. For example, you can use RIO in LabVIEW to set up functionality such as hardware I/O PID, filtering, signal processing, or data transfer through direct memory access (DMA) with only a few function blocks. Similar functionality would take pages of VHDL code to implement. The result is a customizable off-the-shelf embedded system that reduces system development time for embedded design engineers.
Embedded System Design Takes on a New Look
The CompactRIO architecture is composed of three main parts: the embedded real-time controller, the reconfigurable embedded chassis containing the FPGA, and hot-swappable I/O modules. The integration of these three parts allows for the rapid creation of embedded applications, as well as system prototypes for control and measurement applications, by removing the need to implement the lowlevel hardware details required in embedded systems. With the direct connection between the I/O modules and the FPGA, you can tightly integrate timing and triggering between I/O modules through the FPGA and gain a high level of system flexibility. The CompactRIO real-time embedded controller features an industrial 400 MHz Freescale MPC5200 processor that reliably and deterministically executes LabVIEW Real-Time applications. Users can choose from thousands of built-in LabVIEW functions to build a multithreaded embedded system for real-time control, analysis, data logging, and communication. Simply develop the real-time application code on a host computer using graphical programming and then download the application to run on the CompactRIO real-time controller that contains an off-the-shelf real-time operating system. To save time, existing C/C++ code can also be integrated within LabVIEW Real-Time applications.