An embedded system is a special-purpose computer system built into a larger device.
Two major areas of differences are cost and power consumption. Since many embedded systems are produced in thetens of thousands to millions of units range, reducing cost is a major concern. Embedded systems often use a (relatively) slow processor and small memory size to minimize costs.
Characteristics
The slowness is not just clock speed. The whole architecture of the computer is often intentionally
simplified to lower costs.
For example, embedded systems often use peripherals controlled by synchronous serial interfaces, which are ten to hundreds of times slower than comparable peripherals used in PCs.
Programs on an embedded system often must run with real-time constraints with limited hardware resources:
often there is no disk drive, operating system, keyboard or screen. A flash drive may replace rotating media,and a small keypad and LCD screen may be used instead of a PC s keyboard and screen.
An embedded system is typically required to meet very different requirements than a general-purpose personal computer.
Platform
There are many different CPU architectures used in embedded designs.
This in contrast to the desktop computer market, which as of this writing (2003) is limited to just a few competingarchitectures, chiefly Intel s x86, and the Apple/Motorola/IBM PowerPC, used in the Apple Macintosh.
One common configuration for embedded systems is the system on a chip, an application-specific integrated circuit, for which the CPU was purchased as intellectual property to add to the IC s desin.
Tools
Like a typical computer programmer, embedded system designers use compilers, assemblers and debuggers to develop an embedded system.
Those software tools can come from several sources:
Software companies that specialize in the embedded market Ported from the GNU software development tools. (cross-compiler:
http://www.kegel.com/linux/embed/ )
Sometimes, development tools for a personal computer can be used if the embedded processor is a close relative to a common PC processor.
Embedded system designers also use a few software tools rarely used by typical computer programmers.
Operating system
They often have no operating system, or a specialized embedded operating system or the programmer is assigned to port one of th
ese to the new system.
History
The first recognizably modern embedded system was the Apollo Guidance Computer, developed by Charles Stark Draper and the MIT Instrumentation Laboratory. Each flight to the moon had two.
They ran the inertial guidance systems of both the command module and LEM.At the project s inception, the apollo guidance computer was considered the riskiest item in the apollo project. The first mass-produced embedded system was the guidancecomputer for the Minuteman missile. It also used integrated circuits, and was the first volume user of them. Without thisprogram, integrated circuits might never have reached a usable price-point.The crucial design features of the Minuteman computer were that its guidance algorithm could be reprogrammed later in the program, to make the missile more accurate, and the computer could also test the missile,saving cable and connector weight.
Design of embedded systems
The electronics usually uses either a microprocessor or a microcontroller. Some large or old systems use general-purpose mainframe computers or minicomputers.
Start-up
All embedded systems have start-up code. Usually it disables interrupts, sets up the electronics, tests the computer(RAM, CPU and software), and then starts the application code. Many embedded systems recover from short-term power failures by skipping the self-tests if the software can prove they were done recently. Restart times under a tenth of a second are common.
Many designers have found a software-controlled light useful to indicate errors. One common way to handle it is to have theelectronics turn it off (which looks broken) at reset. The software turns it on at the first opportunity to prove the light works. After that, the code blinks it during normal operation, and maybe in patterns for errors.
This reassuresmanyuserandtechnicians.
Examples of embedded systems
automatic teller machines
cellular telephones and telephone switches
computer network equipment, including routers and firewalls
computer printers
disk drives
engine controllers and antilock brake controllers for automobiles
home automation products, like thermostats, sprinklers, and security monitoring systems
handheld calculators
household appliances, including microwave ovens, washing machines, television set
External links
http://www.kegel.com/linux/embed/