Graphical approach to system design

01 October 2007

Electronic devices and systems, whether for consumer or industrial markets, are increasing in complexity, driven by the desire for more functionality and greater ease of use

Embedded development module

Higher processor performance means multicore devices and yet more complexity. A higher-level approach is needed in order to deal with this problem throughout the development cycle without increasing time-to-market.

For the past two decades, the concept of virtual instrumentation for test and measurement has been pioneered. The original vision was to provide engineers and scientists with the tools to develop complex test and measurement systems. However, with the evolution of computing technologies, the vision has developed into simplifying the development of embedded systems through graphical system design.

Almost every piece of electronic equipment has some intelligent design embedded in it, whether a washing machine programmed to wash at 30o, or a mobile phone receiving email. The complexity of electronic systems is growing and, in order to stay competitive, companies need to keep up with this technology. The traditional tools for embedded system development require domain expertise to ensure effective use. The goal is to make it as easy to create an embedded system today as it was to create a computer-based test and measurement system 20 years ago.

Graphical system design is a new approach to developing embedded systems. The key feature of this concept is a high-level programming language that is integrated with off-the-shelf, modular hardware. NI LabVIEW gathers different technologies in one package, encompassing tools for mechanical engineering, electronic engineering and control design, to offer the user a complete software package for embedded system development. These tools can be used through all phases of thedevelopment process, from designing the system and prototyping the design to deployment on the final target.

Standing out
Abstracting the complexity of programming embedded systems is another benefit of a software tool flow based on a graphical approach. The advantage is that many graphical-based tools include native functionality to handle complex programming and timing. The embedded developer can focus on the critical pieces of code, such as the intellectual property (IP) of the application itself, to differentiate it from other embedded designs, rather than the low-level details.

The arrival of multicore processors also plays an important role. When developing software that takes full advantage of the computing power of multicore processors, a development tool that provides inherent parallelism is needed. Because of their sequential nature, text-based programming languages, such as C and C++, require functions to be called to programmatically spawn and manage threads. One of the fundamental limitations of text-based programming is that it is difficult to visualise how various sections of code run in parallel because of the sequential syntax.

While it may be relatively simple to manage using traditional tools when there are only two cores, 80-core devices are already being talked about. The traditional approach will not cope with this architecture. In contrast, graphical programming environments can represent parallel processes because the data flow paradigm used for programming is inherently parallel. It is considerably easier to visualise the parallel execution of code in a graphical environment, in which several parallel execution paths of graphical code reside side by side.

Integration into one There are opportunities for multithreading in programs and the execution system handles multithreading implementation and communications. For example, independent loops running without any dependencies automatically execute in separate threads. When executed on a multicore system, the multiple threads run on the multiple processor cores without requirement for additional programming.

During the design phase, the many different tools required include control design, dynamic system simulation, digital filter design and advanced mathematics. The advantage of a graphical system design tool is that all these components can be integrated into a single familiar environment. For prototyping the design, there are multiple I/O options available, including commercial off-the-shelf (COTS) platforms.

PXI (PCI extensions for instrumentation) is an open, PC-based modular platform with more than 1,200 products from more than 70 suppliers. PXI is suited to high- performance test applications and prototyping through the design cycle. CompactRIO is a low-cost reconfigurable control and acquisition system designed for applications that require high performance and reliability. The system combines an open embedded architecture with small size, extreme ruggedness and hot-swappable industrial I/O modules. It is powered by reconfigurable I/O (RIO) FPGA technology.

Prototyping using COTS hardware delays going to a custom design until later in the product cycle, giving the software developer more licence to make changes to the design, even those that directly affect hardware requirements. All these tools are fully integrated allowing tight iterations between the design and prototype phase for fine- tuning the design before deployment. When the system is deployed to the final target hardware, for low-volume applications, it makes sense to use the COTS hardware platform for prototyping. This avoids designing, building and debugging a custom PCB. If a custom, higher-volume, low-cost deployment is required, the IP that has been generated in the graphical development environment can be deployed onto a custom microprocessor. Developers can use an embedded development module to automatically translate the IP that has been created in the graphical programming environment into target specific embedded C code.

Key advantages
The domain expert for the application area who designs the software and prototypes on COTS hardware can hand over to an embedded design expert to complete the integration to the target specific hardware. Once this stage is complete, the domain expert can return to the graphical code to fine-tune the functionality of the software, automatically regenerating the C code as changes are made.

The key benefit of graphical system design is the tight integration between software and hardware across the entire development process. The same design can be targeted to the system prototype and then finally to the deployment platform in either a COTS or custom form factor. This enables the developer to move between design and prototype with greater ease, ensuring a more cost effective development process and shorter time-to-market. Graphical system design is the future of embedded system development. With integrated, easy-to-use software, and modular, customisable hardware, the embedded design process has become as accessible as virtual instrumentation.

TRISTAN JONES is technical marketing engineer, National Instruments UK & Ireland and SARAH BRADY is applications engineer, National Instruments UK and Ireland.


Contact Details and Archive...

Related Articles...

Most Viewed Articles...

Print this page | E-mail this page