The computer most probably running the vacuum system in your home is an embedded computer. It also runs your other home appliances (fridge and microwave), e-readers, videogame consoles, network devices (access points, routers, modems, and switches), GPS, printers, copiers, elevators, vending machines, digital cameras, calculators, automotive embedded systems, and more. Almost all appliances that incorporate a digital interface have embedded systems.
What Is An Embedded Computer?
An embedded computer is defined as a computer system that forms part of a larger system and mostly only performs peripheral functions (such as security or guidance). Usually, an embedded system is contained on one microprocessor board with its programs housed in ROM. Although a few embedded systems have an operating system, most of them are extremely specialized such that a single program can implement the entire logic.
Embedded computers are often included in other devices, instead of being stand-alone devices. Since embedded computers are increasingly being utilized in consumer electronics, the boundary between the markets also keeps blurring. Consequently, you will find that even the biggest computer companies are also now involved in consumer electronics.
What’s interesting is that many devices that previously did not require embedded computers have also incorporated them. A good example is the changes that have been witnessed in automotive electronics. In addition to being included in visible devices like navigation systems, embedded computers are also being utilized to influence the fundamental functioning of automobiles in devices like braking systems.
All these devices — from cars to phones — that incorporate embedded computers generate more opportunities for the supply of software and hardware. And even though a significant number of the software and hardware is specialized for use with embedded systems, several are also common to both embedded computers and general computers. Good examples of the former are Java and Linux, which run on a wide range of devices, including mobile phones and mainframes. Looking at the bigger picture, it means that the demand for various types of embedded computers also influence the demand for everything from software to services to semiconductors.
Embedded devices are often preprogrammed, meaning you can’t easily input new programs into them. The best you can do is make the most out of the various services the embedded system offers.
Embedded Computer vs. General Computer
As you might have already noticed, an embedded computer differs from a general computer in so many ways. For instance, a general purpose computer — such as your PC — can handle different tasks, whereas an embedded computer can only handle a specific task. Also, a PC is able to handle different tasks at the same time. For example, with a PC, it’s possible to type a document on your word processor, play music on your music player, and download some files on your browser all at the same time. Notice that the word processor, music player, and browser are totally different programs that are running simultaneously.
Embedded computers on the other hand are programmed to perform a particular functionality. Their code is stored on the ROM, and it’s not possible for you to install your own application software. Even while designing an embedded computer, the various constraints and criteria taken into account differ from those of a general purpose computer’s design process. Moreover, whereas an embedded computer is only able to support a limited number of devices, a general purpose computer possesses the ability to support a wide range of external devices and peripherals, hence it easily keeps up with the latest devices and technology.
Overview of Control Systems
A significant number of modern control systems are based either on programmable logic control (PLC) or embedded computer. Programmable logic control are applied in industries, whereas embedded computers are applied everywhere.
Embedded computers are normally enclosed in some sort of a case and provided with a user interface. The interface allows you to manage and control the computer’s operations and — in some cases — even observe the output. The embedded computer’s design is geared towards meeting the control system’s specifications. The embedded computer, therefore, ought to be designed in a manner that it is able to control the processes and variables. Furthermore, the program should be real time to enable it perform all operations in a given time interval that fulfills the requirement. The control systems also need safety mechanisms, which the embedded computers control as well.
Types of Embedded Computers
Embedded computers may be built using different types of hardware.
- Microcontroller-Based Embedded Computer
Microcontrollers are increasingly being used with embedded computers rather than with a microprocessor. A microcontroller comprises of a chip with CPU as well as other parts such as Input/output ports, Counters, Timers, ROM, RAM, and more.
Microcontroller-based systems consume low power and are small in size. They come in various types, including 4-bit, 8-bit, 16-bit, and 32-bit. PIC microcontroller, Arduino, and 8051 microcontroller are some of the examples of microcontrollers.
- DSP Systems Based Embedded Computer
Digital Signal Processing (DSP) systems are almost similar to microcontrollers, with respect to power consumption and peripherals. The difference is that they also offer support for operations involving digital signal processing. Areas of application include communication systems and applications for speech and music processing.
- FPLD Based Embedded Computers
Field programmable logic devices (FPLDs) include complex programmable logic devices (CPLDs) and field programmable gate arrays (FPGAs). FPGAs refer to hardware devices that can be programmed. Since the hardware is not fixed, it’s possible for the user to design on his own. Field programmable gate arrays are quite complex; however, they offer great flexibility. They can also be used to build microcontrollers.
In light of the above information, application specific integrated circuits (ASIC) and FPGAs can be used in place of microcontrollers in embedded computers.
Programming Embedded Computers
Embedded computers can either be programmed using high level programming languages or low level programming languages. Low level programming languages are often used for sophisticated and complex systems. These languages give the user more control over the memory and hardware.
Normally, codes written using high level programming languages are more compact and easier to understand, especially by the user. More often than not, Assembly Language is used in the case of low level programming languages and C is used in the case of high level programming languages.