FACTOID # 13: New York has America's lowest percentage of residents who are veterans.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Embedded system
A router, an example of an embedded system. Labelled parts include a microprocessor (4), RAM (6), and flash memory (7).
A router, an example of an embedded system. Labelled parts include a microprocessor (4), RAM (6), and flash memory (7).

An embedded system is a special-purpose computer system designed to perform a dedicated function.[1] Unlike a general-purpose computer, such as a personal computer, an embedded system performs one or a few pre-defined tasks, usually with very specific requirements, and often includes task-specific hardware and mechanical parts not usually found in a general-purpose computer.[1] Since the system is dedicated to specific tasks, design engineers can optimize it, reducing the size and cost of the product. Embedded systems are often mass-produced, benefiting from economies of scale. Image File history File links Circle-contradict. ... Image File history File linksMetadata Download high resolution version (1860x1438, 1150 KB) Summary This image shows the parts found inside a Netgear DG632 ADSL Modem/router. ... Image File history File linksMetadata Download high resolution version (1860x1438, 1150 KB) Summary This image shows the parts found inside a Netgear DG632 ADSL Modem/router. ... Cisco 1800 Router A router is a device that finds the proper place for megabyte to fly between random watsasfnblksjglawbsj, and forwards data packets to the next device along this path. ... A microprocessor is a programmable digital electronic component that incorporates the functions of a central processing unit (CPU) on a single semiconducting integrated circuit (IC). ... Look up RAM, Ram, ram in Wiktionary, the free dictionary. ... A USB flash drive. ... The NASA Columbia Supercomputer. ... The increase in output from Q to Q2 causes a decrease in the average cost of each unit from C to C1. ...


Physically, embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers, or the systems controlling nuclear power plants. In terms of complexity embedded systems run from simple, with a single microcontroller chip, to very complex with multiple units, peripherals and networks mounted inside a large chassis or enclosure. A digital audio player (DAP) is a device that stores, organizes and plays digital music files. ... “Traffic Signal” redirects here. ... A nuclear power station. ... It has been suggested that this article or section be merged with embedded microprocessor. ...


Mobile phones or handheld computers share some elements with embedded systems, such as the operating systems and microprocessors which power them, but are not truly embedded systems themselves because they tend to be more general purpose, allowing different applications to be loaded and peripherals to be connected. Handheld devices (also known as handhelds) are pocket-sized computing devices that are rapidly gaining popularity as the access to information in every walk of life becomes more and more mission critical. ...

Contents

Examples of embedded systems

