Embedded systems come in a wide variety of sizes and complexities and are hence a bit hard to define. Let’s try and get a basic understanding of what an embedded system really is and how to classify them.
What is an embedded system? A simple definition would be, an embedded system is a “special purpose computer” purpose-built to serve a specific purpose. For example, a calculator is a special-purpose computer as compared to a PC.
To understand what this really means, let’s take a closer look at the definition by looking at the individual words. Let’s first have a look at the term “Computer” to try and understand where that term came from.
Computer: Is this a ‘who’ or an ‘it’?
The word computer comes from a job title our society had long before the electronics era (before the time calculators and computers were invented). This job is basically held by a person very good at math, to do accounting for businesses (These guys used an abacus, pen, and paper to do the math!). Then some inventions came up that made computing easier and hence we named them “computers”. Next, let’s take a look at what we mean by “Special purpose”.
General-purpose versus Special purpose
To understand this phrase, let’s have a look at the other end of the spectrum which is “general purpose” computers. General-purpose computers are the ones that we use every day like desktops and laptops and Macs.
Even our smartphones and tablets are more towards the general-purpose end of the spectrum, which means they have more than one specific purpose. For example, even though the smartphone’s main purpose is communication (through emails, texts, voice, and video), they are designed for other purposes like hearing songs, listening to audiobooks, seeing videos, reading ebooks, browsing the internet, gaming, and photography.
On the other end of the spectrum are embedded systems, whose purposes are very specific to serve a particular function. A popular example is a calculator. It’s one and only job is to do calculations!
Classification of embedded systems
Embedded systems can come in 3 flavors
- Standalone systems
- Network of systems
The term “embedded” stands for placed inside something bigger. This flavor of embedded systems is usually part of larger systems. A popular example includes a digital display in your car.
Here the car is a larger system and the display is embedded inside the car. Other examples include the timing and display circuits of your microwave ovens and washing machines and dishwashers. Even parts of a computer like a keyboard and a mouse are basically embedded systems. Independently these embedded systems are useless, but they aid the larger system to do their task.
This class is pretty self-explanatory, its a device that can perform its functions independently. Examples include
- USB drives are used to store data
- mp3 players can play music
- digital cameras take pictures and
- digital watches tell us time!
Although they are not “embedded” into something bigger, the components and techniques used to build these systems belong to the same class as the “subsystems” class of embedded systems and hence are viewed as embedded systems too!
Network of systems
A famous example of this type of system is home automation. Here several sensors are placed throughout your home and their collective duty is to perform home automation. This is the latest trend in this field, and more products are developed in this class of embedded systems.
There is a special subclass of this class, where this “network” spans throughout the globe, This type of system is popularly known as the Internet of Things or IoT for short!
These are the 3 main classes of embedded systems.
Skills Needed for Embedded System Development
There are 2 major pillars that make up the field of Embedded Systems
- Hardware / Electronics and
Usually, in industries, these 2 pillars are built by 2 separate teams of engineers. Hardware engineers focus on choosing the components necessary, designing the PCB and assembling it. Software engineers, on the other hand, focus on the source code needed to accomplish the job in hand. In other words, hardware engineers build the body and software engineers give the brain. But even though these roles are separate, an Embedded Software Engineer is expected to know hardware at least at the level of a Junior Hardware Engineer and vice versa for the Hardware engineers about software.
Skills Needed to Develop Embedded Hardware
If you want to develop Embedded Hardware, you need to have knowledge about
- Basics of electrical engineering
- Basics of electronic engineering
- PCB designing
- Soldering and Assembling Components
You can read more about what an Embedded Hardware Engineer does in this post.
Skills Needed to Develop Embedded Software
If you want to develop Embedded Software, you need to have knowledge about
- Software engineering principles
- C language
- Version management software like Git
You can read more about what an Embedded Software Engineer does in this post.
What are the parts of a microcontroller? A microcontroller is made up of 2 major parts, the microprocessor, and its peripherals.
What is the difference between a microcontroller and a microprocessor? The main difference between Microprocessors and Microcontrollers is the presence of Peripherals.
Microprocessors are basically electronic devices that execute our code. It is made up of integrated circuits and its abilities include doing mathematical and logical computations and controlling the devices connected to it. These days they are commonly referred to using the name ‘cores’. The core by itself cannot do much, and it needs some other devices to serve a useful purpose. These other devices are called peripherals.
What are peripherals? Peripherals are devices that aid the microprocessor to accomplish a given job. In other words, they serve as accessories to the microprocessor. Depending on their location they can be classified into 2 types, if they are located inside the SoC (expands to System on Chip, in other words, its just the IC containing the microprocessor ) of a micro-controller they are called as on-chip peripherals and if they are located outside the SoC but on the same PCB they are called off-chip peripherals.
You can read more about Peripherals in this article
How are embedded systems related to IoT? Embedded systems form one of the main parts of an IoT solution. It basically forms the source node of Data production.
Let’s say you need to control your lights in your home automatically such that whenever it’s sunny outside the lights should be turned OFF and when the light coming through the windows go below a certain threshold the light should turn ON.
To make such a system you need 2 things, a light sensor to be placed near the window and a controller that is placed inline with the light’s power connection to act as a switch.
Here 2 embedded systems are needed to achieve a simple application like this one. No matter which IoT application you choose, embedded systems will be the basic building blocks and hence embedded engineering is a key technology to developing IoT products
You can read more about IoT solutions in this link.
Hope you guys learned something through this post and hope it was useful to you guys.
If you liked the post, feel free to share this post with your friends and colleagues!