We are all familiar with the concept of a computer. Modern computers are able to perform a wide variety of tasks, and have input from their users in the form of a keyboard, touch screen or mouse. When a computer system is designed to function as a component within a larger system it is called an embedded system.
Effectively, an embedded system could be considered to be a computer in its own right, but with pre-set programing that allows it to complete specific tasks, and with very little opportunity for input from users. While there is minimal opportunity to interact with the embedded system, it still requires hardware to operate, and software to drive the system. The larger system could be mechanical or electrical. There may be real-time computing constraints to the system. The result of using an embedded system in this manner is that larger systems can be controlled in a regular manner, allowing common daily use. Nearly all microprocessors are manufactured to be part of larger embedded systems.
Embedded systems may be as simple as a single chip, or can be complex, with multiple units. Complex embedded systems may include peripheral devices and networks, mounted within a fixed structure.
We use embedded systems on a daily basis without realizing it. A simple example is the computer that controls an elevator. User input is from a button. The elevator has a program to start the engine, move the elevator car to the relevant floor, open the door, and await further instructions. Another example is a set-top decoder for digital television. As users, our interaction is limited to choosing channels. The computer takes the digital signal, and transforms it into a format that will produce a picture on the television screen.
When programmers talk about real-time computing, they indicate that the embedded system must perform its designated task to maintain the flow of information to the larger system and keep the system operating. In our examples, if the elevator needed to calculate factors before moving the car, people would become frustrated. Similarly, if the set-top box needed to stop accepting new signals while it transformed or decoded the signals already received, we would have stop-start television viewing. Other everyday examples of embedded systems include MP3 players, digital cameras, or assembly line controllers in factories.
Embedded systems are based on either microprocessors or microcontrollers. A microprocessor uses external chips and peripheral interfaces, while a microcontroller uses a CPU and has integrated memory or peripheral interfaces. Irrespective of whether the embedded system is based on a microprocessor or a microcontroller, the system may be general purpose, specialized, or customer designed for specific applications.
Design engineers can optimize embedded systems to reduce the size, and the associated cost because there are few direct interfaces required. There are a range of properties that accompany embedded systems. They tend to be smaller than general-purpose computers. They are likely to have lower levels of power consumption, low unit costs to manufacture, and a small size. As they are designed for a specific purpose, they are generally more challenging to interact with and program.