Audio can mean: Sounding that can be heard. ... A digital audio player (DAP) is a device that stores, organizes and plays digital music files. ... In the field of telecommunications, a central office houses equipment that is commonly known as simply a switch, which is a piece of equipment that connects phone calls. ... This article does not cite any references or sources. ... This article or section does not adequately cite its references or sources. ... Look up aircraft in Wiktionary, the free dictionary. ... It has been suggested that Guided missile be merged into this article or section. ... Cellular redirects here. ... In the field of telecommunications, a central office houses equipment that is commonly known as simply a switch, which is a piece of equipment that connects phone calls. ... A motor controller is a device or group of devices that serves to govern in some predetermined manner the performance of an electric motor. ... A brushless DC motor is an electric motor that operates like a DC motor, but with the roles of the rotor and stator reversed. ... Induction Motor (IM) is one kind of AC motor where power is supplied to the rotating device by induction. ... Electric motors of various sizes. ... In automotive electronics, an electronic control unit (ECU) is an embedded microcomputer that controls one or more of the electrical subsystems in a vehicle. ... An anti-lock braking system (commonly known as ABS, from the German name Antiblockiersystem given to it by its inventors at Bosch) is a system on motor vehicles which prevents the wheels from locking while braking. ... Light control computerized system Home automation (also called domotics) is a field within building automation, specializing in the specific automation requirements of private homes and in the application of automation techniques for the comfort and security of its residents. ... Bi-metallic thermostat for buildings A thermostat is a device for regulating the temperature of a system so that the systems temperature is maintained near a desired setpoint temperature. ... Note: in the broadest sense, air conditioning can refer to any form of heating, ventilation, and air-conditioning. ... Sprinkler A sprinkler is a device used for the distribution of water from plumbing pipes, by spraying it into the air. ... A calculator is a device for performing calculations. ... Handheld devices (also known as handhelds) are pocket-sized computing devices that are rapidly gaining popularity as the access to information in every walk of life becomes more and more mission critical. ... The word appliance has several different areas of meaning, all usually referring to a device with a narrow function: One class of objects includes items that are custom-fitted to an individual for the purpose of correction of a physical or dental problem, such as prosthetic, orthotic appliances and dental... It has been suggested that this article be split into articles entitled Microwave oven and Microwave heating. ... Front-loading washing machine. ... The inside of a DVD player A DVD player is a device not only playing discs produced under the DVD Video standard but also playing discs under the standard of DVD Audio. ... DVR with built-in DVD recorder. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... User with PDA Personal digital assistants (PDAs) are handheld computers that were originally designed as personal organizers, but became much more versatile over the years. ... The Nintendo GameCube is an example of a popular video game console. ... It has been suggested that this article or section be merged into Computer hardware. ... Cisco 1800 Router A router is a device that finds the proper place for megabyte to fly between random watsasfnblksjglawbsj, and forwards data packets to the next device along this path. ... This does not cite any references or sources. ... An electronic musical instrument is a musical instrument that produces its sounds using electronics. ... A digital synthesizer is a synthesizer that uses digital signal processing (DSP) techniques to make musical sounds. ... A digital piano is a modern electronic musical instrument designed to serve primarily as an alternative to a traditional piano, both in the way it feels to play and in the sound produced. ... Foxtel IQ, a digital video recorder and a satellite cable set-top box. ... A video server is a computer (also called a host) dedicated to delivering video online. ...

History

In the earliest years of computers in the 1940s, computers were sometimes dedicated to a single task, but were too large to be considered "embedded". Over time however, the concept of programmable controllers developed from a mix of computer technology, solid state devices, and traditional electromechanical sequences. PLC & input/output arrangements A Programmable Logic Controller, PLC, or Programmable Controller is a digital computer used for automation of industrial processes, such as control of machinery on factory assembly lines. ... In engineering, electromechanics combines electromagnetism and mechanics. ...

The Apollo Guidance Computer, the first recognizably modern embedded system.
Image courtesy of Computer History Museum.

The first recognizably modern embedded system was the Apollo Guidance Computer, developed by Charles Stark Draper at the MIT Instrumentation Laboratory. At the project's inception, the Apollo guidance computer was considered the riskiest item in the Apollo project. The use of the then new monolithic integrated circuits, to reduce the size and weight, increased this risk. he Apollo Guidance Computer (AGc) source: The Computer History Museum ( fair use see site) This work is copyrighted. ... he Apollo Guidance Computer (AGc) source: The Computer History Museum ( fair use see site) This work is copyrighted. ... The Apollo Guidance Computer (AGC) was the first recognizably modern embedded system, used in real-time by astronaut pilots to collect and provide flight information, and to automatically control all of the navigational functions of the Apollo spacecraft. ... Charles Stark Draper (October 2, 1901 – July 25, 1987) is often referred to as the father of inertial navigation. ...


The first mass-produced embedded system was the Autonetics D-17 guidance computer for the Minuteman missile, released in 1961. It was built from transistor logic and had a hard disk for main memory. When the Minuteman II went into production in 1966, the D-17 was replaced with a new computer that was the first high-volume use of integrated circuits. This program alone reduced prices on quad nand gate ICs from $1000/each to $3/each, permitting their use in commercial products. The LGM-30 Minuteman is a United States nuclear missile, a land-based intercontinental ballistic missile (ICBM). ... Assorted discrete transistors A transistor is a semiconductor device, commonly used as an amplifier or an electrically controlled switch. ... Digital circuits are electric circuits based on a number of discrete voltage levels. ... Typical hard drives of the mid-1990s. ... NAND Logic gate The Sheffer stroke, written | or ↑, denotes a logical operation that is equivalent to the negation of the conjunction operation, expressed in ordinary language as not both. It is also called the alternative denial, since it says in effect that at least one of its operands is false. ...


