What is Embedded System and How it Works?

Introduction

Embedded System by definition, is also known as an integrated system due to its combination of hardware and software (also known as Firmware). It comprises of intelligent computing devices that are surrounding us. The devices may be a smartphone, smart watches, smart home devices, medical equipment, security alarms, IoT products, etc.

They will talk with each other through the internet and runs remotely without human intervention. One of the facts is our world will connect to more than 50 billion devices in the nearby future (2020 to 2021) with emerging technology such as the Internet of things (IoT). Moreover, Machine learning and artificial intelligence will play a crucial role in designing embedded system products. To develop such systems, its worth to know the working of its Software and hardware development life cycle.

This beginner’s guide gives you a complete tutorial on Embedded systems. Before going to know the working, it is important to know the difference between General purpose PC (computer) and embedded device.

Embedded System VS General Purpose System

Many of you confuse between the two words, but there is a primary difference between the Microprocessor and Microcontroller in embedded CPU. A general-purpose CPU in a computer like a Microprocessor has external peripherals (Real-time Clock, USB, Ethernet, HDMI etc.) physically connected to it and are visible outside. But an embedded Microcontroller or Microprocessor unit interfaces few or all the peripherals to the CPU on a single SOC (System On Chip) IC.

Here are some of the key differences between General purpose operating system and Embedded operating system.

General Purpose Operating system

  • Runs in Multi-Tasking Environment with one or more tasks (sometimes known as threads).
  • Generic algorithms had been implemented for performing parallel tasks. They are meant for faster processing and high throughput.
  • Complex operations like 32 bit and 64-bit addition and subtraction can be done.
  • Cannot respond and interact with the outside analog world.
  • The cost is high due to high memory (RAM, ROM) availability.
  • Power consumption and Size are not a major design constraint.
  • Not real-time and reactive in a harsh environment.
  • User-friendly interface.

Examples: Windows, Linux, Mac OS.

What is Embedded System?

As the name implies, it may be hardware or software integrated to perform a particular function. It uses a Microcontroller/Microprocessor to perform a single job. It is a stand-alone device with or without operating system. Examples may be a washing machine, Music player, ATM, Vending machine, Data Logger, etc. Nowadays, Most of the devices run on the OS (Operating System). So, what is the need for an OS?

  • The user needs smarter devices capable of doing multiple jobs in less time.
  • Supports enough memory to run multiple applications.
  • Reusable and Stable with more software updates.
  • Suitable for integrated voice control and wireless applications such as WiFi, ZigBee, Ethernet, Bluetooth, NFC, and GSM protocols.

Some of the examples of an embedded system are smartphones, washing machines, Air conditioners, kiosks, etc.

Embedded System Applications

They are present everywhere. Doesn’t believe it? Most of people use without knowing them. The beauty is that it is invisible to the user, delivering a wealth of experience. Here are some of the applications of the embedded system which use a powerful operating system (OS) like Embedded Linux, Android, and Windows CE.

Smart Homes

Most of the products in your home are embedded which gives excellent experience and comfort to the user. Examples are Home Security system, Setup Box, Digital Camera, Television, Microwave Oven, Air cooler, Refrigerator, and much more.

Offices

They are also into commercial enterprise solutions for inter-networking business clients. Examples are Router, Modem, Printer, and Gateways.

Transportation

The automotive industry is well competing worldwide. Some of the Embedded subsystems in automobiles are Anti-lock Braking System (ABS), Air conditioning control, Ignition control, Airbag control, Rain sensing wipers.

Healthcare

The medical field is a critical one, and the use of embedded systems is a nightmare. The odd design may lead to a disastrous effect on society or an individual. Examples are Blood pressure monitors, Heartbeat monitors, pacemakers, telesupervision and surgery, Scanners, Portable Ventilators.

Industrial world

The recent challenges of embedded systems extended its scope towards automation. Automation is the process of doing a task repetitively. Automation increases machine productivity, reducing development cost and design time. Examples are Industrial machinery and control, Temperature monitoring, 3D printing machines, Robotics, and Industrial Internet of Things.

