Table of contents
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.
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
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
Arduino Uno
STM32 Nucleo Board
ATMEGA328P
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
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
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
Back
References
https://maker.pro/blog/an-introduction-to-embedded-design-and-development
Marwedel, Peter. (2009). Introduction to Embedded Systems. 10.1007/978-1-4419-0606-9_