Characteristics of Embedded Systems
Hello friends, I hope you all are doing well. Today we are going to have an in-depth discussion on the
Characteristics of Embedded Systems. We have discussed
What is Embedded Systems? &
Types of Embedded Systems in detail, in our previous tutorial. So, I am hoping that you have a clear idea of Embedded Systems.
Today, we will discuss different characteristics which are found in almost every Embedded system. So, let's get started:
Definition of Embedded Systems
We already know that an embedded system can be defined as,
- "A dedicated system specially designed to perform a designated function, with a microcontroller or a microprocessor as its chief component, along with a software embedded in computer hardware, is called an embedded system."
Components of Embedded Systems
Let's have a brief overview of the components of an embedded system, which would later help us determine its characteristics.
- A microcontroller or a microprocessor is the heart of the embedded system.
- Embedded software keeps the embedded system on its feet.
- Embedded Hardware, mechanical parts which serve to perform the designated function.
- I/O ports acting as a connecting link between the peripheral parts and the microcontroller or the microprocessor whichever is serving as the core of the system.
- And lastly, a timer to carry out the tasks timely!
Characteristics of Embedded Systems
Without any further delay, we will now discuss some of the general characteristics of an embedded system;
1. Specificity
- Embedded systems can either be domain-specific or task-specific.
- An embedded system is designated to perform the dedicated task only, it cannot be made to perform several automated functions from different inputs.
- Let me give you a basic example, you can only wash clothes in a washing machine, it cannot cook food so this is a task-specific embedded system.
- Meanwhile, domain-specific embedded systems fall under certain domains or categories such as a mobile embedded system is a domain-specific embedded system.
2. Strict Design Parameters
- The design metrics are pre-defined for every system but they are configurable to a great extent, or we can say there is room for additions and extensions in systems other than embedded systems.
- But there is very little room for extensions and additions in an embedded because we have to fix everything on a single chip, that can perform its designated function independently, as we have already discussed the components of an embedded system you can understand this very well by now!
3. Efficiency
- An embedded system must be efficient enough to react and respond to the real-time environment.
- In certain real-time embedded systems, a system has to react according to the real-time situation and adjust accordingly such as the air conditioner works on the same principle.
- The cruise control of a car also works in a real-time response manner by reacting to the real-time situation hence managing the speed and brakes.
4. Microprocessor or Microcontroller based
- The Embedded system must have a microcontroller or microprocessor.
Features of A Microcontroller
A microcontroller is different from a microprocessor, and a microcontroller has the following features being listed below;
- Most of the time a microcontroller is used according to the system requirements, which comes in different sizes such as 6 bit, 8 bit, 16 bit and 32 bit.
- The microcontroller is composed of an external processor and internal memory along with I/O components.
- It consumes less power because everything is present internally on the chip. A lot of microcontrollers have a power-saving mode as well.
- It is easier to write a program on the microcontroller.
- Some of the most commonly used microcontrollers are Arduino, 8051 Microcontroller and PIC Microcontroller.
5. Exclusive Memory
- Embedded systems don't have a secondary memory, their memory is present in embedded software in the form of ROM.
- Embedded systems can't have their memories extended or configured, have you thought why? Let me tell you because they are not general-purpose computers we use normally! They are dedicated systems for special tasks!
6. Multi-Rate Operational System
- Some of the large-scale embedded systems are multi-rate operational systems i.e a large number of embedded systems are performing their dedicated functions independently to run a system.
- All the multi-rate operational, embedded systems are well articulated to work synchronously with each other.
- A car is such an example, many embedded systems work independently to keep a car on road. Yo.com.derstanding of this concept, there is an in-depth explanation of embedded systems working in a car along with many others examples!
7. Compact Design
- An embedded system is designed to compact and lightweight as everything is to be placed on a single chip to perform a task including the microcontroller, timer, I/O parts, and the embedded software as well.
8. Minimal Power Dissipation
- Embedded systems are designed in such a way to dissipate power at its minimal.
- The goal is to conserve power and prevent overheating of the system by adding in heat sinks and cooling fans, and sometimes a larger battery is used to run the system.
9. Sophisticated Functionality
- Embedded systems are highly advanced and developed these days, which are not aware of the sophisticated functionalities of mobile phones and tablets.
- They are designed to perfection keeping in view the needs and demands of the consumer market!
- Every other person wants to own an Apple iPhone, isn't it? Just because of their sophisticated functionality!
10. Minimal User Interface
- Have a brief look at your air conditioner, your oven, or your washing machine, you might have noticed one thing in common, a minimal user interface.
- Embedded systems are designed with minimal user interface because users have almost nothing to do by themselves, you only have to provide the input or we can say instructions, the system is already fully automated to perform the designated task accordingly!
11. Safety factor
- A safety analysis is always necessarily carried out for the embedded systems to ensure the safety of the operator and the environment in case of any material damage or hazardous emissions from the system.
12. Cost-Effective
- An embedded system is designed in such a way to make it cost-effective, overall the circuit is small since everything is present on a single chip.
- A compact design and designated functionality make an embedded system less costly and high speed.
So, that was all about the characteristics of embedded systems, I have tried to cover almost every aspect, or maybe I have missed one or two, if you know any of the additional characteristics that I have missed, you can let me know in the comment section below!
Have a good day!
What is an Embedded System? Definition, Examples, Types & Development
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 |
1 |
Key Component |
Microcontroller/Microprocessor |
2 |
Electronics Hardware |
Must (At Least Basic circuit of the embedded controller) |
3 |
Mechanical Hardware |
Could be |
4 |
Programming |
Must |
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).
Embedded Controller
- 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.
Embedded Hardware
- 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.
Embedded Software
- 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:
Printer
- 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:
- Telecommunication.
- Medical Appliances.
- Military systems.
- Automobiles.
- 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:
Specific Function
- 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.
Specific Algorithm
- For performing specific tasks, the algorithm also needs to be specific.
- Although in smart embedded systems, Artificial intelligence has changed the game.
User Interface
- 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.
Real-Time Operation
- 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.
Multi-Operational
- 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:
Performance
- The performance and accuracy of an embedded system is the main feature.
- It is measured considering all the conditions and constraints on the system.
Cost
- 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.
Size
- 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.
Power Consumption
- 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.
Reliability
- 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.
Power Dissipation
- 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.
- Software.
- Converters.
Analog Components
Analog Components are very necessary components as they help in interacting with the real world. Examples of analog components are:
- Sensors.
- Actuators.
- Controllers.
Digital Components
Digital components mostly reside on the chip and do the processing operations. Examples are:
- Processors.
- Co-processors.
- Memory.
- Controllers.
- Buses.
- Application-Specific Integrated Circuits (ASIC).
Converters
Converters are used for converting signals. For example:
- Analog to Digital Converter (A2D).
- Digital to Analog Converter (D2A).
Software
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.
- Sophisticated.
- 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
- 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:
- Automobiles
- Telecommunication
- Consumer Electronics
- Computer
- Homes
- Offices
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. :)