What are Embedded Systems?
Embedded Systems can be defined as a microcontroller or microprocessor based system of hardware and software designed to perform dedicated functions.
In simple words, Embedded System is a combination of hardware and software (aka Firmware) designed to perform specific functions. It can either act as a function in an independent system or be a part of a large system. The system can be programmable or have fixed functionality.
e.g.- Fire Alarm, Smart-Watch, Vending Machines, Digital Camera, ATM, Calculator, etc.
Embedded Systems have following components:
- Hardware of embedded systems is based around microprocessors and microcontrollers
- RTOS (Real-Time Operating System)– These are not always included in embedded systems, especially for small-scale systems. RTOS defines how the system should work by supervising the software and setting rules during program execution.
Let’s try to understand Embedded Systems with an example.
It uses the Embedded System to manage various aspects of printing. Along with its main task of printing, it also takes input from the user, manages communication with the computer, handles faults, senses the paper in the paper tray, etc.
Here, the main task of the processor in the printer is to understand the text and control the printhead in a way that it discharges ink where it is needed only. To perform this task, it needs to decode the different files given to it and also understand the font, graphics used in it.
How do Embedded Systems Work?
They are low-cost, low-power consuming devices that are embedded in other mechanical or electrical systems. They are typically designed to deal with real-time computing constraints and are controlled by RTOS that can process data as soon as it is received without any buffer delay/queue delay.
Generally they comprise of processor, power supply, memory, communication ports and system software.
Embedded systems are built around microcontrollers or microprocessors. Microcontrollers include one or more processors along with integrated memory and programmable input/output peripherals. Whereas, microprocessors use separate IC for memory and peripherals instead of them being on a single chip.
Embedded System requires significantly low power when compared with standard computers due to their small size and low processing power. Hence, we choose a power supply that offers a stable and smooth power output to the microcontroller with adequate output current for driving the load and stable performance.
If using a microcontroller, then the memory is available on the chip. But if a microprocessor is used, then a memory chip needs to be added to the system. Embedded Systems use ROM (Read-Only Memory) for storing the software used to operate the system and RAM (Random Access Memory) to temporarily store data that is received or is in-use by the system.
Embedded System communicates to transmit data between microcontrollers or microprocessors, peripheral devices, memory and other systems. The communication protocol should be selected so that the data exchange can take place and also ensure that all the devices are communicating using the same protocol.
Embedded System Software and RTOS
Programming for Embedded System is mostly done using C,C++, Embedded C or assembly language. The system software including RTOS is stored in the memory chip and is accessed whenever power is given to the system.
- Takes the analog/digital input from the user (e.g. Switch, Keypad, etc.)
- Then, it will be processing the given input. Processing maybe conversion or calculation. (e.g. ADC converts sensor input data into digital form)
- After conversion, it will form an action using output devices. (e.g. LCD, Motor, etc.)
Characteristics of Embedded Systems
- Real-Time Performance and built around RTOS – React continually to changes in the system’s environment and compute some results in real-time without delay.
- Task-Specific– Usually performs a specialized operation and does the same repeatedly.
- Embedded Systems have tight constraints on design metrics. Design Metrics is a measure of features such as its cost, size, power and performance. It must be of size so that all fits on a single chip; performance should be fast enough to process data in real-time and consume minimum power to extend the battery life.
- Must have connected peripherals to connect input and output devices
- Are either microcontroller or microprocessor based
- Used for sensing and real-time computing in internet of things (IoT) devices, which are connected to the internet and don’t need user to operate
- Memory is included, as software will be embedded in the ROM.
- Software is used for more features and flexibility whereas Hardware is used for performance and security
- Can vary in complexity and in function which affects the type of software and hardware used
Basic Structure of an Embedded System
Basic Structure of an Embedded System consists of:
Measures the physical quantity and converts it into electrical signals. Stores the measured quantity in the memory. The signal is read by any electronic instrument like ADC.
Analog-to-Digital Converter converts the analog signal sent from the sensor into a digital signal.
Processor and ASIC
Processors process the data to measure the output and store it in the memory.
Digital-to-Analog Converter converts the digital data fed by the processor into analog data
Compares the output given by DAC to the actual (expected) output stored in it and stores/executes the approved output.
Types of Embedded Systems
The two classification of Embedded systems are:
A. Based on Performance and Functional Requirements:
Real-time Embedded System
When an output is required at a particular time, real-time embedded systems can be used. When we need to complete a task on time or when we must meet a deadline for an event. To design the Real-time Embedded System, we need timing analysis, multitasking design, debugging, cross-platform testing and architecture design. For improving the performance and to avoid failure, excellent hardware is embedded. e.g.- In Healthcare, Military sector, etc.
Stand-alone Embedded System
They are independent systems which can work by themselves they don’t depend on a host system. It takes input in digital or analog form and provides the output. These systems offer flexibility and efficiency even though they work alone. e.g.- Washing Machine, Microwave ovens, etc.
Networked Embedded System
They are connected to a network which may be wired or wireless to provide output to the attached device. They communicate with embedded web server through network. Due to the flexibility and connection, this category can be considered as the fastest growing in the embedded systems. e.g.- Home Security Systems, etc.
Mobile Embedded System
They are small and easy to use and requires less resources. They are the most preferred embedded systems. In portability point of view mobile embedded systems are also best. e.g.- Digital Camera, Mp3 player, etc.
B. Based on Performance of Microcontroller:
Small Scale Embedded System
They are designed using an 8-bit or 16-bit micro-controller. They can be powered by a battery. The processor uses very less/limited resources of memory and processing speed. Mainly these systems does not act as an independent system they act as any component of computer system but they did not compute and dedicated for a specific task. The codes for developing these embedded systems can be written with the help of any IDE.
Medium Scale Embedded Systems
They are designed using an 16-bit or 32-bit micro-controller. These medium Scale Embedded Systems are comparatively faster than that of small Scale Embedded Systems. Integration of hardware and software is complex in these systems. C, C++, Java are the programming languages are used to develop medium scale embedded systems. Different type of software tools like compiler, debugger, simulator etc. are used to develop these type of systems. They can also be developed using DSP (Digital Signal Processor) and ARM (Advanced RISC Machine).
Sophisticated Embedded System
They are designed using multiple 32-bit or 64-bit micro-controller. Large scale complex functions usually require Sophisticated Embedded Systems. These systems have high hardware and software complexities. In general we use both hardware and software components to design final systems or hardware products.
Difference between Microcontroller and Microprocessor
|RAM, ROM, I/O Ports, and Timers must be added externally and can vary in numbers.||RAM, ROM, I/O Ports, and Timers need not be added externally. These components are embedded together on a chip and are fixed in numbers.|
|Bit Handling instruction is less||Offers many kinds of bit handling instruction|
|It offers rapid movements of code and data between external memory and microprocessor||It offers rapid movement of code and data in microcontroller|
|Helps in designing general purpose computers||Helps in designing application-specific dedicated system|
|Allows you to do do multitasking at a time||Single task oriented system|
|Designers can decide the number of memory or I/O ports needed.||Fixed number for memory or I/O makes a microcontroller ideal for a limited but specific task.|
|Offers support for external memory and I/O ports which makes it heavier and costlier||System light-weight and cheaper when compared to microprocessor|
|External devices need more space and their power consumption is quite higher||Consumes less amount of space and power consumption is also very low|
Applications of Embedded Systems
Some important applications of Embedded systems are:
- Blood pressure device (to detect the systolic and diastolic pressure in human body)
- Dialysis Machine
- Cardiac Monitor
- Wearable devices that monitor your health
- Engine Control
- Ignition System
- Anti-Lock Braking System (ABS)
- Suspension control
- Fuel Injection
- Parking Assistant System
- Door Locks
- Data routers
4. Consumer Electronics
- Digital Camera
- Music Player
- Washing Machine
- Digital Watch
- Air Conditioner
5. Defense and Aerospace
- Missile Guidance Systems
- Space Exploration (Rovers)
- Space Stations
Advantages of Embedded Systems
- Able to cover wide variety of environments
- Embedded Systems are simplified hardware, which reduces costs overall.
- The embedded system is highly reliable
- It has a fast operation
- Embedded System optimizes the use of system resources
- It has a low power operation
- The embedded system is small in size
Disadvantages of Embedded Systems
- To develop an embedded system needs high development effort
- Embedded systems perform very specific task. Hence, we can’t program them to do different things like a general computer
- Embedded systems offer very limited resources for memory
- In 1960, embedded system was first used for developing Apollo Guidance System by Charles Stark Draper at MIT
- A microcontroller is a single-chip VLSI unit which is also called microcomputer
- A microprocessor is a single chip semiconductor device. Its CPU contains a program counter, an ALU, a stack pointer, working register, clock timing circuit