An article on Embedded System and its Real Time Applications. Focuses on different topics like What is an Embedded System, What are the Real Time Applications of Embedded Systems, What is the Future of Embedded Systems, etc.
The World is filled with Embedded Systems. The development of Microcontroller has paved path for several Embedded System application and they play a significant role (and will continue to play in the future as well) in our modern day life in one way or the other.
Starting from consumer electronics like Digital Cameras, DVD Players to high end and advanced systems like Flight Controllers and Missile Guidance Systems, embedded systems are omnipresent and became an important part of our life.
The way we live our life has been significantly improved with the utilization of Embedded Systems and they will continue to be an integral part of our lives even tomorrow.
Another important concept we are hearing these days is Real – Time Systems. In a real time system, Real Time Computing takes place, where a computer (an Embedded System) must generate response to events within certain time limits.
Before going in to the details of Real Time Applications of Embedded Systems, we will first see what an Embedded System is, what is a real time system and what is real time operating system.
What is an Embedded System?
An Embedded System is a combination of Hardware and Software. My desktop computer also has hardware and software. Does that mean a desktop computer is also an Embedded System? NO. A desktop computer is considered a general purpose system as it can do many different tasks that too simultaneously. Some common tasks are playing videos, working on office suites, editing images (or videos), browsing the web, etc.
An Embedded System is more of an application oriented system i.e. it is dedicated to perform a single task (or a limited number of tasks, but all working for a single main aim).
An example for embedded system, which we use daily, is a Wireless Router. In order to get wireless internet connectivity on our mobile phones and laptops, we often use routers. The task of a wireless router is to take the signal from a cable and transmit it wirelessly. And take wireless data from the device (like a mobile) and send it through the cable.
Even though the task seems simple, there are many individual sub tasks involved in this process. Some of these tasks include assigning Dynamic IP Addresses to clients (devices), managing data from each device, security and encryption, transmit and receive data, etc.
An Embedded System consists of four main components. They are the Processor (Microprocessor or Microcontroller), Memory (RAM and ROM), Peripherals (Input and Output) and Software (main program).
Processor: The heart of an Embedded System is the Processor. Based on the functionality of the system, the processor can be anything like a General Purpose Processor, a single purpose processor, an Application Specific Processor, a microcontroller or an FPGA.
Memory: Memory is another important part of an embedded system. It is divided in to RAM and ROM. Memory in an Embedded System (ROM to be specific) stores the main program and RAM stores the program variables and temporary data.
Peripherals: In order to communicate with the outside world or control the external devices, an Embedded System must have Input and Output Peripherals. Some of these peripherals include Input / Output Ports, Communication Interfaces, Timers and Counters, etc.
Software: All the hardware work according to the software (main program) written. Software part of an Embedded System includes initialization of the system, controlling inputs and outputs, error handling etc.
NOTE: Many Embedded Systems, usually small to medium scaled systems, generally consists of a Microcontroller as the main processor. With the help of a Microcontroller, the processor, memory and few peripherals will be integrated in to a single device.
What is a Real Time Embedded System?
A subcategory of Embedded Systems is the Real Time Embedded Systems. A Real Time Embedded System is a type of computer system with timing constraints i.e. a system which responds to external events or input stimuli in a timely fashion (within finite and specified time).
Here, Timing Constrains include Response Time, Start Time and Finish Time i.e. time taken to respond to the event, time at which the response to the even starts and time at which the response is given. Let us take a real world example of a Real Time System.
Consider a Weapons Defense System, whose job is to shoot down incoming missiles and protect the Naval Destroyer. This Weapons Defense System consists of three sub-systems: a Radar System, a Control System and a Weapons Firing System.
The Control System acts as a Command and Decision System, which is a controlling system and the Radar System and Weapons Firing System are the controlled systems. Now we will see how this Real Time System works in a real world scenario.
First, the Radar System continuously monitors for potential threats like incoming missiles and measures the coordinates of the targets. It then sends these coordinates to the Control System, which then determines the level of threat possessed by the target based on the information from the Radar System.
The Command and Decision System then calculates different parameters of the target like speed of the missile, flight path and possible point of impact.
Based on the above parameters, the Control System then activates the Weapons Firing System, which fires continuously until the target is destroyed.
In this example, the communication between the Command and Decision System and the Radar system happens in real time i.e. a potential threat can occur at any time and it is unpredictable. The second real time computing is the firing coordinates. Initially, they are determined by the flight path of the target but are updated in real time as per the actual location of the target.
Characteristics of a Real Time Embedded System
There are two important characteristics of any real time embedded system. They are:
The Real Time Embedded System must generate correct computational responses to the events (functional constraints) and
The responses or results must be produced within a predefined time (timing constraints).
Types of Real Time Systems
In the characteristics section, we have said that a real time system must comply with timing constraints. Based on the degree of tolerance in the timing constraints, Real Time Systems are classified in to two types. They are:
Hard Real Time Systems
Soft Real Time Systems
In Hard Real Time Systems, there is no flexibility in timing constraints i.e. they must meet all the deadlines, failing to do will result in a catastrophic consequences.
A Hard Real Time System must produce accurate responses to the events within specified time period. If either of them are not achieved i.e. if the response isn't accurate or if the response isn't delivered in right time, the result will be extremely catastrophic, like loss of life.
Examples for Hard Real Time Systems are Flight Control Systems, Missile Guidance Systems, Weapons Defense System, etc.
On the other hand, Soft Real Time Systems have some relaxation in meeting the deadlines i.e. the degree of tolerance is non-zero. A Soft Real Time System must produce response to an event within the deadline but with some flexibility in meeting the deadlines.
Even if the response isn't delivered in the deadline (but delivered in acceptable limit), the result won't be catastrophic or failure in the system but will cost a delay in propagation.
Examples for Soft Real Time Systems are Set top boxes, DVD Players, Weather Monitoring Systems etc.
Why Real Time Systems need Operating System?
Operating System is a piece of software that controls different hardware in a system like Processor, Memory and other devices and also provides a user interface for interaction between the user and the system.
In Real Time Systems, where Real Time Computing is required with accurate results that must be delivered on time, Operating System plays an important role. With the increasing complexity of the hardware in Embedded Systems, the features they provide and the applications they can run need an Operating System Code so that it meets the system requirements and also doesn't miss any deadlines.
Small Embedded Systems like Microwave Ovens might not require an Operating System but some advanced systems like Set top Boxes, which can play over a 1000 channels, can record High Definition Videos and support Media from external devices like USB, definitely need an Operating System.
The Operating System used in Real Time Systems is called as Real Time Operating System or RTOS
Real Time Operating System (RTOS)
Real Time Operating System or RTOS manages the resources of a Real Time Embedded System such that any process will take the same amount of time it has taken the previous time. An RTOS should have a predictable response to an unpredictable event.
With the help of RTOS, Real Time Applications can be easily designed and additional functions can be added without any hassle (no additional software is required).
Example of Embedded System and its Real Time Applications
We will proceed further in to the discussion by looking at an example of an Embedded System and its Real Time Application: Anti-lock Brakes in automobiles.
Almost all modern cars (and motor cycles as well) are equipped with a safety feature called Anti – lock Braking System or ABS. What we doesn't know is that it is an embedded system serving a real time application: allowing wheels to have traction with the road and preventing the wheels to lock up and skid when the brakes are applied.
Where is the Real – Time Concept in this example? Let us dig a little deeper. Generally, when we apply brakes on a car, the brake pressure will be applied on all the wheels irrespective of the orientation of the wheel and speed of the car, causing the wheels to lock. This will result in skidding of the vehicle and loss of traction (there is separate Traction control system).
ABS (Anti-locking Barking System) plays an important role in such situations. An ABS system typically comprises of three parts: Sensors, Control Unit and Hydraulic Valves.
Each wheel has its own sensor, which helps in continuously monitoring the speed of rotation of the wheel. The data from the sensor is constantly monitored by the Electronic Control Unit (ECU).
If the rotational speed of a wheel is less than that of the others, the wheel is susceptible to locking when brakes are applied.
The ECU will then activate the hydraulic valves according to the rotational speed of the wheel i.e. less hydraulic pressure to the wheel rotating at slower speed than others. The reduction in hydraulic pressure to the brake will reduce the braking force on that particular wheel and thus all the wheels will be synchronized.
The other case i.e. if the rotational speed of a wheel is higher than the others, then also ABS comes in to picture.
Some Other Real Time Applications of Embedded Systems
Latest Smart TVs
GPS Navigation Systems
Almost all Modern Day Smart Phones
Missile Guidance Systems
Space Exploration (Rovers)
Automobiles (ABS, Airbags)
Industries (Assembly Robots)
Road Safety Systems (Traffic Monitoring and Collision Alert Systems)