Sunday, September 25, 2011

Introduction




What is Embedded system: 

This basic question comes to our mind when we hear word Embedded system. I know that you too love embedded as I do that is why you are here.

Embedded Systems is a special purpose computer system/board, which encapsulates all the devices such as processor, memory, interface and control in single package or board to perform only a specific application tasks.

You will think that my desktop or my Laptop can also do specific task if I program them for the same. Yes you are correct they can do but can you imagine your desktop sitting on microwave and baking pizza for you or can you see your laptop connected with your car/motor bike engine and monitoring it when you are riding on air. Now a days what ever gadget you see you can think of embedded systems sitting inside it and performing special tasks for you and making your life easy.

The various general examples from our day to day life are:

1. Digital camera.
2. LCD, LED or any TV.
3. DVD players
4. Microwave oven.
5. Washing machine.
5. Mobile phones
6. Car and Motorcycle.
7. Refrigerator.
8. Medical equipments.
9. Video game consoles.
10. Security application.

These are only few general life examples which we find around us. The field of use for embedded systems is very vast.

If you have some what knowledge of electronics and if you open any of embedded systems equipment or gadget you will see that it is very small unit but it is not much simple as of its size. It comprises of Various Components.

If we go by the definition which I have given above then it is comprised of following components.

1. Processor
2. Memory (On-chip and Off-chip)
3. Actuators
4. Sensors
5. Converters
6. Communication path with environment


We will learn about them in detail one by one but before that I want to finish my definition first. Something which is missing in that definition is that it says nothing about software embedded inside memory of the unit. Is discussion about software obvious ?

Yes it is as it contains all the logic and instructions to be given to the components mentioned above. If all these components constitute the body of embedded systems then software is the soul. So now we can broadly divide embedded system in two parts

1. Hardware
2. Software.

Hardware comprises of all the components listed above.

So our new definition becomes.   

An embedded system is combination of hardware and software designed to perform dedicated function. This embedded system could be an independent single unit or it could be a part of larger system.
 OR
An embedded system is a system that has embedded software and computer-hardware,which makes it a system dedicated for an application(s) or specific part of an application or product or a part of larger system.

Tim Wilmshurst author of An introduction to Design of small scale Embedded Systems with examples from PIC, 80C51 and 68HC05/08 micro-controllers:
An embedded system is a system whose principal function is controlled by a computer embedded within it. The computer is likely to be micro-controller or microprocessor. The word embedded implied that it lies inside the overall system , hidden from view, forming an integral part of[the] greater whole. 

Component of General purpose Computer

A computer is a system that has the following or more components.
1. A microprocessor.
2. A large memory of the following two kinds:

   (a) Primary memory(semiconductor memories)
       i) Random Access memory RAM.
      ii) Read only memory ROM.
     iii) Fast accessible caches.

   (b) Secondry memory
       i) Magnetic memory located in Hard disks, diskettes and cartridge tapes.
      ii) Optical memory in CD-ROMs or memory sticks(in mobile computers)
          using which different users can be loaded into the primary memory and run
3. IO units such as touch screen, modem fax cum modem etc.
4. Input unit such as keyboard, mice digitizer, scanner, etc.
5. Output unit such as an LCD screen, video monitor , printer etc.
6. Networking unit such as and Ethernet  card front-end processor-based server, bus drivers
7. An Operating system that has general purpose user and application software in the secondary memory.

An embedded system is system that has three component embedded into it:
1. It embeds hardware similar to a computer. Figure below shows the units in the hardware of an embedded system: As its software usually embeds in the ROM or flash memory, it usually do not need a secondry hard disk and CD ROM as in a computer.
2. It embeds main application software. The application software may concurrently perform a series of tasks
 or processes or threads.
3. It embeds a real time operating system RTOS that supervises the application software running on hardware and organizes access to a resource according to priorities of the task in the system. It provides a mechanism to let the run a process as scheduled and context-switch between the various process.  

Characteristics.
An embedded system is characterized by trhe following:
1.Real-time and multirate operations define the ways in which the works and reacts to events, interrupts or schedules the system's functioning in real time. It does so by following a plan to control latencies and to meet deadlines.(Latency refers to waiting period between running the codes of task or interrupt service routine and instance at which the need for the task or interrupt service routine and the instance at which the need for the task or interrupt from an event arises). The different operation may take place at distinct rates. For example, audio, video, data, network stream and events have different rates and time constraints.
2.Complex algorithms
3.Complex graphic user interfaces and other user interfaces.
Dedicated Functions.

Constraints:
An embedded system is designed keeping in view three constraints
1. Available system-memory
2. Available processor speed
3. The need to limit power dissipation when running the system continuously in cycles of 'wait for events','run','stop','wake-up'  and sleep.
The system design or an embedded system has constraints with regard to performance, power, size and design and manufacturing costs.

An embedded system is typically required to meet very different requirements than a general purpose personal computer. We can also get our task done with general purpose computer system but the difference lies in cost and power consumption. There are various characteristics which are common to every embedded system.

1. Low cost
2. Low power.
3. Higher performance.
4. Real time property.

Classification of embedded system.
1. Small scale embedded sytem.
2. Medium scale embedded system.
3. Sophisticated embedded system.

Small scale embedded system.
1. 8 bit or 16 bit micro-controller.
2. Hardware and software complexity is small.
3. Usually developed in  c or assembly.
4. System keeps on running continuously.

Programming tools: editor, assembler and cross assembler.

Medium scale embedded system.
1. 16 or 32 bit micro-controller.
2. Digital signal processors ( DSP ).
3. Reduced instruction set ( RISC ).
4. Hardware and software complexity.

Programming tools: RTOS, Source code engineering tools, Simulator, debugger and IDE.

Sophisticated Embedded system.
1. Enormous hardware and software complexity.
2. These may need several several IPs and ASIPs, scalable processors or configurable processors
and programmable logic arrays.
3. They are used for cutting age applications that need hardware and software co-design and components that have to be integrated in the final system.
4. They are constrained by the processing speeds available in their hardware units.

Programing tools: For these systems programing tools may not be available at a reasonable cost or may  not be completely available.