Hello friends, I hope you all are fine and enjoying your lives. Today I am going to tell you about Embedded Systems. For many of you, this term would be quite familiar. In my article, I am going to tell you all the basic information you need to know about Embedded Systems. What is embedded systems? How is it different from our personal computers? What are its main features? How can we judge 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 with you guys.
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 the details of embedded systems, because that’s essential and without understanding the basics you can’t move to the pro. Moreover, I have also posted a lot of Embedded System Projects on my blog and you must check them out so that you learn more from them.
What is System ???
- A system is a group of units that are 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 Embedded Systems ???
- An embedded system is that system which has computer hardware with software embedded in it.
- It is a device which has a programmable computer but such a computer is not general purpose computer.
- It may be an independent system or a part connected with some other system.
- An embedded system product is controlled by an internal microprocessor or microcontroller instead of some external control unit.
- The ROM of microcontroller is burned with the program to perform specific functions of the embedded systems.
- Micrcontrollers normally used to design embedded systems are Arduino, PIC Microcontroller, Atmel Micrcontroller, 8051 Microcontroller etc.
A general purpose computer such as Pentium PC is not an embedded system as it does not perform only specific functions. It can be used for a number of applications. Different programs can be installed on a PC for different tasks. A PC has a RAM and an operating system. The operating system loads application software into RAM and then the CPU runs it. While in the case of an embedded system, there is ROM in which application software is burned which can usually perform only one task.
A PC itself is connected to many embedded systems, such as printer, keyboard, mouse, scanner, modem and many others. Such systems perform specific functions and have their own microcontrollers in them. I am going to explain this with the example of a printer.
Example of Embedded Systems
I have shared a detailed tutorial on Examples of Embedded Systems which I think you should read so that you got to know about the real life applications of Embedded Systems.
- A printer is an example of an embedded system.
- It does not need an external controller.
- It has its own control unit embedded in it
- The controller is programmed to perform only one function that is specific.
- The function performed by the printer is to read the data and print it on the paper.
I hope that by now you have an idea that what it is. Now I am going to tell you the key features of an embedded system.
Key Features of an Embedded System
The features or characteristics of such a system are as under:
- As I told in the previous section that an embedded system is not general purpose.
- It is designed to perform special functions.
- So, embedded systems are designed for doing some specific tasks and then they are installed and those embedded systems keep on doing their specific tasks.
- For performing specific tasks, the algorithm is also specific.
- Separate programs are written to meet the requirements and perform the tasks associated with a system.
- Embedded systems have a user interface such as a GUI (graphical user interface).
- A user can interact with the system using the user interface.
- Sometimes, this GUI could be very simple like just push buttons and in some systems it could be really complex like graphical LCDs.
Real Time Operation
- Another feature of these systems is that they work in real time.
- It means the way of working of such systems.
- According to the functionality associated, they can react to events happening in real time and work according to them.
- In such systems, many operations may take place 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 system and its opposite is SISO means single input single output.
- The overall performance and accuracy of an embedded system also counts.
- It is measured considering all the conditions and constraints on the system.
- So, if your embedded system is just measuring the atmospheric temperature then it will be quite efficient because its quite an easy task.
- 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 feature 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 happen that your embedded system has to be isolated and need 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.
Constraints for an Embedded System
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 thing 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 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 single chip to reduce space and power consumption.
- It’s the choice of 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 on the basic composition of embedded systems.
- The components used to build up an embedded system can be categorized into four classes.
- I am going to discuss these components below:
Analog Components are very necessary components of such a system. They are important because they help in interacting with 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 very important building blocks. They are useful so that digital and analog components can work together. For example:
- Analog to Digital Converter (A2D).
- Digital to Analog Converter (D2A).
Without software an embedded system cannot work. The software is written in high level language. This software is burnt to some non volatile memory. Examples are:
- Application Programs.
- Exception Handlers.
So these were the components of an embedded system. Let’s now talk about classification.
- Embedded systems can be classified based on performance of microcontroller or on the functionality.
- Based on performance of microcontroller, they are divided into three big classes.
- On the basis of functionality, they are divided into four types.
- Based on functions performed by embedded systems, it is divided into four types:
- The first type of embedded system according to functional requirement is real time embedded system.
- Such systems perform operations and give output at specific times.
- For completing the task assigned they follow time constraint.
- Stand alone embedded systems are the most common in use.
- These are the systems which can work on their own without using an external host.
- These devices take input by its own input ports, process data and give output.
- One example of stand alone system is a camera.
- Here’s a screenshot of Pixy Camera which is very small in size and you can read more about it from Getting Started with Pixy Camera.
- This is the fastest growing type of embedded systems.
- These systems are connected with network that could be LAN, WAN or internet.
- The connection can be wireless or wired.
- Such systems use network to access all the resources.
- This is the class of embedded systems which is used in portable devices.
- The examples of devices are mobile phones, cameras, music players etc.
Based on performance of microcontroller, they are divided into three types:
Small Scale Embedded Systems
- If the microcontroller used in embedded system is 8 bit or 16 bit then it is classified into small scale embedded system.
- Such systems have less complex hardware and software parts and can also be operated on batteries.
- Normally such embedded system uses Arduino boards or PIC Microcontrollers or 8051 Microcontrollers etc.
Medium Scale Embedded Systems
- The second class is 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).
- 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.
- 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 its 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 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.
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 Embedded Systems and why and where they are 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. 🙂