With the rising need of automation and advent of faster and smaller processing technologies, embedded systems are being universally used across the industries. Because of their specialized application, embedded systems need to be designed with careful considerations. In a series of posts, we will discuss about the various techniques that goes in to the embedded system design starting with its general architecture.
What is an embedded system?
An embedded system is a computer system designated to perform a dedicated function. They are generally a part of a bigger system or sometimes they themselves form the entire system. There are many categories of embedded systems depending on their functionality, reliability etc.
Embedded systems constantly evolve with advances in technology and dramatic decreases in the cost of implementing various hardware and software components. Some embedded devices requires higher quality and reliability than other types of computer systems, for example a critical medical device malfunctioning at the time of surgery will result in a very serious problem but there are also embedded devices such as TV’s, games, and cell phones in which a malfunction is an inconvenience but not usually a life threatening situation.
Some examples of embedded system includes Ignition system, Engine control in Automotive, Set top boxes, PDA’s, Microwave Ovens in Consumer Electronics, Robotics, Assembly Control System in Industrial, Gateways, Mobiles etc in networking.
Components of an embedded system
Essentially an embedded system is a miniaturized computer. The following block diagram depicts a typical embedded system.
As with any computing device, it has the following components:
Processor:
Processor is the brain controls the entire system. It holds the logic circuitry that responds to and processes the basic instructions that drives the system. It manipulates the control and data path to achieve the expected functionality. There are many application-specific and general-purpose microprocessors available. We will discuss in detail about the microprocessors in next post.
Memories:
Memories are the components that support the processor to hold data temporarily or permanently for immediate use and or later use. Memories are of two types: non-volatile – capable of withholding data after power cycle and volatile – not capable for persistent data storage. Memories come in various technologies and sizes that can be chosen based on the specific needs of the system.
Inputs/Outputs – IOs:
An embedded system responds to events from the external world and results in certain action be taken. This is accomplished with the IOs – inputs and outputs. While a real external world event is in form of a continuous analog signal (temperature reading of a furnace) or a discrete digital signal (on/off state of a switch), the input presented to the embedded system is generally digitized. This digitization is achieved using ADC’s for the analog signal or comparator circuits for a digital signal or it might be presented digitally using channels like an external message to the system. Similarly the outputs in the digital form are converted to suit the real world using many available techniques to be discussed later.
User Interface:
While the IO’s typically refers to interaction between the embedded system and the controlled system, the user interface represents the interaction between the user and system. Various technologies are available to implement the User interface including LCD’s, touch panels, key pads, buttons etc. An intuitive design enables easier and enhanced control of the system and this is becoming more of a mandatory requirement rather than an option.
Power Supply:
Another most important consideration of the design is the power supply. The system may be powered directly from the power line or using a battery depending up on the nature of the use. Its design requires deep analysis and careful incorporation according to the system requirement. Improper designing of power supply may not only affect the system performance but may end up damaging the system also. Further nowadays with emphasis on a greener world, it is more important to design a power-efficient system.
Mechanicals:
The mechanicals include cabinet and connectors. Cabinet protects the system from various external factors and provides ambience to the internals. The connectors support the connection of the external signals into the system. Various factors determine the selection of the cabinet and connectors which are discussed in detail in the upcoming post.
Embedded systems Design
As with any design, the design of an embedded system is determined by various requirements including functional requirements, processing Capabilities, Power supply requirements, Environmental considerations and reliability requirements.
There are various models being practiced for embedded system design. Some of them are
- Big-Bang model: Essentially no planning or procedures in place before and during the development of a system.
- Code and Fix model: Product requirements are defined but no formal processes are in place before the start of the development.
- Waterfall model: Process for developing a system in steps, where the result in one step flows into the next step.
- Spiral model: Process for developing a system in steps, and throughout the various steps, feedback is obtained and incorporated back into the process.
Since choosing any of these models in highly implementation and implementer specific, we will not dwell in to these topics. Rather we will discuss about various considerations to be factored in selecting each and every component of the embedded system, starting with the processor in the next post.