
In our daily lives we live with dozens of embedded systems without us realizing itFrom cars and washing machines to ATMs, home routers, and pacemakers, all of these devices conceal one or more microprocessors designed for a very specific task, far removed from the classic idea of a "computer" that we have in mind.
Behind that apparent simplicity lies a vast technical world: microcontrollers, DSPs, FPGAs, real-time operating systems, buses, sensors, actuators, and communication stacksUnderstanding how all of this fits together is key for any systems, automation, robotics, or electronics engineer who wants to design efficient, reliable, and competitive products.
What is an embedded or recessed system?
When we talk about embedded system (or built-in, integrated, inset) We are referring to a computer system designed to perform one or a few very specific functions, integrated within a larger piece of equipment (a car, an industrial machine, a household appliance, a medical device, etc.).
Instead of a general-purpose PC, an embedded system combines Custom electronic hardware (microprocessors, microcontrollers, memories, interfaces, sensors, actuators) and highly optimized software to control or monitor a specific process, often under real-time, consumption, and cost constraints.
In many cases the user is not even aware that there is a computer inside: The "brain" is hidden in an integrated circuit board or module.without a keyboard or mouse, perhaps with just a few buttons, a small LCD screen, LEDs, or a web interface for configuration and diagnostics.
A significant part of these systems must react within strict timeframes; therefore, many are real-time systemswhere it's not enough to do things well: you have to do them on time. This is where concepts like soft and hard real-time systems, or the use of specific RTOSs, come in.
Basic architecture of an embedded electronic system
At the heart of every embedded system we find a Processing element: microprocessor, microcontroller, DSP or SoCThe rest of the blocks are organized around it: memory, input/output modules, communications, clock, power supply, sensors and actuators.
In a typical setup, the processor connects to the other components via System buses: data bus, address bus, and control busInstructions, data, and synchronization signals are exchanged over these buses between the CPU, memory, and I/O peripherals.
The memory subsystem stores both the program and the data: resident code (often in non-volatile memory) and input data, intermediate results, and outputsThe memory can be integrated into the chip itself (as in many microcontrollers) or located on external chips connected to the bus.
Entry and exit are organized in the form of specialized I/O peripheralsThese blocks include timers, analog-to-digital converters (ADCs), digital-to-analog converters (DACs), serial ports (UART, SPI, I²C, CAN), USB interfaces, Ethernet, digital GPIOs, etc. These blocks allow the system to interact with sensors, actuators, networks, and users.
It is important to understand that the Functional structure (CPU, memory, I/O) does not always coincide with the physical division into chips or boards.A single integrated circuit can contain a CPU, memory, and peripherals, or it can contain only a portion of the functionality. What the designer sees are "functional subsystems" that are then implemented in a wide variety of ways.
Hardware components: CPU, memory, I/O, clock, and power
The central block is the processor. A microprocessor is an integrated circuit implementation of the CPU of a computer: it contains the ALU, registers, control unit, internal caches, and often other support functions. Today we often use "processor" and "microprocessor" almost interchangeably.
Un A microcontroller (MCU) is a microprocessor with memory and I/O integrated on the same chip.It typically includes RAM, program memory (Flash), timers, ADC, DAC, communication interfaces, PWM, etc. For this reason, it is considered "a dedicated computer on a single chip," ideal for low-cost and resource-constrained control applications.
Between these two worlds lie embedded SoC and PC solutions: manufacturers such as STMicroelectronics (STPC), AMD (Geode), Motorola (ColdFire) or Intel They integrate x86 CPUs or other architectures with memory controllers, basic graphics and common I/O to offer compact platforms designed for embedded systems.
Memory is typically organized into several levels: Main memory (RAM) for running code and data, non-volatile memory (Flash, ROM) for firmware and, in the case of embedded PCs, high-speed L1/L2 caches, as well as mass storage devices (SSD disks, Flash cards, etc.).
A key module is the clock generatorThis system typically starts with a main oscillator (quartz crystal or RC) and, using a PLL, generates the various frequencies required. Quartz crystals are notable for their stability and good balance between accuracy and cost; RC oscillators reduce power consumption at the expense of stability.
Finally, the power supply module is responsible for obtaining, from an AC or DC input, the voltages and currents required by each part of the systemThis is where AC/DC and DC/DC converters, linear or switched-mode regulators, filters, and voltage monitoring circuits come in. In battery-powered systems, power consumption becomes a top priority.
Interfaces, sensors, actuators and presentation
In order to monitor and control physical processes, an embedded system needs inputs from sensors and outputs to actuatorsThe analog and digital I/O module is responsible for digitizing signals, reading logic states, and generating control signals.
Analog inputs are captured by ADC convertersThese sensors allow you to measure temperature, pressure, voltage, current, position, speed, etc. The digital inputs read pushbuttons, limit switches, or signals from other devices. The digital outputs activate LEDs, relays, or power drivers.
Actuators can be very varied: electric motors, relays, valves, heating elementsetc. A very common technique is to use PWM (pulse width modulation) outputs to control, for example, the speed of DC motors or the intensity of a lamp.
As for the user interface, the system can range from simple LEDs and buttons to a more advanced presentation subsystem: graphic displays, alphanumeric LCDs or touchscreens for home automationIn other cases, the "front-end" for the user is a web interface served by the embedded system itself.
Connectivity plays an essential role: many systems need to communicate with other devices or with the network. To achieve this, interfaces such as RS-232, RS-485, SPI, I²C, CAN, USB, Ethernet/IP, Wi-Fi, GSM/GPRS, DSRCetc. Depending on the application, industrial buses, simple serial communications, or complete IP networks will be chosen.
Microprocessors, microcontrollers, DSPs, FPGAs and SoCs
Un generalist microprocessor It focuses on delivering high computing power, with deep caches, advanced pipelines, and the ability to run complex operating systems. It forms the basis of embedded PCs, panel PCs, and systems that require rich interfaces or high processing capacity.
Un microcontroller (MCU) It sacrifices raw power in exchange for integration and low power consumption. By including memory, I/O, timers, ADC, DAC, and communications on a single chip, it greatly simplifies the design of control systems, sensors, small robots, instrumentation, and consumer electronics.
The DSP (Digital Signal Processor) These are processors optimized for the intensive processing of digital signals: audio, video, radar, telecommunications, etc. Their architecture is designed for fast MAC (multiply-accumulate) operations, efficient memory usage, and pipelines closely tailored to filtering and transform algorithms.
FPGA's They represent another approach: they are arrays of programmable logic blocks and interconnection resources that allow for the implementation of custom hardware without manufacturing a specific chip. The circuits are defined using hardware description languages (HDLs), and the FPGA is configured to emulate processors, controllers, digital filters, or other blocks.
The term SoC (System-on-Chip) It is a broad term and is often used to describe chips that integrate a CPU (or several), memory, peripherals, communication controllers, and sometimes FPGA or DSP blocks, all in a single package. Many advanced microcontrollers and modern application processors could be considered SoCs, such as some commercial RISC-V CPUs.
Development platforms: Arduino, Raspberry Pi and kits
To facilitate design and experimentation, there are development boards or development kitsThese are boards that integrate the target microcontroller, microprocessor or FPGA along with the components necessary for its operation and a series of test interfaces (connectors, LEDs, buttons, example sensors, etc.).
The most popular example of a microcontroller-based platform is ArduinoAt the hardware level, an Arduino board is basically a microcontroller with everything necessary to function: voltage regulation, crystal or oscillator, accessible pins and, in many models, an integrated USB interface.
Arduino's greatest strength lies in its software ecosystem: it provides a integrated development environment (IDE) and an abstraction layer This greatly simplifies the process of compiling, loading firmware, and accessing peripherals. As a result, thousands of students, makers, and professionals have adopted it for rapid prototyping of embedded systems.
Moreover, Raspberry Pi It's an SBC (Single-Board Computer), meaning a complete computer on a single board: powerful CPU, RAM, card storage, network connectivity, USB ports, HDMI, etc. It typically runs Linux operating systems (like Raspbian) and allows the development of applications that require more computing resources, graphical interface, or intensive use of networks.
Many projects combine both worlds: a simple microcontroller for low-level real-time control (fast sensor reading, PWM for motors) and a Raspberry Pi or other SBC for the high-level layer (user interface, IP communications, data logging, AI). FPGAs and other development kits complete the range of options depending on the complexity of the application.
History and evolution of software for embedded systems
The first embedded systems, especially in communications (electromechanical switches in the 60s), already introduced the idea of “stored program control systems”Instead of wiring the logic into hardware, it was moved to a program, which represented a radical change in flexibility.
At that time the Development tools were very rudimentaryHigh-level language compilers were scarce, and almost everything was done in assembly language. Each project rewrote much of the software from scratch, with very little reuse and virtually no standard libraries.
The idea of create reusable libraries and operating systems specifically for embedded systemsHowever, many of those OS systems were written in assembly language and were not very portable: when the microprocessor changed, the operating system and applications had to be rewritten.
With the arrival and maturation of the C language, the door opened to efficient, stable, and portable operating systemsLinux is the most obvious example, but not the only one. From the 80s onwards, a wide range of operating systems for embedded systems emerged, both proprietary and open source.
Today we find from Lightweight RTOS (VxWorks, pSOS, Nucleus, FreeRTOS, µC/OS-II) This includes embedded versions of larger systems (Windows CE, QNX, Embedded Linux). Many simple systems, however, still do not use an operating system, running on a main loop structured with interrupts.
Real-time systems and RTOS
Un real-time system It is one that must respond to external events within well-defined timeframes. It is not simply about "being fast," but about ensuring that certain operations occur before a known deadline.
Two categories are traditionally distinguished: soft real-time y hard real timeIn a soft system, occasionally missing a deadline might degrade performance (for example, a slight delay in a computer's sound). In a hard system, missing a deadline could lead to a critical failure or serious consequences (such as an airplane's flight control or braking system malfunctioning).
As software complexity increases, maintaining this temporality with a simple control loop becomes intractable. Therefore, in complex systems, a... real-time operating system (RTOS) which provides task scheduling, interruption management, queues, semaphores, timers, and other services.
An RTOS facilitates the concurrent execution of multiple tasks (reading sensors, communications, user interface, data logging, etc.) while fulfilling strict temporary restrictionsIn addition, many RTOS integrate communication stacks (TCP/IP, CANopen, Modbus, etc.) that simplify network integration.
Embedded Linux occupies a special place: it uses the same Linux kernel but adjusted, trimmed and optimized designed to run on devices with limited resources. Depending on the case, it can be complemented with real-time extensions or used in applications where timing is not critical.
Classification of embedded systems
We can classify embedded systems in several ways. One of the most widespread groups them according to their performance and functional requirements in:
On one hand we have real-time embedded systemsThese systems, which we have already discussed, can be soft or hard depending on the importance of meeting deadlines precisely. An example of a soft system would be a PC's audio system; an example of a hard system would be an aircraft's flight control system.
There are also the stand-alone embedded systemsThese do not require a host computer to perform their function. They are autonomous and carry out their task with their own CPU, memory, and I/O: a microwave oven, a washing machine, or a video game console are good examples.
The embedded systems in network They connect to a wired or wireless network (LAN, WAN, Wi-Fi, mobile networks) to interact with other equipment or services. Typical examples include ATMs, connected home security systems, and smart vending machines.
Finally, there are the mobile embedded systemsSmall, portable, and designed to accompany the user: digital cameras, mobile phones, smartwatches, activity trackers, etc. They are usually very limited in memory and power consumption, but must offer user-friendly interfaces and connectivity.
Examples of real-world applications
The list of real-world examples is practically endless, but it's worth reviewing some representative types to see how embedded systems impact so many facets of modern life.
In the domestic sphere, systems of central heating They use built-in controllers to regulate temperature via smart thermostats, acting on boilers, pumps, or valves. This allows for comfort, energy savings, and remote control.
El GPS positioning It integrates a receiver with an embedded system that processes satellite signals, calculates position, speed and time, and presents the information in car navigation systems, mobile phones or handheld devices.
The medical devices They are another key field: pacemakers, implantable defibrillators, insulin pumps, and vital signs monitors use embedded systems to process sensor data, make critical decisions, and, in many cases, send information to the cloud for remote monitoring.
In the automotive industry, almost the entire vehicle is controlled by controllers: engine management unit, ABS systems, traction control, airbag, power steering, entertainment systems, navigation, driving assistance (ADAS), etc. A modern car can house dozens or even more than a hundred microcontrollers.
In public transport we find systems of automatic fee collection (AFC) with vending machines, validators, access turnstiles, and smart cards. Each element integrates one or more embedded systems that manage payments, validations, backend communications, and data security.
The ATMs They combine an embedded PC connected to the bank's network with specific modules for card reading, a secure keyboard, and a cash dispenser and receiver. The embedded system manages the interaction between the user and the hardware, while the bank server validates and records the transactions.
In the industry, the factory robots They use integrated controllers that coordinate actuators, position sensors, vision systems, and communications with other plant elements. They must be fast, accurate, and safe, and are increasingly integrating AI and machine learning algorithms.
Another current example is the electric vehicle charging stationswhich incorporate controllers to manage the load, interact with the vehicle, display information on screens, communicate with management platforms and report faults or maintenance needs.
Finally, the Interactive kiosks and self-service machines (in airports, shopping centers, hospitals, public administrations, etc.) integrate embedded PCs or advanced SoCs that manage touch screens, payment systems, ticket printers and network communications to offer 24/7 services.
Industrial importance and advantages of embedded systems
In the industrial environment, embedded systems are the basis of automation, monitoring and control of processesThey allow you to manage production lines, ovens, motors, robots, packaging systems, internal logistics, and much more.
Compared to more generic solutions, a well-designed embedded system offers execution of control and automation tasks with high precision, very tight response times and enormous reliability, by focusing on a well-defined function.
Working with dedicated hardware and optimized software means that you can solve problems using specific algorithms, making the most of the capabilities of the processor, memory architecture and available peripherals.
Furthermore, these systems are usually more economical and compact than assembling a conventional PC and generic peripherals: by eliminating unnecessary expansion slots and adjusting the hardware only to what the application needs, size, cost and consumption are reduced.
Modular design and high connectivity allow an industrial plant to interconnect multiple embedded devices, creating networks of sensors, actuators, and controllers that facilitate real-time monitoring, traceability, and predictive maintenance.
Training and skills in embedded systems
Given its weight in industry and current technology, numerous Master's degrees and university courses are dedicated to embedded systemsIts objective is for the future engineer not only to program, but to have a comprehensive understanding of hardware, software, communications, and design criteria.
These programs cover topics such as: introduction to embedded systems, microcontrollers, digital signal processors (DSPs) and SoCsIn addition, practical work is done with simulators, specific development boards (for example from Microchip), Arduino or other platforms.
The student is expected to develop skills such as select the most suitable microcontroller or DSP for an application, interpret semiconductor manufacturer data sheets, design electronic circuit board schematics, handle A/D and D/A conversion, or apply digital signal processing techniques.
Methodologically, these subjects usually rely on virtual learning platformsThis platform contains theoretical materials, practical guides, activity statements, and tutoring forums. Assessment is often based on practical activities (PEC) and complete embedded system design projects.
The contents are supplemented with specialized bibliography, access to collections of ebooks (O'Reilly, Springer, Elsevier) and technical documentation from manufacturers such as Microchip, Texas Instruments, Arduino, Raspberry Pi or tools such as Proteus and Matlab/Simulink.
Embedded Linux and other operating system options
When the application requires it, an embedded system can execute a more or less complete operating systemIn the world of RTOS there are VxWorks, QNX, Nucleus, pSOS, FreeRTOS and others, designed for fine real-time control.
In other situations it is useful to use Embedded Linuxwhich is nothing more than an instance of Linux adapted to limited resources: services are cut, the kernel is adjusted, and only the essential components for the target device are included.
Embedded Linux maintains the same kernel as a desktop Linux, but with reduced size, lower CPU and memory consumption and a set of functions tailored to the application. Custom images are typically built that include exactly the drivers, libraries, and applications that are needed.
The main advantage is that The software is reusable across platforms.Even if the underlying hardware changes, much of the code can be ported with minor modifications. This contrasts with early assembly-based systems, where the end of the microprocessor's life meant rewriting everything.
In parallel, systems without dedicated OSs still exist, especially in small microcontrollers, where a well-structured main loop and a few interrupts control the entire system with minimal cost and complexity.
Embedded software development and professional profiles
The embedded systems software developers They work very close to the hardware: they configure peripheral registers, optimize critical routines, manage interrupts and, in many cases, take care of consumption, power management and low-level startup.
Historically, the dominant language has been CC++ is supplemented by assembly language in the most critical parts. Over time, C++ has gained prominence thanks to its modular and reusable nature, provided it is used in a controlled manner to avoid excessive resource consumption.
Interestingly, even more “higher” languages like Python and JavaScript have found their niche In certain embedded environments, especially when running on embedded Linux or SBCs with more resources, and when it is important to accelerate development over maximum optimization.
The usual work includes from device drivers and hardware abstraction layers This includes communication protocols, control algorithms, user interfaces, and application logic. The quality of the design makes all the difference in the product's robustness, maintainability, and scalability.
Many companies choose to outsource part of the embedded software development to teams specializing in C/C++, RTOS, embedded Linux and specific platforms, especially when they do not have that know-how internally or when deadlines are very tight.
In light of all the above, it is clear that embedded systems are the invisible backbone of modern technology: They combine specific hardware, optimized software, communications, and real-time control to bring to life safe, efficient and accessible products, and represent a professional field with enormous potential for those who master both electronics and low-level programming.