Skip navigation
2011

Think about the popular slang term app and you probably first think about application programs for smart phones. But the downloadable app concept will pervade the embedded space as well in scenarios such as auto infotainment systems, home media gateways, and embedded gaming products. Open source operating-system platforms such as MeeGo and Android will allow embedded design teams to develop extensible systems based on Intel® Architecture (IA) processors. In turn, the third-party app developers will build rich ecosystems around such platforms moving forward as is already happening with Android.

 

IA platforms are ready hosts for open-source platforms such as Android and MeeGo. Intel for instance has an installation guide for installing the Linux-based Android operating system on IA processors. The guide even includes a video focused on an installation that uses an Intel® Atom™ N450 board.

 

MeeGo, meanwhile, is a Linux-based platform that has resulted from the combination of Intel’s Moblin initiative aimed at developing a Linux-based platform for mobile applications with the similarly-targeted Maemo project that Nokia had pursed. Now the efforts have been unified in MeeGo and The Linux Foundation Is shepherding the initiative.

 

While MeeGo will be used in handsets and netbooks, the platform will also find use in a variety of other embedded applications such as automotive infotainment, media phones, and multimedia gateways. The Linux Foundation released version 1.1 of the software in late 2010, and the first MeeGo-based products will come to market in 2011.

 

In addition to the MeeGo Core Software Platform, the development initiative has released several other tools that will speed the work of design teams. For example, there is a beta release of a full SDK (software development kit) for IA processors available for download. The SDK is based on the Qt Creator development environment and includes an emulator among other tools.

 

The community has also released a reference software platform that specifically targets automotive applications called MeeGo v1.1 for In-Vehicle Infotainment (IVI) systems. The IVI platform targets Atom-based designs and was built to support Automotive Center Console HMI requirements. The platform includes a home display screen and a taskbar. It also includes support for text-to-speech and speech-recognitions applications.

 

There are also a number of software and development-support products and technologies emerging, both from Intel and members of the Intel® Embedded Alliance, that can help embedded design teams develop systems based on platforms such as MeeGo and Android.

 

Wind River Systems,*, for example, offers development support for both Android and MeeGo. The Wind River Platform for Android includes a Linux core, middleware, an application framework, and a user interface. The company also offers the Android Compatibility Test Suite.

 

Wind River offers a similar platform for MeeGO. And the company has developed a Framework for Automated Software Testing (FAST) for both platforms. FAST helps teams both meet tight time-to-market goals and deliver quality software. The FAST suite includes individual test frameworks that are encapsulated within scripts and executed during test runs. The encapsulation or wrapper in Wind River terms allows tests to be executed across multiple product platforms.

 

WR_FAST.jpg

 

Virtualization technology may also come into play in MeeGo- or Android-based designs. For example, some products may require the security afforded by a proprietary operating system while relying on MeeGo or Android for hosting a user interface and applications.

 

Green Hills Software** has applied its experience with its Integrity Secure Virtualization software to develop the Green Hills Platform for Secure Mobile Devices. The offering includes the Integrity secure real-time kernel and the virtualization layer. Design teams can host multiple guest operating systems on top of the virtualization layer.

 

Intel, meanwhile, has provided one other missing piece of the MeeGo puzzle via the latest release of the Intel® Embedded Media and Graphics Driver (EMGD). Many of the target MeeGo applications including IVI require graphics and multimedia support. The new version of EMGD supports designs that use the Intel® System Controller Hub US15W, US15WP, US15WPT, or the Intel® Atom™ Processor E6xx Series processors with integrated graphics controllers.

 

How does the concept of extensible apps and a third-party ecosystem fit into you coming project plans? Are you currently using Linux-based operating systems? Please share you experience or opinions on open-source platforms via comments. Fellow followers of the Intel® Embedded Community would appreciate your insight.

 

Maury Wright

Roving Reporter (Intel Contractor)

Intel® Embedded Alliance

The complexity of modern embedded systems can overwhelm users with the intimate minutia of control. But inside every complex system is a simple concept struggling to get out. Too often those simple concepts are crushed below layers of unnecessary control presented by improperly implemented technology driven solutions.

 

The solution to this morass of pseudo-control is a compelling user experience.

 

People’s speech patterns can tell you how to construct a compelling experience. Phrases like “I feel, “I see”, and “I hear” provide guideposts to building the right user experience. But building a compelling user experience depends not only on the developers’ ability to tease out the essential bits necessary to use an embedded system, but also on the underlying tools provided by the embedded hardware and software.

 

