Embedded Systems

KS3 Computer Science

11-14 Years Old

48 modules covering EVERY Computer Science topic needed for KS3 level.

GCSE Computer Science

14-16 Years Old

45 modules covering EVERY Computer Science topic needed for GCSE level.

A-Level Computer Science

16-18 Years Old

66 modules covering EVERY Computer Science topic needed for A-Level.

GCSE Programming Resources (14-16 years)

  • An editable PowerPoint lesson presentation
  • Editable revision handouts
  • A glossary which covers the key terminologies of the module
  • Topic mindmaps for visualising the key concepts
  • Printable flashcards to help students engage active recall and confidence-based repetition
  • A quiz with accompanying answer key to test knowledge and understanding of the module

A-Level Software Resources (16-18 years)

  • An editable PowerPoint lesson presentation
  • Editable revision handouts
  • A glossary which covers the key terminologies of the module
  • Topic mindmaps for visualising the key concepts
  • Printable flashcards to help students engage active recall and confidence-based repetition
  • A quiz with accompanying answer key to test knowledge and understanding of the module

What are Embedded Systems?

Embedded systems have become an integral part of human lives, they are designed with a specific function. Characteristics like, compressed size, low cost, and an overall simple design, makes them very popular nowadays.

Embedded systems, in today’s society play a vital role in many devices, such as: home appliances, equipment instrumentation, and the usages are likely to grow more in the future.

This world is filled with many examples of embedded systems, and we use them every day, think of the digital watch that you wear, which monitors the burnt calories, or even at home, think about an IoT (Internet of Things) intervention, which allows you to control different aspects whilst you’re not physically available in the setting, for instance, controlling whether or not your house lights are switched on from a mobile device.

While indeed these systems can be relatively simple, there is a growing number of either supplant human decision-making or capabilities beyond what a human could provide. For instance, aviation systems, or drones, are able to integrate data from the sensor and act upon that information much faster than a human can comprehend.

In a nutshell, an embedded system can be acknowledged as a small component in a larger framework. As stated above, there is a wide area of applications that utilise embedded systems, the functionality and complexity which is required from these systems are all increasing, and so development becomes ultimately harder. This, therefore, requires new ways of thinking to enhance the development processes and the way they are manufactured.

What is Embedded software development?

With the use of software engineering, embedded software development is the process of handling various types of machines and devices that are different from the traditional computer.

To develop an embedded software system, this requires the integration of software engineering with non-computer devices.

Quite a few industries utilise embedded systems within their organisation, typically industries like aviation, consumer electronics, manufacturing science, medical science, and automotive technology.

An embedded system usually requires a wide range of operating systems, programming tools, and microprocessors. Each system has to be customised and adjusted to the needs of the hardware that it has to control and run on.

An embedded system can be recognised as a combination of both hardware and software, either fixed in capability or programmable. Usually, these systems will be designed for a specific function(s) within the larger scope of the system.

Embedded systems can be found in everyday appliances such as mobile devices, vending machines, medical equipment, agricultural devices and cameras.

What are the types of embedded systems?

Based on functionality and application area:

  • Standalone embedded systems:
    • A less complex/simple independent system that functions alone, it does not require a host system like a computer.
    • i.e. Digital watch, mp3 player, calculator
  • Mobile embedded systems:
    • The most commonly used embedded system, that have a wide range of usages as they are used in portable embedded systems.
    • i.e cell phones, wireless camera
  • Real-time embedded systems:
    • Performs a task in the defined interval. Real time embedded systems are split into two:
    • Soft Real time embedded systems:
      • Deadline to complete task may vary.
      • i.e Microwave oven
    • Hard real time embedded systems:
      • Task must have a given deadline.
      • i.e. Traffic light controller
  • Networked embedded systems:
    • These systems are connected to a network (as the name implies). System forms a communication with the server or with an individual node using the network.
    • i.e ATM machine, IoT devices, card swipe machine

Based on performance and architecture:

  • Small scale embedded system:
    • An entry level 8/16 bit processor system. The processor has very limited resources like ROM, RAM, and processing speed.
    • i.e. CD Drive, printer, automatic door lock
  • Medium scale embedded systems:
    • This embedded system consists of 16/32 bit microprocessors. These are usually faster than “small scale systems” due to greater number of bits, that provide a higher speed.
  • Sophisticated/Complex embedded systems:
    • Sophisticated embedded systems are made to execute complex functions. The system has both complex hardware and software. 
    • i.e. Network router, embedded web server
  • Ready made Embedded systems:
    • Depending on the task complexity and requirements, developers can develop systems using already made boards, this will decrease development time and increase productivity:

Examples of boards include:

  • Beaglebone
  • Banana Pi
  • Intel Galileo
  • Raspberry Pie
  • Arduino Board

What are the requirements of an embedded system?