Since these early applications in the 1960s, embedded systems have come down in price. There has also been an enormous rise in processing power and functionality. For example the first microprocessor was the Intel 4004, which found its way into calculators and other small systems, but required external memory and support chips. A microprocessor is a programmable digital electronic component that incorporates the functions of a central processing unit (CPU) on a single semiconducting integrated circuit (IC). ... A calculator is a device for performing calculations. ...


In 1978 National Engineering Manufacturers Association released the standard for a programmable microcontroller. The definition was an almost any computer-based controller. They included single board computers, numerical controllers, and sequential controllers in order to perform event-based instructions.


By the mid-1980s, many of the previously external system components had been integrated into the same chip as the processor, resulting in integrated circuits called microcontrollers, and widespread use of embedded systems became feasible. It has been suggested that this article or section be merged with embedded microprocessor. ...


As the cost of a microcontroller fell below $1, it became feasible to replace expensive knob-based analog components such as potentiometers and variable capacitors with digital electronics controlled by a small microcontroller with up/down buttons or knobs. By the end of the 80s, embedded systems were the norm rather than the exception for almost all electronics devices, a trend which has continued since. Wikipedia does not yet have an article with this exact name. ... The present popular usage of the term potentiometer (or pot for short) describes an electrical device which has a user-adjustable resistance. ... A variable capacitor is a capacitor whose capacitance may be intentionally and repeatedly changed mechanically or electronically. ...


Characteristics

Soekris net4801, an embedded system targeted at network applications.
Soekris net4801, an embedded system targeted at network applications.

1) Embedded systems are designed to do some specific task, rather than be a general-purpose computer for multiple tasks. Some also have real-time performance constraints that must be met, for reason such as safety and usability; others may have low or no performance requirements, allowing the system hardware to be simplified to reduce costs. Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... Soekris net4801 board Soekris net4801 case Soekris is a small embedded hardware platform, mainly sold for OEM markets. ... Realtime redirects here. ...


2) Embedded systems are not always separate devices. Most often they are physically built-in to the devices they control.


3) The software written for embedded systems is often called firmware, and is stored in read-only memory or Flash memory chips rather than a disk drive. It often runs with limited computer hardware resources: small or no keyboard, screen, and little memory. In computing, firmware is software that is embedded in a hardware device. ... A USB flash drive. ...


User interfaces

Embedded systems range from no user interface at all - dedicated only to one task - to full user interfaces similar to desktop operating systems in devices such as PDAs.


Simple systems

Simple embedded devices use buttons, LEDs, and small character- or digit-only displays, often with a simple menu system. External links LEd Category: TeX ... This article or section does not cite its references or sources. ...


In more complex systems

A full graphical screen, with touch sensing or screen-edge buttons provides flexibility while minimising space used: the meaning of the buttons can change with the screen, and selection involves the natural behavior of pointing at what's desired. Nintendo DS Touch screen A touch screen is an input/output device that allows the user to interact with the computer by touching the display screen. ...


Handheld systems often have a screen with a "joystick button" for a pointing device.


The rise of the World Wide Web has given embedded designers another quite different option: providing a web page interface over a network connection. This avoids the cost of a sophisticated display, yet provides complex input and display capabilities when needed, on another computer. This is successful for remote, permanently installed equipment. In particular, routers take advantage of this ability. WWWs historical logo designed by Robert Cailliau The World Wide Web is a system of interlinked, hypertext documents accessed via the Internet. ...


CPU platform

Embedded processors can be broken into two distinct categories: microprocessors (μP) and microcontrollers (μC). Microcontrollers have built-in peripherals on the chip, reducing size of the system.


