Chap 7&8

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 28

Chapter 7 & 8

Design Methodologies and


Reliable System Design

1
Outlines

• Introduction
• Embedded Systems Design methodology
• Embedded Systems Development Tools
• Testing and Verification
• Networked Embedded system

2
Introduction
 Unlike the design of a software application on a standard
platform, the design of an embedded system implies that
both software and hardware are being designed in
parallel.

 Although this isn't always the case, it is a reality for many


designs today.

 The profound implications of this simultaneous design


process heavily influence how systems are designed.
3
 Embedded systems design life cycle includes:
• Product specification
• Partitioning of the design into its software and hardware
components
• Iteration and Implementation
• Independent hardware and software design tasks
• Integration of the hardware and software components
• Product testing and release
• On-going maintenance and upgrading

4
Embedded systems development life cycles

5
❑Product specification:
 This phase involves gathering and defining the
requirements and specifications for the embedded
system.
 It includes understanding the purpose of the system,
its intended environment, performance requirements,
interfaces, power constraints, such as cost, power
consumption, and size.
 Clear and comprehensive specification documentation
is essential to guide the subsequent design and
development phases. 6
❑HW/SW partition:
 Once the specifications are defined, the next step is
to partition the system into software and hardware
components.
 This involves deciding which functionalities should be
implemented in software and which should be
implemented in hardware, based on factors like
performance, power consumption
 Effective partitioning aims to optimize system
performance, resource utilization, and overall cost.
7
 Hardware/Software Partitioning:
 Since an embedded design will involve both
hardware and software components, someone must
decide which portion of the problem will be solved in
hardware and which in software.
 Many embedded system designs are required to be
 Price sensitive
 Leading-edge performers
 Market competitive

8
 Iteration and Implementation:
 Before delving into detailed design, concepts undergo
iterations and validations through simulations.
 This means that the design team revisits and iterates upon
the initial ideas,
 And making adjustments and improvements based on
feedback, new insights, or changing requirements.
 This iterative process helps refine the design, ensuring that
it meets performance and functionality requirements .
9
 Independent HW/SW Design:

 After the partitioning was established, hardware and


software design tasks can proceed independently.
 Hardware design involves designing and prototyping the
electronic circuits, including microcontrollers, sensors,
actuators, communication interfaces, and any other
hardware components required by the system.
 Software design involves developing the embedded
software, including firmware, device drivers, application
software, and any other software components needed to
implement the system's functionalities.
11
 Hardware/Software Integration:
 The difficult thing in embedded system design is to combine
the first hardware prototype, the application software, the
driver code, and the operating system together to have the
design work perfectly
 Once the hardware and software components are developed,
they need to be integrated into a cohesive system.
 This phase involves connecting the hardware components
together, interfacing them with the software, and ensuring that
they work together seamlessly.
 Integration may reveal compatibility issues or performance
bottlenecks that need to be addressed through further
refinement or redesign. 12
❑Product Testing and Release:
 After integration, the embedded system undergoes
rigorous testing to ensure that it meets the specified
requirements and functions correctly under various
conditions.
 Testing may include functional testing, performance
testing, reliability testing, and compliance testing
with relevant standards and regulations.
 Once testing is complete and any identified issues are
addressed, the system is released for deployment to
end-users or customers. 13
 Maintaining and Upgrading Existing Products:

 Even after deployment, the embedded system requires


ongoing maintenance to ensure its continued operation
and reliability.
 Maintenance tasks may include software updates, bug
fixes, hardware repairs or replacements, and
addressing any evolving requirements or standards.
 Additionally, as technology advances or new requirements
emerge, the system may need to be upgraded or expanded to
incorporate new features or capabilities.

14
Embedded systems development tools

 Development tools are hardware and software tools


designed to help programmers to develop and test systems
in a relatively short time.
 The tools for developing software and hardware for micro
controller-based embedded systems include:
• editors,
• assemblers,
• compilers,
• debuggers,
• simulators,
• emulators, and
• device programmers.
15
Embedded systems development tools
Re-mind
 A typical development cycle starts with writing the application
program using a text editor. The program is then translated into an
executable code with the help of an assembler or compiler.

 Next, a simulator is used to test the application program without the


