There are strategies, tools and devices to get the best from these OSs without buying a higher-end MPU, says Jacko Wilbrink.
But not all embedded systems require whizz-bang features and a blazing fast microprocessor (MPU). Vertical markets such as home and commercial applications, point-of-sale terminals, in-vehicle entertainment systems, consumer electronics, medical applications and industrial may not need the most sophisticated user interfaces, 3D processing, or full HD playback.
These applications should take advantage of the latest technological developments, but can often do so in a more conservative, scaled-back way.
Make no mistake, the need for the very best user interface (UI) is driving up performance requirements. Selecting something as powerful as an ARM Cortex-A9 MPCore with a 3D graphic coprocessor will pretty much do the trick—but at the expense of increasing system cost by three to five times.
Still, if you want (or need) to make your system future proof so that it still runs the latest, full-featured versions of Linux and Android in several years, you are better off selecting a 1GHz MPU and taking the cost penalty now. But before jumping on that bandwagon—a few alternative solutions might be worth considering for low- and mid-level systems.
Linux makes inroads
In the last few years, broad market adoption of embedded MPUs and increasing quality of Linux ports for low- and mid-level devices have accelerated OS standardization across a full range of processors, from a low-cost ARM9-based device up to one that uses a 1GHz+ Cortex-A9 core. There are more options available for Linux today than ever before.
Further, Linux offers a great opportunity to share development costs within a highly competent developer community. Entry level ARM9-based embedded MPUs run Linux with perfectly acceptable performance levels as long as the UI complexity is scaled to match that performance. For example, a 400MHz ARM9-based MPU with an efficient bus architecture (to transfer large amounts of data to a WVGA display), in parallel with application processing, is a perfect solution for many low- and mid-level systems running a fairly sophisticated and well-designed interface, including some basic 3D effects on top of the OS.
What about Android?
Android has become one of the key OSs on mobile devices and its use is now spreading into many vertical markets beyond handhelds. For embedded developers, it offers several benefits over Linux, including a complete applications development architecture; integrated Wi-Fi; backing from leading semiconductor vendors; and the ability to have a distributed development team. In addition, your project can tap into the wider Android developer community, and some OEMs choose the OS because of the option to download after-market applications whether from the Google Apps Marketplace or their own storefronts.
Another factor in this emerging non-mobile space is the option to use the integrated features of a standard Android build, but keep configurability and extensions hidden from the end user of the device. This allows the manufacturer to take full advantage of a standard well-proven hardware/software platform without the need to upgrade whenever a new version of Android is released, or having to worry about users downloading applications via the Android Market.
Android is nevertheless still a challenging environment to maintain in the non-mobile space, especially when it comes to areas such as secure connectivity or handling confidential information. Further, in order for Android to maintain its success moving forward, it would help if there were less frequent software upgrades in the future, thereby reducing the need for too many expensive qualification runs.
Can Android run on an ARM9 MPU?
Android’s broader evolution will demand more and more processing power, driving up system costs. It is hard to deny the inevitable. But this rationale may not apply to many of the low- and mid-level Android use cases outside mobile handsets. What is more important for these types of products are the ease-of-customization for a target market; the ease-of-use including the appropriate UI experience; and the efficient use of available resources at competitive price levels.
Many vertical markets do not need the latest 3D graphics and state-of-the-art UIs—especially where such features might compound system complexity and lift display costs. To avoid the need for ever-increasing processing power, and keep your application running on low- to mid-level devices, an alternative approach to developing the Android UI is required. This might include:
- providing clarity and ease-of-use in the UI, while still looking fresh and up-to-date, reflecting the experience users have come to expect from their higher-end devices;
- requiring fewer software updates and delivering those that are needed with proven quality; and
- still benefiting from the standardization and involvement of the Android development community.
Many systems other than smartphones would like to benefit from the standardization of Android’s offerings, but over a completely different UI. One option here is the Inflexion UI GUI tool from Mentor Graphics. It also enables applications to use the Android Dalvik framework, but allows device manufacturers to quickly and easily create their own UIs and get the most out of the hardware, even if the hardware does not have an expensive GPU. Due to the flexibility of its drag-and-drop tool and a runtime engine that is happy on both low-cost and high-end devices, Inflexion allows users to take complete advantage of the Android framework.
Also, Mentor Embedded professional services has been successfully optimizing low- and mid-level Android devices. They bring Inflexion UI into the fold for UI customizations as needed.
The illustration on this page shows a user interface developed with Inflexion UI. This multi-application display is both intuitive and gesture-based through a touch screen interface. Here, real-time feedback on power consumption is provided so the user can monitor and effectively control the consumption of electricity. This touch screen offers functional displays for controlling a washer/dryer, refrigerator, television and audio/video systems.
More intuitive UIs everywhere
Call it the ‘smart device revolution’—or perhaps the ‘Apple effect’. Either way, the embedded industry is experiencing some profound changes when it comes to the UI experience. Once the sole province of smartphones, elements such as 2D and 3D graphics, animation and attractive color palettes are now part of the industrial applications domain, home and commercial building automation, point-of-sale terminals, in-house displays and medical equipment.
In addition, more pervasive Internet connectivity—boosted by greater availability of 3G and 4G cellular networks—is changing the way people interface and interact with all types of equipment. This is forcing hardware designers to increase processor performance to several hundred MIPS, peripheral data rates to tens of Mbps and on- and off-chip bandwidth to Gbps. The memory size scales with the software to several megabytes in cases of an RTOS-based implementation or tens of megabytes for Linux or Android.
So what’s a good software developer to do?
You need to really think about your application and your target market. It is easy to get drawn by the hype into thinking that you need that 1GHz MPU to support the latest Android release. As long as you pay attention to your design requirements and the ease-of-use of your end device, it is perfectly acceptable to use a 400MHz MPU, which has ample horsepower to achieve a phenomenal user experience. The Atmel SAM9M10 or SAM9G45 immediately come to mind.
A 400MHz MPU with a host of high-performance peripherals, optimized to reduce system costs, and available with the latest Linux and Android distributions, could save you a lot of money and increase your margin.
Jacko Wilbrink is Product Marketing director at Atmel with responsibility for ARM, microprocessor and microcontroller lines.