Beruflich Dokumente
Kultur Dokumente
If we look around, we will find ourselves to be surrounded by computing systems. Every year
millions of computing systems are built destined for desktop computers (Personal Computers,
workstations, mainframes and servers) but surprisingly, billions of computing systems are built
every year embedded within larger electronic devices and still goes unnoticed. Any device
running on electric power either already has computing system or will soon have computing
system embedded in it.
Today, embedded systems are found in cell phones, digital cameras, camcorders, portable video
games, calculators, and personal digital assistants, microwave ovens, answering machines, home
security systems, washing machines, lighting systems, fax machines, copiers, printers, and
scanners, cash registers, alarm systems, automated teller machines, transmission control, cruise
control, fuel injection, anti-lock brakes, active suspension and many other devices/ gadgets.
What is Embedded System?
A precise definition of embedded systems is not easy. Simply stated, all computing systems other
than general purpose computer (with monitor, keyboard, etc.) are embedded systems.
System is a way of working, organizing or performing one or many tasks according to a fixed set
of rules, program or plan. In other words, an arrangement in which all units assemble and work
together according to a program or plan. An embedded system is a system that has software
embedded into hardware, which makes a system dedicated for an application (s) or specific part
of an application or product or part of a larger system. It processes a fixed set of pre-programmed
instructions to control electromechanical equipment which may be part of an even larger system
(not a computer with keyboard, display, etc).
A general-purpose definition of embedded systems is that they are devices used to control,
monitor or assist the operation of equipment, machinery or plant. Embedded reflects the fact
that they are an integral part of the system. In many cases, their embeddedness may be such
that their presence is far from obvious to the casual observer. Block diagram of a typical
embedded system is shown in fig.
Embedded systems are application specific & single functioned; application is known apriori,
the programs are executed repeatedly.
b)
Efficiency is of paramount importance for embedded systems. They are optimized for energy,
code size, execution time, weight & dimensions, and cost.
c)
Embedded systems are typically designed to meet real time constraints; a real time system
reacts to stimuli from the controlled object/ operator within the time interval dictated by the
environment. For real time systems, right answers arriving too late (or even too early) are wrong.
d) Embedded systems often interact (sense, manipulate & communicate) with external world
through sensors and actuators and hence are typically reactive systems; a reactive system is in
continual interaction with the environment and executes at a pace determined by that
environment.
e)
Non Recurring Engineering (NRE) Cost: Money invested in R&D and developing first,
functional and tested prototype.
Electrical Power
Functional Correctness
Time to prototype
Time to market
These metrics compete amongst themselves; increasing one may affect others. Hence optimisation of
these metrics is a challenge for an embedded system designer.
ELEMENTS OF EMBEDDED SYSTEMS
.
Hardware
Core element of an embedded system is the processor or a computational unit.
Processors can act as brain of the system. They can be programmed to do perform a task. This
can be designed using variety of options.
computer on chip, but not a complete computer. Its CPU contains an Arithmetic & Logic Unit(ALU),
a Program Counter(PC), a Stack Pointer(SP), registers, a clock and interrupts circuit on a single chip.
To make complete micro computer, one must add memory usually ROM and RAM, memory
decoder, an oscillator, a number of serial and parallel ports
Microcontrollers provide pin access which allows programs to easily monitor sensors, set actuators,
and transfer data with other devices. Providing specialized instructions improves performance for
embedded systems applications; thus, microcontrollers can be considered ASIPs to some degree.
Special microcontrollers are often called embedded processors. The difference between a
microcontroller and an embedded processor is not clear, but processors with large architectures
with fast processing, fast context-switching & atomic ALU operations are marketed by many
vendors as embedded processors. Examples of embedded processors are ARM 7, INTEL i960,
AMD 29050
ASIP/DSPs
Harvard Architecture
2.
3.
4.
ASICs
ICs are basically chips, i.e., Silicon Wafers with transistors, resistors, capacitors
fabricated
to
act
as
Microprocessors,
Amplifier,
Memory,
etc.
ASICs
(Application Specific Integrated Circuits) are designed for a special application. Digital to Audio
Converter, DSSS receiver, Mpeg2 Decoder are examples of ASICs. ASICs offer very high
performance, but NRE cost is very high. With ASICs, timing closure is an issue especially with
Deep-submicron geometries. Re-configurability is highly limited.
FPGA/CPLDs
Field Programmable Gate Array (FPGA) is a fully programmable alternative to a
customized chip. They are also called Reconfigurable Processing Unit. It is a two dimensional
array of logic blocks and flip flops with a means for user to configure interconnection between
logic blocks &
ROM, RAM, DSP, and any other block onto a single chip. This is replacing a lot of Application
Specific Integrated Circuit chips. FPGA offers performance advantage of parallel hardware with
the flexibility of the software. This has major advantages in terms of cost, reliability, reusability
of intellectual property, and time to market.
Based on Interconnections between cells, they are of two types of FPGAs
Reprogrammable (SRAM-based)- Xilinx, LatticeXP2, Altera, Atmel
One time programmable Actel, Quick logic
Complex Programmable Logic Devices (CPLD) is slightly different from
FPGAs; difference mainly lies in the architecture. A CPLD consists of one or more
programmable sum-of-products logic arrays feeding a relatively small number of clocked
registers. As a result, they are less flexible and hence offer the advantage of more predictable
timing delays and a higher logic-to-interconnect ratio. On the other hand, the FPGA architectures
are dominated by interconnect. This makes them far more flexible but also far more complex to
design for. Also, FPGAs are usually much larger in terms of resources than CPLDs. Another
common distinction is that CPLDs contain embedded flash to store their configuration while
FPGAs usually, but not always, require an external flash.
Reconfigurable SoCs
Technological evolution, particularly shrinking silicon fabrication geometries, is
enabling the integration of complex platforms in a single System-on-Chip (SoC). In addition to
specific hardware subsystems, a modern SoC also can include one or several CPU subsystems to
execute software and sophisticated interconnects. Multimedia platforms such as Nomadik and
Nexperia are examples of multiprocessor SoCs that use digital signal processors,
microcontrollers, and other kinds of programmable processors. Atmels FPSLIC (AVR+FPGA),
TIs OMAP (ARM Cortex + Custom GPU+TI DSP) are other examples.
2.
Software
If hardware forms the body of the embedded systems, software is a soul of embedded systems. The
software lends the functionality to an embedded system.
Variety of languages has emerged as the tasks to be performed by embedded systems are of quite
diverse nature. One language may be good for control-dominated application but may not so
good for signal processing applications.
a)
Hardware languages
Verilog and Very high speed integrated circuits Hardware Description Language (VHDL) are the
most popular languages in this category. Both describe systems with structural hierarchy, model
systems with discrete event semantics; allow concurrent processes to be described procedurally.
Verilog is destined for simulating digital integrated circuits whereas VHDL is much larger and
verbose and can handle wider class of modeling and simulation tasks.
b)
Software languages
Software languages use instructions to describe sequences to be executed. Software languages are of
two types: Assembly and high level languages. An assembly language program contains
instructions written in a symbolic form and is denied by opcodes, addressing modes, registers,
and memories. High level languages include C, C++, RT-Java, ADA, etc. They use various
constructs like functions, loops, arrays, variables, structures etc. and are written in easy to
understand language.
c)
Dataflow languages
Dataflow languages describe systems of procedural processes that run concurrently and
communicate through queues. A data flow model is composed of nodes, that transform data, and
arcs, which represent the passing of data between those nodes. They are not convenient for
general applications but very good for signal processing applications. Kahn process networks are
one of the applications. LUSTRE is an example of synchronous dataflow language.
d)
Hybrid languages
3.
Embedded systems interface with the physical world through Sensors and Actuators. Sensors act as
senses for an embedded system, whereas actuators act as limbs. Varieties of sensors working
on variety of sensing principles are used in embedded systems. Light, temperature, acceleration,
speed, mass, distance, etc. are common physical parameters which are sensed. Motors are one of
the actuators used in many systems.
These transducers interface to the processor through variety of interfaces:
. Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485 etc
. Synchronous Serial Communication Interface: I2C, SPI
. Universal Serial Bus (USB)
. Networks: Ethernet, Controller Area Network (CAN), etc
. Discrete IO: General Purpose Input/ Output (GPIO)
. Analog to Digital/Digital to Analog Converter (ADC/DAC).
Computer Architecture
Two common prevalent processor architectures are Neumann Vs Harvard. Von Neumann
architectures have same program and data memory space; both shares address bus and data bus.
Harvard architecture has different memory space for program and data. For each of them,
separate
data
bus
and
address
bus
are
provided.
2.
RISC has simple primitive instructions and addressing modes. The instructions are of uniform
length, execute in one clock cycle & support pipelining. CISC chips have a large amount of
variable length, different and complex instructions and take longer than a clock cycle to execute.
CISC chips are relatively slow per instruction compared to RISC chips, but use fewer instructions
than RISC. Thus, RISC systems shorten execution time by reducing the clock cycles per
instruction, whereas CISC shorten execution time by reducing MIPS R2000 is a typical product
of pure RISC and Intel 80386 is a typical kind of pure CISC chip.
DESIGNING AN EMBEDDED SYSTEM
An embedded system design involves number of stages which are listed below
Requirement analysis
o Modeling the system to be designed- Experimenting with different algorithms and their
preliminary evaluation. Factoring the task into smaller subtasks and modeling their interaction
o HW-SW partitioning (Allocating the tasks into H/W, S/W) or Co-design (H/W and S/W design
proceed in parallel with interactions and feedback between the two processes. Joint optimization
optimize design metrics)
Selection of technology
System Integration
Certifications, if required.
Documentation
There is different design cycles methodologies used for designing embedded systems.
Waterfall model
Waterfall is a development model in which development is seen flowing steadily through
the phases of Requirement Analysis, Design, Implementation, Testing, Integration and
Maintenance. It allows good progress tracking due to clear milestones but its inflexibility (to
respond to changing requirements) is its demerit.
Top-down versus Bottom-up
In Top-Down Model, the overall functionality of a system is considered initially, without
going into finer aspects of the requirements. Further analyses will go deeper and deeper in
greater details. The Bottom-Up Model follows a reverse approach. First, it defines the individual
parts of the system in great detail. The individual subsystems are then integrated to form larger
systems, leading to whole system.
Spiral Model
Spiral model is the one commonly used in modern design practices. It uses both top-down
and bottom-up approach. The objectives, alternatives and constraints are first defined. Then
iterations are initiated to eliminate main risks. Finer details of each subsystem are then worked
out.
GANTT Charts
GANTT/PERT chart shows the relationships of various scheduled activities and helps to
monitor the progress of the project.