Embedded Systems Tutorial

Embedded Systems Tutorial

An Embedded System is a specially designed computing system that combines a microprocessor, memory device, input-output devices, and dedicated software in a single unit. An embedded system is designed to perform a dedicated function within a large electronic or mechanical system. It is referred to as an embedded system because it is integrated (or embedded) as a part of a complex system or device.

Embedded systems are being widely used in a large range of applications from portable devices like smart watches, calculators, smartphones, etc. to large electrical or mechanical machines like home appliances, robots, automation systems, vehicles, spacecrafts, and more.

Embedded Systems Tutorial

This tutorial on Embedded Systems is meant for explaining basic to concepts of embedded systems and designed for beginners as well as professionals.

What is an Embedded System?

An embedded system can be defined as a data processing tool designed for a specialized function. It is basically a combination of hardware and software designed to perform a specific function. In most cases, an embedded system is integrated into a large system to perform a dedicated function.

Depending on the architecture, embedded systems can have a fixed functionality or can be programmable. These days, the embedded systems are being used in various applications such as consumer electronics, automobiles, industrial machinery, medical equipment, and more.

Components of Embedded System

A typical embedded system consists of the following three main parts −

  • Hardware − These are the physical components of the embedded system and are responsible for executing operations as per instructions. Hardware components of an embedded system include microprocessor, memory chips, signal converters, and input-output peripherals.
  • Software − These are the set of programs designed for defining the functionality of the embedded system. Different embedded systems require different software that can vary in functionality and complexity.
  • Operating System − This component is responsible for defining how the embedded system works by executing the software. In general, RTOS (Real-Time Operating Systems) are used in embedded systems.

Block Diagram of Embedded System

The block diagram of a typical embedded system is shown in the following figure −

Block Diagram of Embedded System

The functions of its different components are explained below −

  • Sensors− Sensors act as inputs components in the embedded systems and they convert the sensed physical data into electric signals.
  • ADC− ADC stands for Analog to Digital Converter. It converts the analog signals from sensors into digital signals.
  • Processor− This is the central processing unit of the embedded system. It processes the input signals according to instructions to produce the results.
  • Memory− In an embedded system, memory chips are provided to store software and input-output data.
  • DAC− DAC stands for Digital to Analog Converter. This component is responsible for converting the digital outputs of processor into analog signals.
  • Actuators− These are the action taking components of the embedded system. They convert electric signal outputs of the processor into mechanical motion or action.

How Does an Embedded System Work?

An embedded system is a small, low-power, and low-cost computer designed to be used as a part of a large machine or system. Therefore, it works in the same way as an ordinary computer does.

The step-by-step working of an embedded system is explained here −

Step 1− It reads external inputs through sensors.

Step 2− Convert these sensor inputs into processor readable format.

Step 3− Processor executes instructions and converts the inputs into useful outputs.

Step 4− Converts the processors outputs into actuator readable format.

Step 5− Actuators read the outputs and perform actions.

Characteristics of Embedded Systems

Listed here are some of the key characteristics of embedded systems −

  • Embedded systems are task-specific and designed to perform dedicated tasks.
  • Embedded systems combine hardware, software, and firmware in a single unit.
  • Embedded systems can be integrated into a large system to perform a specific function.
  • Embedded systems generally use real-time operating systems.
  • These systems do not require a user to operate them.
  • Embedded systems are designed to operate under a certain time constraint efficiently.

Classification of Embedded Systems

The classification of embedded systems can be done on the basis of their functionality and performance as given below.

Types of Embedded Systems Based on Functionality

Based on their functionality, embedded systems can be categorized as follows −

Mobile Embedded Systems

Mobile embedded systems are small-sized and portable embedded systems. These embedded systems are commonly used in smartphones, laptops, computers, digital cameras, smart watches, etc.

Real-Time Embedded Systems

Real-time embedded systems are designed to produce outputs in a definite time interval. These systems perform time-critical functions and are widely used in medical systems, industrial automation, traffic control systems, etc.

Networked Embedded Systems

Networked embedded systems are designed to uses in network connected systems such as security systems, point-of-sale systems, remote monitoring systems, etc.

Standalone Embedded Systems

Standalone embedded systems are designed to function independently without a host system or computer. Examples of this type of embedded systems include digital watches, MP3 players, calculators, etc.

Types of Embedded Systems Based on Performance Requirements

Based on their performance requirements, embedded systems can be classified into the following types −

Small-Scale Embedded Systems

Small-scale embedded systems are designed using 8-bit or smaller microprocessor or microcontroller. They are limited in terms of memory and processing power. However, these systems are cost-effective and are used in traffic controllers, toys, smart TV remote controls, smart cards, etc.

