Sunteți pe pagina 1din 8

MCA-507 Embedded Systems An Overview of Embedded system, Requirements, Challenges issues, 1 and trends in software development.

2 Application market segments, control system and industrial automation, Data communication, Networked Information Appliances, Telecommunications. Hardware Architecture: Processor, Memory, Latches and buffers, ADC & DAC, Application specific control, Display units, keypads, DSP. Microcontrollers and their applications, Communication interfaces: Serial interface, IEEE 1394, USB, Infra red, Ethernet and PCI bus. Embedded system development process: requirement , system architecture, operating system and processes. Development platform and tools, HLL support Cross compilers, Linux and Windows CE based development Tools. Mobile/ handheld systems. Basic idea of embedded system application like mobile networks, GPS, Real time system, Database applications, Networked and JAVAenabled information appliances, Mobile JAVA applications.

3 4 5

Unit 1st Overview of embedded system:

An embedded system is a computer system designed to perform one or few dedicated tasks. An embedded system can be describes as one consisting of a processors, associated peripherals, and software used for a specific purpose. For example Fire Alarms embedded system is used to alert/notify to responsible attendant when it senses smoke. Like any other computer systems the embedded system is a combination of software and hardware but the hardware and software requirement is customize for embedded systems for their specific purpose. For example the hardware requirement for a Mobiles embedded device will definitely different than the requirement of a CD players embedded device. Accordingly the software requirement will also be different to meet the functionalities. Embedded systems are often required to provide the Real-Time Response. A Real-Time System is defined as a system whose correctness depends on the timeline of its response. The delay in response will cause to serious problems. For example: Fire Alarm, Sensor system in nuclear system. However relaxed version of Real-Time System is also there where small delay is acceptable. Example of embedded system: 1. 2. 3. 4. 5. 6. Digital camera Mobile devices Multitasking Toys Electronic home Appliances such as Microwave Oven, Washing-machine Automatic engines Transportations etc.

Requirements of Embedded System:

Fundamental requirements of embedded systems are:1. 2. 3. 4. 5. 6. Reliability Cost-effectiveness Low power consumption Effective Use of processing power Efficient use of memory Appropriate execution time

1. Reliability: The embedded systems are resides in machine and are expected to run continuously for years without any errors, and if any error occurs then recover by themselves. For example is an embedded system halt due to hardware error then it should reset itself without the need of human intervention. Thus the embedded system developer must make the reliability of the hardware, as well as that of software.

2. Cost-effectiveness: In competitive market segment, such as electronic home appliances, mobiles etc; the cost of embedded system is major factor. Choosing the right processor, memory devices and peripherals that meet the functionalities and performance requirement while keeping the cost reasonable is of critical importance. In such case designer will develop an Application Specific Integrated Circuit (ASIC) or an Application Specific Microprocessor to reduce the hardware components and hence the cost. Developer first creates the prototype of software for general purpose processor, and subsequently develops ASIC to reduce the cost. 3. Low power consumption: Because most of the embedded system are powered by the batteries rather than the main supply thus hardware designer must address this issue to minimized the power consumption to avoid the draining the batteries. For example reducing the number of hardware components or sleep mode when no operation is performed by the embedded system can be solution for low power consumption. 4. Effective use of processing power: The term Processor is used to refer Microprocessor, Microcontroller or Digital Signal Processor (DSP) used in embedded systems. Wide verities of processors with varying processing powers are available to embedded system. The processing power requirement is specified in Million Instruction Per Second (MISP). The MISP requirement is specified first and then the appropriate processor is selected. 5. Efficient use of memory: Most embedded systems do not have secondary storage such as hard disk. The memory chips available for the embedded system are only ROM, to hold the program and RAM to hold the data. Depending of the functionality, the developer may determine the program size and the data size based of which memory requirements are more important. As most embedded systems do not have secondary storage, flash memory is used to store the program including the operating system. 6. Appropriate execution time: The time in the real time embedded system is most important factor. In the hard real time embedded system certain task must be carried out within the specified time. The special operating system called real time OS run on these embedded systems. In soft real time embedded system the time factor again important but small delay is acceptable.

Categories of Embedded System:

1. 2. 3. 4. Stand alone embedded system Real time embedded system Networked appliances Mobile devices

1. Stand alone embedded system: They work in stand-alone mode taking input and producing the output. The input can be the electrical signals from sensors or command from human being such as pressing the buttons. The output can be electrical signal to drive another system or an LED or LCD display for displaying information to users. In some stand alone

