In another article we had shown what an embedded system is. In this article, we will discuss the differences between general purpose computing (GPC) and embedded systems.
GPC And Applications
We are surrounded with computers and there are tons of applications running on them. From e-commerce to document reader to web browsers to games, we are today hooked to computers and the internet.
When you use a browser on you PC or laptop, or make a purchase using your laptop, you are using what is loosely referred to as a general purpose computer (GPC). In such devices, the hardware is open and can undertake a multitude of tasks that are defined by the software application.
Each of these applications would need specific resources. For example, a video player uses the sound system heavily. At the hardware level, the GPC makes its resources available to the software application on demand.
There exists another set of computing devices called embedded systems. These systems are small, and designed for a specific set of tasks. Everything including resources is optimised for the defined tasks. These devices cannot undertake any task outside of what has been defined during the design stage. The software in such devices are also small and are restricted to executing the defined tasks.
In Embedded systems, you can see a clear relationship between input and output. For example, in a keyboard, a key press is an input. The serial digital code sent to the computer upon a keypress is an output. That is all the keyboard can do – take an input and transmit an output. What is done with the output is beyond its scope of operations.
Embedded systems are everywhere from computer peripherals to traffic lights and as a technology company, Sosaley Technologies have integrated this as an integral part of many systems used in our various products covering industries such as automotive, healthcare, industrial automation, etc.
Small, Optimised, and Efficient
In a general purpose computer, the CPU works though a number of external peripherals such as RAM, I/O controllers, display controllers, and communication devices. In a micro controller, all the essential peripheral devices are tightly integrated with the CPU. There are two reasons for this. One, the micro controller has to be small and has to fit into tiny spaces. Two, the micro controller is optimised for speed. In real live situations, speed becomes a critical factor during the design of the micro controller.
The Micro Controller
The micro controller is the heart of an embedded system. It is connected to the external world through I/O devices such as sensors, actuators, displays, timers, and, sound and communication devices. In an embedded system, only as many devices as are needed will be built in or interfaced to. For example, a digital thermometer will only have a tiny five digit display and, a sensor for sensing the body temperature. Nothing else. The number of peripherals and devices are strictly controlled and restricted to the application.
Embedded systems are mass produced and thus have to be inexpensive. The various components of the system including the micro controller are chosen so as to minimize the cost.
To go back to our example, a digital thermometer has just two tasks – to sense the temperature and trigger the inbuilt display device. A 4-bit micro controller is sufficient for this task. Anything more would be a waste of resources, and would increase the cost. Compare this to a nuclear power plant. At the core, the embedded system has to monitor multiple inputs at a constant rate. The moment any of those inputs crosses a threshold, immediate corrective action has to be taken. Here you will not worry about costs and use the most powerful micro controller possible.
By the very nature of their design, embedded systems are resource constrained computing devices in terms of memory, I/O ports, clock speed, etc. An embedded software engineer should manage such constraints efficiently.
Meeting Time Constraints
Application tasks running on general purpose computers are optimized for performance, and practically nothing else. As hard drive and other devices became cheaper, these applications would hog huge amounts of disk space. In addition, these applications would provide no guarantees regarding the completion time of a task.
Embedded systems operate in real time and are subject to time constraints. Time is the most important factor, and the systems have to be designed to be predictable. This can get challenging with more complex applications as there could be many tasks running concurrently.
Types of Embedded Systems
There can be two types of real-time systems – hard and soft. In both types, the tasks have to meet deadlines. In the case of hard real-time systems, if the tasks don’t meet the deadlines, it could lead to disastrous results. Embedded systems used in applications like safety-critical and mission-critical applications have to be extremely reliable and should undergo intensive testing before deployment. Read more about Sosaley’s embedded system here.
Any device running on batteries have to be optimised in terms of power consumption to increase the shelf life of the systems. There are increasing demands and use of embedded systems in wireless and hand-held devices that run on batteries. Thus, embedded systems have the additional challenge to develop power-efficient solutions.
There are many scenarios in Industry and even ordinary life where an embedded systems solution can be developed to help improve efficiency, reduce costs and improve ease of living. For example, embedded systems can be used to gather energy consumption data from all your devices at home. A simple application on your mobile can warn you of energy wastage. This could certainly help in reducing energy consumption and costs. As we move forward, such systems will be there in every walk of life.
Embedded systems for different scenarios have been and are being developed to meet various challenges in life.
Sosaley Technologies is a growing company leading in the development of firmware, embedded systems, and other automation hardware and software. Sosaley is led by industry veterans who have pioneered software development in India, and have worked with companies such as Juniper Networks, Citibank, and many other Fortune 500 companies.
Sosaley is working with leading companies in India and elsewhere in multiple domains. Click here to read more about Sosaley Technologies.