There are many different CPU architectures used in embedded designs such as ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8, etc. This in contrast to the desktop computer market, which is currently limited to just a few competing architectures. To a large extent, the design of a CPU, or central processing unit, is the design of its control unit. ... The ARM architecture (previously, the Advanced RISC Machine, and prior to that Acorn RISC Machine) is a 32-bit RISC processor architecture developed by ARM Limited that is widely used in a number of embedded designs. ... A MIPS R4400 microprocessor made by Toshiba. ... The Motorola Coldfire is a 68k architecture microprocessor manufactured for embedded systems development by Motorola (now Freescale Semiconductor). ... The Motorola 680x0/0x0/m68k/68k/68K family of CISC microprocessor CPU chips were 32-bit from the start, and were the primary competition for the Intel x86 family of chips in personal computers of the 1980s and early 1990s. ... PowerPC is a RISC microprocessor architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors as well. ... It has been suggested that x86 assembly language be merged into this article or section. ... PIC microcontrollers in DIP and QFN packages PIC is a family of Harvard architecture microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instruments Microelectronics Division. ... The Intel 8051 is a microcontroller developed by Intel in 1980 for use in embedded products and still (2003) one of the most popular microcontrollers. ... The AVR®s are a family of RISC microcontrollers from Atmel. ... It has been suggested that this article or section be merged with Hitachi H8. ... The SuperHichem (or SH) is brandname of a certain microcontroller and microprocessor architecture. ... The NEC Electronics Corporation V850 is a 32-bit embedded RISC microcontroller originally developed and manufactured by NEC, succeeded by V850 variants named V850E, and V850E2 which run uClinux, and is supported by GNU_Compiler_Collection. ... This page is about the Fujitsu Microprocessor. ... The Renesas M32R is a 32-bit embedded RISC microcontroller originally developed and manufactured by Mitsubishi Electric Corporation, succeeded by a FPGA-implemented MMUed M32R variant named mappi which runs Debian/GNU Linux, and is supported by the GNU Compiler Collection. ... The Zilog Z80 is an 8-bit microprocessor designed and manufactured by Zilog from 1976 onwards. ... The Zilog Z8 is a family of microcontrollers from Zilog with on-chip RAM and (optional) ROM. Note that the Z8 is not related to the Zilog Z80, it uses a totally different architecture and instruction set. ...


PC/104 and PC/104+ are a typical base for small, low-volume embedded and ruggedized system design. These often use DOS, Linux, NetBSD, or an embedded real-time operating system such as MicroC/OS-II, QNX or VxWorks. // PC/104 PC/104 (or PC104) is an embedded computer standard controlled by the PC/104 Consortium, that defines both a form factor and computer bus. ... Instructions on how to use the directory command. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system. ... NetBSD is a freely redistributable, open source version of the Unix-like BSD computer operating system. ... A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ... MicroC/OS-II (commonly termed µC/OS-II or uC/OS-II), is a low-cost priority-based pre-emptive real time multitasking operating system kernel for microprocessors, written mainly in the C programming language. ... QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ... This article needs additional references or sources for verification. ...


A common configuration for very-high-volume embedded systems is the system on a chip (SoC), an application-specific integrated circuit (ASIC), for which the CPU core was purchased and added as part of the chip design. A related scheme is to use a field-programmable gate array (FPGA), and program it with all the logic, including the CPU. System-on-a-chip (SoC or SOC) is an idea of integrating all components of a computer or other electronic system into a single chip. ... This article does not cite any references or sources. ... An Altera Stratix II GX FPGA. A field-programmable gate array is a semiconductor device containing programmable logic components called logic blocks, and programmable interconnects. ...


Peripherals

Embedded Systems talk with the outside world via peripherals, such as: It has been suggested that this article or section be merged into Computer hardware. ...