The requirements of embedded systems are different from the requirements of the traditional computer based system. To develop and adopt embedded systems, software such as C++, C, ADA, etc, are used and some systems which have to specialised use operating systems such as Linux, OSE, Nucleus RTOS, Windows CE, and ThreadX.

Usually, with application development, there is a consideration to external factors such as temperature and other environmental factors which may affect performance, however with embedded software development this is not the case.

What are the characteristics of an embedded system?

When embedded systems are programmed they are expected to achieve a certain level of efficiency.

Once an embedded system is produced, it cannot be changed or upgraded by the users. Therefore they must come with high stability, reliability and to a certain extent tolerate a few different conditions.

Below is a detailed list of the characteristics of an embedded system:

  • Single Function:

An embedded system is known to be task-specific, meaning, they will do the task assigned by the programmer repeatedly across their lifetime. For instance, a navigation system will function as a navigation system only, or an mp3 player will function as an mp3 player.

  • Tightly constrained:

All computer systems must have design constraints, however those on an embedded system can be especially tight.

Embedded systems must be designed to fit on a single chip, and perform fast enough to process that data in real time, furthermore, they must also be designed in a way to consume the least power possible to be able to extend battery life.

  • Reactive and Realtime:

Not only are embedded systems task-specific, they are also “time-specific”, which means that they are created to perform their tasks in a certain time frame. For instance, the flap system of an aircraft wing, if they are stuck and do not fully extend, this will mean that an aircraft will have to land at a greater speed due to the decrease in air resistance, which may cause a rough or emergency landing.

Embedded systems usually have very minimal or even no user interface. Once the program is set, the appliance for instance will do as told, like a washing machine.

Depending on the actual system which is designed, an embedded system is programmed to react to external stimuli, for instance, a thermometer.

  • Microprocessors based:

The system must be a micro-controller or microprocessor-based

  • The difference between micro-controller and microprocessor:
Micro-controllerMicroprocessor
Micro-controller have a CPU, with a fixed amount of ROM and RAM, as well as other objects on the chipAn integrated circuit which only has a CPU inside, there is nothing else on the chip, like RAM, ROM etc   They must be added externally to allow them to be functional
Perform task-specific tasksMicroprocessors deal with unspecific tasks applications, such as gaming, websites, document creation
Lower clock speedHigher clock speed
Operate at a lower energy levelOperate at a higher energy level due to dealing with complex tasks
Less costly, as certain peripherals already come with the chipMore costly, as they need other peripherals, such as RAM, buffer, I/O ports, ROM to operate and function

User interface:(MUST)

For embedded systems to function, they require a user interface in order for the user to interact and communicate with the system.

The user interface depends on the application that the embedded system is being used on. It can be a screen for a mobile phone, or it can be switches or a sensor.

Basic Structure of an Embedded System:

Sensor:

This sensor converts a physical quantity (which is measured), to an electrical signal. This then can be read by an electronic instrument or an observer. The sensor stores this measured quantity to the memory.

A-D Convertor:

An analog-digital convertor, converting any analog signals sent by the sensor into a digital signal.

Processor & ASIC’s:

The output is measured by the processor and is stored in the memory.

D-A Convertor:

Digital-analog convertor converting any digital data which is given from the processor to analog data.

Actuator:

In this system, the actuator will compare the output provided by the digital-analog convertor to the actual/expected output stored in it. Then it stores it as the approved output.

Flowchart of Embedded Systems.

Components of an embedded system

Embedded systems are divided into two types of components:

Hardware components and Software components

Hardware components include:

  • Power supply:
    • A power supply is an essential part of an embedded system. The power supply may be provided from a battery or an adapter. Depending on the application that the embedded system is being used in.
    • A good power supply means:
    • Efficiency, stable & smooth output, transient response.
  • Processor:
    • The processor acts as the main brain in an embedded system. An embedded system can use a micro-controller or a microprocessor.
    • Some of the criteria that is considered when choosing a processor are:
    • Speed, amount of RAM & ROM, operating voltage, packaging
  • Memory:
    • There are usually three types of memory associated with embedded systems: (RAM & ROM are more common)
  • Read-Only memory(ROM):
    • This is used to store a program. When the system is powered on, the system will get the code it requires to operate from the ROM memory.
  • Random Access Memory(RAM):
    • This type of memory is volatile memory and is used to store data temporarily in storage
  • Electrically Erasable Programable Read-Only Memory (EEPROM):
    • This type of memory is unique, it is the least used from the three. It allows content to be erased and reprogrammed by using a high volt pule input. This is used to store the data by the program itself.
  • Timers-Counters:
    • For applications which require a delay to function or to operate, a timer and counter is used to generate a delay for a specific time interval without affecting the normal code execution.
  • Communication ports:
    • Embedded systems have a number of different types of communication ports to communicate with other embedded systems/devices.
  • Input and Output:
    • To communicate and interact with these systems, some form of input is required. The input can be in the form of a user touch screen.
  • Application Specific Integrated Circuit (ASIC):
    • The circuit consist of a chip that is customised for a particular use.

