Hello friends, I hope you all are fine. Today, we will discuss What is an Embedded System? We will also have a look at Embedded Systems definition, examples, applications, types & development. For most of you, this term would have been quite familiar & normally people confuse it with a computer or Industrial PC etc. A computer is an application of high-performance Embedded computing but it’s not an embedded system itself.
In my article, I am going to tell you all the basic information, need to know about Embedded Systems. What is an embedded system? How is it different from our personal computers? What are its main features? How can we enhance the performance of Embedded Systems? What are the main components of Embedded Systems? What would be the design parameters and constraints in designing an Embedded System? How can we classify such systems? and in the end, I am going to share some common examples.
I have also posted a tutorial on What is Embedded Computer? So, you should also read that because I have shared the basics in it. Moreover, if you are interested in learning Embedded System Programming then you should have a look at 8 Things for Learning Embedded system Programming. Let’s first define a system before diving into embedded systems, because that’s essential and without understanding the basics you can’t move to the pro.
What is System ???
- A system is a group of units, joined together to work in a specific routine and perform some fixed operation.
- These units could be of any nature i.e. if you are working on an electronics system then these units will be electronic components.
- Similarly, if you are working on some mechanical system then these units will be mechanical equipment or machinery etc.
- So, now let’s have a look at the embedded systems and see what are its units.
What is an Embedded System ???
What is an Embedded System? In order to understand this question, let’s take a simple example of traffic signal lights. “Traffic signal lights” is a simple system, following a fixed routine (i.e. Red, Yellow & Green). Before embedded systems, DLD(Digital Logic Design) was normally used to design such systems using 555 Timer. In DLD circuits, we have to design logic using electronic components (logic gates etc.), which makes the circuit quite messy and thus too difficult to debug. Moreover, DLD circuits are too difficult to upgrade as it involves hardware testing. If you check the image on the right side, I have divided this circuit into 3 blocks:
- Green Block: Input Power Supply(battery).
- Red Block: Electronics circuitry for Logic Designing.
- Orange Block: Output LEDs.
In order to overcome all these DLD issues, embedded systems were introduced where we write the logic in programming code. So, unlike DLD(pure electronics), embedded systems consist of both electronics hardware and programming software. As you can see in the second figure, we are controlling 8 LEDs using a single microcontroller. Now all the logics are written within this microcontroller in the form of programming code i.e. For how long Red LED should remain ON “OR” the duration between lights etc. Now the electronics part is very simple, we can add as many LEDs as we want, we can also change the logic in our software without touching the hardware & most importantly, now we can make it smart by adding cameras or sensors etc.
|Embedded Systems Key Features|
|2||Electronics Hardware||Must (At Least Basic circuit of the embedded controller)|
|3||Mechanical Hardware||Could be|
|5||For Microcontrollers||Low-Level Language(i.e. C, Assembly language etc.)|
|6||For Microprocessors||High-Level Language(i.e. Python, C# etc.)|
Let’s have a look at a proper Embedded Systems Definition:
Embedded Systems Definition
- An Embedded system is a microprocessor/microcontroller based smart system, constituted of both hardware(electronics must) & software(programming) and designed to perform a set of tasks.
- It could be a big independent system or a small part of some other system(Embedded or not).
- An Embedded Controller is a key component of an embedded system, which stores programming code in its ROM(read-only memory) and performs assigned tasks. An embedded controller is of two types:
- Microcontroller: Arduino, PIC Microcontroller, Atmel etc. (Low-Level Programming: Assembly Language, C programming etc.)
- Microprocessor: RaspberryPi, FPGA, BeagleBone, Arduino YUN etc. (High-Level Programming: Python, C++ etc.)
- So, we can say embedded systems have their own programmable computer, which we can call embedded computer systems but it’s different than general-purpose computers.
A general-purpose computer such as Pentium PC or Intel Industrial PC is not embedded systems as it doesn’t perform any specific embedded function. A PC itself is connected to many embedded systems, such as a printer, keyboard, mouse, scanner, modem and many others. Such systems perform specific functions and have their own microcontrollers in them.
- In order to power up an Embedded Controller, we need to design an electronics hardware circuit, which we can call Embedded Hardware.
- In the case of microcontrollers, we also need to design its electronics basic circuit, to provide operating frequency.
- If our embedded system is dealing with complex items i.e. sensors, motors, actuators, solenoids etc., then we have to design their respective control circuits.
- Embedded hardware could also be some mechanical structure or hydraulic/pneumatic pumps etc.
In simple words, embedded hardware depends entirely on the nature of embedded systems but it must involve electronics circuitry as we have to power up our microcontroller.
- An Embedded Software is a piece of programming code, has to be uploaded in ROM(read-only memory) of the Embedded Controller & enables the embedded system to perform specific tasks.
- Microcontroller companies have also designed windows based software, where programmers can write & compile codes.
- For Microprocessor, high-level programming languages are used i.e. python, C#, C++ etc.
Embedded Systems Example
I have written a detailed tutorial on Examples of Embedded Systems, which you should read as I have shared real-life examples of Embedded Systems in it. Let’s have a look at a few of them:
- The printer has its own embedded computer system, thus it doesn’t need any external controller.
- The embedded controller in the printer is programmed to perform few fixed tasks i.e. read the data and print it on paper.
Few other Embedded Systems examples are:
- Medical Appliances.
- Military systems.
- Consumers Electronics.
I hope that by now, you have an idea of what is Embedded Systems? Now let’s have a look at key characteristics of an embedded system.
Characteristics of Embedded System
Embedded Systems have few specific characteristics, which you will find in all of them, These Embedded Systems characteristics are as follows:
- As I told in the previous section, an embedded system is not a general-purpose system, instead, it’s designed to perform specific functions.
- If we have a look at embedded system examples (i.e. Camera, Mp3 Player, mobile phones etc.), they are all designed to perform some fixed task(although rich in features).
- These specific tasks are installed in embedded systems using programming and once installed, embedded systems keep on doing their assigned tasks.
- For performing specific tasks, the algorithm also needs to be specific.
- Although in smart embedded systems, Artificial intelligence has changed the game.
- Embedded systems may or may not have a user interface i.e. GUI (graphical user interface).
- In 95% Embedded projects, GUI is available in either hardware(LCD, GLCD, TF etc.) or software(interface to control machines) form.
- A user interacts with the embedded system using these user interfaces.
- Another characteristic of embedded systems is to operate in real-time.
- According to the associated functionality, embedded systems react to events happening in real time and response accordingly.
- In Embedded systems, multiple operations may occur at the same time at different rates.
- For example, obtaining data, processing data, processing audio or video signals etc.
- All these operations may occur simultaneously or at different times and at different rates.
- Here, I should discuss the MIMO systems, they are multi input and multi-output systems and its opposite is SISO means single-input single output.
Now let’s have a look at few features of an Embedded system:
Features of Embedded Systems
These features decide the overall ranking of an embedded system:
- The performance and accuracy of an embedded system is the main feature.
- It is measured considering all the conditions and constraints on the system.
- The cost factor is another important feature.
- Such systems are built for performing specific functions and in large quantities.
- The design process is costly but once a system is designed, customized and produced in bulk, overall cost becomes minimum.
- One of the features of an embedded system is its size.
- The size should be small and it is done by adding more functionality in a single chip so that the need for external parts is reduced.
- The power consumption is also low.
- This feature is becoming more and more important in new systems.
- Sometimes it happens that your embedded system has to be isolated and needs to run for a very long time so in such cases the power consumption is a critical factor and it has to be really low.
- Embedded systems are reliable if they are operated under normal conditions.
These are the features of embedded systems. In the next part of my article, I am going to mention some constraints that should be kept in mind while designing such systems.
Embedded Systems Constraints
There are three constraints on designing of almost every embedded system:
Available System Memory
- It is necessary to consider the memory available when designing an embedded system.
- So selection of Microcontroller or Microprocessor plays an important role here.
- Before starting an embedded system, you must first do the complete calculation of memory usage.
Available processor speed
- One of the critical things to look upon is processor speed in the case of embedded systems.
- For example, if your task is to calculate the time of some incident then you must select a high speed processor.
- The need to limit the power dissipation is another constraint.
- This is usually done by adding more functions to the CPU.
- New designs of high performance embedded processors have more and more functions on a single chip to reduce space and power consumption.
- It’s the choice of the user to decide which functions he wants to use.
Now I am moving towards the next section of this article, where I am going to give you an idea of the basic composition of embedded systems.
Embedded Systems Components
- Embedded Systems Components can be categorized into four main groups
- , which are:
- Analog Components.
- Digital Components.
Analog Components are very necessary components as they help in interacting with the real world. Examples of analog components are:
Digital components mostly reside on the chip and do the processing operations. Examples are:
- Application-Specific Integrated Circuits (ASIC).
Converters are used for converting signals. For example:
- Analog to Digital Converter (A2D).
- Digital to Analog Converter (D2A).
Without software, an embedded system cannot work. The software is written in both low & high-level languages. This software is burnt to some non-volatile memory i.e. ROM. Examples are:
- Application Programs.
- Exception Handlers.
So these were the components of an embedded system. Let’s now talk about types of Embedded Systems:
Types of Embedded Systems
- There are numerous types of Embedded systems, based on performance and functionality.
- Based on performance, there are three types of Embedded systems, which are:
- Small Scale.
- Medium Scale.
- On the basis of functionality, Embedded systems types are:
- Real-Time Embedded systems.
- Standalone Embedded systems.
- Networked Embedded systems.
- Mobile Embedded systems.
Let’s have an overview of these Embedded Systems types, one by one:
Real-Time Embedded Systems
- If an embedded system has to operate for a specific time, without any delay in the output/input, are termed as Real-Time Embedded Systems.
- Vehicle Number Plate Recognition using Camera is an example of Real Time Embedded System, such cameras are operating in big cities, they get the plate number using image processing in real-time.
- Real-Time Embedded Systems follow time constraints & give output at specific times.
- Here’s a screenshot of Pixy Camera, which is very small in size, easily interfaceable with microcontrollers/microprocessors and used in real time embedded systems, you can read more about it here: Getting Started with Pixy Camera.
Stand-Alone Embedded Systems
- Stand alone embedded system takes input from its own input ports, processes data and gives output.
- Such systems work on their own, without using any external host.
Networked Embedded Systems
- Networked Embedded System is the fastest-growing type of embedded systems.
- These systems are connected with networks that could be LAN, WAN or the internet.
- The connection can be wireless or wired.
- Such systems use the network to access all the resources.
Mobile Embedded Systems
- This is the class of embedded systems that are used in portable devices.
- Examples of such devices are mobile phones, cameras, music players etc.
Based on the performance of the microcontroller, there are three types of embedded systems:
Small Scale Embedded Systems
- If the microcontroller used in an embedded system is 8 bit or 16 bit, it is classified into a small scale embedded system.
- Such systems have less complex hardware and software parts and can also be operated on batteries.
- Normally such embedded systems use Arduino boards or PIC Microcontrollers or 8051 Microcontrollers etc.
Medium Scale Embedded Systems
- The second class is a medium scale embedded system.
- It uses one or more than one 16 bit or 32 bit microcontrollers.
- It may use DSP (digital signal processor) or may use RISC (reduced instruction set computer).
- The hardware and software of these systems are complex.
Sophisticated Embedded Systems
- The third class of embedded systems is sophisticated.
- Such systems have huge hardware and software complexity.
- So they need PLA (programmable logic array), scalable or configurable processors.
- These systems have speed constraints.
That was all about the types and classification of embedded systems. I have discussed the basic information about each type with you guys. I am moving towards the next segment which is on microcontrollers. It is important to discuss why microcontrollers are used with embedded systems. Let’s define a microcontroller first.
Embedded Systems Development
- If you ask me who’s an Embedded Systems Developer, my reply will be a Mechatronics engineer.
- If you want to be an embedded systems developer, you have to learn:
- Electronics Circuits: It’s required for interfacing sensors/modules with embedded controllers.
- Embedded Programming: Embedded controllers are trained to specific tasks using programming codes.
- Microcontroller has a CPU as the main part and other parts like RAM, ROM, I/O ports, and timers on a single chip.
- You can say that it has all components fixed on one chip.
- It is different from microprocessors which have Input/ output ports, timers and other peripherals connected as external parts.
- You should also read 10 Things for Choosing Microcontroller as it’s gonna help if you wanna select Microcontroller for your Embedded Systems Project.
- Microcontrollers are suitable for applications which have limits on size and cost.
- The user can not add external devices to such a processor.
- No memory could be added.
- Few examples of Microcontrollers are Arduino, PIC Microcontroller, 8051 Microcontroller etc.
- Microcontrollers are suited for embedded systems.
- Other than microcontrollers, field-programmable gate arrays (FPGAs), Application specific integrated circuits (ASIC), custom logic etc. could be used as alternatives.
- They come in a variety of types. 4 bit, 8 bit, 16 bit and 32 bit. Mostly 32 bit microcontrollers are used in embedded systems.
- The advantages of using microcontrollers are:
- Microcontrollers are efficient.
- They can make use of the same logic to perform many diverse functions.
- Microcontrollers simplify the design of families of products.
- They use more logic to implement functions.
- Microcontrollers now have features that control and minimize power consumption.
- Owing to all these advantages and growing development in this field, microprocessors are used vastly.
Now let’s move towards the last segment of this article. I am sharing some applications here.
Embedded Systems Applications
There are a number of areas where embedded systems are used today. Their applications are not limited and it is hard to write all of them here. Embedded Systems are used in areas like:
- Consumer Electronics
Here I am going to give you a list of other applications and examples of embedded systems. They include:
- Anti-lock brakes.
- Auto-focus camera.
- Teller machines.
- Automatic toll systems.
- Automatic transmission.
- Avionic systems etc.
So, that’s all about the Embedded Systems and I hope now you can easily understand what is an Embedded System? why and where it is used? You should also have a look at these Embedded System Projects. If you have any questions, regarding this topic then ask in comments and I will try my best to reply them. 🙂