Embedded Systems/Theory, Design and Implementation/Introduction
Embedded Technology is now in its prime and the wealth of knowledge available is mindblowing. There are many open source designs available for study and use by anyone from a hobbyist to an engineer.
Before moving into a detailed discussion on embedded systems, it is best to understand the essence of an embedded system. What can we call an embedded system and how is it different from a computer? There are many answers, each coming from experts treating these systems from different point of views. But, almost all definitions agree on a few basic characteristics of an embedded system:
- It is a system built to perform its duty, completely or partially independent of human intervention.
- It is specially designed to perform a few tasks in the most efficient way.
- It interacts with physical elements in our environment, viz. controlling and driving a motor, sensing temperature, etc.
One of the most important distinguishing factors between an embedded system and a computer is the constraints on system resources. Unlike modern day computers, an embedded system is usually designed to be compact, energy efficient, and inexpensive. Another factor is that a computer is capable of performing a variety of tasks completely independent of each other. Though many advanced embedded systems exhibit multi-tasking capabilities, it is unreasonable to expect an embedded system operating a washing machine to provide the capability to play digital music.
From an implementation viewpoint, there is a major difference between a computer and an embedded system. Embedded systems are often required to provide Real-Time response. A Real-Time system is defined as a system whose correctness depends on the timeliness of its response. Examples of such systems are flight control systems of an aircraft, sensor systems in nuclear reactors and power plants. For these systems, delay in response is a fatal error. A more relaxed version of Real-Time Systems, is the one where timely response with small delays is acceptable. An example of such a system would be the Scheduling Display System on the railway platforms. In technical terminology, Real-Time Systems can be classified as:
- Hard Real-Time Systems - systems with severe constraints on the timeliness of the response.
- Soft Real-Time Systems - systems which tolerate small variations in response times.
- Hybrid Real-Time Systems - systems which exhibit both hard and soft constraints on its performance.
As we go into more detail about these systems, we will learn that Real-Time constraints pose a very difficult implementation problem. Complex problems like scheduling and resource management do tend to appear like ten headed fire breathing dragons to most newcomers in this field.
In the next section, we will systematically list down the important characteristics of the different classes of embedded systems. We will also discuss another class of embedded systems, Distributed Embedded Systems.
to be continued...
Contributors: --Siddord 07:10, 30 August 2005 (UTC)