The Embedded Systems Series Part 1: Baby steps
If you are an engineering student (especially Electrical or Computer Science department), then you probably heard of embedded systems (if not you’ll hopefully know through the article). It is a very important field of engineering that is involved in nearly every aspect of our modern day lives. A study estimates that people interact with embedded systems in our everyday lives about 300 times without even knowing!
Throughout this series of articles, I’ll try to cover what embedded systems are, misconceptions, and some of embedded applications. We will get some highlights about new and important concepts like Virtualization and IoT (Internet of things). We also will cover some of the careers and some of the challenges ahead for embedded systems engineers and some study cases to let you grasp what embedded systems really are.
In this part of the series we will only tackle the basic stuff about embedded systems, what they are not and what they really are, but without getting into much details.
0.1 What is NOT Embedded Systems:
Before we get into definition, let me give you some terms that you might have heard of that -might be related to but- aren’t embedded systems. Some of these terms might be: Analogue and Digital electronics, VLSI design, FPGAs and MEMS. Explaining these terms is out of the our scope, but I urge you to search about them. Android devices are a special type of embedded systems and I’ll tell you why later in this article.
0.2 Myths about embedded systems:
Some students always relate(or limit) embedded systems to microcontrollers like AVR or PIC and kits like Arduino or Raspberry Pi. So they relate embedded systems to some trivial applications like Interfacing with sensors measuring temperature, controlling a motor or even controlling some light switches, but in reality these are applications for hobbyists and learners. Some students who worked on some 8-bit microprocessors (like ARM or 8051) in college relate embedded systems to be more hardware and software is just a low level code tailored to the hardware. So anything with an operating system doesn’t seem very embedded. But these are just single application systems that make a little portion of the embedded industry. But as we will see through this series, embedded systems are more sophisticated than that. As a little example: a single automobile contains thousands of microcontrollers that forms systems and subsystems to ensure efficiency in control and security. These subsystems cannot be controlled without a proper interface, or to be more specific they need a proper operating system. It’s not like the operating system on your PC but it’s more application-specific and resource-restricted to do its dedicated task.
1.What are Embedded Systems?
You can tell non-technical people that embedded systems are things like refrigerators, satellites, wifi routers, mobile phones or automobiles that run software but aren’t computers. A fine definition on embedded systems might be a “computerized system that is purpose-built for its application” ( From the book “Making Embedded Systems” -By Elecia White). As I mentioned earlier Android devices might be considered as special case Embedded Systems. Cell phones are originally embedded systems but smartphones became more sophisticated as many applications were introduced after the introduction of iOS and Android and these devices became more “general purpose” devices, that’s why some people recognize the Tablet devices as Tablet “PCs”. So you must recognize that Embedded Systems aren’t so different from Computer Systems. Users don’t recognise this because they only see Interfaces and don’t care what’s under the hood.
The main difference between the embedded and computer systems is that embedded systems are dedicated to do a specific application(s). As a result the resources becomes more restricted( or modified) to suit this application or task and the embedded engineer must have the skills to overcome these limitations (limitation in power consumption, processing and memory limits, cost limits, size..etc). Another main key difference which is considered a big challenge to embedded systems is that the system has to be “real time” which means it must react fast to sudden changes to be efficient especially in security systems (like fire and burglar alarms) and in medical devices because these applications are time critical and any delay is not acceptable. Think of airbags in cars: What would happen if the response wasn’t fast enough during a car crash?
Examples on Embedded systems :
– Mobile phones.
– Gaming Consoles.
– Printers and other external PC devices like scanners, projectors and joysticks.
– Medical Devices (ex: x-rays scanners, radio imaging for tumors, incubators and modern bionics).
– Military Devices.
-Telecom Devices and many others.
2.Careers in Embedded Systems
As you may have realized, we can’t consider embedded engineers as hardware-only guys or software-only guys, but they must comprise a skill set of both levels even if they are specialised in one of these levels in their embedded careers. Most of embedded engineers are graduates of EE or CS department, so if you rely only on what you study in college you might end up with only half that is required to be a good embedded engineer.
Embedded Engineers write software that controls the VLSI chips. Embedded software can be any code which interacts with the hardware layer ranging from the hardware abstraction layer, device drivers, kernel programming to application programming.
The Embedded hardware designer is responsible for hardware schematics, PCB layout, BOM creation, hardware board debugging and testing, and system integration testing.
For the most part of these articles I will be talking about Embedded software because it’s less known and more needed in the industry. And in the end I will give some references and helpful links if you are interested in Embedded systems in general.
In our next part of this series, we will take a look at some interesting study cases for embedded systems.