Embedded Systems

This advanced undergraduate course covers the engineering principles of embedded systems with an emphasis on Cyber-Physical Systems (CPS), addressing the joint dynamics of computer hardware, software, networks, and physical processes. Theory and lab components receive equal weightage. The theory component takes a balanced approach to modelling, design, and analysis of embedded systems. Lab sessions provide hands-on training in hardware-software co-design, culminating in building and testing a functional prototype. This includes working with microcontroller units such as ESP32 and STM32 to interface with sensors and actuators, and incorporates concepts of power management, packaging, concurrency, Real Time Operating Systems (RTOS), and Tiny ML.

Course Overview

The course is divided into three major parts, focused on modelling, design and analysis of embedded systems. The modelling will cover physical dynamics, including continuous and discrete dynamics, hybrid systems, composition of state machines and concurrent models of computation. The design of embedded systems discusses processor architectures, memory, input & output, multitasking and scheduling of processes. The analysis part of the subject will touch upon concepts of invariants and temporal logic, equivalence and refinement of models, model checking, quantitative analysis of embedded software.

Learning Objectives/Outcomes

By the end of this course, each student will have had the opportunity to:

  • Understand the basic principles underlying embedded systems, focusing on the interplay of hardware and software.
  • Develop models of systems, with an intuitive understanding of abstraction, and utilize them for the realization of systems.
  • Design embedded systems with an understanding of embedded processors, memory architectures, multitasking, scheduling and interfacing with sensors and actuators
  • Familiarize with methods of analysis and verification
  • Engage in a series of lab activities related to embedded systems hardware and software.
  • Deploy a fully functional prototype of an embedded system based on the theory and laboratory aspects developed throughout this course.
  • Introduction to Embedded Systems – A cyber-physical systems approach, 2nd Edition (2017), by E A Lee and S A Seshia (MIT Press)
  • Computer Organization and Embedded Systems, 6th Edition (2012), by C Hamacher, Z Vranesic, S Zaky, and N Manjikian.

Additional Readings

Info not available