What is an embedded system?

guide to embedded systems coderus

Embedded systems have been in use since the 1960s, with many advances being made since. This complete guide to embedded systems will take you through the history of embedded systems as well as how they work and their applications.

What is an embedded system?

An embedded system is a microprocessor-based computer hardware system – a combination of a computer processor, storage medium (eg: RAM) and input/output peripheral devices – which form part of an independent or larger mechanical or electrical system, device or machine.

Within these products, an embedded system contains sequentially executed software that is designed to perform a dedicated function, a limited number of tasks or group of specific tasks such as: sampling sensor values, registering a button press or communicating with a PC. Its purpose is to control a device and allow a user to interact with it.

At the core of an embedded system is an integrated circuit (IC) designed to carry out computation for real-time operations. Complexities range from a single microcontroller to a suite of processors with connected peripherals and networks; from no user interface to complex graphical user interfaces. The complexity of an embedded system varies significantly depending on the task, application and environment for which it is designed.

How do embedded systems work?

Embedded systems work by combining hardware and software components to perform specific tasks within a larger system. Here’s a simplified explanation of how embedded systems typically function:

  • Input: Embedded systems receive input from the surrounding environment through sensors, buttons, switches, or other input devices. These inputs can include data from various sources such as temperature sensors, motion detectors, or user interactions.
  • Processing: The embedded system’s microprocessor or microcontroller processes the received input signals. It executes the embedded software, which contains a set of instructions and algorithms specifically designed for the system’s intended function.
  • Data Manipulation: The embedded software manipulates the incoming data based on the programmed instructions. It performs calculations, applies algorithms, or applies logic to process the input and generate the desired output.
  • Output: The processed data is then sent to output devices, such as displays, actuators, motors, or communication interfaces. These devices translate the processed data into meaningful actions, such as displaying information, controlling motors, or communicating with external systems.
  • Control and Interaction: Embedded systems often include mechanisms for user interaction and control. This can be in the form of buttons, touch screens, or other input interfaces that allow users to interact with the system and influence its behavior.
  • Real-Time Operations: Many embedded systems operate in real-time, meaning they have strict timing requirements. They must respond to input signals and generate output within predefined time constraints. Real-time operating systems (RTOS) or dedicated timing mechanisms are used to ensure timely execution of tasks.
  • Power Management: Embedded systems are designed with power efficiency in mind, especially in battery-powered devices. Power management techniques, such as sleep modes, power gating, or dynamic voltage scaling, are employed to optimize power consumption and extend battery life.
  • Integration: Embedded systems often need to interface with other devices, systems, or networks. This can involve communication protocols like UART, SPI, I2C, Ethernet, or wireless technologies such as Bluetooth or Wi-Fi. These interfaces enable the embedded system to exchange data with external devices or connect to larger networks.
  • The specific functionality and complexity of an embedded system vary depending on its purpose and application. The hardware and software components are carefully designed, optimised, and integrated to ensure reliable and efficient operation within the given constraints and requirements.
  • Overall, embedded systems combine hardware, software, and input/output devices to process data, perform specific tasks, and interact with the environment they are designed for.

Basic Structure of an Embedded System

Sensor

In an embedded system, a sensor is a component or device that detects and measures physical quantities or environmental conditions. It converts these physical inputs into electrical signals or digital data that can be processed by the embedded system’s microcontroller or microprocessor. Sensors play a crucial role in providing input to the embedded system, enabling it to interact with and respond to its surrounding environment.

