What is Embedded System Design : Steps in the Design Process

An Embedded system is a controller, which controls many other electronic devices. It is a combination of embedded hardware and software. There are two types of embedded systems microprocessors and micro-controller. Micro-processor is based on von Neumann model/architecture (where program + data resides in the same memory location), it is an important part of the computer system, where external processors and peripherals are interfaced to it. It occupies more area and has more power consumption. The application of the microprocessor is personal computers.  This article discusses steps involving in embedded system design.

What is an Embedded System Design?

Definition: A system designed with the embedding of hardware and software together for a specific function with a larger area is embedded system design. In embedded system design, a microcontroller plays a vital role. Micro-controller is based on Harvard architecture, it is an important component of an embedded system. External processor, internal memory and i/o components are interfaced with the microcontroller. It occupies less area, less power consumption. The application of microcontrollers is MP3, washing machines.

Embedded Design
Embedded Design

Types of Embedded Systems

Elements of Embedded Systems

Steps in the Embedded System Design Process

The different steps in the embedded system design flow/flow diagram include the following.

Embedded Design - Process - Steps
Embedded design – process – steps


In this stage the problem related to the system is abstracted.

Hardware – Software Architecture

Proper knowledge of hardware and software to be known before starting any design process.

Extra Functional Properties

Extra functions to be implemented are to be understood completely from the main design.


System Related Family of Design

When designing a system, one should refer to a previous system-related family of design.

Modular Design

Separate module designs must be made so that they can be used later on when required.


Based on software mapping is done. For example, data flow and program flow are mapped into one.

User Interface Design

In user interface design it depends on user requirements, environment analysis and function of the system. For example, on a mobile phone if we want to reduce the power consumption of mobile phones we take care of other parameters, so that power consumption can be reduced.


Every component and module must be refined appropriately so that the software team can understand.

Architectural description language is used to describe the software design.

  • Control Hierarchy
  • Partition of structure
  • Data structure and hierarchy
  • Software Procedure.

Embedded System Design Software Development Process Activities

There are various design metric required to design any system to function properly, they are


 Design Metrics / Design Parameters of an Embedded System



Power Dissipation

Always maintained low


Should be high

Process Deadlines

The process/task should be completed within a specified time.

Manufacturing Cost

Should be maintained.

Engineering Cost

It is the cost for the edit-test-debug of hardware and software.


Size is defined in terms of memory RAM/ROM/Flash Memory/Physical Memory.


It is the total time taken for developing a system and testing it.


System safety should be taken like phone locking, user safety like engine break down safety measure must be taken


Proper maintenance of the system must be taken, in order to avoid system failure.

Time to market

It is the time taken for the product/system developed to be launched into the market.

Embedded Software Development Process Activities

Embedded software development process activities mainly include the following.


Proper specifications are to be made so that the customer who uses the product can go through the specification of the product and use it without any confusion. Designers mainly focus on specifications like hardware, design constraints, life cycle period, resultant system behavior.


Hardware and Software architecture layers are specified.


In this layer, components design is done. Components like single process processor, memories- RAM/ROM, peripheral devices, buses..etc.

System Integration

In this layer, all the components are integrated into the system and tested whether its meeting designers, expectations.

Challenges in Embedded System Design

While designing any embedded system, designers face lots of challenges like as follows,

  • Environment adaptability
  • Power consumption
  • Area occupied
  • Packaging and integration
  • Updating in hardware and software
  • Security
  • There are various challenges the designers face while testing the design like Embedded hardware testing, Verification stage, Validation Maintainability.

Embedded System Design Examples

  • Automatic chocolate vending machine (ACVM)
  • Digital camera
  • Smart card
  • Mobile phone
  • Mobile computer..etc.

Automatic Chocolate Vending Machine (ACVM)

The design function of ACVM is to provide chocolate to the child whenever the child inserts a coin into ACVM.

Design Steps

The design steps mainly include the following.

  1. Requirements
  2. Specifications
  3. Hardware and software functioning.


When a child inserts a coin into the machine and selects the particular chocolate that he wants to purchase.


  • Coins, user selection.
  • An interrupt is generated at each port whenever a coin is inserted.
  • A separate notification is sent to each port.


  • Chocolate
  • Refund
  • A message is displayed on LCD like date, time, welcome message.

 System Function

  • Using a graphical user interface, the child commands to the system which chocolate the child wants to purchase.
  • Where the graphical user interface has an LCD, keypad, touch screen.
  • The machine delivers the chocolate when the child inserts the coin if the coins inserted are excess than the actual cost of selected chocolate. The ACVM machine refunds the money back.
  • Using a Universal synchronous bus, the owner of the ACVM can keep track of client location.

Design Metrics

Power Dissipation

The design should be made as per display size and mechanical components.

Process Deadline

Timmer must be set, so that whenever the child inserts the coin the ACVM must respond within few seconds in delivering the chocolates and refunding if excess.
For example, if the response time is 10seconds, the ACVM should deliver the chocolate and refund the money if excess within 10 seconds as soon as the child inserts the coin and place a request for chocolate.


From the below ACVM system, when the child inserts the coin. The coins get segregated according to the ports presented, Port1, Port2, Port5. On receiving coin an interrupt is generated by the port, this interrupt is sent to reading the amount value and increasing.

Automatic - Chocolate - Vending - Machine
automatic – chocolate – vending – machine

An LCD present here displays the messages like cost, time, welcome..etc. A port delivery exists where the chocolates are collected.


ACVM hardware architecture has the following hardware specifications

  • Microcontroller 8051
  • 64 KB RAM and 8MB ROM
  • 64 KB Flash memory
  • Keypad
  • Mechanical coin sorter
  • Chocolate channel
  • Coin channel
  • USB wireless modem
  • Power supply

 Software of ACVM

 Many programs have to be written so that they can be reprogrammed when required in RAM /ROM like,

hardware - architecture - block - diagram - of - acvm
  • Increase in chocolate price
  • Updating messages to be displayed in LCD
  • Change in features of the machine.

An Embedded System is a combination of hardware + software to perform a particular function. There are of two types microprocessors and microcontrollers. While designing an embedded system certain design constraints and specifications are to consider, so that the developer can meet the customer expectations and deliver on time. An application of Embedded system design ACVM explained in this content. Here is a question what is the cause for environmental constraints while designing an embedded system?