Plan, Prepare, Practice and Perform

Engineering Courses, Campus Placement Preparation, Bank exam & GATE Preparation

India's No.1 Platform for Online Learning, Served more than 1.1 lakh Premium Users, Unique platform for students in higher education in India

 Course  Lecture
  • Title: Embedded Systems
  • Department: Electrical Engineering
  • Author: Prof. Santanu Chaudhary
  • University: IIT Dehi
  • Type: WebLink
  • Abstract:


    1. Introduction to Embedded Computing

    1.1 Introduction

    1.2 Overview
    1.2.1 Characteristics of Embedding Computing Applications
    1.2.2 Concept of Real time Systems
    1.2.3 Challenges in Embedded System Design

    1.3 Design Process
    1.3.1 Requirements
    1.3.2 Specifications
    1.3.3 Architecture Design
    1.3.4 Designing of Components
    1.3.5 System Integration

    2. Embedded System Architecture

    2.1 Instruction Set Architecture
    2.1.1 CISC and RISC instruction set architecture

    2.2 Basic Embedded Processor/Microcontroller Architecture
    2.2.1 CISC Examples
    2.2.1.1 Motorola (68HC11) Example
    2.2.1.2 8051
    2.2.2 RISC Example
    2.2.2.1 ARM
    2.2.3 DSP Processors
    2.2.4 Harvard Architecture
    2.2.4.1 PIC

    2.3 Memory System Architecture
    2.3.1 Caches
    2.3.2 Virtual Memory
    2.3.3 Memory Management Unit and Address Translation

    2.4 I/0 Sub-system
    2.4.1 Busy-wait I/0
    2.4.2 DMA
    2.4.3 Interrupt driven I/0

    2.5 Co-processors and Hardware Accelerators

    2.6 Processor Performance Enhancement
    2.6.1 Pipelining
    2.6.2 Super-scalar Execution

    2.7 CPU Power Consumption

    Lab Exercises on:
    (i) Digital Circuit implementation
    (ii) Hardware Description Language
    (iii) Assembly language Programming for different target processors

    3. Designing Embedded Computing Platform

    3.1 Using CPU Bus
    3.1.1 Bus Protocols
    3.1.2 Bus Organisation

    3.2 Memory Devices and their Characteristics
    3.2.1 RAM
    3.2.2 ROM, UVROM, EEPROM, Flash Memory
    3.2.3 DRAM

    3.3 I/O Devices
    3.3.1 Timers and Counters
    3.3.1.1 Watchdog Timers
    3.3.2 Interrupt Controllers
    3.3.3 DMA Controllers
    3.3.4 A/D and D/A Converters
    3.3.5 Displays
    3.3.6 Keyboards
    3.3.7 Infrared devices

    3.4 Component Interfacing
    3.4.1 Memory Interfacing
    3.4.2 I/O Device Interfacing
    3.4.2.1 Interfacing Protocols
    3.4.2.1.1 GPIB
    3.4.2.1.2 FIREWIRE
    3.4.2.1.3 USB
    3.4.2.1.4 IRDA

    3.5 Designing with Processors
    3.5.1 System Architecture
    3.5.2 Hardware Design
    3.5.2.1 FPGA Based Design

    3.6 Implementation
    3.6.1 Development Environment
    3.6.2 Debugging Techniques
    3.6.3 Manufacturing and Testing

    3.7 Design Examples
    3.7.1 Data Compressor
    3.7.2 Alarm Clock

    4. Programming Embedded Systems

    4.1 Program Design
    4.1.1 Design Patterns for Embedded Systems
    4.1.2 Models of Program
    4.1.2.1 Control and Data flow Graph

    4.2 Programming Languages
    4.2.1 Desired Language Characteristics
    4.2.1.1 Introduction to Object Oriented Programming
    4.2.1.2 Data Typing
    4.2.1.2.1 Overloading and Polymorphism
    4.2.1.3 Control
    4.2.1.4 Multi-tasking and Task Scheduling
    4.2.1.5 Timing Specifications
    4.2.1.6 Run-time Exception handling
    4.2.2 Use of High Level Languages
    4.2.2.1 C for Programming embedded systems
    4.2.2.2 Object Oriented Programming for Embedded Systems in C++
    4.2.2.3 Use of Java for Embedded Systems
    4.2.3 Programming and Run-time Environment
    4.2.3.1 Compiling, Assembling, Linking
    4.2.3.2 Debugging
    4.2.4 Basic Compilation Techniques
    4.2.5 Analysis and Optimization of Execution Time
    4.2.6 Analysis and Optimization of Energy and Power
    4.2.7 Analysis and Optimization of Program Size
    4.2.8 Program Validation and Testing

    5. Operating System

    5.1 Basic Features of an Operating System

    5.2 Kernel Features
    5.2.1 Real-time Kernels
    5.2.1.1 Polled Loops System
    5.2.1.2 Co-routines
    5.2.1.3 Interrupt-driven System
    5.2.1.4 Multi-rate System

    5.3 Processes and Threads

    5.4 Context Switching
    5.4.1 Cooperative Multi-tasking
    5.4.2 Pre-emptive Multi-tasking

    5.5 Scheduling
    5.5.1 Rate-Monotonic Scheduling
    5.5.2 Earliest-Deadline First Scheduling
    5.5.3 Task Assignment
    5.5.4 Fault-Tolerant Scheduling

    5.6 Inter-process Communication
    5.6.1 Signals
    5.6.2 Shared Memory Communication
    5.6.3 Message-Based Communication

    5.7 Real-time Memory Management
    5.7.1 Process Stack Management
    5.7.2 Dynamic Allocation

    5.8 I/O
    5.8.1 Synchronous and Asynchronous I/O
    5.8.2 Interrupt Handling
    5.8.3 Device Drivers
    5.8.4 Real-time Transactions and Files

    5.9 Example Real-time OS
    5.9.1 VxWorks
    5.9.2 RT-Linux
    5.9.3 Psos

    5.10 Evaluating and Optimising Operating System Performance
    5.10.1 Response-time Calculation
    5.10.2 Interrupt latency
    5.10.3 Time-loading
    5.10.4 Memory Loading

    5.11 Power Optimisation Strategies for Processes

    6. Network Based Embedded Applications

    6.1 Network Fundamentals

    6.2 Layers and Protocols
    6.2.1 Network Architectures
    6.2.2 Network Components: Bridges, Routers, Switches

    6.3 Distributed Embedded Architectures

    6.4 Elements of Protocol Design

    6.5 High Level Protocol Design Languages

    6.6 Network Based Design

    6.7 Internet-Enabled Systems
    6.7.1 Protocols for industrial and control applications
    6.7.2 Internetworking Protocols

    6.8 Wireless Applications
    6.8.1 Blue-tooth

    7. Embedded Control Applications

    7.1 Introduction

    7.2 Open-loop and Closed Loop Control Systems
    7.2.1 Examples: Speed Control

    7.3 PID Controllers
    7.3.1 Software Coding of a PID Controller
    7.3.2 PID tuning

    7.4 Fuzzy Logic Controller

    7.5 Application Examples
    7.5.1 Washing Machine
    7.5.2 Automotive Systems
    7.5.3 Auto-focusing digital camera
    7.5.4 Air-conditioner

    8. Embedded System Development

    8.1 Design Methodologies
    8.1.1 UML as Design tool
    8.1.2 UML notation
    8.1.3 Requirement Analysis and Use case Modeling
    8.1.4 Static Modeling
    8.1.5 Object and Class Structuring
    8.1.6 Dynamic Modeling

    8.2 Architectural Design
    8.2.1 Hardware-Software Partitioning
    8.2.2 Hardware-Software Integration

    8.3 Design Examples
    8.3.1 Telephone PBX
    8.3.2 Inkjet Printer
    8.3.3 PDA
    8.3.4 Set-top Box
    8.3.5 Elevator Control System
    8.3.6 ATM System

    8.4 Fault-tolerance Techniques

    8.5 Reliability Evaluation Techniques

List of Lectures

Embedded Systems: Introduction
Embedded Hardware
Pic: Instruction Set
Pic Peripherals On Chip
Arm Processor
More Arm Instructions
Arm: Interrupt Processing
Digital Signal Processors
More On Dsp Processors
System On Chip (soc)
Memory
Memory Organization
Virtual Memory And Memory Management Unit
Bus Structure
Bus Structure 2
Bus Structure - 3 Serial Interfaces
Serial Interfaces
Power Aware Architecture
Software For Embedded Systems
Fundamentals Of Embedded Operating Systems
Scheduling Policies
Resource Management
Embedded - Os
Networked Embedded System
Networked Embedded Systems - Ii
Networked Embedded Systems - Iii
Networked Embedded Systems - Iv
Designing Embedded Systems
Designing Embedded Systems - Ii
Designing Embedded Systems- Iii
Embedded System Design - Iv
Designing Embedded Systems - V
Platform Based Design
Compilers For Embedded Systems
Developing Embedded Systems
Building Dependable Embedded Systems
Pervasive & Ubiquitous Computing
Back to top