There are various types of sensors used in embedded systems, each designed to detect specific physical phenomena. Some common types of sensors found in embedded systems include:

  • Temperature Sensors: These sensors measure temperature variations and provide input to the embedded system to monitor and control temperature-sensitive processes or systems.
  • Accelerometers: Accelerometers detect changes in acceleration, allowing the embedded system to measure motion, tilt, orientation, or vibration. They are commonly used in applications such as motion sensing, gaming devices, and vehicle stability control systems.
  • Proximity Sensors: Proximity sensors detect the presence or absence of nearby objects without physical contact. They are often used for object detection, gesture recognition, or touchless user interfaces.
  • Light Sensors: Light sensors, such as photodiodes or ambient light sensors, measure the intensity or level of light in the surrounding environment. They are used in applications like automatic brightness adjustment in displays, ambient light detection, or optical sensing.
  • Pressure Sensors: Pressure sensors measure changes in pressure and can be used to monitor fluid or gas pressure levels. They find applications in areas such as industrial automation, weather monitoring, or medical devices.
  • Humidity Sensors: Humidity sensors measure the level of moisture or humidity in the air. They are used in applications such as climate control systems, agriculture, or indoor environmental monitoring.
  • Gas Sensors: Gas sensors detect the presence and concentration of specific gases in the environment. They are commonly used in gas leak detection systems, air quality monitoring, or industrial safety applications.
  • Biometric Sensors: Biometric sensors capture unique biological characteristics of individuals, such as fingerprints, iris patterns, or facial features. They are used in applications like fingerprint recognition, access control systems, or healthcare devices.

These are just a few examples of the many types of sensors used in embedded systems. The choice of sensor depends on the specific requirements and functionalities of the embedded system and the physical phenomena it needs to monitor or interact with. Sensors enable embedded systems to gather real-world data, facilitating their ability to sense, analyze, and respond to their surroundings.

A-D Converter

An A-D converter, also known as an analog-to-digital converter, is a vital component in embedded systems that is responsible for converting analog signals into digital data. In an embedded system, an A-D converter enables the system to interface with and process analog input signals from various sensors, transducers, or other analog devices.

Analog signals are continuous and represent real-world phenomena such as temperature, pressure, voltage, or sound. However, most embedded systems process digital data, which consists of discrete values represented by binary digits (bits) of 0s and 1s. This is where the A-D converter comes into play.

The A-D converter measures the amplitude or level of an analog signal at regular intervals and then converts that measurement into a corresponding digital value. This process involves two main steps: sampling and quantisation.

  • Sampling: The A-D converter takes periodic samples of the analog signal at a specific rate known as the sampling rate. The sampling rate determines how often the analog signal is measured. The Nyquist-Shannon sampling theorem states that the sampling rate must be at least twice the frequency of the highest component in the analog signal to avoid loss of information.
  • Quantisation: Once the analog signal is sampled, the A-D converter assigns a digital value to each sample. This process is called quantization. The analog signal’s continuous range of values is divided into a finite number of discrete levels. The A-D converter assigns the closest digital value to each sample, representing the analog signal’s amplitude at that specific point in time.

The digital values obtained from the A-D converter can be represented using binary digits, typically in the form of binary numbers. The number of bits used to represent each sample determines the resolution or accuracy of the conversion. For example, an 8-bit A-D converter can represent the analog signal with 256 discrete levels, while a 12-bit A-D converter can provide 4,096 levels of resolution.

Once the analog signal is converted into digital form, it can be processed, analysed, and manipulated by the embedded system’s digital components, such as microcontrollers or digital signal processors (DSPs). The digital data can undergo further computations, filtering, or storage, enabling the embedded system to make decisions, trigger actions, or provide meaningful outputs based on the processed information.

In summary, an A-D converter in an embedded system is a crucial component that converts continuous analog signals into discrete digital data. It allows the system to interface with analog devices, such as sensors, and enables the processing and manipulation of real-world analog phenomena using digital techniques within the embedded system.

Processor & ASICs

Processors & ASICs process the data measured by the sensor to assess the output.

Processors and ASICs (Application-Specific Integrated Circuits) are two types of key components used in embedded systems.

Component 1 – Processors: Processors, also known as microprocessors or central processing units (CPUs), are the brains of an embedded system. They handle the computational tasks and execute the instructions necessary for the system’s operation. Processors are responsible for processing data, performing calculations, controlling system functions, and managing the overall operation of the embedded system.

