Hello Friends, I hope you all are fine and doing great in your lives. In last article, we have seen What is an Embedded System? Today I am going to write about Embedded Computer. I will be going through the embedded computer definition and how they differ from our general-purpose computers.
After that, we will have alook at the relation between control systems & embedded computers and different hardware platforms for embedded computers. 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?We use normal computers & laptops at homes or offices, they are normally termed as general-purpose computers because they are capable of multiple tasks i.e. you can play games, you can install software, you can watch movies etc. Moreover, normal computers are quite big in size, expensive and draw heavy power. So, you can't use a general-purpose computer in your embedded projects as size & cost are main issues. So in the past decade, engineers have designed small electronics computers, they have all accessories a normal computer has i.e. RAM, ROM, Hard Drive etc. We can install Operating Systems on them(i.e. Windows, Linux, UBUNTU etc.) and can connect external perripherals (i.e. LCD, mouse, keyboard etc.). They have different technical specs depending on their manufacturers and are normally available on their official sites. These electronic computers are very small in size as compare to general computers and also quite low priced. Now let's have a look at a proper Embedded Computer Definition:
Embedded Computer Definition
- An Embedded Computer is a small-sized, compact, powerful and easy-to-operate electronic module, based on microcontroller/microprocessor and act as a bridge between electronics hardware and computer software.
- Embedded Computer performs specific functionality, which is normally programmed in it by its programmer.
- Embedded Computer normally has electronics I/O pins on it, which are used for interfacing embedded sensors & modules with it.
- After getting values from real world hardware, we can apply any algorithm on them in real time.
- Few Embedded Computer examples are Raspberry Pi, Beagle Bone, Arduino YUN, FPGa, Beagle Bone etc.
- Embedded Computer can work alone and can also be a part of a large system & the most common task that embedded computers perform is Cloud based IoT Projects.
- Amother important task that embedded computers perform is heavy computing, engineers use it to solve complex algorithms i.e. Blockchain.
- Below figure shows few of Embedded Computer examples:
Embedded Computer System
- An embedded system designed using embedded computer is termed as Embedded Computer System.
- Smart Web Based Air Conditioner is an example of Embedded Computer System and they are very smart devices.
- You can control its temperature through Android App and can also check power ratings etc. from the app.
- So, Embedded Computer Systems are very smart systems, modern artificial intelligence, robotics etc. are few other examples.
General Computer vs Embedded Computer
- As I have explained earlier, 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.
- We can also perform these tasks on an embedded computer system but they are not designed for these functions.
- IF you run GTA V on Pentium 1, what will happen ???
- Embedded computers are designed for specific embedded computer functions.
- Normally Embedded computers are used in those projects where data needs to be collected from electronic sensors & then needs to be uploaded on some webserver(website).
- Embedded computers are also used for complex algorithms, you must have heard of Bitcoin Mining, Raspberry Pi (an embedded computer) is a first choice for bitoin mining as it consumes low power.
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 are normally programmed using high level programming languages i.e. python, C# etc.
- 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.