target hardware. Simulators are helpful in checking the correctness of an
algorithm or a program with limited or no input-outputs, and most errors
can be removed during simulation.

 Once the program seems to be working and the programmer is happy with
it, the executable code is loaded to the target microcontroller chip using a
device programmer, and the system logic is tested.
16
Embedded systems development tools
 Software development tools:

• are computer programs, usually run on personal


computers, that allow the programmer to create,
modify, and test applications programs.
Some common software development tools are:
• Text editors
• Assemblers/compilers
• Simulators
• High-level language simulators
• Integrated development environments (IDEs)
17
 Hardware development tools:
 Numerous hardware development tools are available for the
different microcontrollers.
 Some of these products are manufactured by Microchip Inc.,
and some by third-party companies. The most ones are:
• Development boards
• Device programmers
• In-circuit debuggers
• In-circuit emulators
• Breadboards

18
Testing Embedded Systems
 Testing: is an organized process to verify the behavior,
performance, and reliability of a device or system against
designed specifications.
 It is a manufacturing step to ensure that the manufactured
device is defect free and it is one of the detective measures
 Verification or debugging: is the process of removing
defects (bugs) in the design phase to ensure that the
synthesized design, when manufactured, will behave as
expected and
 it is one of the corrective measures of quality.
19
Testing vs Verification

Verification Testing

Verifies the correctness Verifies correctness of


of design manufactured system
Performed once prior to Test application performed on
manufacturing every manufactured device
Responsible for quality Responsible for quality of
of design devices

20
Fault, Error and Failure
 Incorrectness in systems may be described in different terms as fault, error
and failure.

 Fault is a physical defect, imperfection that occurs in hardware or


software.

 Error is a deviation from correctness or accuracy.

 Errors are usually associated with incorrect values in the system state.

 Failure is a non-performance of some action as expected.

 There is a cause-and-effect relationship between faults, errors, and failures.

Faults result in errors, and errors can lead to system failures


21
Relationship between Fault, Error and Failure

22
Fault Classifications
Some examples of hardware failure modes:
 Electrical failure: short-circuiting, too high voltage/current
 Mechanical failure: jamming of a valve
 Temperature effects: deformation of components
 Material failure: corrosion
Some examples of software failure causes are:
 Deadlock: two or more processes are each waiting for the other to finish, so
none of the processes ever finish.
 Resource starvation: a process doesn't get the resources it needs, so it can
never finish.
 Too small memory
 Noise
 Shared interfaces with other systems
23
Fault Classifications
Based on duration of faults: Transient, Intermittent, Permanent

a) Transient: appear and disappear quickly, and are not correlated


with each other.

They are most commonly induced by random environmental


disturbances such as electro-magnetic interference.

Many faults in the communication systems are transient

b) Intermittent: appear, disappear, and reappear repeatedly.

They are difficult to predict, but their effects are highly


correlated. Most intermittent faults are due to marginal design.

e.g., a heat-sensitive hardware component


24
Fault and Classifications
Based on duration of faults: Transient, Intermittent, Permanent

c) Permanent: remain in existence indefinitely if no


corrective action is taken.

Though many are design or manufacturing faults, they


are also caused by catastrophic events such as an
accident.
E.g. a broken wire, software design error

25
Methods for Minimizing Faults
1) Fault Prevention

attempts to eliminate any possibility of faults in a system before it goes


operational.

Fault Prevention has Two stages: Fault avoidance and Fault removal

A. Fault Avoidance:

attempts to limit the introduction of faults during system


construction (by use of the most reliable components )

B. Fault Removal:

Procedures for finding and removing the causes of errors

e.g. design reviews, program verification, and system testing


26
Fault Tolerance
2) Fault-Tolerance is the ability of a computing
system to survive in the presence of faults.
 All fault-tolerant techniques rely on extra elements
introduced into the system to detect & recover from
faults
 Components are redundant as they are not required in
a perfect system - often called Redundancy

27
Networked Embedded Systems

Embedded systems that are connected to a network and depend on it


for their functioning are called networked embedded systems.

They may or may not have smaller or less complex subsystems running
to create the network. Examples include home security systems and heat
sensor systems.

28
Reading Assignment

 Why Networked embedded systems

 Interfacing and Mixed-signal system

29

You might also like