In this course students will get exposure to the management of concurrency and real-time nature of embedded systems using two distinct high-level approaches: the real-time operating systems approach and the system-level design approach. These approaches are essential for the design of complex embedded systems. Several real-life examples (power system frequency measurement and relay, cruise controllers, and lift controllers) will be used in this course to contrast the two approaches. The course is divided into two parts as follows.
Part I Embedded Systems Design
In this part of the course the focus is on the concepts of concurrency as the way to tackle complexity of the embedded systems. We will discuss the role of hardware and software approaches to implement concurrency and then focus on systems that are designed using software approaches only. The topics that will be covered in this part include (1) embedded systems design approaches and design flows, typical steps in the design process, the ways of organising hardware and software for embedded and real-time systems and approaches to deal with concurrency (scheduling, resource protection, task synchronisation and communication), (2) concurrency and formal models of computation (MoC) as the basis for the design of reliable and trustworthy embedded systems (different variants of state machines, data flow graphs and their combinations, Globally Asynchronous Locally Synchronous (GALS) MoC), and (3) software-implemented embedded systems based on the use the C sequential programming language and its extension that supports concurrency in the form of a Real-Time Operating System (RTOS), as well as those implemented using concurrent programming languages. In this part, students will get familiarised with a commercial grade RTOS and use it in a group project (assignment 1) designing a real-life hard real-time system that uses the Intel FPGA-based soft-core processor and FPGA hardware resources.
Part II Executable specifications
We will learn about the synchronous approach to embedded system design. In particular, the Esterel and Safe State Machines (SSMs) design paradigms will be introduced and used. We will discuss in detail issues related to safety, real-time, compilation and formal analysis. We will examine issues related to real-time networking using the time-triggered protocol (TTP). Many illustrative examples will be used throughout this part. In this part of the course students will also do an assignment involving the synchronous approach (assignment 2).