The Intel® Architecture, and the Atom™ family of processors in particular, offers a wide continuum of processing power for embedded systems and their associated User Interface (UI) designs. Much of the recent attention to the User Interface has been focused on PCs and Notebook PCs. The greater processing power and higher integration of Atom-based processors moves the bar for embedded UI and the user experience.  For example, the E6xx processor increases the amount of video and graphics processing done on-chip (including video CODEC) in dedicated hardware which reduces memory requirements and power consumption. Now deeply embedded applications can provide user experiences like those found on a desktop computer but within the limitations of an embedded application.  We’ll examine how the UI can reduce task loading and present visualization Open Source software alternatives.

 

AtomE6xx.jpg

 

Overwhelming visual task loading is a problem of vital importance to military and commercial large body aircraft.  The solution to too much data lies in determining which data is really needed during steady-state operation, and then employing visualization techniques to present the information in a useful and understandable form. Both military and commercial systems reduce the amount of information presented to pilots by using visual techniques combined with automated limit-alarms that only present information when there’s a problem. For example, The Boeing Company’s 777 uses multiple video displays to reduce the “ordinary” information presented to pilots. Information reduction is achieved by employing an ARINC data bus linked to the main and standby navigation systems, Terrain Collision Avoidance System (TCAS), Global Positioning System (GPS), and color weather radar. Such systems replace dozens and perhaps hundreds of panel meters with a small number of video displays.

 

Data visualization has made the transfer from lab to commercial use in a wide array of embedded applications from medical instrumentation and industrial controls to consumer cellular telephones. Open Data eXplorer is an Open Source software package targeted at the Microsoft® Windows™ (1) Operating System (OS). The Graphical User Interface(GUI) has a wide variety of what the software project calls “interactors.” Direct interactors allow users to directly manipulate images in realtime on the screen, such as image rotate or zoom. Indirect interactors include dials, switches, buttons, and sliders, and enable users to control various aspects of the visualization. Interactors are data-driven, auto-ranging and self-limiting. They examine your data and, depending on its type, will determine the minimum and maximum of the data, or create a list for an option menu based on your data. You can even set the label of the interactor based on metadata.

 

DataViz1.jpg

 

While OpenDX focuses functions and controls on relatively static visualization, the Opensource website has a remarkable display of how full motion video can be used to create a stunning user experience – called Gource.  In this example, the large-scale dataset that needs to be presented in an easier-to-understand format comes from software development. But the same principles can be applied to any embedded system that deals with presenting vast quantities of data. Gource is a visualization tool used to analyze event driven data. Although the example system uses data from program development, similar techniques are finding uses in vehicle traffic systems, Internet TCP/IP network traffic analyzers,  and telephone switching systems.

 

Advanced Visualization has also been used by Michael Ogawa at The University of California Davis to understand the interpersonal communications of workers in an organically expanding work team. The sample data set used by Ogawa came from development data for the Eclipse framework. The Eclipse framework is used by Intel, Green Hills Software (2) and Wind River Systems (3) development tools for embedded processors like the Atom™ processor family.

 

Boeing’s flight deck system reduces realtime task loading for pilots. The visualization results of Gource can reduce thousands of pages of data into a full motion video that only takes minutes to watch. We’ve seen how more graphics capabilities can improve the User Experience by reducing complexity and task loading.

 

Likewise, audio cues can be used to reduce information to easily recognizable sounds. The sense of touch can also be added to embedded systems by designing-in a touch screen display.

 

Members of the Intel Atom family are used by board vendors to create a variety of specific applications-focused modules. Some of these board vendors include:

 

Other companies discussed in a recent blog by Maury Wright provide a range of Atom-based boards.

 

Newer members of the Atom family such as the E6xx series of processors add more capability to the basic processor. One of those capabilities is integrated graphics support. The intensive graphics support can be used by other experimental visualization systems like SAGE <img http://www.sagecommons.org/> SAGE is an ambitious project aimed at permitting geographically distributed users to share applications, data, and a tiled video wall. Data objects like realtime, streaming, full motion video are critical to the systems functioning – making a shared virtual lab.

 

SAGE.jpg

 

The SAGE situation room (image from UIC Electronic Visualization Laboratory) provides a glimpse of where user experience is heading.

 

How will your next embedded design use Atom processors integrated graphical support to move towards the ultimate in user experience?

 

_______________________________________________________________________________________________________

1.      Microsoft® Corporation is an Associate member of the Intel Embedded Alliance

