1.0 Introduction To Emedded Systems
1.0 Introduction To Emedded Systems
1.0 Introduction To Emedded Systems
The architecture of an embedded system can be understood with the help of block
diagram show in figure below. ES is a combination of hardware and software where software is
usually known as firmware that is embedded into the hardware.
Timer/ Interrupt
Counter Controller
Parallel Serial
Port Ports
Page 1 of 10
Embedded System Software:
The software of an embedded system is written to execute a particular function. It is
normally written in a high-level setup and then compiled down to offer code that can be stuck
within a non-volatile memory in the hardware. Embedded system software is intended to keep in
view of the following three limits:
Convenience of system memory.
Convenience of processor’s speed.
When the embedded system runs constantly, there is a necessity to limit power
dissipation for actions like run, stop and wake up.
Embedded System Hardware:
An embedded system uses a hardware platform to perform the operation. Hardware of the
embedded system is assembled with a microprocessor/microcontroller. It has the elements such
as input/output interfaces, memory, user interface and the display unit. Generally, an embedded
system comprises of the following:
Power Supply.
Memory.
Processor.
Timers.
Output/Output circuits.
Serial communication ports
SASC (System application specific circuits)
Processor: The processor is the heart of embedded system. The selection of processor is based
on the following consideration
Instruction set.
Maximum bits of operation on single arithmetic and logical operation.
Speed.
Algorithms processing and capability.
Types of processor (microprocessor, microcontroller, digital signal processor, application
specific processor, general purpose processor).
Power source: Internal power supply is must. ES require from power up to power down to start
time task. Also it can run continuously that is stay “On’ system consumes total power hence
efficient real time programming by using proper ‘wait’ and ‘stop’ instruction or disable some
unit which are not in use can save or limit power consumption.
Clock / oscillator Circuits: The clock circuit is used for CPU, system timers, and CPU machine
cycles clock controls the time for executing an instruction. Clock oscillator may be internal or
external .It should be highly stable.
Page 2 of 10
Real time clock (RTC): It require maintaining scheduling various tasks and for real time
programming RTC also use for driving timers, counters needs in the system.
Resets circuit and power on reset: Reset process starts executing various instructions from the
starting address. The address is set by the processor in the program counter. The reset step resent
and runs the program in the following way:
Memory: A system embeds either in the internal flash or ROM, PROM or in an external flash or
ROM or PROM of the microcontroller. ROM is used for permanent storage of programs and
RAM is used to store the data generated during the execution of a program. ROM has limited
capacity of storage and hence secondary memories are used for the storage of information or
data.
EMBEDDED SYSTEMS VS GENERAL COMPUTING SYSTEMS
Less/not at all tailored towards reduced Highly tailored to take advantage of the
operating power requirements, options for power saving modes supported by
different levels of power management. hardware and Operating System.
Response requirements are not time critical. For certain category of embedded systems
like mission critical systems, the response
time requirement is highly critical.
Page 3 of 10
Need not be deterministic in execution Execution behavior is deterministic for
behavior. certain type of embedded systems like “Hard
Real Time” systems.
First Recognized Modern Embedded System: Apollo Guidance Computer (AGC) developed by
Charles Stark Draper at the MIT Instrumentation Laboratory.
CLASSIFICATION
1. Based on Generation.
2. Based on Complexity & Performance Requirements.
3. Based on deterministic behavior.
4. Based on Triggering.
First Generation: The early embedded systems built around 8-bit microprocessors like 8085
and Z80 and 4-bit microcontrollers.
Page 4 of 10
Second Generation: Embedded Systems built around 16-bit microprocessors and 8 or 16-bit
microcontrollers, following the first generation embedded systems.
Third Generation: Embedded Systems built around high performance 16/32 bit
Microprocessors/controllers, Application Specific Instruction set processors like Digital
Signal Processors (DSPs), and Application Specific Integrated Circuits (ASICs). The
instruction set is complex and powerful.
Small Scale: The embedded systems built around low performance and low cost 8 or 16 bit
microprocessors/ microcontrollers. It is suitable for simple applications and where
performance is not time critical. It may or may not contain OS.
Medium Scale: Embedded Systems built around medium performance, low cost 16 or 32 bit
microprocessors / microcontrollers or DSPs. These are slightly complex in hardware and
firmware. It may contain GPOS/RTOS.
Large Scale/Complex: Embedded Systems built around high performance 32 or 64 bit RISC
processors/controllers, RSoC or multi-core processors and PLD. It requires complex
hardware and software. These system may contain multiple processors/controllers and co-
units/hardware accelerators for offloading the processing requirements from the main
processor. It contains RTOS for scheduling, prioritization and management.
ii. Hard Real time systems: Missing a program/task execution time deadline can have
catastrophic consequences (financial, human loss of life, etc.).
Page 5 of 10
4. Embedded Systems - Classification Based on Triggering:
These are classified into two types:
i. Event Triggered : Activities within the system (e.g., task run-times) are dynamic and
depend upon occurrence of different events.
ii. Time triggered: Activities within the system follow a statically computed schedule (i.e.,
they are allocated time slots during which they can take place) and thus by nature are
predictable.
Embedded systems possess certain specific characteristics and these are unique to each
embedded system. The characteristics of embedded systems are:
Page 7 of 10
6. Power Concerns:
Power management is another important factor that needs to be considered in designing
embedded systems.
E.S should be designed in such a way as to minimize the heat dissipation by the system.
7. Single-functioned:
Dedicated to perform a single function.
8. Complex functionality:
We have to run sophisticated algorithms or multiple algorithms in some applications.
9. Tightly-constrained:
Low cost, low power, small, fast, etc.
10. Safety-critical:
Must not endanger human life and the environment.
EMBEDDED SYSTEM DESIGN FLOW/PROCESS
This section provides an overview of the embedded system design process aimed at two
objectives. First, it will give us an introduction to the various steps in embedded system design
before we delve into them in more detail. Second, it will allow us to consider the design
methodology itself. A design methodology is important for three reasons. First, it allows us to
keep a scorecard on a design to ensure that we have done everything we need to do, such as
optimizing performance or performing functional tests. Second, it allows us to develop
computer-aided design tools. Developing a single program that takes in a concept for an
embedded system and emits a completed design would be a daunting task, but by first breaking
the process into manageable steps, we can work on automating (or at least semi automating) the
steps one at a time. Third, a design methodology makes it much easier for members of a design
team to communicate.
The below Figure summarizes the major steps in the embedded system design process. In
this top–down view, we start with the system requirements.
Page 8 of 10
Requirements
Specification
Bottom-Up Design
Top-Down Design
Architecture
Components
System Integration
Requirements:
Clearly, before we design a system, we must know what we are designing. The initial
stages of the design process capture this information for use in creating the architecture and
components. We generally proceed in two phases: First, we gather an informal description from
the customers known as requirements, and we refine the requirements into a specification that
contains enough information to begin designing the system architecture.
a. Performance
b. Cost
c. Physical size and weight
d. Power consumption
e. Name
f. Purpose
g. Inputs and outputs
h. Functions
i. Manufacturing cost
j. Power
k. Physical size and weight
Specification:
The specification is more precise—it serves as the contract between the customer and the
architects. As such, the specification must be carefully written so that it accurately reflects the
Page 9 of 10
customer’s requirements and does so in a way that can be clearly followed during design. The
specification should be understandable enough so that someone can verify that it meets system
requirements and overall expectations of the customer.
Architecture Design:
The specification does not say how the system does things, only what the system does.
Describing how the system implements those functions is the purpose of the architecture. The
architecture is a plan for the overall structure of the system that will be used later to design the
components that make up the architecture. The creation of the architecture is the first phase of
what many designers think of as design.
Components:
The architectural description tells us what components we need. The component design
effort builds those components in conformance to the architecture and specification. The
components will in general include both hardware—FPGAs, boards, and so on—and software
modules. Some of the components will be ready-made. The CPU, for example, will be a standard
component in almost all cases, as will memory chips and many other components.
System Integration:
Only after the components are built do we have the satisfaction of putting them together and
seeing a working system. Of course, this phase usually consists of a lot more than just plugging
everything together and standing back. Bugs are typically found during system integration, and
good planning can help us find the bugs quickly. By building up the system in phases and
running properly chosen tests, we can often find bugs more easily. If we debug only a few
modules at a time, we are more likely to uncover the simple bugs and able to easily recognize
them. Only by fixing the simple bugs early will we be able to uncover the more complex or
obscure bugs that can be identified only by giving the system a hard workout.
Page 10 of 10