Embedded Systems Basics Tutorial
- details about the basics of embedded systems, their definition, operation and a tutorial about the technology used.
Embedded systems are a cornerstone of the electronics industry today.
An embedded system is a computer or processor based system that has been designed for a specific purpose.
The system gains its name from the fact that the software is embedded into it for a particular application. The embedded system is not like a PC or other computer that can run a variety of programmes and fulfil a whole host of tasks.
The item using an embedded system is designed for a specific task and has its software preloaded, although updates may be undertaken from time to time.
Embedded systems basics
It may be asked what is an embedded system. With many processor based systems and computers it is useful to define what an embedded system is. A convenient definition for an embedded system is: An embedded system is any computer system contained within a product that is not described as a computer.
Using this embedded system definition it is possible to understand the various basic characteristics one. Typically they are:
- Embedded systems are designed for a specific task. Although they use computer techniques, they cannot be used as a general purpose computer using a variety of different programmes for different task. In this way their function can be focussed onto what they need to do, and they can accordingly be made cheaper and more efficiently.
- The software for embedded systems is normally referred to as firmware. Rather than being stored on a disc, where many programmes can be stored, the single programme for an embedded system is normally stored on chip and it is referred to as firmware.
Embedded systems contain two main elements:
- Embedded system hardware: As with any electronic system, an embedded system requires a hardware platform on which to run. The hardware will be based around a microprocessor or microcontroller. The embedded system hardware will also contain other elements including memory, input output (I/O) interfaces as well as the user interface, and the display.
- Embedded system software: The embedded system software is written to perform a particular function. It is typically written in a high level format and then compiled down to provide code that can be lodged within a non-volatile memory within the hardware.
Embedded systems hardware
When using an embedded system there is a choice between the use of a microcontroller or a microprocessor.
- Microcontroller based systems: A microcontroller is essentially a CPU, central processor unit, or processor with integrated memory or peripheral devices. As fewer external components are needed, embedded system using microcontrollers tend to be more widely used
- Microprocessor based systems: Microprocessors contain a CPU but use external chips for memory and peripheral interfaces. As they require more devices on the board, but they allow more expansion and selection of exact peripherals, etc, this approach tends to be used for the larger embedded systems.
Whatever type of processor is used in the embedded system, it may be a very general purpose type of one of the many highly specialised processors intended for a particular application. In some cases custom designed chips may be viable for a particular application if quantities are sufficiently high. One common example of a standard class of dedicated processor is the digital signal processor, DSP. This type of processor is used for processing audio and image files in particular. Processing is required very quickly as they may be used in applications such as mobile phones and the like.
Embedded systems software
One of the key elements of any embedded system is the software that is used to run the microcontroller.
There is a variety of ways that this can be written:
- Machine code: Machine code is the most basic code that is used for the processor unit. The code is normally in hex code and provides the basic instructions for each operation of the processor. This form of code is rarely used for embedded systems these days.
- Programming language: Writing machine code is very laborious and time consuming. It is difficult to understand and debug. To overcome this, high level programming languages are often used. Languages including C, C++, etc are commonly used.
Embedded systems design tools
Many embedded systems are complicated and require large levels of software for them to operate.
Developing this software can be timing consuming, and it has to be very accurate for the embedded system to operate correctly. Coding in embedded systems is one of the main areas where faults occur.
To help simplify the process, software development tools are normally used. These help the software developer to programme more quickly, and also more accurately..
Typically the software is written in a high level and then compiled down into a form that is contained within the non-volatile memory of the system. This is normally referred to as the firmware.
By Ian Poole
. . . . | Next >>
Share this page
Want more like this? Register for our newsletter