embedded system the response time is not crucial. Examples of this category are toys, CD players and measuring instruments. 2. Real time Embedded System: Some embedded system are required to carried out some specific tasks in a specified amount of time. Such systems are called real time embedded system. Some real-time embedded systems in which real time constraint have to be strictly met are called hard real-time embedded system. For example if there is fire and fire alarm must have to response as it senses the smoke. In some systems real time constraint exist but it not much critical such embedded systems are called soft real-time embedded system. 3. Network appliances: Some embedded systems are connected to network- typically based of TCP/IP suit, such as internet or company intranet. They run the complete TCP/IP protocol stack and can communicate with the other node on the network. Even a web server running HTTP can be embedded into system. The system can monitor some parameters (such as temperature and pressure) and send data over a network to centralized system for online monitoring. For example network enabled camera that sends the video output over internet. 4. Mobile devices: Wireless networks can support very high speeds; mobile devices are capable of supporting high data rates services in addition to the voice services. Accessing internet services such as email etc can be done while person on move. Such devices need to run a powerful mobile operating system and download information from websites. The handheld pc, palmtops are example of this category. These devices can be real time or non real time. They should be capable of running multimedia applications. These requirements call for powerful processors, powerful OS and a lot of memory with minimal power.

Challenges issue in embedded software development


Embedding an OS

Challenging issues Code optimization

Efficient Input/output

Testing and debugging

1. Co-design: Because embedded system is consists of hardware and software, deciding which function of system should be implemented in hardware and which should be implemented in software is major consideration. And this issue of choosing between hardware implementation and software implementation is called co-design. For example CRC (used to check whether a bit stream has errors in it) algorithm in embedded system can be implemented either in hardware or in software. But what should be preferable? Is a big question itself. The hardware implementation has an advantage that the task execution is faster as compared to software implementation. But a downside a chip costs money, consume valuable power and occupy memory. At the other hand software implementation provides flexibilities- such as if algorithm changes it is easier to modify the software. 2. Embedding an operating system: Embedded software can be designed without embedding any operating system to it. Developers can implements the services such as memory management, IO management and process management with combination of assembly and high level language such as C. This technique saves the processing power and memory because the writing specific routines for application results to compact and efficient code. But software can be designed above operating system. The developers use the readily available operating system. In this case programmer need not to worry about the memory management, process management and all, developer can focus of application software development. 3. Code optimization: Memory and execution time are main constraints in embedded system thus developer should optimize the code to maximum possible extent. Although the compiler performs the code optimization, the programmer still has to optimize the code for faster execution and less memory occupation. 4. Efficient input/output: In most of the embedded system the input and output interfaces have limited functionalities such as only a small keypad (with 8 to 12 keys) available for inputting data, small LED or LCD are used for displaying only two line and 8 to 12 characters per line. Some embedded systems have no IO device. For example many system used in process control. These systems take electrical signal as input and produce electrical signal as output. Thus writing embedded software for such system is again a challenging issue. 5. Testing and debugging: Software for an embedded system cannot be tested on target hardware during the development phase because debugging will be extremely difficult. The host system that has the development tools is used for development and initial testing and then software is transferred to the target hardware for final testing. Now days profilers made the job simpler that tell us which line of code are executed and which lines are not executed.

Trends in embedded system


Development tools

Trends in embedded system

Operating systems

Programming languages



Operating systems

Programming languages

Development tools

Various processors (8bit, 16bit and 32 bit) with different processing power are released by various vendors. Very powerful Digital Signal Processors (DSP) is available for real time analysis of audio and video signals. The processor board on which embedded system can be built come with necessary RAM and ROM as well as peripheral such as serial port, USB port and Ethernet connectivity. Both RAM and ROM memory devices are becoming increasingly cheaper. These can be used by devices to store large number of programmes and their data. Secondary storage devices are also being integrated into embedded system such as mobile. Flash memory can also be used by those devices that dont have secondary storage device.. A verity of operating systems is available in the market which can be ported onto embedded system. The available operating system can be categorised as embedded operating system, real-time operating system and mobile operating system. Nowadays high-level languages are extensively used in embedded system development. Object oriented language such as ADA and C++ are also used. They offer the advantage of code-reusability, data-abstraction etc. Many advanced development tools are available for developing embedded software. These development tools includes cross compilers, debuggers and emulators. Using this developer can develop the software on host machine, test it and port to the target hardware.

Unit 2nd Application area of embedded systems:

Consumer electronics

Control System

Biomedical system

Application area

Handheld computers

Networked information appliances

Wireless communication

1. Consumer electronics: Consumer electronics such as CD players, MP3 player, microwave ovens etc are embedded system with different processing power and memory requirements. Each of these system must be highly reliable and of low cost. Each of these systems has different type of processor requirements and also software requirements. This type of embedded systems can be categorized into following categories: a. Domestic products: House hold embedded systems such as Microwave ovens, washing machine, audio and video systems etc. b. Office products: LCD projectors, smart cards, scanner, printer, fax etc. 2. Control systems:

Unit 3rd Hardware Architecture

External RAM


Address latch

External ROM

Reset circuitry


Latch for external device control Tri-state Buffer

Application Specific Control Circuitry

Chip select


LCD display

LED Indicators

Communicaion interface

The architecture of an embedded system builds around a processor. The CPU does the necessary computation depending upon the input taken by different input devices. The CPU in the embedded system is less powerful than the CPU of desktop. The figure above illustrates functional block of hardware architecture of embedded system. 1. Processor: Processor defines the quality of the system. It is used to execute a process. The processors are specified by their clock speed such as 100MHz, 200 MHz etc. and data word length such as 8 bit, 16 bit, 64 bit etc. The