CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Adapting PC Technology to Internet Appliances



TechOnline

With the widespread availability of cost-effective 32-bit microprocessors, applications formerly found only on the desktop—including applications for accessing the Internet—can now be integrated into a variety of embedded systems and appliance-class devices. Examples of such devices include digital set top boxes (STBs), handheld Web tablets, multimedia smart phones, and intranet devices for industry-specific application areas, such as point of sale (POS). These Internet-enabled devices are referred to as Internet appliances.

Developers are already creating a variety of reference designs for Internet appliances: everything from roll-your-own OS kernels running on low-cost embedded processors to desktop operating systems running on modified PC platforms, complete with MPEG hardware for live video. While these reference platforms point to where Internet appliances are ultimately going, most Internet connections (modems, cable companies, etc.) available to the consumer still lack the infrastructure and network bandwidth to deliver services such as video-on-demand. Nonetheless, Internet appliances can already access several viable information services, including the Web.

Internet services and technologies are evolving with breakneck speed, with new must haves—such as CCS, XML, 3D plug-ins, and VoIP—appearing almost every month. As a result, products that can't track these technologies have little chance to gain a foothold in the market. To keep up with consumer demand, both the hardware and software used in an Internet appliance must be scalable, ideally through customer-applied upgrades. Furthermore, these components must be relatively cheap so that the appliance can be regularly replaced or exchanged when it inevitably becomes obsolete.

Software consisting of a framework with the small QNX Neutrino microkernel managing a group of cooperating processes is ideal. As the following illustration shows, the structure looks more like a team than a hierarchy, as several players of equal rank interact with each other through the coordinating kernel.



This technology by architecture is designed to be both extensible and configurable allowing devices that use it to morph to changing market requirements.

Within this turbulent marketplace, product developers are tasked with creating products that cost little, yet deliver high functionality. They also face intense time-to-market pressures. For example, consumer appliance manufacturers normally put significant effort into designing products for manufacturability to minimize production costs. Given the inherently short life cycle of any appliance that provides Internet access, this cost-reduction phase must be as brief as possible. Furthermore, the design must be able to accommodate quick updates without requiring a complete—and expensive—retooling.

Fortunately, manufacturers don't have to create the technology needed to track these rapidly changing functionality requirements. Instead, they can borrow that technology from a readily available source: the desktop PC.


Why Use PC-Based Technology?
With various desktop PC technologies available for integration into Internet appliances, other advantages of the PC architecture come into play. For example, the desktop PC provides what is arguably the richest selection of operating systems, development tools, and peripherals for the embedded systems developer. Also, because a PC-derived appliance is architecturally equivalent to the desktop PC, the PC and PC software become natural prototyping tools for the Internet-appliance developer.

And there's another, even more important benefit: With Internet and multimedia technologies initially coming to life on PCs, having the Internet appliance architecturally track the desktop makes it easier to migrate those hardware and software technologies to the Internet appliance.

Thanks to the rapid growth of the embedded x86 industry, a number of integrated x86 processors are now available, some specifically targeted at Internet appliances. In fact, several models integrate most or all of the semiconductor content required for an Internet appliance—including MPEG2 video decoder, 2D graphics accelerator, NTSC/PAL controller, and Dolby AC3 audio—onto a single chip.

Available processors include the AMD ÉlanSC400 and ÉlanSC520, the Intel 386 EX, the National Semiconductor Geode SC1400, and the STMicroelectronics STPC Consumer. Since these processors are specifically targeted at the embedded marketplace, their manufacturers are sometimes more willing to make them available for the long term—much longer than for motherboard chip sets targeted at the desktop PC. Better yet, these processors integrate a variety of peripherals into the CPU, reducing the component count, and cost, of system designs.

Besides these processors, companion chips—some with long-term availability guarantees—also exist. For example, National Semiconductor provides the CS9210 graphics companion, which enables the Geode information-appliance-on-a-chip to work with DSTN color flat panel LCDs. And RadiSys provides the R380EX chip that, when combined with the Intel 386 EX, provides a significant portion of the functionality required to build an embedded PC.


Off-the-Shelf Hardware Resources
To give manufacturers a jump start, x86 chipmakers also offer evaluation boards and reference designs, including some targeted at the low-cost requirements of appliance manufacturers. These include the AMD ÉlanSC400 and ÉlanSC520 development platforms, the Intel EXPLR2 evaluation board, the STPC Consumer rapid prototyping platform, and the National Semiconductor Geode WebPAD, a reference design for wireless handheld Web tablets. Manufacturers can use these platforms "as is" for product evaluation, rapid prototyping, system development, and, in some cases, limited production runs. They can also readily cut and paste from these designs to create their own custom hardware.


