Unit - 1
Introduction to Embedded Systems
What is Embedded System?
          An Electronic/Electro mechanical system which is designed to perform a specific
function and is a combination of both hardware and firmware (Software)
E.g. Electronic Toys, Mobile Handsets, Washing Machines, Air Conditioners, Automotive
Control Units, Set Top Box, DVD Player etc…
Embedded Systems are:
    Unique in character and behaviour
    With specialized hardware and software
Embedded Systems Vs General Computing Systems:
   General Purpose Computing System                          Embedded System
A system which is a combination of generic      A system which is a combination of special
hardware and General Purpose Operating          purpose hardware and embedded OS for
System for executing a variety of               executing a specific set of applications
applications
Contain a General Purpose Operating System May or may not contain an operating system
(GPOS)                                          for functioning
Applications are alterable (programmable) by    The firmware of the embedded system is pre-
user (It is possible for the end user to re-    programmed and it is non-alterable by end-
install the Operating System, and add or        user
remove user applications)
Performance is the key deciding factor on the   Application specific requirements (like
selection of the system. Always „Faster is      performance, power requirements, memory
Better‟                                         usage etc) are the key deciding factors
Less/not at all tailored towards reduced        Highly tailored to take advantage of the
operating power requirements, options for       power saving modes supported by hardware
different levels of power management.           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
Need not be deterministic in execution       Execution behaviour is deterministic for
behaviour                                    certain type of embedded systems like „Hard
                                             Real Time‟ systems
History of Embedded Systems:
    First Recognized Modern Embedded System: Apollo Guidance Computer (AGC)
       developed by Charles Stark Draper at the MIT Instrumentation Laboratory.
             It has two modules
             1.Command module(CM) 2.Lunar Excursion module(LEM)
             RAM size 256 , 1K ,2K words
             ROM size 4K,10K,36K words
             Clock frequency is 1.024MHz
             5000 ,3-input RTL NOR gates are used
             User interface is DSKY(display/Keyboard)
    First Mass Produced Embedded System: Autonetics D-17 Guidance computer for
       Minuteman-I missile
Classification of Embedded Systems:
    Based on Generation
    Based on Complexity & Performance Requirements
    Based on deterministic behaviour
    Based on Triggering
1. Embedded Systems - Classification based on Generation
     First Generation: The early embedded systems built around 8-bit microprocessors
       like 8085 and Z80 and 4-bit microcontrollers
            EX. stepper motor control units, Digital Telephone Keypads etc.
     Second Generation: Embedded Systems built around 16-bit microprocessors and 8
       or 16-bit microcontrollers, following the first generation embedded systems.
            EX.SCADA, Data Acquisition Systems etc.
     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.
            EX. Robotics, industrial process control, networking etc.
     Fourth Generation: Embedded Systems built around System on Chips (SoC’s),
       Reconfigurable processors and multicore processors. It brings high performance, tight
       integration and miniaturization into the embedded device market
            EX Smart phone devices, MIDs etc.
2. Embedded Systems - Classification based on Complexity & Performance
       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.
3. Embedded Systems - Classification Based on deterministic behaviour: It is applicable
   for Real Time systems. The application/task execution behavior for an embedded system
   can be either deterministic or non-deterministic.
   These are classified in to two types:
   1. Soft Real time Systems: Missing a deadline may not be critical and can be tolerated to
      a certain degree.
   2. Hard Real time systems: Missing a program/task execution time deadline can have
      catastrophic consequences (financial, human loss of life, etc.)
4. Embedded Systems - Classification Based on Triggering:
   These are classified into two types
   1. Event Triggered: Activities within the system (e.g., task run-times) are dynamic and
      depend upon occurrence of different events.
   2. 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.
Major Application Areas of Embedded Systems:
     Consumer Electronics: Camcorders, Cameras etc.
     Household Appliances: Television, DVD players, washing machine, Fridge,
       Microwave Oven etc.
     Home Automation and Security Systems: Air conditioners, sprinklers, Intruder
       detection alarms, Closed Circuit Television Cameras, Fire alarms etc.
     Automotive Industry: Anti-lock breaking systems (ABS), Engine Control, Ignition
       Systems, Automatic Navigation Systems etc.
     Telecom: Cellular Telephones, Telephone switches, Handset Multimedia Applications
       etc.
     Computer Peripherals: Printers, Scanners, Fax machines etc.
     Computer Networking Systems: Network Routers, Switches, Hubs, Firewalls etc.
     Health Care: Different Kinds of Scanners, EEG, ECG Machines etc.
     Measurement & Instrumentation: Digital multi meters, Digital CROs, Logic
       Analyzers PLC systems etc.
     Banking & Retail: Automatic Teller Machines (ATM) and Currency counters, Point
       of Sales (POS)
     Card Readers: Barcode, Smart Card Readers, Hand held Devices etc.
