Hello Friends, I hope you all are fine and doing great in your lives. My last article was on Embedded Systems which I hope you found informative. You can find this article here What is Embedded System? Today I am going to write about Embedded Computer. Moreover, if you are interested in learning Embedded Systems then you should read 8 Things for Learning Embedded System Programming.
I will be going through the definition of embedded computer and how they differ from our general computer. Then I will tell you the relation between control system and embedded computer and different hardware platforms for embedded computer. Then I will throw some light on embedded computer as an emerging field. In the last section, I am going to tell you some basics of programming languages. I have also shared a tutorial on Real Life Examples of Embedded Systems so you should also have a look at this tutorial. Let’s first define an embedded computer before getting into details.
What is Embedded Computer ???"An Embedded Computer is a microcontroller or microprocessor based system devised for specific function. Embedded Computer performs specific functionality and used today in various applications. Embedded Computer may be a part of large system but it relies on its own processor. Cell phones, cameras, automotive systems etc. are some of the common examples of embedded computers."
- I have combined different Embedded Computers in the above image.
- Some people confuse embedded computers with general computers but they are different from each other. I am going to explain the difference in both in the next section of my article.
General Computer vs Embedded Computer
- An embedded computer is different from a general purpose computer.
- A general purpose computer for example our PCs are used for different tasks.
- Embedded Computer can only work on a specific task.
- A PC is able to work on different functions at the same time. As I am typing a document on MS word while listening to songs and downloading stuff from google chrome. MS word a special application software for documenting, music player for playing sound tracks, chrome is a browser, and all of these programs are running at the same time.
- General computers are able to work at different tasks while running different application software.
- This is not the case with embedded computer. They are programmed for particular functionality.
- Their code is burnt on the ROM and user cannot install his own application software on it.
- Embedded computer is designed on a different criteria and constraints as compared to general computer.
- Embedded computer does not require much power and computing abilities as compared to general computer.
- A general purpose computer is smart enough to support external devices and peripherals. It is able to upkeep itself with latest technology and devices.
- While an embedded computer can support only a limited devices.
Embedded Computer is employed in control systems today which I am going to discuss in next section.
Control Systems and Embedded Computer
- All modern control systems are based either on embedded computer or on PLC i.e. programmable logic control.
- Programmable logic control is used in industries but embedded computers are used everywhere.
- In embedded computers, all of the system is enclosed in some case while it is provided with and user interface.
- This interface is for the user to control and manage the operations of the computer and to see the output in some cases.
- The embedded computer is designed to meet the specifications of the control system.
- The embedded computer should be programmed in such a way that it should be able to control the variables and processes.
- The program should be real time so it can perform all operations in some time interval fulfilling the requirement.
- The control systems also require safety mechanisms that are controlled by embedded computers.
Embedded Computer may be built upon different kind of hardware. I am discussing three of them.
Microcontroller Based Embedded Computer
- Today microcontrollers are used with embedded computer instead of using microprocessor.
- Microcontroller is actually a chip with CPU and some other parts like RAM, ROM, Timers, Counters, Input/ Output ports etc. CPU is the main part that does processing.
- Microcontroller is different from microprocessor which require input/ output ports, timers and other peripherals as external parts.
- Microcontroller based systems are smaller in size and consume low power.
- Microcontrollers come in a variety of types. 4 bit, 8 bit, 16 bit and 32 bits are some of them.
- Examples of microcontrollers are Arduino, Pic microcontroller, 8051 microcontroller etc.
FPLD Based Embedded Computers
- In embedded computer, field-programmable gate arrays (FPGAs), Application specific integrated circuits (ASIC) etc. could be used as alternatives for microcontrollers.
- FPLD stands for field programmable logic devices. FPLDs include FPGAs (field programmable gate arrays) and CPLDs (complex programmable logic devices).
- FGPAs (field programmable gate arrays) are hardware devices which can be programmed.
- The hardware is not fixed so the user can design on its own.
- Although field programmable gate array offer flexibility, it is very complex.
- We can also build microcontroller using it.
DSP Systems Based Embedded Computer
- DSP (Digital Signal Processing) system based embedded computers are also being used.
- They found application where signal processing is required.
- DSP systems are somehow similar to microcontrollers if I talk about the peripherals and power consumption.
- The difference is that they also provide support for digital signal processing operations.
- The application areas include speech and music processing applications and communication systems.
Embedded Computer - an Evolving Field
- Today Embedded Computer is being used almost everywhere. They have found a lot of applications.
- Now embedded computers are considered as a separate field. They are able to perform a large number of different operations.
- Designing hardware and software for embedded computers is critical and it requires complete knowledge of this field.
- There are five things that should be known by a designer, which serve as the objectives of embedded computer.
- The first step is to build a design that would be able to incorporate all the hardware parts.
- The design should be able to support all the functionality required from the embedded system.
- An embedded computer may be connected to sensors, actuators, switches, user interface etc. and it should be able to meet power requirements.
For the development of product, it is necessary to know your hardware and software. The performance of each component should be known. The analysis may include:
- Analysis of components
- Analysis of power required
- Timing analysis
- For the complete analysis of embedded computer, designer creates models before finalizing the product.
- This step is also important for performance analysis.
- It is necessary to verify the complete functionality of the embedded computer.
- Embedded Computers are application specific so it is necessary to ensure that they perform their required function efficiently within the constraints.
- Embedded Computers are application oriented.
- Today, it is also becoming common to develop systems with some common applications.
- Almost all chips have some basic functionality and it is the choice of user to choose operations out of them.
Now I am moving towards the last section, which will give you guys an idea of programming embedded computers.
Writing Program for Embedded Computers
- Embedded Computers can be programmed using low level programming language or some high level programming language.
- For complex and sophisticated systems, low level programming languages are used. These languages provide more control to the user over the hardware and memory.
- Codes written in high level programming language are easier to understand and are more compact. Such programs are easily understandable by the user.
- The language we use among low level programming languages is Assembly Language. Out of high level programming languages, C is used mostly.