An embedded system is an electronic system that has software and is embedded in computer hardware. It is programmable or non-programmable depends on the task specification. To be concern about the characteristics of an embedded system involved its speed, size, power, reliability, accuracy and adaptability. Therefore, when the embedded system performs the operations at high speed, then it can be used for real-time applications.
To be concern about the characteristics of an embedded system we can classify it into two broad categories are as follows;
- Based on performance and functional requirements
- Based on performance of the microcontroller.
Figure: Classification of Embedded system
Based on performance and functional requirements of system embedded systems are classified into four categories as follows;
- Stand alone embedded systems
- Real time embedded systems
- Networked embedded systems
- Mobile embedded systems
Stand alone embedded system: This system don’t require host system like a computer system, it works by itself. It takes the input from the input ports either analog or digital and processes, computes and transfers the data and gives the resulting data through the connected device-which controls, drives or displays the associated devices. For examples stand alone embedded systems are mp3 players, digital cameras, video game consoles, microwave ovens and temperature measurement systems.
Real time embedded systems:
A system called real time embedded system, which gives a required output in a particular time. These types of embedded systems follow the time deadlines for completion of a task. Real time embedded systems are classified into two types such as soft real time embedded system and hard real time embedded systems based on the time preciseness.
Networked embedded system: Networked embedded systems are related to a network to access the resources. The connected network can be LAN, WAN or the internet. The connection can be any wired or wireless. This kind of embedded system is the fastest growing technological area in embedded system applications. The embedded web server is a type of system wherein all embedded devices are connected to a web server and accessed and controlled by a web browser. For example the LAN networked embedded system is a home security system wherein all sensors are connected and run on the protected protocol TCP/IP.
Mobile Embedded Systems: Mobile embedded systems are highly preferable in portable embedded devices like cell phones, mobiles, digital cameras, wireless mp3 players and personal digital assistants, etc. The basic limitation of these devices is the other resources and limitation of memory.
Another category of embedded system based on performance of microcontroller and it is further classified into three categories as follows;
- Small scale embedded system
- Medium scale embedded system
- Sophisticated Embedded Systems
Small Scale Embedded Systems: These types of embedded systems are designed with a single 8-bit or 16-bit microcontroller. They have tiny scaled hardware, software complexities and involve board-level design. They may even be battery operated. When embedded software is developing for this tiny scaled hardware, an editor, an assembler or cross assembler, specific to the microcontroller or processor used, are the main programming tools. Usually, ‘C programming language’ is used for developing these systems. ‘C’ program compilation is done into the assembly, and executable codes are then appropriately located in the system memory. The software has to fit within the memory existing and keep in view the need to limit power dissipation when system is running continuously.
Medium Scale Embedded Systems: These systems are usually designed with a single or few 16-bit or 32-bit microcontrollers or Digital Signal Processor (DSPs) or Reduced Instruction Set Computers (RISCs) being used. These system have both hardware and software complexities. For complex software design of medium scale embedded system, there are the following programming tools: RTOS, Source code engineering tool, Simulator, Debugger and Integrated Development Environment (IDE). Software tools also give the clarifications to the hardware complexities. An assembler is of slight use as a programming tool. These systems may also utilize the readily available Application-Specific Standard Product (ASSPs) and IPs for the various functions. For example, for the bus interfacing, encrypting, deciphering, discrete cosine transformation and inverse transformation, TCP/IP protocol is stacking and network connecting functions.
Sophisticated Embedded Systems: Sophisticated embedded systems have massive hardware and software complexities and may require ASIPs, IPs and PLAs scalable or configurable processors and programmable logic arrays. They are used for cutting edge applications that require hardware and software co-design and integration in the final system. They are constrained by the processing speeds available in their hardware units. Certain software functions such as encryption and deciphering algorithms, discrete cosine transformation and inverse transformation algorithms, TCP/IP protocol stacking and network driver functions are implemented in the hardware to obtain additional speeds by saving time. Some of the functions of the hardware resources in the system are also implemented by the software. Development tools for these systems may not be readily available at a reasonable cost or may not be available at all. In some cases, a compiler or retargetable (Compiler configures according to the specific target) compiler might have to be developed for these.