Username/Email:  Password: 
TwitterFacebookFlickrRSS

Motorola ColdFire 5307

Taking advantage of µClinux for size and flexibility--low-cost, powerful internet appliances with embedded Linux.

In a world of ubiquitous embedded computing devices, from automobile engines to cell phones, one thing stands out: they usually operate in isolation. Previously, the technology to network them together was either too expensive or nonexistent. More and more, however, these types of objects are being connected to networks, even the Internet. They are actively communicating with one another and the world at large, forming a truly connected world.

This trend has pushed both hardware and software technology in a direction that allows building low-cost, embedded platforms that are networked. These ``thin servers'' are perfect for embedding in intelligent devices, devices that really are information-aware appliances. They perform not only their own specific control functions but also can interact over a network to allow a whole new set of distributed features.

Our problem has been finding an easier way to produce a truly general-purpose appliance, yet retain simplicity of design, production and programming. In our case we were seeking to develop a unit that had the functionality and robustness of a $10,000 network-routing device, with the ease of production and affordability of an appliance costing a mere few hundred dollars. Until now, building a complex, multifunctional device would quickly become prohibitively expensive or simply too large and take too long.

Conversely, a purpose-built appliance often would be serving too specific an application to be able to be reused. Either way, embedded applications are extremely cost-sensitive. Even a few extra dollars on a build price can translate to too much of a cost burden for a product under commercial realities, particularly in the consumer mass-market. And this situation will never get easier.

However, design technologies are allowing cheaper individual components, higher integration of functions, advanced programmable computing devices from a handful of chips, and devices built for a few tens of dollars with multipurpose functionality.

The PCs of today are not ready to be shrunk down to network appliances yet. Build costs for even a low-end PC are over twice the cost of building special-purpose internet appliances.

Yet, connectivity to the outside world is a vital aspect of networked appliances. Some type of network interface will be required and that may be narrowband, broadband or something else entirely. Some common interfaces today are analog (V.90), ISDN, xDSL, cable modem, wireless (802.11 and Bluetooth) and 10/100/1000Base-T.

Another important issue with any sort of programmable device is its configuration interface; that is, how the embedded device can be set up and configured by a user. Many embedded systems have no user-configurable interface, others may require--or at least support--extensive configuration options. This problem is often made much simpler by the fact that the device is networked. The simplest option typically is to use a small web server inside the embedded network appliance. This has many advantages, the chief one being that web browsers are ubiquitous and well understood by almost everyone. There are, of course, other options ranging from a classic command-line configuration method to more advanced network management protocols, such as SNMP.

The overriding factor that affects the total cost of any embedded system manufactured in volume is the cost of actually building the hardware. The upfront engineering costs are usually amortized over the lifetime of the product. But a real problem is the time-to-market--that time from initial product conception to the shipping of final product in volume. A clear trend with modern, complex, networked appliances is that the bulk of development time is spent on software engineering, creating the software system at the heart of the embedded network appliance.

A mix of features and constraints make embedded network appliances unique. There is no easy or simple answer as to what the best trade-offs for performance, cost and functionality will be. Each product that incorporates an embedded network system will differ. Figure 1 illustrates some of the many aspects we had to take into account to build a low-cost internet appliance.

Figure 1. The Internet Appliance Puzzle

µClinux

We were able to solve many of the challenges mentioned above through clever hardware design, but we were left with one big problem: what operating system is powerful enough to make the appliance a truly general-purpose unit with a long production lifetime through versatility and upgradability? While many operating systems may meet that requirement, can they reside within 1MB of Flash?

The answer was with a variant of Linux called µClinux, or Microcontroller Linux. It is a flavor of Linux directly derived from the exceptional Linux kernel work of Linus Torvalds, Alan Cox and a team of thousands of developers spread across the Internet. µClinux extends Linux to the very smallest of microcontrollers that have no MMU (memory management unit) hardware.

Suddenly you have an operating system that will give you all the power of Linux with TCP/IP networking in 512KB of RAM. Most Linux applications now can be ported easily to a tiny embedded appliance. The work of literally thousands of outstanding programmers becomes available to you, reducing development time to a fraction of the more traditional development cycles. Anyone familiar with Linux and the Open Source movement will realize there has already been a solution written for almost any problem, and the source code is there for the taking. Not only does it make general debugging easier, but it also means that the kernel and utilities can be tailored to the exact requirements of the system.

Simply put, the advantages of µClinux for us were: free (no license or per-unit cost); freely available source code (no vendor lock-in); free development environment and extensive set of compilers, linkers, debuggers and other toolchains; free and a large base of software applications; free, fast and forthcoming bug fixes; real-time extensions available; many target microprocessors options (no dependence on a chip vendor to do a port); and large range of peripheral device support.

The latter two mean that a hardware design engineer has a much larger range of choices in attempting to build a minimal design. And Linux is powerful enough to get everything out of the hardware platform.

In theory it appears as though Linux makes an excellent choice for a large set of low-cost embedded network appliances, but the proof is in the final outcome. Now it's time to introduce an in-depth example of a low-cost embedded network appliance, a home/office residential internet gateway.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Buy coldfire

Daniel's picture

Hi Greg, or whoever read this message...

I am insterested on buy a card similar to the one you show us here... Any ideas about where/how can I get it?
Thanks,
Daniel.