RS-232 (also referred to as EIA RS-232C or V.24) is a standard for serial binary data interchange between a DTE (Data terminal equipment) and a DCE (Data communication equipment). ... EIA-422 (formerly RS-422) is a serial data communication protocol which specifies 4-wire, full-duplex, differential line, multi-drop communications. ... EIA-485 (formerly RS-485 or RS485) is an electrical specification of a two-wire, half-duplex, multipoint serial connection. ... I2C (for Inter-Integrated Circuit, pronounced I-squared-C) is a serial computer bus invented by Philips. ... JTAG, an acronym for Joint Test Action Group, is the usual name used for the IEEE 1149. ... The Serial Peripheral Interface Bus or SPI (often pronounced es-pē-ī or spy) bus is a synchronous serial data link standard named by Motorola that operates in full duplex mode. ... A USB Series “A” plug, the most common USB plug Universal Serial Bus (USB) is a serial bus standard to interface devices. ... Controller Area Network (CAN) is a broadcast, differential serial bus standard, originally developed in the 1980s by Robert Bosch GmbH, for connecting electronic control units (ECUs). ... LonWorks is a networking platform specifically created to address the unique performance, reliability, installation, and maintenance needs of control applications. ... Many electronic systems use internal clocks which are required to be phase-aligned to and/or frequency multiples of some external reference clock. ... GPIO is an acronym for General Purpose Input/Output and is used in embedded electronics field. ...

Tools

As for other software, embedded system designers use compilers, assemblers, and debuggers to develop embedded system software. However, they may also use some more specific tools: A diagram of the operation of a typical multi-language, multi-target compiler. ... See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... A debugger is a computer program that is used to test and debug other programs. ...

  • In circuit debuggers or emulators (see next section).
  • Utilities to add a checksum or CRC to a program, so the embedded system can check if the program is valid.
  • For systems using digital signal processing, developers may use a math workbench such as MATLAB, Simulink, MathCad, or Mathematica to simulate the mathematics. They might also use libraries for both the host and target which eliminates developing DSP routines as done in DSPnano RTOS and Unison Operating System.
  • Custom compilers and linkers may be used to improve optimisation for the particular hardware.
  • An embedded system may have its own special language or design tool, or add enhancements to an existing language.
  • Another alternative is to add a Real-time operating system or Embedded operating system, which may have DSP capabilities like DSPnano RTOS.

Software tools can come from several sources: A cyclic redundancy check (CRC) is a type of function that takes as input a data stream of any length and produces as output a value of a certain fixed size. ... Digital signal processing (DSP) is the study of signals in a digital representation and the processing methods of these signals. ... MATLAB is a numerical computing environment and programming language. ... Simulink, running a simulation of a thermostat-controlled heating system Simulink® is a block library tool for modeling, simulating and analyzing dynamic systems. ... MathCad is a computer algebra system somewhat similar to Mathematica or Maple, and oriented towards ease of use and applications such as plotting. ... Mathematica is a general computing environment, organizing many algorithmic, visualization, and user interface capabilities within a document-like user interface paradigm. ... DSPnano is a real-time and embedded operating system or RTOS. It was first created in 1996 and was one of the first pthread based real-time kernels. ... Unison DSP Operating System (RTOS) Unison RTOS [1] was developed as a runtime for powerful real-time embedded heterogeneous multiprocessors which were used for military signal processing. ... A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ... An embedded operating system is an operating system for embedded computer systems. ... DSPnano is a real-time and embedded operating system or RTOS. It was first created in 1996 and was one of the first pthread based real-time kernels. ...

  • Software companies that specialize in the embedded market
  • Ported from the GNU software development tools
  • Sometimes, development tools for a personal computer can be used if the embedded processor is a close relative to a common PC processor

As the complexity of embedded systems grows, higher level tools and operating systems are migrating into machinery where it makes sense. For example, cellphones, personal digital assistants and other consumer computers often need significant software that is purchased or provided by a person other than the manufacturer of the electronics. In these systems, an open programming environment such as Linux, NetBSD, OSGi or Embedded Java is required so that the third-party software provider can sell to a large market. GNU (pronounced ) is a computer operating system composed entirely of free software. ... Cellular redirects here. ... User with PDA Personal digital assistants (PDAs) are handheld computers that were originally designed as personal organizers, but became much more versatile over the years. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system. ... NetBSD is a freely redistributable, open source version of the Unix-like BSD computer operating system. ... The OSGi Alliance (formerly known as the Open Services Gateway initiative - now an obsolete name) is an open standards organization founded in March 1999. ... In discussions of J2ME Java specifications, such as the CDC/CLDC device capability sets and the MIDP profile definition, attention needs to be given to Embedded Java, which additionally requires very specialized, optimized JVMs, and the means to update the installed software and services such as OSGi. ...