Software components include:

  • Assembler:
    • Assembly language is converted to HEX code using this utility.
  • Emulator:
    • Hardware or software which has a similar functionality to the target system which will be deployed. It can be considered as a replica of the target system.
  • Debugger:
    • Allows programmers to find and solve errors when the output is trying to be achieved but fails.
  • Compiler:
    • Converts programming language into target code that an interface can understand.
    • It converts high level code to low level code like, machine code, assembly language, or object code.

Advantages of embedded systems

The advantage of adding embedded systems to the system environment are the following:

  • Small size & specific:
    • Embedded systems are specific to carry out certain and unique functions, rather than a system which incorporates many functions, this means their size and custom design will only have the necessary components for them to function.
  • Reduced cost:
    • Considering it is function specific, the user will be paying for a specific function that they desire, rather than many functions which are included anyways, regardless if a user asks for them, this inevitably means that cost can be reduced.
  • Portability:
    • As the first point mentioned “size”, this also encapsulates another attribute which is advantageous, and that is portability. Portable systems include mobile phones.
  • Low power operation:
    • Many applications for example in medicine require energy saving appliances that can function for hours without having to plug them back into a power supply to recharge. This useful feature allows embedded systems to be reliable when functioning.
  • Real time response:
    • Embedded systems are also called real time systems, where the response to external event has to be instant. Therefore, they are beneficial for applications where the response to an external stimuli is critical. E.g: the deployment of airbags inside a car after collision for instance.

What are the limitations of embedded systems?

The limitations of any particular embedded system are the specifications for which it was designed for. Some of the limitations are listed below:

  • Difficult to upgrade:
    • Embedded systems are hard to upgrade, this is because they are system specific, you may require to remove and produce/add a new embedded system instead, designed specifically for the upgrade being done.
  • Nearly not scalable:
    • Carrying on from the point above, a system upgrade could means that if a system becomes more evolved, or if a working environment becomes more enhanced, then the embedded system will not be able to function as efficiently.
  • No upgrades available:
    • Once the embedded system is configured and placed into functioning order, it cannot be changed, moreover this means any enhancement or any upgrade of any sort can not be executed.
  • Difficult maintenance:
    • Not only are embedded system difficult to maintain as they require specific hardware constantly, it is also known to be difficult to obtain back-ups of embedded files.
  • Limited hardware & troubleshooting difficulty:
    • Having a system for specific tasks isn’t all beneficial of-course, this is because hardware constantly needs to be purchased, whether it was old or new, to maintain the function the system is trying to execute. Furthermore, troubleshooting and the transfer of data from one system to another can be problematic.

Summary and Facts

Embedded systems are all around us nowadays, from digital cameras, printers, wireless headphones, or a microwave oven etc, they have been amalgamated into every our lives.

Embedded systems are a micro-controller or microprocessor that are designed to carry out specific, dedicated, single function, time critical tasks.

The reason we use embedded systems are because:

  • Low cost
  • customisable
  • Easy to upgrade
  • Performance
  • Battery Operated
  • Performance
  • Small size

What are the types of embedded systems?

  • Based on functionality and application area:
  • Standalone embedded systems
  • Mobile embedded systems
  • Real-time embedded systems
    • Soft Real time embedded systems
    • Hard real time embedded systems
  • Networked embedded systems
  • Based on performance and architecture:
  • Small scale embedded system
  • medium scale embedded systems
  • Sophisticated/Complex embedded systems

Basic Structure of an Embedded System

  • Sensor
  • A-D Convertor
  • Processor & ASIC’s
  • D-A Convertor
  • Actuator

Components of Embedded Systems

Hardware components and Software components

Hardware components include:

  • Power supply
  • Processor
  • Memory
  • Read-Only memory (ROM)
  • Random Access Memory (RAM)
  • Electrically Erasable Programable Read-Only Memory (EEPROM)
  • Timers-Counters
  • Communication ports
  • Input and Output
  • Application Specific Integrated Circuits (ASIC)

Software components include:

  • Assembler
  • Emulator
  • Debugger
  • Compiler

Characteristics of an Embedded System:

  • Single Function
  • Tightly constrained
  • Reactive and Realtime
  • Microprocessors based
  • User interface:(MUST)

Ready made Embedded systems for users to implement on:

Examples of boards include:

  • Beaglebone
  • Banana Pi
  • Intel Galileo
  • Raspberry Pie
  • Arduino Board

Advantages of embedded systems:

  1. Small size & specific
  2. Reduced cost
  3. Portability
  4. Low power operation
  5. Real time response

What are the limitation of embedded systems?

  1. Difficult to upgrade
  2. Nearly not scalable
  3. No upgrades available
  4. Difficult maintenance
  5. Limited hardware & troubleshooting difficulty

Further Reading:

Embedded system