Medium-Scale Embedded Systems

Medium-scale embedded systems use 16-bit or 32-bit microprocessors or controllers. These systems are relatively more complex and faster than small-scale systems. They are commonly used in smart home appliances, medical equipment, and automation systems.

Sophisticated-Scale Embedded Systems

Sophisticated-scale embedded systems are also referred to as complex embedded systems. They are designed using 64-bit or larger microprocessors or controllers. These systems are powerful in terms of memory and processing capabilities. However, these are highly complex and more expensive. Common applications of these embedded systems include advanced medical equipment, robotics, safety critical systems, etc.

Modern Trends in Embedded systems

Embedded systems have now become the integral parts of all digital smart devices, ranging from a simple digital watch to complex robotic systems.

The following points highlight the contribution of embedded systems in modern world −

  • Embedded systems are making real-time data processing more advanced and faster. This is an essential need in complex systems like drones and other aviation systems.
  • Embedded systems are the soul of IoT devices like wearables, smart appliances, etc.
  • Embedded systems are being empowered with modern technologies like artificial intelligence (AI) and machine learning (ML). These technologies provide self-decision-making capabilities to the embedded systems.
  • Embedded systems are also being equipped with edge computing that reduces the delay and bandwidth by processing data closer to its source. This technology is very important in real-time applications.
  • Embedded systems are providing with advanced networking technologies like 4G, 5G, etc. for more efficient data communication.
  • Embedded systems are being also integrating with quantum computing for complex problem solving, optimized data processing, enhanced security, etc.
  • Embedded systems are enabling more precise 3D printing and improving printing processes through real-time monitoring.

Applications of Embedded Systems

Embedded systems are the key components of all smart devices or systems. Some of the very common applications of embedded systems across various fields are listed here −

  • Automobiles − In modern cars and vehicles, the embedded systems are used to perform various functions such as safety, navigation, infotainment, cruise control, engine health monitoring, and much more.
  • Smartphones − In a typical smartphone, tons of embedded systems are used. These systems are responsible for performing different functions, from touch screen sensing to signal transmission, camera control, voice recording, detecting peripherals, and debugging.
  • Industries − Embedded systems are essential components of robotics and automation systems in industries. They are used for processing data from sensors connected across industrial machinery and produce action instructions for their smooth operations.
  • Medical Equipment − The functioning of advanced medical equipment like heart monitors, ventilators, etc. is dependent on embedded systems. In these devices, embedded systems automate their operation and collect data from sensors and convert them into meaningful results, helping medical staff to avoid errors and interpret the patients conditions accurately.
  • Wearables − Embedded systems are also used in wearables like smartwatches, fitness bands, etc. These systems are entirely responsible for connecting these devices with other IoT devices like internet and smartphones.

Embedded Systems Terminology

There are some very important terms related to embedded systems, which are briefly defined in this section. These definitions will be very helpful for readers throughout this tutorial.

1. Embedded Processor

A microprocessor which is specially designed to use in embedded systems is referred to as an embedded processor. These processors are designed to provide excellent performance in terms of processing power, efficiency, and real-time operations.

2. Microcontroller

A microcontroller, also referred to as microcontroller unit (MCU), is small-sized computer implemented on a single IC chip.

A typical microcontroller consists of all essential components of a microcomputer such as microprocessor, memory unit, IO peripherals, and software. 8085 and 8086 are common examples of simple microcontrollers.

3. Microprocessor

In an embedded system, a microprocessor is the main processing unit that executes instructions and processes. It is an integrated circuit chip having data processing circuitry.

4. 8051 Microcontroller

8051 Microcontroller is a single chip microcontroller developed by Intel Corporation in 1980 to use in embedded systems. It is also known as Intel MCS-51.

The 8051 is an 8-bit microcontroller, as it can process 8-bits of data at a time. It is usual employed in embedded system used in remote controls, robotics, and telecom applications.

5. System-on-Chip (SoC)

System-on-a-Chip is an integrated circuit (IC) design that combines all the major components like processor, memory, input-output peripherals, etc. of an electronic device or system onto a single chip. It does not have any separate components mounted on a motherboard.

6. Architecture

The fundamental structure and design of an embedded system that defines how it will handle the instructions and data and how its components will communicate is referred to as architecture of the embedded system. The commonly used architectures of embedded systems are Harvard architecture and Neumann architecture.

7. I/O Programming

In embedded systems I/O programming is referred to as the process of exchanging data and instructions between the embedded system and external devices like sensors, displays, motors, etc.

8. Assembly Language