Debugging

Embedded Debugging may be performed at different levels, depending on the facilities available. From simplest to most sophisticated they can be roughly grouped into the following areas: Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected. ...

  • External debugging using logging or serial port output to trace operation using either a monitor in flash or using a debug server like the Remedy Debugger which even works for heterogeneous multicore systems.
  • An in-circuit debugger (ICD), a hardware device that connects to the microprocessor via a JTAG or NEXUS interface. This allows the operation of the microprocessor to be controlled externally, but is typically restricted to specific debugging capabilities in the processor.
  • An in-circuit emulator replaces the microprocessor with a simulated equivalent, providing full control over all aspects of the microprocessor.
  • A complete emulator provides a simulation of all aspects of the hardware, allowing all of it to be controlled and modified, and allowing debugging on a normal PC.

Unless restricted to external debugging, the programmer can typically load and run software through the tools, view the code running in the processor, and start or stop its operation. The view of the code may be as assembly code or source-code. The Remedy debugger was the first embedded system level debugger in the world. ... A multicore processor is a chip with more than one processing units (cores). ... JTAG, an acronym for Joint Test Action Group, is the usual name used for the IEEE 1149. ... An in-circuit emulator (ICE) also called on-circuit debugger (OCD) or background debug module (BDM) is a hardware device used to debug the software of an embedded system. ... DosBox emulates the familiar command line interface of DOS. An emulator duplicates (provide an emulation of) the functions of one system with a different system, so that the second system behaves like (and appears to be) the first system. ... Assembly language or simply assembly is a human_readable notation for the machine language that a specific computer architecture uses. ... An illustration of Java source code with prologue comments indicated in red and inline comments indicated in green. ...


Reliability

Embedded systems often reside in machines that are expected to run continuously for years without errors, and in some cases recover by themselves if an error occurs. Therefore the software is usually developed and tested more carefully than that for personal computers, and unreliable mechanical moving parts such as disk drives, switches or buttons are avoided.


Recovery from errors may be achieved with techniques such as a watchdog timer that resets the computer unless the software periodically notifies the watchdog. A watchdog timer is a computer hardware timing device that triggers a system reset if the main program, due to some fault condition, such as a hang, neglects to regularly service the watchdog (writing a “service pulse” to it, also referred to as “petting the dog”). The intention is to...


Specific reliability issues may include:

  1. The system cannot safely be shut down for repair, or it is too inaccessible to repair. Solutions may involve subsystems with redundant spares that can be switched over to, or software "limp modes" that provide partial function. Examples include space systems, undersea cables, navigational beacons, bore-hole systems, and automobiles.
  2. The system must be kept running for safety reasons. "Limp modes" are less tolerable. Often backups are selected by an operator. Examples include aircraft navigation, reactor control systems, safety-critical chemical factory controls, train signals, engines on single-engine aircraft.
  3. The system will lose large amounts of money when shut down: Telephone switches, factory controls, bridge and elevator controls, funds transfer and market making, automated sales and service.

High vs Low Volume

For high volume systems such as portable music players or mobile phones, minimizing cost is usually the primary design consideration. Engineers typically select hardware that is just “good enough” to implement the necessary functions. Apple iPod, the most popular hard drive-based digital audio player An embedded hard drive-based player (Creative Zen Vision:M), one of the many alternatives for the iPod An MP3 CD player (Philips Expanium) Some mobile phones can be used as digital audio players, such as the Nokia 6233. ...


For low-volume or prototype embedded systems, general purpose computers may be adapted by limiting the programs or by replacing the operating system with a real-time operating system. A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ...


Embedded software architectures

There are several different types of software architecture in common use.


Simple control loop

In this design, the software simply has a loop. The loop calls subroutines, each of which manages a part of the hardware or software.


Interrupt controlled system

Some embedded systems are predominantly interrupt controlled. This means that tasks performed by the system are triggered by different kinds of events. An interrupt could be generated for example by a timer in a predefined frequency, or by a serial port controller receiving a byte.


These kinds of systems are used if event handlers need low latency and the event handlers are short and simple.


