An Embedded System is one that has computer hardware with software embedded in it as one of its important components. These are computing systems designed to serve a specific purpose. It should not be confused with desktop, laptop or mainframe computers which have wider and general-purpose applications.
To distinguish between the two lets understand by some examples. A desktop can perform multiple applications such as video streaming, running a web browser or online gaming. But an embedded device like a pager or microwave oven will only serve a dedicated purpose. On the other hand, an embedded system can also be a part of a larger system on the whole. For example, a mobile phone can have many numbers of embedded devices each with specific functionality to make it a complete and an integrated device.
Characteristics of an Embedded System
→ Specific function – It is designed to serve a single and a specific function and not a generalised function.
→ Memory – Though it is constrained to have limited memory but it should have some amount of ROM embedded in it.
→ Microcontroller – It should have a microcontroller (e.g. PIC, ARM etc.) or a microprocessor (e.g. intel 8085).
→ Hard Realtime – It should react to external events without any latency. A delay of even a fraction of a second can lead to catastrophic events. Missile launching can be the best example.
→ Supporting peripherals – Input/output device, communication channels, RAM/ROM should be embedded on the chip.
→ Design constraints – It should be small enough to fit on a single chip, consume low power and should have a high response time.
Components of Embedded System
→ Hardware – Hardware consists of the microprocessor or the microcontroller
→ Software – Application program which should consume minimum resources on the embedded system
→ Operating System – Real-time Operating System or RTOS is required to schedule complex tasks in larger embedded systems. Examples of RTOS are RTLinux, VxWorks etc. Some smaller embedded devices which perform a simpler task may not need any Operating System at all.
Embedded System Applications
(1) Medical equipment – Most modern medical equipment is equipped with embedded devices. It should be free of any health hazard and provide a very friendly GUI. So, generally, these types of equipment use sophisticated software and RTOS.
(2) Automobiles – Modern automobiles are becoming smarter and hence embedded system has become a necessity in this field. With the growing technology of Artificial Intelligence in this field, a wide variety of embedded devices are used in this domain. For example, an ECU (Engine Control Unit) in a car itself may have multiple embedded devices.
(3) Consumer electronics – Home appliances like washing machine, refrigerators, washing machine etc., mobile phones, smartwatch, digital camera have embedded technology.
(4) Industrial machines – Automation machines can have all sensors, controllers and actuators embedded on a single system.
Internet of Things (IoT) on Embedded System
IoT refers to linking electronic devices over the internet. Every device in the network is given a unique identifier and is able to transfer the data over the network without human intervention. All these devices need to have an embedded system base for being the most efficient. Embedded system will find large application in the growing technology of IoT such as smart homes, wearable devices, drones, 3D printers etc.
Real-Time Operating System – An operating system of Real-Time Embedded System
Almost all real-time embedded system needs a real-time operating system. Real-time Operating System or RTOS is an operating system which provides a hard real-time response with almost negligible latency. The components of RTOS are
- Reliability – The system should be able to operate for a longer period of time without human intervention
- Predictability – The response to any event should be deterministic.
- Performance – It must perform fast enough to meet the hard deadline.
- Compactness – The design metrics are based on low cost, small size and portability.
- Scalability – Depending upon the functionality requirement, RTOS should be able to add or delete any modular component.
Scheduling algorithms in Real-time Embedded Systems
The algorithms used by RTOS can be divided as
- Static scheduling – Each task has a fixed predetermined schedule. For example, Round Robin algorithm.
- Dynamic scheduling – Task is executed according to its priority which is decided during its runtime. For example, Rate monotonic and Earliest Deadline First.
Some common terminologies used in RTOS
- Task – A set of related work which can achieve some functionality
- Job – A piece of work which may or may not require a processor.
- Release time of a job – Time at which a job becomes ready for execution
- Execution time of a job – Time taken to finish a job
- Deadline of a job – Time at which a job should finish execution completely.
- Processors – active resources required for any computation
- Response time of a job – Time taken from the release of the job until it finishes execution.
- Relative deadline – Time limit which can be allowed without any harm
- Absolute deadline – Time at which the task should finish its execution, no matter what.
Process states in Operating System
- Created – When a task is just created or is the new state and awaits to be the next state i.e. the ready state.
- Ready – It is the task waiting in the queue for the processor or the resource for its execution.
- Running – A process which is currently running and is undergoing execution.
- Blocked – A process may enter a blocked state if a resource is not available currently but may be available at a later time.
- Terminated – A process is terminated either when it has finished its execution or is killed by the scheduler as it cannot be completed due to various reasons.
Inter process Communication in Embedded System
Inter process Communication or IPC is very important while designing the kernel of the operating system. It is a mechanism by which an operating system manages and controls the flow of shared data over different processes.
Processes can communicate with each other through the following methods
- Shared Memory
- Message Passing
Shared Memory – This type of communication is used when a process depends upon the information produced by another process. For example, let us suppose two processes Process1 and process2.
Process1 executes and stores its result into a record in the shared memory. When Process2 executes it can refer to the record in the shared memory.
By this mechanism, different processes can talk to each other by sharing their information on a common platform.
Message Passing – This type of communication is similar to sending emails on a web browser. First, a communication link is established between the two processes. No need to establish a link if a link already exists. Then a message is passed from the sender to the receiver over this link.
A message consists of two parts – header and a body. The header stores metadata like information about message type, source address, destination address, control information. The body contains the actual content of the message.
With the advent of more ‘intelligent’ devices and upcoming technologies like Artificial Intelligence, Cognitive computing, advancements in sensor technologies and wireless communication Embedded Systems are going to be everywhere. Every object around us will be embedded with a small processor and sensor which will make the object extraordinary smart.
M.Tech (VLSI Design and Embedded system)
BS Abdur Rahman University