Purpose of Embedded Systems:
Each Embedded Systems is designed to serve the purpose of any one or a combination of the
following tasks.
          o Data Collection/Storage/Representation
          o Data Communication
          o Data (Signal) Processing
          o Monitoring
          o Control
          o Application Specific User Interface
1. Data Collection/Storage/Representation:-
            Performs acquisition of data from the external world.
            The collected data can be either analog or digital
            Data collection is usually done for storage, analysis, manipulation and
              transmission
            The collected data may be stored directly in the system or may be transmitted
              to some other systems or it may be processed by the system or it may be
              deleted instantly after giving a meaningful representation
2. Data Communication:-
       Embedded Data communication systems are deployed in applications ranging
          from complex satellite communication systems to simple home networking
          systems
       Embedded Data communication systems are dedicated for data
          communication.
       The data communication can happen through a wired interface (like Ethernet,
          RS-232C/USB/IEEE1394 etc) or wireless interface (like Wi-Fi, GSM,/GPRS,
          Bluetooth, ZigBee etc).
       Network hubs, Routers, switches, Modems etc are typical examples for
          dedicated data transmission embedded systems.
3. Data (Signal) Processing:-
          Embedded systems with Signal processing functionalities are employed in
             applications demanding signal processing like Speech coding, synthesis,
             audio video codec, transmission applications etc.
          Computational intensive systems
          Employs Digital Signal Processors (DSPs)
4. Monitoring:-
       Embedded systems coming under this category are specifically designed for
         monitoring purpose.
       They are used for determining the state of some variables using input sensors.
       They cannot impose control over variables.
       Electro Cardiogram (ECG) machine for monitoring the heart beat of a patient
         is a typical example for this.
       The sensors used in ECG are the different Electrodes connected to the
         patient‟s body.
       Measuring instruments like Digital CRO, Digital Multi meter, Logic Analyzer
         etc used in Control & Instrumentation applications are also examples of
         embedded systems for monitoring purpose
5. Control:-
       Embedded systems with control functionalities are used for imposing control
         over some variables according to the changes in input variables.
       Embedded system with control functionality contains both sensors and
         actuators.
       Sensors are connected to the input port for capturing the changes in
         environmental variable or measuring variable.
       The actuators connected to the output port are controlled according to the
         changes in input variable to put an impact on the controlling variable to bring
         the controlled variable to the specified range.
       Air conditioner for controlling room temperature is a typical example for
         embedded system with „Control‟ functionality.
       Air conditioner contains a room temperature sensing element (sensor) which
         may be a thermistor and a handheld unit for setting up (feeding) the desired
         temperature.
       The air compressor unit acts as the actuator. The compressor is controlled
         according to the current room temperature and the desired temperature set by
         the end user.
   6. Application Specific User Interface:-
           Embedded systems which are designed for a specific application.
           Contains Application Specific User interface (rather than general standard UI )
              like key board, Display units etc.
           Aimed at a specific target group of users.
           Mobile handsets, Control units in industrial applications etc are examples
Characteristics of Embedded systems:
    Embedded systems possess certain specific characteristics and these are unique to each
embedded system.
       1. Application and domain specific
       2. Reactive and Real Time
       3. Operates in harsh environments
       4. Distributed
       5. Small Size and weight
       6. Power concerns
       7. Single-functioned
       8. Complex functionality
       9. Tightly-constrained
       10. Safety-critical
1. Application and Domain Specific:-
       Each E.S has certain functions to perform and they are developed in such a manner
         to do the intended functions only.
       They cannot be used for any other purpose.
       Ex – The embedded control units of the microwave oven cannot be replaced with
         AC‟S embedded control unit because the embedded control units of microwave
         oven and AC are specifically designed to perform certain specific tasks.
2. Reactive and Real Time:-
       Embedded Systems are in constant interaction with the real world through sensors
         and user-defined input devices which are connected to the input port of the system.
       Any changes in the real world are captured by the sensors or input devices in real
         time and the control algorithm running inside the unit reacts in a designed manner
         to bring the controlled output variables to the desired level.
       Embedded Systems produce changes in output in response to the changes in the
         input, so they are referred as reactive systems.
       Real Time system operation means the timing behaviour of the system should be
         deterministic ie the system should respond to requests in a known amount of time.
       Example – E.S which are mission critical like flight control systems, Antilock
         Brake Systems (ABS) etc are Real Time systems.
3. Operates in Harsh Environment :–
        The design of E.S should take care of the operating conditions of the area where
          the system is going to implement.
        Ex – If the system needs to be deployed in a high temperature zone, then all the
          components used in the system should be of high temperature grade.
        Also proper shock absorption techniques should be provided to systems which are
          going to be commissioned in places subject to high shock.
4. Distributed: –
        It means that embedded systems may be a part of a larger system.
        Many numbers of such distributed embedded systems form a single large
          embedded control unit.
        Ex – Automatic vending machine. It contains a card reader, a vending unit etc.
          Each of them are independent embedded units but they work together to perform
          the overall vending function.