Assembly Language is a low-level language used in computer programming. In this programming language, the instructions are written by using abbreviated names equivalent to machine language codes. Assembly language is primarily used to write programs for microprocessors and microcontrollers.

9. Registers

In embedded systems, a register is nothing but a small and high-speed temporary storage device used for holding instructions and data required for processing.

10. Register Bank / Stack

In embedded systems, the register bank is nothing but a part of the RAM (Random Access Memory) used for storing program instructions. While, a register stack is a part in the RAM that temporarily stores information and access this information using a stack pointer register.

11. Instructions

Instructions are the computer codes that the microprocessor of a computer or embedded system can understand and execute. These are generally written in binary language using 0s and 1s.

12. Addressing Modes

The methods of specifying operands of instructions or locations of data in memory are referred to as addressing modes. Therefore, addressing modes define the rules for interpreting and manipulating the address fields of the operands of instructions before their actual execution. In embedded systems, immediate, direct, indirect, and indexed are some commonly used addressing modes.

13. Special Function Registers (SFRs)

Special function registers (SFRs) are those registers in an embedded system that monitor and control various aspects of the system operations. These registers are closely associated with some special functions and provide communication interfacing between the microprocessor and the peripherals.

14. Timer and Counter

Timer and counter are two important features of embedded systems. Timer is used in embedded systems for measuring time and creating time delays. Whereas, counters are used for counting events occurring external to the system

15. Interrupts

In embedded systems interrupts are the signals produced by the microprocessor to stop the currently executing code or programs. These signals are important in embedded systems to enable real-time responses.

16. Real-Time Operating System (RTOS)

Real-time operating systems (RTOS) are specially design operating systems for processing data and events in real-time. These operating systems are programmed to complete tasks within a given time constraint or based on the demand of the event. Hence, these are also known as event-driven operating systems. RTOS are widely used in embedded systems to perform tasks based on real-time events.

Prerequisites to Learn Embedded Systems

This is an introductory tutorial on Embedded Systems. The main prerequisites to grasp the concepts explained here is to have a basic understanding of electronics, logic gates, computer hardware, and basic computer programming.

Readers should also have a working knowledge of assembly language, C, or C++ programming, as most embedded systems are programed using these languages.

Who Should Learn Embedded Systems?

This tutorial on Embedded Systems is designed for students of electronics engineering who wants to learn the basic-to-advanced concepts of embedded systems and the 8051 microcontroller.

As this tutorial covers all the important concepts related to embedded systems, undergraduate college students can use it as a study resource or the professional can use it as a reference.

FAQs on Embedded Systems

In this section, we have collected some of the most Frequently Asked Questions (FAQs) on Embedded Systems, followed by their answers.

In the context of computing technologies, the term "embedded" is defined as the design and implementation of computer systems as an integrated part of large systems or devices.

Some of the common examples of embedded systems include −

  • MP3 players
  • Remote controls
  • Smart watches
  • Fitness tracker and bands
  • Infotainment and engine monitoring systems in vehicles
  • Home automation systems, etc.

In ECE (Electronics and Communication Engineering), an embedded system can be defined as a computing device that can perform a specific function and exists as a part of a large electronic system.

In IoT (Internet of Things), an embedded system is a small computer that is integrated into another computing device to perform a specific function and communicate with other IoT devices.

Embedded systems are used to perform different functions across various fields. For example,

  • In industries, they are used for monitoring processes and control machinery.
  • In communication systems, they are used for managing protocols, encryption, decryption, signaling, routing, etc.
  • In automobiles, embedded systems are used for infotainment, engine management, navigation, and controlling safety systems.

No, TV is not an embedded system, instead it is a package of various embedded systems. In a TV set, embedded systems are used for processing video signals, controlling volume, tuning with receiving signals, and more.

No, PCB (Printed Circuit Board) is not an embedded system. Instead, it is a component of embedded systems used for connecting other hardware components of the embedded system together.

Three of the most common embedded devices are: Smartphone, Smartwatch, and Smart TV.

Yes, Arduino is an embedded system. It consists of a microprocessor, a memory chip, and input-output peripherals connected on a single board.

Embedded systems can be designed for dedicated functions. They are reliable in terms of their functions. They consume less power and they can perform functions based on events.

Some of the major benefits of embedded systems include the following −

  • Embedded systems are highly customizable in terms of functionality.
  • They are designed for optimized performance.
  • Embedded systems are compact in size and cost effective.
  • Embedded systems require very low power for operation.

A real-time embedded system is a type of embedded system powered by RTOS (Real-Time Operating System). These systems are capable in performing operations within a specified time constraint.

Examples of real-time embedded systems include cruise control, autopilot flight control, self driving system in cars, etc.

Advertisements