Introduction to Embedded Systems

Introduction to Embedded Systems

Table of contents

No heading

No headings in the article.

By Joan Kabura

More often than not, when picturing computers, we think of laptops and tablets. We imagine the device that has had a huge impact in the curation of this article or which facilitates information research on its browser. Computers that are often inconspicuous like those in our vehicles, mobile phones, the microwaves we encounter every day- if lucky and robots that have evolved rapidly over the past few years are barely thought of. These inconspicuous, barely noticeable and often tiny computing devices are referred to as embedded systems. They are, in a sense, systems within systems. The word system refers to components with various functionalities assembled together to carry out a specific task.

es1.png

So, where can we find these embedded systems?

Well, they are located in a huge chunk of the electronic devices we know of today. A good example is a smoke alarm. Its system responds as per the input received from the smoke sensor, that is, whenever smoke is sensed. A buzzing sound or water is produced as an output. Therefore, unlike computers which carry out host functions, embedded systems are more specific in their functionalities.

A smoke alarm as an example of an embedded system

es2.jpg

What distinguishes an embedded system from a computer?

In as much as both are capable of carrying out computing tasks, embedded systems are limited to a few tasks, unlike computers. This may be attributed to smaller memory sizes and lesser computing capabilities. Understandably, you may be interested in knowing exactly what the inside of an embedded system has. Worry not, for I got you covered.

A. Hardware

First up is the hardware part of things. Hardware is the part that is often visible to the naked eye. It is often presented in form of PCBs (Printed Circuit Boards)- which will be discussed in depth in a later issue. It includes:

Microcontrollers/Microprocessors

Simply put, microcontrollers and microprocessors are the brain of embedded systems and are at the center of it all. They are responsible for the computations and timing of the operations carried out by the embedded device. Both can be programmed and reprogrammed to suit the application’s requirements. Microcontrollers are devices that have the CPU (Central Processing Unit) as well as all peripherals such as serial ports, memory (RAM and ROM), input and output ports, interrupt control systems, and many others on a single chip. Some examples of microcontrollers are Intel 8051, PIC, ARM and AVR series.

Raspberry Pi Pico es3.jpg

Arduino Uno

e4.jpg

STM32 Nucleo Board

es5.png

ATMEGA328P

es6.jpg

The images above represent some of the microcontrollers used in learning and designing embedded systems. Primarily, these boards are programmed using C and/or C++ language. We shall delve deeper into their programming as well as sample projects in a later issue of this article.

Microprocessors on the other hand, only contain a CPU (which is more powerful than that of the microcontroller) on one chip but require external peripherals added to them to aid their functioning. Since microcontrollers are optimized for low-power operations, they are preferred for embedded systems. Microprocessors include Intel, Raspberry Pi and Pentium. Raspberry Pi again? Well, yes! Mainly, the Raspberry Pi is known to be a microprocessor. However, they did come up with Raspberry Pi Pico which is, in fact, a microcontroller. Not to worry though, we shall slowly expound on these devices and they will not be so scary anymore.

A source of power

Embedded systems often require 5V or 3.3V to operate low-power applications (this value varies from application to application). This power may be sourced from batteries or adapters.

Memory

This is where the data is stored in an embedded system. Memory is divided into two categories: Volatile and non-volatile. ROM (Read-Only Memory) is used in source code storage whereas RAM (Random Access Memory) stores data temporarily. EEPROM is used in the storage of reprogrammable and/or erasable data.

Types of Memory Used in Embedded Systems

image.png

Flash memory is the most common memory type used in embedded devices. They have the additional advantage of being reprogrammable a block at a time. A block is a combination of bytes. Flash memory is also economical and useful in the storage of large firmware.

Peripherals

These include components such as ICs (Integrated Circuits), buzzers, motors, LEDs (Light emitting diodes) and push buttons, among others. They are often connected to the I/O (Input/Output) pins of the microcontroller or microprocessor. These parts provide a means of interacting with and benefitting from an embedded system.

B. Software

The software plays the role of programming the hardware while ensuring that the task allocated to the system is achieved and the efficiency is kept high. They include text editors, compilers/assemblers, linkers, debuggers and software libraries. These are usually downloadable online via specified websites and are easy to navigate through.

C. A Real-Time Operating System (RTOS)

A majority of embedded systems are continuous in the detection of certain things such as smoke. For instance, GPS systems output geographical location data continuously and changes as per the consumer’s movement from one place to another.

As such, an embedded system can be defined as a microcontroller/microprocessor-based system which is driven by software and often runs in real-time.

Embedded Systems’ Architecture

image.png

A majority of embedded systems have the structure above. The sensors and actuators are external devices. Once physical quantities such as temperature or pressure are detected by an embedded system, the sensor converts the measured quantities to current or voltage. Since microcontrollers only comprehend digital signals, A-D (analog to digital) converters, are necessary. Luckily, a majority of microcontrollers have built-in A-D converters. As such, these microcontrollers, once programmed, are able to respond accordingly once triggered.

Advantages of Embedded Systems

• High-speed performance in carrying out tasks

• Less space is required due to their small size

• Significantly less power is consumed

• Embedded systems are reliable and accurate

• Economical to purchase since the components used are usually locally available

• Embedded systems can be integrated with other technologies such as IoT and machine learning; thus, making it flexible.

The disadvantage of Embedded Systems

• When working with some components, accurate data sheets may be difficult to come across, making the development process time-consuming and complex.

Conclusion

Wrapping up this article, I thought I should show you something that ties together what we have discussed all through. Recently, I took apart an old cellphone of mine. Whatever you can see in the subsequent images is the hardware. This is inclusive of the touch screen; the SIM card slots and the charging ports. Other components such as the resistors - which are surface mounted and really tiny, contribute to the working of this cellphone. This goes to show how truly intricate embedded systems are. However, we should remember that these systems are not impossible to learn, create or recreate if only and only if we yearn to learn.

Front es7.jpg

Back es8.jpg

References

https://maker.pro/blog/an-introduction-to-embedded-design-and-development

https://www.totalphase.com/blog/2019/12/microcontroller-vs-microprocessor-what-are-the-differences/#:~:text=Ultimately%2C%20microcontrollers%20and%20microprocessors%20are,that%20connects%20to%20external%20peripherals.

Marwedel, Peter. (2009). Introduction to Embedded Systems. 10.1007/978-1-4419-0606-9_