Einführung in / Introduction to Embedded Systems, Lecture, 6 ECTS/ 4 SWS

- Phil Scholl, Kristof Van Laerhoven

This introductory course will provide a first insight into the design and implementation of embedded systems. These are computing systems, embedded into other physical systems, which they monitor, control and provide human interfaces for. The course will introduce specification languages and methods (e.g. statechars, petrinets, VHDL and SystemC), mapping these specifications on both processes and actual hardware. Other themes that will also be introduced in particular are DSP designs and hardware-/software co-design. We will look into the architectures of embedded systems (processing cores, FPGAs, AD-/DA-conversion, sensors, bus systems, memory architectures) and methods for optimizing the overall embedded design on speed, energy consumption, and testability.

Lectures will be held Monday, 16:00-18:00 (st), and Wednesday, 16:00-17:00 (ct), in Building 101, 01-009/013 (HISinOne). Both lectures and exercises will be presented in German, written material is available in English.

Exercises will be presented every Wednesday, 17:00-18:00, in the same room (HISinOne). The first sheet will become available on October 28th, 2015 and will be discussed one week later.

The exam (written for all ESE students and all Masters students) will be held on Monday, the 14th of March 2016 from 14:00 onwards in Building 101, 026-036.

The repeat exam will be held on Friday, the 30th of September 2016 at 14:00 in Building 101, 01-009/013.

Past lectures: video footage from WS13/14, lecture page WS14/15, by Dr. Tobias Schubert

Course overview:

1: Introduction to embedded systems

- Course information, examples, embedded system characteristics

[slides 19.10.2015]
2: Specification techniques:

- overview and motivation for specification techniques

[slides 21.10.2015]

- Petri Nets, part 1: Condition/Event Nets

[slides 26.10.2015]

- Petri Nets, part 2: Liveness, Examples, Place/Transition Nets

[slides 28.10.2015]

- Petri Nets, part 3: Place/Transition Nets and Predicate/Transition Nets

[slides 02.11.2015] [ex]

- Petri Nets, part 4: Predicate/Transition Nets, Summary Petri Nets

[slides 04.11.2015] [ex]

- Statecharts, part 1: Finite State Automata, Statecharts basics

[slides 09.11.2015]

- Statecharts, part 2: Deep History, Complex data types, Concurrency

[slides 11.11.2015]

- Statecharts, part 3: Timers, Statecharts example

[slides 18.11.2015]

- Statecharts, part 4: Semantics of Statecharts

[slides 23.11.2015]

- SystemC, part 1: Basic components of SystemC

[slides 25.11.2015] [ex]

- SystemC, part 2: multiple methods, SC_THREADS, SC_CTHREADS

[slides 30.11.2015] [ex]

- SystemC, part 3: resolved vs. unresolved, generic constructors

[slides 02.12.2015] [ex]

- VHDL, part 1: Basic examples, syntax, data types, operators, signals

[slides 07.12.2015]

- VHDL, part 2: Entities and architectures, components, configurations, processes

[slides 14.12.2015]

- VHDL, part 3: Parameterized hardware descriptions, test benches

[slides 16.12.2015]

- VHDL, part 4: Semantics, simulation cycle, inertial vs transport

[slides 21.12.2015] [ex]
3: Hardware of embedded systems:

- Design space considerations, Energy/Power consumption basics, ASICs

[slides 09.12.2015]

- Sensors and Actuators, ADC/DAC methods ( flash / successive approximation / ..)

[slides 11.01.2016]

- Introduction to FPGAs, from PAL, PLA, CPLD to FPGAs

[slides 13.01.2016]

- FPGAs (continued) and FPGA design flow, embedded hard-/softcore processors

[slides 18.01.2016]

- Microcontrollers, part 1: Dynamic power management basics, code size, run time

[slides 20.01.2016]

- Microcontrollers, part 2: Memory architectures

[slides 27.01.2016]

- Microcontrollers, part 3: Serial interfaces, interrupts, and intro DSPs

[slides 01.02.2016]

- Microcontrollers, part 4: Digital Signal Processors, aliasing, convolution, filters

[slides 03.02.2016]
4: Hardware/software co-design:

- Hardware-Software Partitioning, Co-Design

[slides 08.02.2016]

- Hardware-Software Co-Design (continued), summary

[slides 10.02.2016]


Exercises and Solutions

1. Foundations and Petri-Nets [28.11.2015] [exercise 1][Aufgaben 1][solutions 1]
2. Petri-Nets [04.11.2015] [exercise 2][Aufgaben 2][solutions 2]
3. State-Charts [11.11.2015] [exercise 3][Aufgaben 3][solutions 3]
4. More State-Charts [18.11.2015] [exercise 4][Aufgaben 4][solutions 4]
5. SystemC [25.11.2015] [exercise 5][Aufgaben 5][solutions 5]
6. Hardware [02.12.2015] [exercise 6][Aufgaben 6][solutions 6]
7. VHDL [09.12.2015] [exercise 7][Aufgaben 7][solutions 7]
8. AD Conversion [18.01.2016] [exercise 8][Aufgaben 8][solutions 8]
9. VHDL and µcontrollers [03.02.2016] [exercise 9][Aufgaben 9][solutions 9]
10. Processor & HW/SW-Partitioning [10.02.2016] [exercise 10][Aufgaben 10][solutions 10]


Extra Reading Material

Here are the links for additional reading material and software packages:
- [PIPE2 v4.2.1: a platform independent Petri Net Editor]
- [SystemC downloads]
- [GHDL simulator for VHDL]

During lecture breaks, case studies from prolific embedded system projects (or failures) are discussed each week. Extra reading/viewing material to the course's slides is listed below:
- [CS1: Maroochy water breach] [video by Ian Sommerville]
- [CS2: Warsaw Airbus accident] [slides by Ian Sommerville]
- [CS3: Ariane 5 explosion] [video by Ian Sommerville]
- [CS4: Mars Pathfinder resets] [What really happened on Mars? Glenn E Reeves, NASA, 1997]
- [CS5: The Terac-25] [An investigation of the Therac-25 accidents, Leveson and Turner, IEEE Computer, '93]
- [CS6: The Flourourocil Incident] [Gresham Lecture by Harold Thimbleby, Designing IT to make Healthcare Safer]
- [CS7: StuxNet] [Broad TED-intro by Ralph Langner][detailed account by Bruce Dang from MicroSoft]
- [CS8: Rise of the Accelerometers] [David Sachs' Google Tech Talk]
- [CS9: The Patriot System] [Safire's The great Scud-Patriot Mystery]
- [CS10: Wireless Medical Microsystems] [Mark G. Allen, 2011, Wireless Medical Microsystems]
- [CS11: Persuasive Embedded Systems] [Louis von Ahn Google techtalk] [Verena Tiefenbeck - Saving polar bears..]
- [CS12: Technology for Enabling Awareness] [project website]

Log in