Only a few decades ago, the vast majority of embedded software was developed and deployed using assembly language and simple text editors for the development environment. Today, most deployed embedded systems rely on ‘C’ and ‘C-like’ programming languages. But a convergence of improved embedded processor performance, enhanced mathematical libraries, and dataflow programming bring another way of programming to a wider array of systems. Intel’s multi-core embedded CPUs and multi-threaded libraries work with National Instruments products to open new alternatives for product development and deployment.
National Instruments’ (1) LabView has long been the solution of choice for researchers and scientists developing one-of-a-kind laboratory instruments. Small high-tech companies have used LabView to develop in-house production equipment to do everything from controlling electroplating systems for nanotechnology, to parametric control of small scale cyclotrons. Large research organizations have developed one-of-a-kind command and control systems for most every kind of scientific research.
Gone are the days of unconstrained, yet purposeful, scientific discovery within commercial firms. Major scientific breakthroughs often require research involving large amounts of processing power under tremendous time constraints. For example, current tokamak fusion research requires sophisticated control algorithms, executed in a very short amount of time. These control algorithms are used to magnetically contain high temperature plasma. For the research scientist and product developer alike, multi-threaded libraries are a key foundational element for solving this challenge. Such libraries provide optimized, high-performance functions that can be leveraged by a wide audience of both scientists and engineers.
An Alternative Paradigm
Unlike ‘C’ and assembly language, LabView uses a dataflow representation of an application. LabView applications rely on directed graphs that show dataflow between operations. This contrasts with imperative programming languages (like ‘C’) which focus on how operations occur. As multi-core processors increasingly become the norm across embedded systems, software engineers face difficult issues of synchronizing distributed programs. Dataflow programming is one solution to the “state problem” that is often encountered in parallel programming. The state problem is analogous to a three way light switch in which a process that controls one switch must know the state of the other switch in order to determine the correct action to take. This simple situation can grow quickly in complexity for imperative programming languages.
LabView uses a graphical programming system that has programmers connecting “wires” between operators. .
Here two numbers are added and the quantity 50 is subtracted from the intermediate result to achieve a final results.
More complex programs can be created by connecting additional inputs, operations, and results together. One of the complications of dataflow programming is illustrated in the following diagram. Because there is no sequencing defined either explicitly or implicitly, it is impossible to determine whether Result 1 or Result 2 will be computed first. This creates a software “hazard” that is important if the order of calculation is important.
Sequencing can be achieved through other mechanisms in LabView, such as the sequence structure for cases where the completion order does matter.
LabView programs can include pre-defined user interface elements that include analog meters, digital bar graphs, knobs, sliders, and a whole host of physical instrument-inspired interfaces.
Multi-core Improves Performance
Dataflow languages like LabView are most often used for mathematically intensive applications. Modern math-intensive applications are increasingly adopting multi-core processors to improve response time while simplifying software development. To take advantage of multi-core processors without burdening the development team unduly, the development either has to adopt a multi-threading Operating System or chose to use a dataflow programming system like LabView. Likely, both will be embraced for a variety of systems considerations.
Since LabView is a stateless programming environment, except for sequencing structures, operations may be distributed throughout the multi-core and multi-processor system with little regard for performance. Of course, explicit sequencing does define producer-consumer relationships with sequencing that does affect performance, but the sequencing definition also defines preferable processor-element locations for the code to both minimize data transfers and maximize performance.
Software development using LabView defines both the dataflow/operations to be performed, and the input and output interfaces for the completed system. LabView permits developers to simulate their system operation within a comprehensive simulation and debug environment. Simulation often requires connecting signal sources to the LabView dataflow program in order to inject data into the system. But these ancillary elements are left behind when the application is deployed.
Real-time application deployment is managed by the LabView Project Builder. Deployment packages can be locked against non-authorized access to protect your intellectual property, targeted to a specific environment, designated to run atv start-up, and more.
Optimized Math Library
Intel® Math Kernel Library (Intel® MKL) is a critical part of the LabView environment configured for Intel processors. LabView includes a fully integrated version 10 Intel MKL. It is a highly optimized, fully threaded, computing math library of essential math routines used in many engineering applications. Core math functions include sparse solvers, fast Fourier transforms, vector math, Dense Linear Algebra, Basic Linear Algebra Subprograms, Sparse Linear Algebra, and many more.
Having an integrated Intel MKL as part of LabView makes all of the functions included in the package available as operators for LabView programs – saving time and effort.
Applications and Bundles
LabView operates under several operating systems, including the Linux kernel. Deploying an embedded application may be completed using any one fo the several OSes supported by LabView. LabView and its associated technical bundles (including Intel MKL version 10) are expanding the possible uses to higher volume products. NI TestStand for Test Execution Sequencing, NI VeriStand for Real-Time Test, NI Vision Builder for Automated Inspection, and NI Switch Executive for Switch Management are four of the applications available from National Instruments. The range of applications problems addressed by LabView is expanded through the availability of Bundles. National Instruments’ LabView bundles transform the way engineers design, prototype, and deploy systems for test, control, and embedded design applications. Product bundles combine open graphical programming software and optional modular hardware to help create cutting-edge applications faster. Bundles are available for:
RF and Wireless Test
- NI GPS Simulator
- RF Record and Playback System
- NI WiMAX Test System
- NI MIMO Test System
- All Wireless Test Systems
Wireless Sensor Network (WSN)
- Basic WSN System (Americas)
- Basic WSN System (Europe/Asia)
- NI Real-Time Embedded Wireless Data Logger System
- NI Real-Time Embedded Wireless Data Logger System (Europe/Asia)
Sound and Vibration
- NI USB Machine Condition Monitoring (MCM) System
- NI USB Noise, Vibration, and Harshness (NVH) System
- Acoustic and Vibration Datalogger
And bundles to support a variety of semiconductor industry-specific test/measurement and data acquisition. These bundles are joined by National Instruments applications:
- Audio Test,
- Automotive Test,
- Condition Monitoring,
- Data Logging,
- Data Streaming,
- Dynamic Structural Test,
- Embedded Control,
- Green Engineering,
- Hardware in the Loop (HIL),
- Machine Design,
- Noise, Vibration, and Harshness,
- Optimize Automation,
- Photovoltaic Testing,
- Rapid Control Prototyping,
- RF Test,
- Solar Power http://www.ni.com/solarcontrol/
- Plant Control,
- Solar Verification and Validation,
- Sound and Vibration,
- Static and Fatigue Structural Test, http://www.ni.com/structural_health_monitoring/
- Structual Health Monitoring, http://www.ni.com/testcell/
- Test Cell Measurement and Control, http://www.ni.com/ndt/
- Ultrasonic and Nondestructive Test (NDT), and
- Video Test.
What can you do with all of these bundles and applications?
- Nartional Instruments is an Associate member of the Intel Embedded Alliance