Processors used in embedded systems can vary in complexity and capabilities. They range from simple 8-bit microcontrollers with limited processing power and resources to more advanced 32-bit or 64-bit processors capable of executing complex algorithms and running operating systems.

Embedded system processors are designed to meet specific requirements, such as low power consumption, real-time processing, or specific instruction set architectures. They may also include additional features like integrated memory, input/output interfaces, and peripheral controllers to facilitate seamless integration into the embedded system.

Component 2 – ASICs (Application-Specific Integrated Circuits): ASICs are specialized integrated circuits designed for a particular application or function within an embedded system. Unlike general-purpose processors, ASICs are custom-built and tailored to perform a specific task or set of tasks efficiently.

ASICs are designed to optimise performance, power consumption, and cost for a specific application. They are often used in embedded systems where high performance or specific functionality is required, such as in audio/video processing, communication protocols, image processing, cryptography, or motor control.

The advantage of ASICs is that they can be highly optimized for a specific function, offering improved performance and energy efficiency compared to general-purpose processors. However, ASICs are more expensive to develop and manufacture than using off-the-shelf processors, making them suitable for applications where the benefits outweigh the cost.

In summary, processors and ASICs are crucial components in embedded systems. Processors handle general-purpose computing tasks and overall system control, while ASICs provide specialised functionality optimised for specific applications. The choice between using a processor or ASIC depends on the specific requirements, performance needs, power consumption constraints, and cost considerations of the embedded system.

D-A Converter

A D-A (Digital-to-Analog) converter, also known as a DAC, is a fundamental component in embedded systems that is used to convert digital signals into analog signals. It plays a crucial role in enabling the embedded system to interface with the analog world.

In an embedded system, many digital components and microcontrollers operate using digital signals, which are represented as discrete binary values (0s and 1s). However, there are situations where the system needs to interface with analog devices or systems that operate based on continuous voltage or current signals.

A D-A converter bridges this gap by converting the digital signals into analog signals that can be understood and processed by analog devices. It takes a digital input and produces an analog output signal that is a continuous representation of the original digital value.

The process of converting digital signals to analog involves two main steps: sampling and reconstruction. During sampling, the digital signal is divided into discrete values at specific intervals. The reconstruction step then uses these discrete values to reconstruct the analog signal.

D-A converters come in various types and architectures, such as binary-weighted resistor networks, R-2R ladder networks, and sigma-delta converters. The choice of D-A converter depends on factors like required resolution, speed, accuracy, power consumption, and cost.

In embedded systems, D-A converters are used in various applications, including audio systems, data acquisition, control systems, motor control, communication systems, and instrumentation. They enable the system to generate analog signals, control analog devices, or provide analog feedback.

Overall, a D-A converter is an essential component in embedded systems that allows the conversion of digital signals to analog signals, facilitating the interaction between the digital and analog domains and enabling the system to interface with analog devices and systems.

Actuator

An actuator in an embedded system is a component or device that converts electrical or digital signals into physical motion or action. It is responsible for producing mechanical movement or controlling physical variables based on the input it receives from the system.

Actuators play a crucial role in embedded systems where there is a need to interact with the physical world. They enable the system to control and manipulate various mechanisms, devices, or systems. By receiving signals from the embedded system, actuators initiate the desired physical action, such as movement, rotation, vibration, or pressure.

There are different types of actuators used in embedded systems, each designed for specific applications and requirements:

  • Electric Actuators: These actuators use electrical energy to produce mechanical motion. They can be powered by various sources, such as DC motors, stepper motors, or solenoids. Electric actuators are commonly used in robotics, automation systems, precision positioning, and other applications that require controlled and precise movement.
  • Pneumatic Actuators: Pneumatic actuators use compressed air or gas to generate mechanical force or motion. They are often used in industrial applications, such as in control valves, pneumatic cylinders, or robotic systems. Pneumatic actuators are known for their fast response, high force capabilities, and suitability for applications requiring rapid and repetitive motion.
  • Hydraulic Actuators: Hydraulic actuators use hydraulic fluid to generate force or motion. They are commonly found in heavy machinery, construction equipment, and systems that require high force output. Hydraulic actuators offer high power density and can handle heavy loads and high-pressure applications.
  • Piezoelectric Actuators: Piezoelectric actuators use the piezoelectric effect, where certain materials deform or generate an electric charge when subjected to an electrical field. They are used in precision positioning, nanopositioning, and microelectromechanical systems (MEMS). Piezoelectric actuators provide precise movement and can operate in very small scales.

