An embedded system is a combination of computer circuitry and software that is built into a product for purposes such as control, monitoring and communication without human intervention. Embedded systems are at the core of every modern electronic product, ranging from toys to medical equipment to aircraft control systems1.
In contrast to general-purpose computers, embedded systems perform a narrow range of pre-defined tasks. Thus, they usually do not have any of the typical computer peripheral devices such as a keyboard, display monitor, serial connections, mass storage (e.g., hard disk drives), etc. or any kind of user interface software, unless required by the product in which they are used in. This can make it possible to greatly reduce the complexity, size and cost and increase the robustness of embedded systems as compared with general-purpose systems.
Embedded systems are typically far cheaper than general-purpose personal computers. In addition to the lack of peripheral devices, this is due to very large volumes of output for many embedded chips and systems. It can also be the result of the use of relatively slow processors and small memories that are often used, which are made practical by the narrow range of functions performed. The lack of peripheral devices and narrow range of functions also contribute to a lower power consumption.
An embedded system contains at least one microprocessor, also referred to as a processor, which performs the logic operations for the system. Many embedded systems use one or more microcontrollers, which are a type of microprocessor that emphasizes self-sufficiency and cost-effectiveness, instead of a general-purpose microprocessor. A typical microcontroller contains sufficient memory and interfaces for simple applications, whereas a general-purpose microprocessors require additional chips to provide these functions, including at least one ROM (read-only memory) chip to store the software. These chips, along with other circuit elements (e.g., resistors, diodes and capacitors), are typically mounted on a single printed circuit board.
The vast majority of microprocessors that are produced are used in embedded systems instead of as CPUs (central processing units) to control computers. For example, of the more than six billion microprocessors produced in 2002, more than 98 percent were used in embedded systems. Embedded processors range from simple four-bit chips, such as those used in cheap toys, to powerful, custom-designed 128-bit chips.
In contrast to desktop and notebook computers, for which just a very few processor architectures are used (mostly the x86 and to a much smaller extent the PowerPC), numerous, competing architectures are utilized for processors for embedded applications. ARM and x86 (Intel-compatible) have been the most frequently deployed, at least in the U.S., each at roughly 30 percent. PowerPC and MIPS have much smaller shares. ARM (originally the Acorn RISC Machine) is a 32-bit RISC (reduced instruction set computer) processor architecture that features low power consumption and is thus particularly popular for use in mobile electronics products.
Some embedded systems include an operating system, which is referred to as an embedded operating system. It can be a very small systems that was developed specifically for use with embedded systems, or it can be a stripped down version of system that is commonly used on general-purpose computers.
Many embedded systems are so specialized, however, that all of the logic can be implemented as a single assembly language program that is stored in memory without the need for an operating system. An assembly language is a human-readable notation for the machine language, which is a language that is directly understandable by a processor.
Embedded systems are often required to provide real time response. Real time refers to sensing and responding to external events nearly simultaneously (e.g., within milliseconds or microseconds) with their occurrence. It is employed mostly in systems in which the results of the computation are used to influence a process while it is occurring.
The preferred operating systems for most embedded systems are free software (i.e., software that is available at no cost and can be used for any desired purpose). This is largely the result of the pressure to minimize cost for embedded systems in order to minimize the prices of the final products; it is also the result of the ability to freely modify such operating systems according to the requirements of the specific application. However, commercial operating systems, such as QNX, are used for applications for which priority is placed on high reliability real time operation rather than cost.
Linux remains the most widely used operating system for embedded systems developed in the U.S. and Europe. Among the possible disadvantages of Linux for embedded use, at least as claimed by developers of proprietary (i.e., commercial) embedded systems, are its insufficient real time capabilities, large size, lack of good development tools and possible licensing issues. However, these supposed disadvantages may not be that important in many cases, and they are diminishing, because of improvements in Linux's real time capabilities with newer kernels (i.e., the core of the operating system), small size (for example, some versions such as muLinux can fit on a single floppy disk with room to spare), development of improved development tools and simplicity of licensing compared to proprietary systems).
Proponents of TRON, which was developed in Japan, claim that it is used in the largest number of embedded products on a worldwide basis. This is the result of Japan's dominance in the production of low and medium end microcontrollers and its strong role in producing products which use such chips, particularly consumer electrical and electronic products. It is also a result of the nature of TRON itself. An acronym for the real time operating nucleus), TRON was designed from the ground up as a real time operating system suitable for use in embedded applications. Moreover, it is highly flexible, it is available at no cost and it has widespread industry support in Japan (in fact, it is the de facto standard operating system for embedded systems in that country) and other east Asian countries.
Other free operating systems that are commonly used in embedded systems include eCos, FreeDOS, FreeRTOS, NetBSD and OpenBSD. Other commercial embedded operating systems include LynxOS RTOS, OS-9, OSE, VxWorks, Windows CE and Windows XP Embedded.
Created July 7, 2006.