Aerospace and Defense

Aerospace and Defense is a rugged area where security and performance are most important. To achieve this reliable firmware and embedded software have to be built. Examples are Flight control systems, Actuation, Air and Thermal Management, Engine power, Vehicle turbochargers, Navigation system, Embedded Imaging.

Every complex system in the world can be made based on two ideas, Software and Hardware. To achieve that you have to start building smaller modules and integrate them to create an efficient subsystem. The embedded system can be partitioned into software and hardware components.

Embedded Hardware

The core of any embedded target is the electronic hardware – which resides on a Printed Circuit Board. The embedded development board is divided into five modules. They are Processor, Memory, Input devices, Output devices, and Bus controllers.

Hardware Layer of Embedded System

Hardware abstraction layer (HAL) is the fundamental resource of any embedded device and choosing a particular component depends on the requirement and specification of the designer. In the global market, there are many variants of hardware produced for different applications. Some of them are:

Microcontroller (CPU)

A Microcontroller is preferred to build small applications with precise calculation. Indeed, they have a limited amount of ram and less reliable. Some of the famous manufacturing companies are Altera, Atmel, Renesas, Infineon, NXP, and much more. Technically, a microcontroller is an intelligent device that computes the task execution time and allocates the memory resources assigned by the user in an efficient manner.

System on Chip (SoC)

SoC comprises a CPU, Peripheral devices (Timers, counters), Communication interfaces (I²C, SPI, UART), and Power Management Circuits on a single IC.

If your application should be more reliable with higher performance, low-cost SoC is the best choice. It supports one or more processor cores.

ASIC processor

ASIC means Application Specific Integrated Circuit.

Firstly the chip was designed to use for a particular application and owned by a single company. So no copyrighting of the product is allowed. Secondly, it consumes little power.

DSP processor

You may wonder, these are the most used processors for Audio and video applications. DSP Processors removes the noise and improves signal quality for your DVD player, Music player, and Gaming consoles.

Note: There may be hundreds of Microcontroller/Microprocessor present in the embedded computing system.

Input Devices

Input devices take input from the outside world. Some of the examples of input devices are sensors, switches, photo-diode, optocoupler etc. They accept input from the user and respond accordingly.

Output Devices

The output devices are the indications or results that occur due to input events from outside the microcontroller. Examples of output devices are LCD, Touch screen, LED, Motors, Seven segment displays, Buzzer, Relays, etc.

Bus controllers

The bus controller is a communication device that transfers data between the components inside an embedded system. Some of the bus controllers are Serial Buses (I2C, SPI, SMBus etc.), RS232, RS485 and Universal Serial Bus.

Memory

To store the data and deal with memory management, memory devices like flash and SD card, EEPROM is required. Some of the memories used in the embedded system are Non-Volatile RAM, Volatile RAM, DRAM (Dynamic Random Access Memory) etc.

Embedded Software

Software components are essential building blocks of embedded systems. Embedded software (sometimes called as firmware) written for Device drivers, Operating system, Application Software, Error handling, and debugging software.

Software layer of Embedded System

Device Driver

Device drivers or Board Support Package (BSP) are the core software components that control a peripheral device and supports connectivity. It is a piece of embedded code written for particular hardware. The peripheral may be I2C, SPI, UART, USB, CAN, GPIO etc. The user has to derive the low-level drivers for the microcontroller or microprocessor using specific control and data registers given in the datasheet. Next to the top of the low-level driver a high-level driver has to be written for the application software. Moreover, Middleware extensions such as FREERTOS, FATFS, LWIP (TCP/IP stack) has to be integrated.

Operating System (OS)

An operating system is a system software that manages resources like memory, I/O (Input-Output) management, etc. In an embedded system, different types of operating systems exist. Some of them are RTOS (Real-time operating systems), VxWorks, RTLinux, Nucleus, µCos, mobile embedded, stand-alone, and network embedded systems.

Top Embedded Programming languages