5. Small Size and Weight:-
        Product aesthetics (size, weight, shape, style, etc) is an important factor in
          choosing a product.
        It is convenient to handle a compact device than a bulky product.
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.
Quality Attributes of Embedded System: Quality attributes are the non-functional
requirements that need to be documented properly in any system design.
Quality attributes can be classified as:
    A. Operational quality attributes
    B. Non-operational quality attributes.
A. Operational Quality Attributes: The operational quality attributes represent the
   relevant quality attributes related to the embedded system when it is in the operational
   mode or online mode.
  Operational Quality Attributes are:
         1. Response :-
                    It is the measure of quickness of the system.
                    It tells how fast the system is tracking the changes in input variables.
                    Most of the E.S demands fast response which should be almost real-
                     time.
             Ex – Flight control application.
         2. Throughput :-
                    It deals with the efficiency of a system.
                    It can be defined as the rate of production or operation of a defined
                     process over a stated period of time.
                    The rates can be expressed in terms of products, batches produced or
                     any other meaningful measurements.
                    Ex – In case of card reader throughput means how many transactions
                     the reader can perform in a minute or in an hour or in a day.
                    Throughput is generally measured in terms of “Benchmark”.
                    A Benchmark is a reference point by which something can be
                     measured.
         3. Reliability :-
                    It is a measure of how much we can rely upon the proper functioning
                     of the system.
                    Mean Time Between Failure (MTBF) and Mean Time To Repair
                     (MTTR) are the terms used in determining system reliability.
                    MTBF gives the frequency of failures in hours/weeks/months.
                    MTTR specifies how long the system is allowed to be out of order
                     following a failure.
                    For embedded system with critical application need, it should be of the
                     order of minutes.
         4. Maintainability:-
                   It deals with support and maintenance to the end user or client in case
                    of technical issues and product failure or on the basis of a routine
                    system check-up.
                   Reliability and maintainability are complementary to each other.
                   A more reliable system means a system with less corrective
                    maintainability requirements and vice versa.
                   Maintainability can be broadly classified into two categories
                    1. Scheduled or Periodic maintenance (Preventive maintenance)
                    2. Corrective maintenance to unexpected failures.
      5. Security:-
                   Confidentiality, Integrity and availability are the three major measures
                    of information security.
                   Confidentiality deals with protection of data and application from
                    unauthorized disclosure.
                   Integrity deals with the protection of data and application from
                    unauthorized modification.
                   Availability deals with protection of data and application from
                    unauthorized users.
      6. Safety :-
                   Safety deals with the possible damages that can happen to the operator,
                    public and the environment due to the breakdown of an Embedded
                    System.
                   The breakdown of an embedded system may occur due to a hardware
                    failure or a firmware failure.
                   Safety analysis is a must in product engineering to evaluate the
                    anticipated damages and determine the best course of action to bring
                    down the consequences of damage to an acceptable level.
B. Non-Operational Quality Attributes: The quality attributes that needs to be
   addressed for the product not on the basis of operational aspects are grouped under
   this category.
      1. Testability and Debug-ability:-
           Testability deals with how easily one can test the design, application
            and by which means it can be done.
           For an E.S testability is applicable to both the embedded hardware and
            firmware.
           Embedded hardware testing ensures that the peripherals and total
            hardware functions in the desired manner, whereas firmware testing
            ensures that the firmware is functioning in the expected way.
           Debug-ability is a means of debugging the product from unexpected
            behaviour in the system.
           Debug-ability is two level process
            1. Hardware level: It is used for finding the issues created by
                hardware problems.
            2. software level: It is employed for finding the errors created by the
                flaws in the software
2. Evolvability :-
           It is a term which is closely related to Biology.
           It is referred as the non-heritable variation.
           For an embedded system evolvability refers to the ease with which the
            embedded product can be modified to take advantage of new firmware
            or hardware technologies.
3. Portability:-
           It is the measure of system independence.
           An embedded product is said to be portable if the product is capable of
            functioning in various environments, target processors and embedded
            operating systems.
           „Porting‟ represents the migration of embedded firmware written for
            one target processor to a different target processor.
4. Time-to-Prototype and Market:-
           It is the time elapsed between the conceptualization of a product and
            the time at which the product is ready for selling.
          The commercial embedded product market is highly competitive and
           time to market the product is critical factor in the success of
           commercial embedded product.
          There may be multiple players in embedded industry who develop
           products of the same category (like mobile phone)
5. per Unit Cost and Revenue:-
          Cost is a factor which is closely monitored by both end user and
           product manufacturer.
          Cost is highly sensitive factor for commercial products.
          Any failure to position the cost of a commercial product at a nominal
           rate may lead to the failure of the product in the market.
          Proper market study and cost benefit analysis should be carried out
           before taking a decision on the per-unit cost of the embedded product.
          The ultimate aim of the product is to generate marginal profit so the
           budget and total cost should be properly balanced to provide a marginal
           profit.