Guide to Embedded Systems

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?

Most embedded systems work based on three main components, the hardware, the software and the real-time OS to fulfil the system function.

Basic Structure of an Embedded System

Sensor

The sensor measures a real-world variable such as temperature, light, barometric pressure or gas concentration.

A-D Converter

An A-D converter or analogue-to-digital converter essentially translates the analogue signal sent by the sensor into a digital signal.

Processor & ASICs

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

D-A Converter

A D-A converter or digital-to-analogue converter converts the digital data from the processor to analogue data.

Actuator

An actuator carries out a function for the system such as a motor, electromagnetic solenoid or a pneumatic cylinder (which is a mechanical actuator controlled by a solenoid directional control valve).

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 the 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 microcontroller, 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 airbags, 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. 

November 27, 2020
Mark
Industry Accreditations