As previously mentioned, with the many designs that are late or never released to market or worse, designs failing after release, something needs to be done to get more high-quality products out sooner. One way to address both of those issues is to prototype the systems better by integrating real world signals and real hardware into the design process sooner so that high-quality designs are iterated on and problems are found (and fixed) earlier.
Looking at the design flow in Figure 2, LabVIEW can already combine algorithm design and logic design using the LabVIEW FPGA Module that targets LabVIEW designs to FPGAs on NI hardware. Let’s now focus on the hardware path to look for efficiencies and ways to shorten the process.
Figure 2. Typical embedded system software and hardware design flow showing separate software and hardware design flows
Today, if you are creating custom hardware for final deployment, it is difficult to have the software and hardware developed in parallel as the software is never tested on representative hardware until the process reaches the system integration step. Additionally, you do not want the software development to be purely theoretical, because waiting until the system integration test to include I/O and test the design with real signals may mean that you discover problems too late to meet design deadlines.
Most designers currently use a solution like an evaluation board to prototype their systems. However, these boards often only include a few analog and digital I/O channels and rarely include vision, motion, or ability to synchronize I/O. Additionally, designers often have to waste time developing custom boards for sensors or specialized I/O, just to complete a proof of concept.
Using flexible COTS prototyping platforms instead can truly streamline this process, as shown in Figure 3, and eliminates much of the work required for hardware verification and board design. Much like PCs today, where anyone can go to an electronics store and plug components such as memory, motherboards, and peripheral together to create a PC, graphical system design strives to achieve the same standardization for prototyping platforms.
Figure 3. Stream-lined development flow with Graphical System Design
For most systems, a prototyping platform must incorporate the same components of the final deployed system. These components are often a real-time processor for executing algorithms deterministically, programmable digital logic for high-speed processing or interfacing the real-time processor to other components, and varied types of I/O and peripherals [Figure 4]. Finally, as with any system, if the off-the-shelf I/O doesn’t serve all of your needs, the platform should also be extensible and customizable when needed.
Figure 4. Typical components of an embedded system.
National Instruments offers several types of prototyping platforms including NI CompactRIO that contain all of the basic building blocks of an embedded system. The controller contains a 32-bit processor running a real-time operating system. The CompactRIO backplane contains an FPGA that can implement high-speed processing and actually configures and provides interfaces to the I/O modules which include options for analog input and output, digital input and output, and counter/timer functionally. Each of the modules includes direct connectivity to sensors and actuators as well as built-in signal conditioning and isolation. A module development kit is also available that allows developers to expand the platform to include custom modules – all plugging into this COTS framework.
Additionally, CompactRIO is industrially packaged (-40 to 70 deg C, 50 G shock) with a small footprint (3.5in x 3.5in x 7.1in) and low power requirements (7 to 10 W typical) making it ideal for not only prototyping but also deployment of in-vehicle, machine control, and on-board predictive maintenance applications.