slides 1 general introduction to embedded systems

45
Slide 1: General Introduction to Embedded Systems By: Dr. Mouaaz Nahas Embedded Systems 802455 Umm Al-ura U!"#ers"ty Ele$tr"$al E!%"!eer"!% De&artme!t 1

Upload: tayab-memon

Post on 04-Oct-2015

219 views

Category:

Documents


0 download

DESCRIPTION

This is an introductory document that gives complete information

TRANSCRIPT

  • Slide 1: General Introduction to Embedded SystemsBy: Dr. Mouaaz Nahas

    Embedded Systems802455Umm Al-Qura UniversityElectrical Engineering Department

    *

  • What is an embedded system?General-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs (today, there is a huge number of end-user applications running on PC).

    In contrast, embedded system is a special-purpose computer which is designed to perform a small number of dedicated functions (tasks) for a specific application.

    *

  • What is the embedded part?An embedded system might contain one or more programmable chips such as a microcontroller (C, uC or MCU), microprocessor or digital signal processor.

    The word embedded indicates that the computer unit (e.g. microcontroller) is fully surrounded by the device it controls, and is invisible to the user of the device.

    *

  • Components of embedded system An embedded system usually consists of hardware, software and perhaps mechanical or other components, and can be a small part of a larger system or machine.

    Embedded systems combine elements of hardware and software, semiconductor technology, analog and digital electronics, computer architecture, sensors and actuators, and more.

    *

  • Interfacing with environmentIn desktop computer systems, the user usually interacts with the software application through a set of highly-capable input / output devices such as keyboard, mouse, and coloured screen.

    In contrast, embedded systems have no sophisticated interface devices: instead, they interact with the surrounding environment through a set of simple components such as switches, small keypads, light-emitting diodes (LEDs) and so on.

    *

  • Role of embedded systemsPeople in the 21st century may not realise that, without the emergence of embedded technology, their life would have become harder. This is because most electrical devices people use nowadays are utilising embedded systems.

    Examples of such devices are: microwave ovens, TVs, VCRs, DVDs, mobile phones, MP3 players, washing machines, air conditions, handheld calculators, printers, digital watches, digital cameras, automatic teller machines (ATMs) and medical equipments. *

  • Basic examples of embedded systems*

  • The need for embedded systems?In a publication by ABB Corporate Research (2006), Christoffer Apneseth reports that the need for embedded microprocessors arises mainly because:

    General-purpose computers, like PCs, generally exceed the cost of the majority of products that utilise embedded systems, and

    General-purpose systems are not capable of meeting the requirements that embedded systems should have such as: reliability, product size limitation, real-time performance and power-consumption constraints.

    *

  • What is simply the reliability?Reliability simply means:

    The ability to provide the service to the user whenever requested.

    The ability of a person or system to perform and maintain its functions in routine circumstances, as well as unexpected circumstances.

    In engineering, reliability is the ability of a system or component to perform its required functions under stated conditions for a specified period of time.

    *

  • Historical BackgroundThe first computer system, recognised as an embedded system, was the Apollo Guidance Computer developed in 1959 to control the Apollo spacecraft.

    The first successful commercial minicomputer was the PDP-8 produced by Digital Equipment Corporation in 1965.

    In 1971, Intel released the first commercial single-chip microprocessor, the Intel 4004, which was primarily used in calculators and small systems.*

  • Historical Background (Cont.)External memory and support chips were required with the microprocessor unit until 1980s, when microcontrollers were developed to integrate all components of a microprocessor system into a single chip.

    Since then, many commercial companies began the development of embedded microcontrollers to meet the increasingly growing demand of modern technology.

    *

  • Microcontrollers companies / families Examples of companies producing microcontrollers are: Atmel, Philips, Intel, Infineon, Texas Instruments, Microchip and Motorola.

    Examples of microcontroller families used in the design of embedded systems are: 8051, ARM, PIC, MIPS, PowerPC, Atmel AVR, MPC555 and C16x.*

  • Embedded Systems MarketIn 2002, Ludwig D.J. Eggermont (STW Technology Foundation) estimated the embedded systems market size as100 times larger than the size of desktop (PC) market.

    In 2003, Bas Graaf (IEEE Software) forecasted this market size to grow exponentially within the next ten years.*

  • Global embedded systems market trend*(Source: BBC Research Group, 2005)

  • Safety-critical systemsForm safety point of view, there are two types of embedded systems:Non-critical systems. Critical systems.

    In safety-critical systems, failures can have very serious impacts on human safety.

    For example, incorrect operation of such systems may endanger human lives or cause catastrophic consequences.

    *

  • Safety-critical systems (Cont.)Safety-critical systems are typically used in the development of aerospace, automotive, railway, military and medical applications.

    The utilisation of embedded systems in safety-critical applications requires that the system should have real-time operations to achieve correct functionality and/or avoid any possibility for detrimental consequences. *

  • Real-time systemsReal-time systems are computer systems which must react (respond) to events in the environment within limited time boundaries.

    Real-time behaviour can only be achieved if the system is able to perform predictable and deterministic processing.*

  • Real-time systems (Cont.)A given system is described as real-time if it is able to complete the execution of particular activities within specific time intervals.

    The system should guarantee that a particular set of activities will always be completed within (for example) 4 ms or at precisely 3 ms periods (e.g. calculating the required throttle settings to control speed in an auto-driver system) .*

  • Real-time systems (Cont.)In situations where the system is unable to meet these time constraints (requirements), then the whole application is not simply slower than would be expected, it tends to be entirely useless.

    As a result, the correct behaviour of a real-time system depends on:The logical correctness of the output results.The time at which the results are produced. *

  • Real-time systems (Cont.)Real-time systems are divided into two main classes:Soft-real-time: where timing constraints should be generally met, and failure to do so may only result in reduced system performance but does not cause serious damages or jeopardise correct behaviour.

    Hard-real-time systems: where timing constraints must be deterministically met in order to achieve correct operations or avoid harmful consequences.*

  • Brake-by-Wire systemThe BBW system is a brake system based on controlling the electric brake system in each wheel by electric signal.

    This BBW system can significantly improve the brake performance compared with traditional brake systems using hydraulic power.

    This BBW system also helps to increase fuel efficiency.

    *

  • Brake-by-Wire system (Cont.)*

  • Brake-by-Wire system (Cont.)Brake-by-Wire system is designed for modern passenger cars.The brake actuators are required to respond within a fixed amount of time after the brake pedal is pressed.If the system fails to respond within this time frame, then there could be a danger that the vehicle may not stop in time before crashing into another vehicle, causing serious damage and possibly losses in passenger lives.*

  • Aircraft auto-pilot systemIn the aircraft auto-pilot system, rapid reactions are necessarily required to keep the aircraft staying on its path.Reactions include: rudder, elevator, aileron and engine settings.If the system cannot adjust the rudder setting in millisecond time-scale (for example), the plane may oscillate unpleasantly or even crash in more severe circumstances.*

  • Aircraft auto-pilot system (Cont.)*Image courtesy of Bill Harris

  • Aircraft auto-pilot system (Cont.)*Image courtesy of Bill Harris

  • Aircraft auto-pilot system (Cont.)*Image courtesy of Bill Harris

  • Predictability In real-time applications, it is important to predict the timing behaviour of the system to guarantee that:The system will behave correctly.Life of the people using the system will be saved.

    While the most important property of a desktop computing system is its speed, the most important property in a real-time computing system is predictability.*

  • Predictability (Cont.)Giorgio Buttazzo states that:

    rather than being fast, a real-time computing system should be predictable .

    Hence, predictability is an important characteristic in real-time embedded systems.*

  • Predictability (Cont.)Predictability is:

    In general: the ability to forecast (or anticipate) what will happen in the future.For systems: the ability to determine, in advance, exactly what the system will do at every moment of time in which it is running, hence, determine whether the system is capable of meeting all its timing constraints.

    Therefore, building an embedded application with highly predictable system behaviour is a non straightforward process.*

  • Challenges in building predictable embedded systems Embedded systems engineering can be viewed as a branch of systems engineering discipline. Engineers are concerned with all aspects of the system development including hardware and software engineering.Activities such as specification, design, implementation, testing, operation and maintenance are all involved in the development of an embedded application.*

  • Challenges in building predictable embedded systems (Cont.)*Development Life Cycle (Waterfall Model)

  • Challenges in building predictable embedded systems (Cont.)*Development Life Cycle (Waterfall Model)

  • Challenges in building predictable embedded systems (Cont.)Requirements specifications:

    A design of any system usually starts with ideas in peoples mind. These ideas need to be captured in requirements specifications documents that specify: The basic functions of the system.The desirable features of the system. *

  • Challenges in building predictable embedded systems (Cont.)System and Software Design:

    After the requirements specifications are documented correctly, design process begins. The design process determines how the system functions and features can be achieved by the system components (hardware and software).Design is usually based on modelling.*

  • Challenges in building predictable embedded systems (Cont.)Implementation:Implementation is the process of converting design elements into a hardware system and / or software system (executable source code).If commercial off the shelf (COTS) uCs are used, then developers will mainly focus on software implementation.Selection of the programming language to program the uC is made in this stage (e.g. Assembly, Ada, C or many other languages).*

  • Challenges in building predictable embedded systems (Cont.)Integration and Testing:

    All system units are put together (integrated). The complete system is tested (verified) to ensure that it functions as required.*

  • Challenges in building predictable embedded systems (Cont.)Operation and Maintenance:

    After integration and testing, the system becomes operational.In system maintenance, periodic checks are carried out to ensure high quality and correct functionality of the system.*

  • Challenges in building predictable embedded systems (Cont.)Ensuring predictability, whilst moving between the various development stages, requires further techniques to be applied at different stages throughout the whole development process.

    Giorgio Buttazzo states that: one safe way to achieve predictability is to investigate and employ new methodologies at every stage of the development of an application, from design to testing.

    *

  • Validation and Verification*There are two main processes to evaluate the operation of any software-based system:

    Validation: to ensure that the right system is built.Verification: to ensure that the system is built right.

  • Validation and Verification (Cont.)Validation is:The process of evaluating software at the end of the development process to ensure compliance with software requirements.A general process which checks the consistency of the system as a whole with its requirements.Determination of the correctness of the final program or software produced from a development project with respect to the user needs and requirements.

    *

  • Validation and Verification (Cont.)Verification is:The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.The demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development life cycle.Verification is a detailed process which must be applied at each stage in the software development process to check the conformance of that stage with its predefined specification.

    *

  • Validation and Verification (Cont.)Validation is a general process which shows that the software meets the customer needs, while verification is the process which ensures that the software conforms to its specification.Validation usually takes place at the end of the development cycle, and looks at the complete system as opposed to verification, which focuses on smaller sub-systems.Validation is usually accomplished by verifying each stage of the software development life cycle.Validation can be viewed as end-to-end verification process

    *

  • Validation and Verification (Cont.)*The system development life cycle. Integrating validation and verification in the system development life cycle.

  • Validation and Verification (Cont.)Validation and verification processes are used to check both the functional and non-functional requirements of the system.Functional requirements relate to the behaviour of the system.Non-functional requirements relate to the quality attributes of the system (non-behavioural requirements). Predictability is classified as non-functional requirement. Non-functional requirements also include, scalability, efficiency, reliability, usability, stability, and many others.*

    *