Embedded systems in brief


Published on

Published in: Technology, Business
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Embedded systems in brief

  1. 1. A Brief Introduction to Embedded Systems K. Raghunathan Chartered Engineer FIETE, MIE, MCSI, MISTE, MISTD. MIIMM Retd. Dy. Controller (R&D)
  2. 2. Embedded Systems <ul><li>Overview of Embedded Systems </li></ul><ul><li>Embedded System Design </li></ul><ul><li>Embedded System Designer </li></ul><ul><li>More Knowledge </li></ul>
  3. 3. Overview of Embedded Systems <ul><li>What is an Embedded System ? </li></ul><ul><li>Examples of Embedded Systems </li></ul><ul><li>Why an “Embedded” System ? </li></ul><ul><li>Salient Features </li></ul>
  4. 4. What is an Embedded System ? <ul><li>A computer system, fitted as part of some Equipment which is not a computer </li></ul><ul><li>The whole system is not called a computer - it is known by the name of the Equipment </li></ul><ul><li>The embedded computer system controls the equipment in which it is embedded </li></ul><ul><li>Performs only specific tasks, often in real-time </li></ul>
  5. 5. Examples of Embedded Systems <ul><li>Network Printer </li></ul><ul><ul><li>Network Interfacing & Routing </li></ul></ul><ul><li>Handheld Barcode Scanner </li></ul><ul><ul><li>Conversion of Image to Number </li></ul></ul><ul><li>Mobile Phone with Internet Connectivity </li></ul><ul><ul><li>Browsing, eMail, FTP, Chat etc </li></ul></ul>
  6. 6. Examples of Embedded Systems <ul><li>CNC Machines & Robots </li></ul><ul><ul><li>Control the Sequence of Operations </li></ul></ul><ul><li>Satellites </li></ul><ul><ul><li>Remote-sensing, Data-formatting, Communication, Navigation Control etc </li></ul></ul><ul><li>Televison Set </li></ul><ul><ul><li>Digital on-screen display of menu, channel number, subtitles etc </li></ul></ul><ul><li>Washing Machines </li></ul><ul><ul><li>Control of Sequence of Operations, Motor speed & duration control etc </li></ul></ul>
  7. 7. Why “embed” a Computer ? <ul><li>Computers are more suitable for </li></ul><ul><ul><li>Control </li></ul></ul><ul><ul><li>Data Processing </li></ul></ul><ul><ul><li>Decision Making </li></ul></ul><ul><ul><li>Digital Communication </li></ul></ul>
  8. 8. Why “embed” a Computer ? <ul><li>Main Equipment is Larger & Costlier; computer is smaller, cheaper & used for only some specific purpose </li></ul><ul><li>Using General-purpose computer involves additional space & wiring. It is better to fit a small computer inside [or onto] the equipment itself </li></ul><ul><li>often, main equipment itself may have to be small & portable </li></ul>
  9. 9. Salient Features of Embedded Systems <ul><li>Purpose & Functionality </li></ul><ul><ul><li>Specific Purpose; Limited Functionality </li></ul></ul><ul><li>Size </li></ul><ul><ul><li>Small enough to fit into/onto the main eqpt </li></ul></ul><ul><li>Real-Time </li></ul><ul><ul><li>Response within a specified Time-limit </li></ul></ul><ul><li>I/O Devices </li></ul><ul><ul><li>Very Few; only a set of Sensors & Activators </li></ul></ul><ul><ul><li>Conspicuous absence of conventional devices like keyboard, CRT screen, hard disk etc </li></ul></ul>
  10. 10. Embedded Systems <ul><li>Overview of Embedded Systems </li></ul><ul><li>Embedded System Design </li></ul><ul><li>Embedded System Designer </li></ul><ul><li>More Knowledge </li></ul>
  11. 11. Embedded System Design <ul><li>Selection of CPU & other Hardware </li></ul><ul><li>Design of the Hardware System </li></ul><ul><li>Design & Development of Software </li></ul><ul><li>Testing & Debugging </li></ul><ul><li>Loading the Software into the Embedded System’s Memory </li></ul>
  12. 12. Selection of CPU & other Hardware <ul><li>CPU </li></ul><ul><ul><li>Speed </li></ul></ul><ul><ul><li>Instruction Set </li></ul></ul><ul><ul><li>Multitasking Capabilities </li></ul></ul><ul><ul><li>Interrupt- handling Capabilities </li></ul></ul><ul><ul><li>Power Consumption </li></ul></ul><ul><ul><li>Heat Dissipation </li></ul></ul>
  13. 13. Memory <ul><li>Non-Volatile [ROM/PROM/EPROM] </li></ul><ul><ul><li>Code </li></ul></ul><ul><ul><li>Fixed Data </li></ul></ul><ul><ul><ul><li>Look-Up Tables, Constants, Initial Values of Variables </li></ul></ul></ul><ul><li>Volatile [RAM] </li></ul><ul><ul><li>Variable Data </li></ul></ul><ul><ul><li>temporary data </li></ul></ul>
  14. 14. I/O Devices <ul><li>Depends on : </li></ul><ul><ul><li>Main Equipment & its purpose/functions </li></ul></ul><ul><ul><li>Purpose to be served by the embedded system </li></ul></ul><ul><li>May also need : </li></ul><ul><ul><li>HW & SW Interfaces or Drivers for the i/o devices </li></ul></ul>
  15. 15. Software Development <ul><li>Software has to be developed on some other convenient computer system [ Host System ] </li></ul><ul><li>The Code obtained in the Host system should run in the Embedded System [ Target System ] </li></ul>
  16. 16. Software Development <ul><li>HW configuration of Host & Target will be different </li></ul><ul><li>Should use Cross Compilers & Cross Assemblers on the Host, to get Target System’s Machine Code as the Output </li></ul><ul><li>Often, an RTOS [Real Time Operating System] is used </li></ul>
  17. 17. Software Development <ul><li>Usually the SW is developed as a set of Tasks [functions/procedures] & ISRs [Interrupt Service Routines] </li></ul><ul><li>Tasks perform some specific actions </li></ul><ul><ul><li>most likely, some of the primary functions of the Main eqpt </li></ul></ul><ul><li>ISRs interrupt running Tasks based on certain events [inputs from sensors] </li></ul><ul><ul><li>to take appropriate action for those inputs </li></ul></ul><ul><ul><li>to update data for the tasks </li></ul></ul>
  18. 18. Testing & Debugging <ul><li>Often not possible to test the program by actually loading it into the target system & running it in the Main eqpt </li></ul><ul><li>So, code has to be tested in the Host system itself </li></ul><ul><li>Need Emulators which can emulate the embedded system’s CPU </li></ul>
  19. 19. Testing & Debugging <ul><li>Drivers & Scaffolds to be written </li></ul><ul><ul><li>to simulate actual inputs & behaviour of the main eqpt </li></ul></ul><ul><li>Test Data </li></ul><ul><ul><li>normally expected range of values </li></ul></ul><ul><ul><li>out-of-range values </li></ul></ul><ul><ul><li>erroneous data </li></ul></ul>
  20. 20. Loading SW in the Embedded System’s Memory <ul><li>No operating system in the embedded system </li></ul><ul><li>Code generated on the Host system should include start-up [initialising] routines for the target system </li></ul><ul><li>Use of RTOS ensures automatic addition of start-up code </li></ul>
  21. 21. Loading SW in the Embedded System’s Memory <ul><li>Special programs called Locators enable developer to specify which blocks of code should be loaded at what addresses in the embedded system’s memory </li></ul><ul><li>Output of Locator is in the form of a file stored in the Host; this file will have a special format [not the standard executable file you get in desktop systems] </li></ul><ul><li>Special programs called Loaders </li></ul><ul><ul><li>understand the Locator’s file format </li></ul></ul><ul><ul><li>load the code in embedded systems memory </li></ul></ul>
  22. 22. Tools for Embedded Software Development <ul><li>Cross Compilers </li></ul><ul><li>Cross Assemblers </li></ul><ul><li>Locators </li></ul><ul><li>RTOS </li></ul><ul><li>Loaders </li></ul>
  23. 23. RTOS <ul><li>Easier Development Environment </li></ul><ul><li>Produce Machine Code of Target CPU </li></ul><ul><li>Automatic inclusion of Start-up Code </li></ul><ul><li>Many RTOSes available </li></ul><ul><ul><li>iRMX86, uC-OS, VxWorks, pSOS, QNX etc </li></ul></ul><ul><li>Many of them written in C/C++ </li></ul><ul><ul><li>allow us to develop programs using C/C++ </li></ul></ul>
  24. 24. RTOS <ul><li>Main Features </li></ul><ul><ul><li>Multi-tasking </li></ul></ul><ul><ul><li>Task Scheduling Policies </li></ul></ul><ul><ul><li>Mutual Exclusion using Semaphores </li></ul></ul><ul><ul><li>Message Queues, Mailboxes and/or Pipes for Inter-Process Communication </li></ul></ul>
  25. 25. Hardware Design Considerations <ul><li>Physical Size </li></ul><ul><ul><li>Small </li></ul></ul><ul><li>Power Consumption </li></ul><ul><ul><li>Low </li></ul></ul><ul><li>Heat Dissipation </li></ul><ul><ul><li>Very Low </li></ul></ul><ul><li>Cost </li></ul><ul><ul><li>Low cost, without compromising Quality & Performance </li></ul></ul>
  26. 26. Software Design Considerations <ul><li>Real Time Response </li></ul><ul><ul><li>No part of the code can take unpredictable execution time </li></ul></ul><ul><ul><li>ISRs must be kept short </li></ul></ul><ul><ul><li>No Dead-Locks or Circular Waits </li></ul></ul><ul><li>Reliability </li></ul><ul><ul><li>Should run without Human Intervention </li></ul></ul><ul><ul><li>Should NOT Crash </li></ul></ul><ul><ul><li>Robust & Fault Tolerant </li></ul></ul><ul><ul><li>Exception Handling without Malfunction or unpredictable behaviour </li></ul></ul>
  27. 27. Embedded Systems <ul><li>Overview of Embedded Systems </li></ul><ul><li>Embedded System Design </li></ul><ul><li>Embedded System Designer </li></ul><ul><li>More Knowledge </li></ul>
  28. 28. Embedded System Designer <ul><li>Specialist </li></ul><ul><li>Knowledge of Theory & Practical Techniques of both Hardware & Software </li></ul><ul><li>Strong Foundation in </li></ul><ul><ul><li>Digital Logic Ckts, ADCs, DACs, PLCs, FPGAs </li></ul></ul><ul><ul><li>Microcontrollers & Interfacing Techniques </li></ul></ul><ul><ul><li>Assembly Language Programming </li></ul></ul><ul><ul><li>High Level Language Programming [C/C++] </li></ul></ul><ul><ul><li>Writing ISRs </li></ul></ul><ul><ul><li>RTOS </li></ul></ul>
  29. 29. Job Oppurtunities <ul><li>Employers </li></ul><ul><ul><li>Manufacturers of </li></ul></ul><ul><ul><ul><li>Telecom Products </li></ul></ul></ul><ul><ul><ul><li>Automatons & Industrial Robots </li></ul></ul></ul><ul><ul><ul><li>Automated Production & Diagnostic Eqpt </li></ul></ul></ul><ul><ul><li>Software Development Firms </li></ul></ul><ul><li>Remuneration </li></ul><ul><ul><li>Lucrative </li></ul></ul>
  30. 30. Embedded Systems <ul><li>Overview of Embedded Systems </li></ul><ul><li>Embedded System Design </li></ul><ul><li>Embedded System Designer </li></ul><ul><li>More Knowledge </li></ul>
  31. 31. For More Knowledge <ul><li>Books </li></ul><ul><li>Hands-on Training </li></ul>
  32. 32. Books on Embedded Systems <ul><li>An Embedded System Primer </li></ul><ul><ul><li>David E Simon </li></ul></ul><ul><li>Embedded System Design </li></ul><ul><ul><li>Steve Heath </li></ul></ul><ul><li>The Art of Programming Embedded Systems </li></ul><ul><ul><li>Jack G Ganssle </li></ul></ul><ul><li>Fundamentals of Embedded Software - Where C and Assembly Meet </li></ul><ul><ul><li>Daniel W Lewis </li></ul></ul><ul><li>Real Time Systems & Programming Languages </li></ul><ul><ul><li>Alan Burns & Andy Wellings </li></ul></ul><ul><li>Real Time Programming </li></ul><ul><ul><li>Moore Grehan </li></ul></ul>
  33. 33. Training on Embedded Systems <ul><li>TCIL, & their Branches & Franchisees </li></ul><ul><ul><li>Telecom Consultants India Ltd </li></ul></ul><ul><ul><li>formed by DoT </li></ul></ul><ul><li>ECIL, Hyderabad </li></ul><ul><ul><li>Electronic Corporation of India Ltd </li></ul></ul><ul><li>Beware ! </li></ul><ul><li>Many institutes boast of embedded system training </li></ul><ul><ul><li>teach only soldering & assembling using kits </li></ul></ul><ul><ul><li>do not teach theory or design </li></ul></ul>
  34. 34. Thank You !