Actuators are essential components in embedded systems that enable physical control and interaction with the environment. They are used in a wide range of applications, including robotics, automation, automotive systems, aerospace, medical devices, and many other fields where mechanical movement or control is required.

Top 10 Characteristics of Embedded Systems

What makes an embedded system and embedded system and what are some of the key components and characteristics of embedded systems?

  1. Embedded systems are task oriented and perform specific functions.
  2. Embedded systems are affordable to make.
  3. Embedded systems are time bound and must perform tasks during a specific time frame.
  4. Embedded systems operate with low power consumption.
  5. Embedded systems are efficient.
  6. Embedded systems have a reduced user interface and are easier to use.
  7. Embedded systems can operate on their own with minimal human intervention.
  8. Embedded systems are highly stable, requiring low maintenance.
  9. Embedded systems are highly reliable and perform their tasks consistently.
  10. Embedded systems utilise microprocessors or microcontrollers and use limited memory.

Types of Embedded Systems & Examples

There are various different types of embedded systems all dedicated to performing specific and dedicated tasks combining together both hardware and software. They can be classified into different types based on performance and functional requirements. 

Stand Alone Embedded Systems

A stand alone embedded system is a system that works by itself, without the need of a host system such as a computer. It functions on its own taking user inputs, completing processing and delivering outputs. Some examples of stand alone embedded systems include:

  • Smartwatches
  • Video game consoles
  • Digital cameras
  • MP3 players
  • Calculators

Real Time Embedded Systems

Real time embedded systems work within strict time constraints to monitor, respond to, or control an external stimulus or event without delays. These systems have well-defined, fixed constraints and are either event-driven or time-sharing, meaning they either change to a different task when a high-priority event occurs or change tasks on a regular timed schedule.

There are two types of real time embedded systems:

  1. Soft Real Time Embedded Systems
  2. Hard Real Time Embedded Systems

Soft real time embedded systems are flexible with their time frames so performance is not considered a failure when some deadlines are missed. Some examples of soft real time embedded systems are:

  • Video games
  • Live audio-video systems

These systems allow for some latency while still remaining functional. 

Hard real time embedded systems make sure all processes are completed exactly to the deadline and if not, the system performance is considered to have failed. Some examples of hard real time embedded systems are:

  • Autopilot systems
  • Car engine control systems
  • Pacemakers

These systems require all deadlines to be met or they will fail.

Networked Embedded Systems

Networked embedded systems connect to a network to perform their designated tasks, the system communicates with a server or with an individual nose using the network. Some examples of where networked embedded systems are used include:

  • ATM machines
  • IoT devices
  • Card swipe machines

Mobile Embedded Systems

Mobile embedded systems are used in most portable devices and are the most commonly used embedded system. Some examples of where mobile embedded systems can be found are:

  • Smartphones
  • Digital personal assistants
  • Digital Cameras

Small Scale Embedded Systems

Small scale embedded systems are built using an 8-bit or 16-bit micro-controller, which has limited RAM, ROM and processing speed. These systems are relatively small and can be powered by a battery. Some examples of small scale embedded systems are:

  • Vending machines
  • Keyboard controllers
  • Printers

Medium Scale Embedded Systems

More complex and faster than small scale embedded systems, medium scale embedded systems are built using a 16-bit or 32-bit micro-controller. Real time operating systems can be implemented on medium scale embedded systems. Some examples of medium scale embedded systems are:

  • Routers
  • ATM machines

Sophisticated Embedded Systems