2.      Green Hills Software is an Affiliate member of the Intel Embedded Alliance

3.      Wind River Systems an Associate member of the Intel Embedded Alliance

4.      ADI Enigneering is an Associate member of the Intel Embedded Alliance

5.      Advantech is a Premier member of the Intel Embedded Alliance

6.      Axiomtek Co. Ltd. is an Associate member of the Intel Embedded Alliance

7.      Kontron is a Premier member of the Intel Embedded Alliance

8.      Portwell is an Associate member of the Intel Embedded Alliance

 

Henry Davis

Roving Reporter (Intel Contractor)

Intel® Embedded Alliance

The opening of the Intel® Atom™ E6xx processor interface for Input/Output Hub (IOH) functions creates a new option for designers considering adding specialized hardware to their system for any one of a variety of reasons. Selecting which functions to implement in dedicated hardware in a customized E6xx chipset can be an involved task. But there are some simple ways to evaluate whether or not to implement specific functions in a customized chip set. If you do select the customized chip set route, there are easy to use software strategies that provide maximum flexibility and permit field fixes for bugs discovered in fielded, dedicated hardware.

 

Generally the decision to add specialized hardware to a system is made for one of a few reasons:

 

  • Capability
  • Capacity
  • Cost effectiveness, and
  • Security

 

AtomwIOH.jpg

 

Capability: There is a well known proof in Computer Science, often called the Church-Turing Thesis, that tells us that any computable function can be calculated by a Turing machine given infinite memory and time. Thus it is with our modern microprocessors: given enough time and memory we can calculate any function that we want. Practical systems have neither infinite time nor infinite memory. Time and memory limitations lead us to choose processors with a sufficiently compact program and data representation combined with enough processing power to meet our real world performance needs. In one example of adding capability, the E6xx itself added capability to the Atom-based offerings by expanding video capabilities to include full-motion hardware accelerated video CODEC (coder and decoder) functions to its predecessor processors. By offering expanded capabilities, the Atom E6xx expands the range of Intel Architecture solutions for embedded applications.

 

Capacity:  Intel multi-core processors are one way to extend capacity. By adding more cores to the processor chip, Intel adds capacity without requiring any significant change to well-crafted systems software. The potential downside of simply adding more cores to a processor comes from increased power consumption.

 

Cost Effectiveness: High volume end products can sometimes benefit from increased integration, while other products can only meet their design objectives if customized chip sets are employed. In a recent blog (url) I wrote about how ADI Engineering (1) reduced the area and complexity footprint of an E6xx-based design by eliminating the need to employ a general purpose hub  component, replacing it with a purpose-designed chip.

 

Security: Customized parts can make reverse engineering a design more difficult, which improves systems security and increases the difficulty for “knock off designs” to quickly displace the original design. While no security system is truly “crack proof,” replacing a standard off-the-shelf component with a custom design may increase the difficulty of simply copying the design. In the case of ADI’s hub replacement chip, an FPGA implements the necessary Atom processor I/O functions. Many FPGAs have provisions that permit the device to be programmed to disable reading the device connection details. Reverse engineering techniques exist that allow a highly skilled scientist to decode the FPGA design, but at a significant cost.

Making systems tradeoffs can quickly become a quagmire of competing requirements including comparative power consumption, board size, resource utilization, and systems security – all with interaction with the systems software. Making tradeoffs between hardware and software can be achieved using a few simplifying guidelines:

 

  • Plan on using no more than 80% of total processor performance without careful engineering evaluation – usage of additional processor performance as a requirement increases development time and cost.
  • Reserve at least the last 10% of the processor performance for unexpected engineering surprises.
  • If possible, engineer the system using the mid-range performance processor in a family. For designs using the E6xx processor, that means choosing a 1.0 or 1.3 GHz processor. Selecting a mid-range performance processor provides the option of using a faster processor should it prove necessary during the initial system implementation, or when additional features are required.
  • Select a lightweight performance footprint Real Time Operating System (RTOS) to conserve processing power for the application. OSes in general can be deceptively heavy users of not only processor performance, but other systems resources such as memory. In a purely engineering-driven choice, the lowest resource demanding OS would be chosen, but other factors such as familiarity and time-to-market are often just as important at the technical requirements for the application.

 

Making the hardware/software tradeoff: A classic example of hardware/software tradeoffs can be found in Apple’s original Floppy Disk drive. Originally based on the Suggart Associates 5.25” floppy disk A400 drive, Steve Wozniak recognized that part of the 40-chip drive controller could be replaced by a bit of software and some out-of-the-box hardware thinking to reduce the 40 chips to just 8, saving a lot of money.

 