Usually these kinds of systems run a simple task in a main loop also, but this task is not very sensitive to unexpected delays. The tasks performed in the interrupt handlers should be kept short to keep the interrupt latency to a minimum. Interrupt latency is the time between the generation of an interrupt by a device and the servicing of the device which generated the interrupt. ...


Sometimes longer tasks are added to a queue structure in the interrupt handler to be processed in the main loop later. This method brings the system close to a multitasking kernel with discrete processes.


Cooperative multitasking

A nonpreemptive multitasking system is very similar to the simple control loop scheme, except that the loop is hidden in an API. The programmer defines a series of tasks, and each task gets its own environment to "run" in. Then, when a task is idle, it calls an idle routine (usually called "pause", "wait", "yield", "nop" (Stands for no operation), etc.). It has been suggested that this article or section be merged into Computer_multitasking#Cooperative_multitasking. ... The software that provides the functionality described by an API is said to be an implementation of the API. The API itself is abstract, in that it specifies an interface and does not get involved with implementation details. ...


The advantages and disadvantages are very similar to the control loop, except that adding new software is easier, by simply writing a new task, or adding to the queue-interpreter.


Preemptive multitasking or multi-threading

In this type of system, a low-level piece of code switches between tasks or threads based on a timer. This is the level at which the system is generally considered to have an "operating system", and introduces all the complexities of managing multiple tasks or threads running seemingly at the same time.


