Table of Contents
In this article we are going to discuss about the embedded systems its introduction, characteristics and also the important examples related to the embedded system.
Introduction of the Embedded System:
Embedded system as its name suggests embedded means something that’s attached to another thing and an embedded system can be taught of as computer hardware system having software or in other words an embedded system is a combination of computer hardware and software designed for specific function.
An embedded system is a computer system which is a combination of computer processor, computer memory input, output and peripheral devices that has a dedicated function within a larger mechanical system or electrical system. Embedded system is dedicated for a specific function it can be a mechanical function or an electrical function. If you take the examples like printers, washing machine, automated washing machine,digital camera or atm card. So these all items are based on the embedded systems and are dedicated for a specific function. Now this system can be either a part of a larger system or it can be as a whole a separate system. So the embedded system work is based on a specific plans or programs with dedicated components. Now if you take an automatic chocolate vending machine or an atm. If you see the working of these systems they are actually having specific programs and plans and based on which only they are working. So if you insert a coin then there will be a select option for selecting a candy or a cool rings. While in the case of printer you know that when you click on the print option it should be taking a printout so there is a specific plan or a program for this embedded system based on which it is working and they have dedicated components for its function. Every embedded system they only have the required amount of hardware and they only have the specific application software. All softwares are not included in an embedded system for example if you take the automatic washing machine it will work on specific software and hardware for washing. This software will not work on other embedded system because it is specially designed for the washing machine.
Components of Embedded System:
An embedded system has mainly three components because this question also can come in interviews. So you should be saying that the main components of an embedded system are hardware, application specific software, and real-time operating system.
So hardware means you should be required amount of hardware it is not a general purpose system so you don’t need to put every hardware to the system.
The hardware components can be:
- Power source
- Clocking circuit
- Serial port
- Parallel port
- Interrupt controller
A processor is the heart of the embedded system. Processor can be of the following categories:
- General purpose processor
- Embedded processor
- Digital signal processor
- Media processor
- Application specific processor
- Application specific instruction processor
Mostly we use microprocessor or microcontroller.
We know that to operate any system we require power to operate the system this power can be provided using three possible methods:
- The system will have its own power supply or if it is part of another larger system then it will be using power from the larger system.
- Supply from a system to which the embedded system interfaces for example in a network card
- Charge pump concept used in a system of little power in some cases if take ATM cards which is type of embedded system. So in the ATM card at the moment we insert the card in ATM machine at will get power so we called at charge pump. So this charge pump will provide the necessary power.
The clock isused to provide the synchronization or timely execution of the instructions. The oscillating circuit will be used to generate the main clock.
Various forms of system memory are present in embedded system which are:
- Internal memory at microcontroller
- RAM at system on chip or external RAM
- Flash / EEPROM
- Internal caches at microprocessor
- External RAM chips
- ROM / PROM
Embedded system often requires mechanisms for counting the occurrence of even and for performing tasks at regular intervals. Embedded system are time bounded for counting the number of events or time between the events. The embedded system requires the mechanism for performing the tasks at regular intervals. Tasks should be completed at specific time period. Timer is used for generating delay and for generating waveforms with specific delays. So these are the main functions or operation performed by the timers.
A serial port is a serial communication interface which information transfer in or out one bit at a time. Common serial protocols include UART, SPI, SCI and I2C.
A parallel port is used for connecting peripherals. The name refers to the way the data is sent parallel ports send multiple bits of data at once. Parallel port requires multiple data lines in their cables and port connectors and tend to be larger than contemporary serial ports.
Application Specific Software:
It only requires the hardware which is needed to perform that specific operation or application.
RTOS real time operating system is another important component that is present in an embedded system. Now whether it is a real-time operating system or a normal operating system the function of an operating system is to coordinate hardware and software. RTOS that is real-time operating systems is coordinating mainly it is doing the function of coordination between hardware and software. Now a question arise in our minds that why we are going for a real-time operating system? Because if you take the case of automatic chocolate vending machine or automatic washing machine here there is a lot of importance to time at this time interval the washing should be completed or within this time interval the draining should be completed. The spinning should be completed or drying should be completed. So likewise there is actually a lot of importance to time if you take most of the embedded systemstime is actually a very critical thing. So if you miss the time limit or the deadline the functioning of that embedded system will be completely disturbed. So in that case we are going for real-time operating systems.
Difference between the real time operating system and non-real time operating system:
Now the main difference between a real-time operating system and a non-real-time operating system is that in real-time operating systems they are giving more importance to deadline if that deadline is missed the performance of the system will be very much affected. So that’s why we are going for RTOS while in non-real operating system we neglect the time deadline.
Embedded system development tools:
As we have discussed that an embedded system is a combination of computer hardware and software designed for specific functions within a large system. So all kinds of embedded systems need software’s to run them for performing specific functions, for example a microcontrollers contains software for handling or operations. In order to develop this software anumber of different tools are needed. These tools include editor, compiler,assembler, debugger, and simulator.
Editor is first tool that you will need in order to write and edit the source code of embedded system application and the code. The code is written in a programming language either C, C++ or assemblylanguage.
Compiler / Assembler:
Once you are done with your source code you need to convert that code to machine language which microcontroller or microprocessor will operate and the difference between compiler and assembler is that the assembler converts assembly language to machine language and on the other hand compiler converts a high-level language as C or C++ to low-level language which is machine language.
It is a computer program that combines one or more object code files and libraries together into one single final program as we know it is important to write a large program into small parts and functions in order to make the coding easy and these small parts in the end need to be combined to one single final program which requires a linker.
In order to develop a program in C or C++ or other language we need some predefined variables and functions. These functions and variables are divided into related groups called Header File and library are collections of these headerfiles for example in order to control raspberry pi GPIO general purpose input/output by python for example you willl need a module and the library that calls our RPI.GPIO, so before writing the main program you need to import a module.
Debugger as the name suggests is a tool that is used for debugging your code. It is a software program used to test and find bugs and error in your code also it detects the location where the error occurs. So you can easily do the corrections, so I think you get to kno whow important debugger is in development of software embedded systems.
The simulator enables you to know how the code that you created actually works in reality and using simulator you can implement your code in microprocessors and microcontrollers and also you may be able to see interactions of sensors and actuators with your code, an example of simulator is Proteus which it’s used for simulation of microcontroller based projects and microprocessor based projects.
Example of embedded system development tools:
IDE (integrated development environment): An IDE is software that contains all the necessary tools required for embedded systems software development. An IDE normally contains an editor, compiler, debugger and it also provides a user interface, it’ depends on what kind of microcontroller microprocessor you use. You can choose from many software development tools and IDE for example there is MPlab, MPlab is an IDE from microchip technology, this IDE allows you to discover configure develop the debug and qualify with the system software for most of microchips microcontrollers an also we have KEIL ARM which is an IDE for a wide range of ARM Cortex and based microcontroller devices, this software includes compiler, assembler, linker, debugger, and simulator and one of the most important tools for embedded system software developers. MATLAB comes very handy when it comes to embedded systems it’s one of the best tools for embedded system engineers to develop and test their design to make sure design works as expected MATLAB gives you Simulink for model-based environment an embedded coder in Simulink helps you to generate a well optimized code for the embedded controllers which reduce time to manually write the software and also you have options to test cases in hardware and software in runtime and obtain the real-time results.
Characteristic of the embedded System:
So i have actually included an image so that it will be easy for you to remember the characteristics.
Let us start from the most important one the most important characteristic of an embedded system is that they are task specific. The examples which we have discussed till now they are all dedicatedly designed for performing some specific applications. So these systems are actually very time-bounded systems that have minimum user interface once the system is designed you can actually make it as a standalone unit. It will be functioning as its own so user interface will be minimum. Next high efficiency, high reliability, highly stable, so we know that these systems are actually having only required amount of hardware and required amount of software. So these systems will be highly efficient and reliable because they are actually dedicatedly designed for performing a specific application. So they will be actually mastering in that application. So you don’t need to worry about its functionality and also they are highly reliable and efficient and also require less power consumption because unwanted things are eliminated from this type of systems. It has low cost.
Examples of the Embedded system:
The examples of embedded system if you look around you can actually see lots of embedded system examples. Nowadays a lot of things are being designed based on embedded system some examples are digital camera, washing machine, printer, central heating systems, domestic appliances like dishwashers tv, digital phones, the digital watches, electronic calculators, atm machine, atm card then automatic chocolate vending machine the fitness trackers. All these are actually examples of embedded systems.
Important questions related to embedded system:
- What is the difference between a general purpose system and an embedded system?
Ans: So if you say a general purpose system we can say that laptop or computers are actually general purpose systems. Whereas if you take a printer or a digital camera these are actually embedded system. Now what is the basic difference between these two so the general purpose system means for example a computer it is it can be used to do a lot of applications like you can make use of a computer to do a lot of applications but embedded systems you can actually use for only a specific task for example washing machine it can be only used to wash the clothes and drain them you cannot use it for other purpose for example a printer it can be only used for taking of printouts but if you talk about a general system like computer you can actually make the computer do a lot of applications. You can run a lot of applications in that system whereas for a printer you cannot make it do other things. So they are very much application specific so that is the basic difference between a general system and an embedded system.
What is RTOS real-time operating system?
They are operating systems which are giving a lot of importance to deadline so for a real-time operating system every task has a deadline and every task should be completed or should be completing within that deadline otherwise the system cannot perform function or something that serious damage can occur. So that type of operating system are called real-time operating system now the examples of rtos are LINUX, UBANTU, VXWORKS all these are examples of real-time operating systems whereas windows is a non-real-time operating system. Now the basic difference between these real-time and non-real-time is that if you take the case of windows. Windows is also an operating system but it is not real-time because here the importance is more given to the accuracy the accuracy is given more importance time is not given as much of importance whereas for the case of rtos time is the most important parameter accuracy is coming next or after time only. So even if the result is not very accurate but if the processing is done within that time limit then that type of processing you can actually see in rtos. So anyway that is the basic difference between real time and non-real time system.
Why embedded systems are less costly?
if you take the case of a printer you only have the required amount of hardware for taking the print outs or for inserting the paper or for taking the print out so all these components which we are putting in that embedded system. These are hardware components which are dedicated ones there is no component which we are not using in this process.So the components that is hardware or software both are application specific so unwanted cost is eliminated by doing this so that is why the embedded systems are less costly.