Sophisticated embedded systems are designed for large scale complex functions. Designing systems like this is very complex, costly and complicated. Some examples of sophisticated embedded systems are:

  • Multimedia systems
  • Mobile phones

Embedded Software Architectures

  • Simple Control Loop: The software simply operates on a loop.
  • Interrupt-Controlled System: Tasks are triggered by events like a preset timer.
  • Cooperative Multitasking: The software operates similarly to a simple control loop, but the loop is hidden in an API.
  • Preemptive Multitasking: Low level code switches between tasks based on a timer connected to an interrupt.
  • Microkernels: The operating system kernel allocates memory and switches the CPU to different tasks.
  • Monolithic Kernels: A large sophisticated kernel is adapted to suit an embedded environment which gives developers an environment similar to a desktop OS.

History of Embedded Systems

The first recognised embedded system was developed in the early 1960s by Charles Stark Draper at the MIT Instrumentation Library, the Apollo Guidance Computer used monolithic integrated circuits to reduce its size and weight and it was used by astronauts to collect real-time flight data – which was a progression from the first programmable computer called Colossus built in 1944 and superseded by the first microcontroller in 1971.

Later in the 60’s, Autonetics (now Boeing) developed the first widely recognised mass-produced embedded system, the D-17B which was the computer used in the Minuteman 1 missile guidance system. By the late 1960s and early 1970s the use of embedded systems had increased as a result of the price of integrated circuits dropping.

In 1971, Intel released the 4-bit 4004, the first commercially available processor. It was designed to be used in calculators and small devices. The following year, Intel released the 8-bit 8008 which had 16 KB of memory. Intel went on to release the 8080 in 1974 and the x86 series in 1978 which is still used widely today.

The first embedded operating system, the real-time VXWorks was released by Wind River in 1987, followed by Microsoft’s Windows Embedded CE in 1996. The first embedded Linux products were released in the late 1990s and Linux is still used in a majority of modern embedded devices today.

Future Trends in Embedded Systems

Four of the key trends emerging in embedded systems include:

  • IoT Connectivity
  • Reduced Energy Consumption
  • Real Time Data Visualisation Tools
  • Deep Learning Applications

As the Internet of Things expands, innovation in the area of embedded systems is expected to grow, leading to technological developments in many sectors. Examples of this include, wearable devices to monitor health in the healthcare sector, connected home devices with improved energy efficiency in consumer technology, and self-driving cars in the automotive sector. Alongside this, we can expect to see developers and manufacturers focus on security for embedded systems in the IoT network. 

Another trend we can expect to see in embedded systems is the optimisation of battery powered devices for lower battery consumption and improved uptime. It’s expected that these improvements will include energy monitors to help developers adjust their embedded systems and more sophisticated Bluetooth and WiFi modules that use less power.

The embedded systems industry is also working on building tools that will allow software engineers to review embedded software execution data in real time to track key performance metrics.

Another future trend expected to emerge in embedded systems is deep learning. As of yet, deep learning is an element yet to be explored by the embedded systems market and could in the future be used for detailed image processing, audio analysis and more.

Applications: How are embedded systems being used?

Embedded systems have applications in a range of different industries, including healthcare, automotive, telecommunications and consumer tech.

In the healthcare industry, embedded systems are crucial, their applications include sensors used to monitor vital signs as well as processing the imagery from medical scans. 

Embedded systems can be found in pacemakers, MRI machines and electronic stethoscopes. These applications all help to improve the diagnosis and treatment of medical patients across the world.

In the automotive industry, embedded systems are used in features such as air bags, car navigation systems and pre-crash safety systems. These features all contribute to the overall improved performance of the vehicle and increase functionality.

In telecommunications, embedded systems are used in technology from telephone network switches to consumer mobile phones.

Consumer products such as washing machines, video game consoles and printers use embedded systems to control tasks and trigger actions. The main role of embedded systems within these products is to improve the ease of the daily tasks we complete in our lives and provide entertainment. 

July 02, 2023
Mark
Industry Accreditations