Any piece of task or thread code can damage the data of another task or thread; they must be precisely separated. Access to shared data must be controlled by some synchronization strategy, such as message queues, semaphores or a non-blocking synchronization scheme. In computer science, a message queue is a software-engineering component used for interprocess communication. ... A semaphore is a protected variable (or abstract data type) and constitutes the classic method for restricting access to shared resources (e. ... In computer science, non-blocking synchronization ensures that threads competing for a shared resource do not have their execution indefinitely postponed by mutual exclusion. ...


Because of these complexities, it is common for organizations to buy a real-time operating system, allowing the application programmers to concentrate on device functionality rather than operating system services. A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ...


Microkernels and exokernels

A microkernel is a logical step up from a real-time OS. The usual arrangement is that the operating system kernel allocates memory and switches the CPU to different threads of execution. User mode processes implement major functions such as file systems, network interfaces, etc. Graphical overview of a microkernel A microkernel is a minimal computer operating system kernel providing only basic operating system services (system calls), while other services (commonly provided by kernels) are provided by user-space programs called servers. ...


In general, microkernels succeed when the task switching and intertask communication is fast, and fail when they are slow.


Exokernels communicate efficiently by normal subroutine calls. The hardware, and all the software in the system are available to, and extensible by application programmers. Graphical overview of Exokernel Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. ...


Monolithic kernels

In this case, a relatively large kernel with sophisticated capabilities is adapted to suit an embedded environment. This gives programmers an environment similar to a desktop operating system like Linux or Microsoft Windows, and is therefore very productive for development; on the downside, it requires considerably more hardware resources, is often more expensive, and because of the complexity of these kernels can be less predictable and reliable. Linux (IPA pronunciation: ) is a Unix-like computer operating system. ... To meet Wikipedias quality standards, the lead section of this article may need to be expanded. ...


Common examples of embedded monolithic kernels are Embedded Linux and Windows CE. Embedded Linux is a Linux based embedded operating system used in cell phones, personal digital assistants, media player handsets and other consumer electronics devices. ... Windows CE (sometimes abbreviated WinCE) is a variation of Microsofts Windows operating system for minimalistic computers and embedded systems. ...


Despite the increased cost in hardware, this type of embedded system is increasing in popularity, especially on the more powerful embedded devices such as Wireless Routers and GPS Navigation Systems. Here are some of the reasons: This article describes the computer networking device. ... A taxi in Kyoto, equipped with GPS navigation system An automotive navigation system is a satellite navigation system designed for use in automobiles. ...

  • Ports to common embedded chip sets are available.
  • They permit re-use of publicly available code for Device Drivers, Web Servers, Firewalls, and other code.
  • Development systems can start out with broad feature-sets, and then the distribution can be configured to exclude unneeded functionality, and save the expense of the memory that it would consume.
  • Many engineers believe that running application code in user mode is more reliable, easier to debug and that therefore the development process is easier and the code more portable.
  • Many embedded systems lack the tight real time requirements of a control system. A system such as Embedded Linux has fast enough response for many applications.
  • Features requiring faster response than can be guaranteed can often be placed in hardware.
  • Many RTOS systems have a per-unit cost. When used on a product that is or will become a commodity, that cost is significant.

Windows XP loading drivers during a Safe Mode bootup A device driver, or a software driver is a specific type of computer software, typically developed to allow interaction with hardware devices. ... The term web server can mean one of two things: a computer responsible for serving web pages, mostly HTML documents, via the HTTP protocol to clients, mostly web browsers; a software program that is working as a daemon serving web documents. ... Firewall separating zones of trust A firewall is a hardware or software device which is configured to permit, deny or proxy data through a computer network which has different levels of trust. ... A programmable logic device or PLD is an electronic component used to build digital circuits. ...

Exotic custom operating systems

A small fraction of embedded systems require safe, timely, reliable or efficient behavior unobtainable with the one of the above architectures. In this case an organization builds a system to suit. In some cases, the system may be partitioned into a "mechanism controller" using special techniques, and a "display controller" with a conventional operating system. A communication system passes data between the two.


See also

Wikibooks
Wikibooks has a book on the topic of
Wikiversity
At Wikiversity, you can learn about:

Image File history File links Wikibooks-logo-en. ... Wikibooks logo Wikibooks, previously called Wikimedia Free Textbook Project and Wikimedia-Textbooks, is a wiki for the creation of books. ... Image File history File links Wikiversity-logo-Snorky. ... Wikiversity logo Wikiversity is a Wikimedia Foundation beta project[1], devoted to learning materials and activities, located at www. ... Communications servers are open, standards-based computing systems that operate as a carrier-grade common platform for a wide range of communications applications and allow equipment providers to add value at many levels of the system architecture. ... An embedded operating system is an operating system for embedded computer systems. ... System on Module (SoM) is a computer term and an extension of the concept of System on Chip (SoC), and lies between a full-up computer and a microcontroller in nature. ... System-on-a-chip (SoC or SOC) is an idea of integrating all components of a computer system into a single chip. ... In computing, firmware is software that is embedded in a hardware device. ... An information appliance (IA) is any device that can process information, signals, graphics, animation, video and audio; and can exchange such information with another IA device. ... A microprocessor is a programmable digital electronic component that incorporates the functions of a central processing unit (CPU) on a single semiconducting integrated circuit (IC). ... A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ... A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ... Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ... Ubiquitous computing (ubicomp, or sometimes ubiqcomp) integrates computation into the environment, rather than having computers which are distinct objects. ...

References

  1. ^ a b Michael Barr. Embedded Systems Glossary. Netrino Technical Library. Retrieved on 2007-04-21.

Michael Barr is a software engineer and author, specializing in embedded systems. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era. ... is the 111th day of the year (112th in leap years) in the Gregorian calendar. ...

External links


  Results from FactBites:
 
Embedded system - Wikipedia, the free encyclopedia (2975 words)
Embedded systems reside in machines that are expected to run continuously for years without errors, and in some cases recover by themselves if an error occurs.
A common configuration for very-high-volume 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 design.
Embedded Debugging may be performed at different levels, depending on the facilities available, ranging from assembly- or source-level debugging with an in-circuit emulator, to output from serial debug ports, to an emulated environment running on a personal computer.
Embedded system - Facts, Information, and Encyclopedia Reference article (4479 words)
For embedded systems that are not high volume personal computers can often be conscripted into service either by limiting the programs or by replacing the operating system with a real-time operating system.
In addition, the embedded system may be outside the reach of humans (down an oil well borehole, launched into outer space, etc.), so the embedded system must be able to restart itself even if catastrophic data corruption has taken place.
These systems often have no operating system, or a specialized embedded operating system (often a real-time operating system), or the programmer is assigned to port one of these to the new system.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m