Most people do not know about programming languages used for embedded systems and the electronics world is changing every day. So, you need to update yourself in this competitive world. Most of the hardware platforms support multiple languages. For ease of development of firmware, it is required to learn Embedded C, C++ and Micro python.

C language is founded by Dennis Ritchie in the year 1972 with an operating system Unix. Embedded C is the most widely used languages for embedded systems due to the following reasons.

  • Performance-wise better.
  • Easy to use.
  • More reliable.
  • Directly interacts with the operating system.
  • Portable and compatible with any hardware.
  • Less over the head and better code optimization.
  • Supports Windows and Linux environment.

Embedded C++ is the enhanced programming language with few advantages over C.

  • Security wise better than C language.
  • Much closer to real-world applications.
  • Software development is easy.
  • C++ uses the object-oriented paradigm for data abstraction and encapsulation. It also includes features like polymorphism, classes and inheritance.
  • Suitable for 3D imaging and graphical applications.

Micro Python is an open-source object-oriented software used for real-time applications. It is human readable and easy to code. The programming APIs use built-in exception and error handling. This language is suitable for developers who are not interested in going through the low-level hardware details. It is useful for data analysis of sensors and devices. The user can write test cases in python to debug the hardware. However, it is entirely in the hands of the developer to choose C, C++, or Python for a given application.

How does an Embedded device work?

Every Embedded computing device may be your computer or mobile has some inputs and corresponding outputs.

"Working

Here is an example of how an embedded system works.

  1. It takes the analog/digital input from the user. Examples are Push-button switch, Keypad, Sensor, Touch Screen.
  2. Then, it processes the given input. Processing may be calculation or conversion. For example, an ADC (Analog to digital converter) converts a sensor analog input to digital output.
  3. After converting the analog value to digital output, you need to control using output devices. Examples are Motor, LCD, and Touchscreen.

# Interesting Facts

  • Real-time and reactive.
  • The system is always ready to accept input, process the input and give the correct
  • Low Power consumption, Compact in Size, Low cost.
  • Expected to work without human involvement.
  • Ability to observe, react, and control the external environment within a deterministic period.

Embedded Software Development Life Cycle

A proper embedded software has to be written to meet the requirement of the customer and to bring high-quality products to the market. To do that in an efficient manner, here are the seven steps to make your Embedded Product.

Step1: Understand the requirements

First of all, you need to know and understand the end-user specifications.

Step 2: Examine

Analyze the components (software and hardware) required to make the product.

Step 3: Design

It is the most critical phase of the development cycle. The developer needs to develop embedded hardware and software individually and integrate both.

Step 4: Develop

The Programmer develops the Prototype using available hardware and software tools to match the customer specifications.

Note: Prototype is the sample version drawn up to test a concept.

Step 5: Test

The developer examines the application by running software test cases to prove the possible potential of the prototype.

Step 6: Deploy

After testing the product, the developer checks the result in a real environment to realize the Proof Of Concept.

Note: Proof Of Concept is a technique used to validate an idea, but it may not be deliverable.

Step 7: Support and Upgrade

Depending on the user requirement, support and upgrade have to be provided to add new features at regular intervals.

Final Thoughts

Embedded system design should meet the performance and security with added safety. To ace this, the focus must be kept to implement a prototype and integrate futuristic technologies like MQTT, Big data, and cloud computing. Moreover, the user interface has to be taken into account for developing HMI (Human-machine interface) and GUI applications. Importantly, the embedded software has to be optimized for memory and power constrained Microprocessor and Microcontrollers.

Do you want to kick start your career in the embedded world? Doesn’t know where to start? Then, Explore the article on Career in Embedded Systems: Worldwide Opportunities.

Leave a Comment

1 Comment

  • this is a better document talking about embedded system and it gives us many information to this courses
    and it was make me happy because i knew the real application of embedded system and encouraged to learn it while i love it so i request to you to help me to give more about this session becouse i need to study it as well as possible then the more skills hence apply it in some sectors.

    thank you.