What About Software?
So far we've discussed the applicability of PC hardware, but the lion's share of an Internet appliance's functionality is expressed through software. Fortunately, this software already exists on the desktop PC. Unfortunately, the operating systems used to host that software share a prodigious appetite for RAM, disk storage, and CPU cycles. Equipping an Internet appliance with sufficient resources to run a desktop OS and GUI, including an Internet browser, would push the hardware complement of the Internet appliance into the range of the desktop PC, missing the consumer price point entirely.

Since the Internet appliance is a purpose-specific device, not a general-purpose PC, it need not carry the software overhead of a desktop OS designed to support generic desktop applications—such as a resource-intensive windowing system, binary compatibility with legacy applications, and so on. Instead, the appliance can run a much smaller, purpose-built OS, specifically designed to host Internet appliance applications. With the greater efficiency and reduced memory/disk requirements of this OS, hardware costs can be trimmed significantly. For STB applications, the resulting low unit cost can be buried within the monthly cable-service charge, removing the need for a consumer purchase in the first place.

Figure 2:  At its lowest level, a kernel that contains a few fundamental objects and the highly tuned routines that manipulate them works best. The QNX Neutrino microkernel pictured above is built from this foundation.

Besides the basic multitasking capabilities needed to run a mix of processes, a QNX-based Internet appliance provides a Web browser, media plug-ins, an email program, possibly a news reader, and other applications expected by the consumer, such as a channel guide. To host these applications, and to make the environment easy to use, the appliance needs a GUI. Given the precise timing requirements for managing the flow of video and audio data in some applications, it also requires real-time services of the OS.


Appliance-Ready Software
Conveniently, real-time OSs for embedded applications provide processor- and memory-efficient runtime environments suited to this application. Nonetheless, the same need to minimize the engineering effort that encourages manufacturers to borrow from PC hardware standards should also move them in the direction of software API standards. If the API supported by the chosen OS matches the API used by the applications to be hosted on the appliance, the manufacturer can save significant development effort simply by porting those applications from the PC and other environments. Better still, a standard API enables the manufacturer to closely track the rapidly evolving technologies demanded by consumers.

For an example of the efficacy of a standards-based OS environment, consider the port of the Spyglass Device Mosaic Web browser to the QNX real-time OS. Just one day was required for the X Windows version of Spyglass technology's proof-of-concept port to QNX. Clearly, X is too resource intensive for use in an Internet appliance, so the Spyglass port was adapted to QNX's Photon microGUI windowing system, allowing it to require roughly 1M of ROM or flash. Developing a Web browser from scratch for a proprietary OS and a minimal graphics library would have required significantly more development effort—an effort that could arguably never end in an attempt to track evolving Web-browsing technologies.


Embedded GUI
To host the variety of graphical applications expected by the consumer, an Internet appliance requires a windowing system. A conventional graphics library, while small enough, lacks the functionality required to host full-scale applications such as Web browsers. On the other hand, a conventional desktop windowing system, which provides all the functionality needed, consumes too many resources to be cost-effective!

There is a way out of this dilemma. We've already seen how microkernel technology can help create a rich, yet memory-lean, OS environment. It can do the same for a windowing environment. For example, QNX's Photon microGUI—which is built around a graphical microkernel—is a scalable windowing system that can deliver the functionality of a high-end GUI in very little memory: less than 1M when configured for an Internet appliance.


A 4+8 Configuration
To complete the functionality needed to build an Internet appliance, the QNX/Photon runtime environment supports a small-footprint TCP/IP stack (about 70K) and a filesystem for flash memory or rotating disk. Both services are added in the form of processes managed by the OS microkernel. The total memory requirements for this environment—including OS, windowing system, networking, filesystem, Web browser, email, Internet news reader, and a personal information manager (scheduling, address list, etc.)—add up to less than 4M of flash memory and 8M of RAM.

By borrowing hardware technology from the desktop PC world, and combining it with a suitable embedded software environment, the developer can readily derive an Internet appliance design. And, as customer requirements increase, the developer can incorporate additional technologies from the ever-evolving PC world with a minimum of redesign. This mix of attributes allows a PC-derived Internet appliance to achieve the hallmarks of a commercially successful consumer-electronics product: short time to market, low engineering cost, minimal risk, and an ability to support the latest features and technologies expected by consumers.

1

Rate this article: Low High
Current rating
  • .
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS



COURSE
WEBINAR
WEBINAR
TECH PAPER




 :