Today’s embedded systems software-for-hardware tradeoffs are seldom as relatively simple and easy as the Apple software replacement for parts of a floppy disk controller. The E6xx already has many of the hardware accelerators built-in for common functions: video, audio, display controllers and various timers. These higher level functions serve a number of important markets such as Medical, Surveillance Systems, Digital Signage, Automotive Entertainmen, Communications, Streaming Media Player, Deeply Embedded Media Player, and low cost communications products such as wireless-based embedded applications.

 

There’s opportunity for including other performance-demanding functions, or eliminating high cost hub-based Input/Output control. ADI Engineering has pioneered using Intel’s open standard interface to the IOH for cost reductions in the hub-replacement function.  Intel’s choice to repartition the Atom architecture so that the memory controller is on the CPU, but other I/O functions are housed in a second chip, gives engineers more options. In a past blog, I wrote about implementing a PID controller in the Atom processor. That application had relatively modest performance requirements. Let’s consider a control system that must operate substantially faster than any Atom processor can compute the control parameters. If the control algorithm uses a small number of history states to calculate new parameters, it’s easy to see that a full hardware implementation might be done using the PCIexpress interface to set control parameters but with all coefficients and arithmetic contained in the custom chip. By containing the specialized memory locations and arithmetic circuits on a single chip, we minimize power requirements and bus traffic between the CPU and the chip during operation. Power is minimized because we avoid the unnecessary movement of data on and off chip. Each transmission off a chip requires driving a signal line, which involves charging the line to a specific voltage. Each charge-discharge cycle of an external bus consumes large amounts of power. By eliminating the need to go off-chip, we save both power and improve performance.

 

The challenge for making tradeoffs occurs in the vast middle ground between a full software implementation, and a dedicated bit of circuitry to perform the entire function. To make these tradeoffs it’s best to use both analytical modeling such as using a spreadsheet to estimate resource requirements, and software performance analysis tools.

 

GHSMultiBlogOptimization.jpg

 

Green Hills Software (2) includes a Performance Profiler as part of their Multi software development suite for the Atom processor. Combining this tool with simulation capability permits engineers to judge the real performance advantage of one design versus another. You can start with a fully software implemented algorithm and gradually replace software modules with hardware implementations until you reach the required systems performance. The ability to save and use test data minimizes the effort required to test alternative designs.

 

Wind River Systems (3) also provides a Performance Profiler as part of their Workbench product.

The key to using standard off-the-shelf development tools is to implement the proposed hardware function first in software. Use the performance analysis tools of your favorite development platform to establish a benchmark for processor utilization. Next, use systems simulation tools such as Eclipse-based tools to include hardware models in the systems simulation. This allows an additional benchmark to be determined for a part-software-part-hardware implementation. Depending on the external chip used to implement the hardware accelerator, you may be able to use the software implementation as a launching pad to implement the hardware functions – many FPGAs use a C or C-like language for designing chip functions.

 

WindRiverProbe.jpg

 

Field fixes: Updating or fixing hardware bugs can become a nightmare for engineers. But by using less than 80% of the Atom processor performance, engineers can buy time and space for field upgrades. Besides having enough processor performance left for fixes, part of the solution is to develop the external hardware with separable modules.

 

For example, a full-motion video CODEC can be engineered with only access to the input and output streams. Smart designers will include the ability to use subsets of the full external hardware to reconfigure operations to fix bugs. One way to accomplish this is to create the external functional blocks so that a variable is set in the external hardware that changes based on where in the system the functional block is initiated. A function that calculates a discrete cosine transform could be developed with a flag that is initially set to indicate that the function is initiated by the Atom processor. This variable is then reset to indicate that the function is called by the internal hardware. Software control of the external hardware simply starts the function at an alternate entry point that will result in control being returned to the processor when the function is complete. Using this approach means that an error in a specific function may be bypassed through the technique of controlling the external hardware by the Atom processor at a finer level of control.

 

The repartitioning of the Atom processor implementation provides more alternatives for engineers.

 

What hardware/software tradeoffs do you have?

_______________________________________________________________________________________________________

 

  1. ADI Engineering is an Associate member of the Intel Embedded Alliance
  2. Green Hills Software is an Affiliate member of the Intel Embedded Alliance
  3. Wind River Systems is an Associate member of the Intel Embedded Alliance

 

 

Henry Davis

Roving Reporter (Intel Contractor)

Intel® Embedded Alliance