- Embedded Systems
 - Summary
 
Course Syllabus
Obiettivi
Comprensione dei principali aspetti dei sistemi embedded in tempo reale. Capacità di progettare semplici applicazioni embedded in tempo reale su micro-controllori e SBC (Single Board Computer) in linguaggi vicini all'hardware, ad esempio C, con e senza OS.
Contenuti sintetici
Sistemi embedded: caratteristiche e requisiti. La struttura dei sistemi embedded: micro-controllori, DSP, FPGA, memorie e loro organizzazione, sistemi di comunicazione. Periferiche, sensori ed attuatori. Teoria dello scheduling real-time. Architetture software e librerie per la programmazione real-time, fail-safe e safety-critical. Sistemi operativi real-time. Attività di laboratorio sulla programmazione di micro-controllori in C. Attività di laboratorio su macchine PC-like in C in Linux con classi di scheduling RT and deadline.
Programma esteso
- 
Sistemi embedded: caratteristiche e requisiti
- Caratteristiche generali e domini applicativi; valore del mercato e diffusione.
 - Requisiti temporali, di affidabilità, di efficienza.
 - Dimensioni progettuali.
 
 - 
La struttura dei sistemi embedded
- Cenni di elettronica digitale e analogica.
 - Livelli di scala: IC, PCB, network.
 - Unità di elaborazione: CPU, micro-controllori, DSP, GPU, ASIC. Logiche programmabili: FPGA.
 - Memorie: SRAM e DRAM, memorie non volatili; interazioni tra processore e memoria: architetture di Von Neumann e Harvard, gerarchie di memoria.
 - Sistemi di comunicazione: GPIO, Pulse Width Modulation, RS-232, USB, I2C, SPI, CAN bus, JTAG.
 - Sistemi ad elevata integrazione: SoC e NoC.
 - Esempi di micro-controllori.
 
 - 
Periferiche, sensori e attuatori
- Timer.
 - DMA.
 - Cenni di teoria del campionamento: Teorema di Nyquist, aliasing, rumore di quantizzazione; Comparatori e convertitori A/D e D/A.
 - Modelli di sensori e attuatori: modelli affini, saturazione, distorsione armonica, range dinamico.
 - Sensori: Accelerometri e giroscopi.
 - Attuatori: Solenoidi lineari e motori DC.
 
 - 
Teoria dello scheduling real-time
- Definizioni di base: task periodici, aperiodici e sporadici, utilizzazione, schedule validi e feasible, ottimalità.
 - Schedule ciclico.
 - Schedule a priorità statica: schedule rate-monotonic e deadline monotonic, analisi di schedulabilità.
 - Schedule a priorità dinamica: schedule earliest-deadline-first e least-slack-time-first.
 - Scheduling per job aperiodici e sporadici.
 - Analisi blocking time.
 - Sezioni critiche, anomalie di scheduling (inversione di priorità e deadlock), protocolli di priority inheritance e priority ceiling.
 
 - 
Architetture software e librerie
- Architetture round-robin, round-robin con interrupts, function-queue-scheduling.
 - (cenni) Librerie POSIX.4, Ada Real-Time e profilo Ravenscar, Real-Time e High-Integrity Java.
 - (cenni) Sistemi operativi real-time.
 
 - 
Laboratorio di programmazione di micro-controllori.
- Catena programmativa ed IDE.
 - Programmazione assembly e sviluppo di semplici programmi.
 - Programmazione C.
 - Attività progettuale di gruppo.
 
 
Prerequisiti
- Conoscenze di architettura degli elaboratori.
 - Conoscenze di base di programmazione in C.
 - Concetti base di sistemi operativi e programmazione concorrente.
 
Modalità didattica
- lezioni erogative;
 - attività interattiva di laboratorio, con sviluppo di progetti in piccoli gruppi; queste attività saranno basate su HW STM della famiglia Nucleo ed annessi shields e sul piccolo robot Coderbot (Raspberry Pi).
 
Materiale didattico
importanti
- G. C. Buttazzo. Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, 3rd Edition. Springer, 2011
 
meno importanti
- J. W. S. Liu. Real-Time Systems. Prentice-Hall, 2000.
 - E. A. Lee, S.A. Seshia. Introduction to Embedded Systems: A Cyber-Physical Approach. Second Edition, MIT Press, 2017.
 - D. E. Simon. An Embedded Software Primer. Addison Wesley, 1999.
 - C. Brandolese, W. Fornaciari. Sistemi Embedded: Sviluppo Hardware e Software per Sistemi Dedicati. Pearson, 2007.
 
Periodo di erogazione dell'insegnamento
Secondo semestre
Modalità di verifica del profitto e valutazione
- Prova scritta con esercizi e/o domande aperte sugli argomenti non coperti dalla attività di laboratorio;
 - relazione sulla attività di laboratorio;
 - eventuale colloquio sulla relazione sulla attività di laboratorio.
 
Orario di ricevimento
Inviare email per un appuntamento.
Sustainable Development Goals
Aims
Understanding of the major issues in real-time embedded systems. Ability to develop simple real-time embedded applications on micro-controllers and SBC (Single Board Computer) in languages near to the hardware, e.g., C, with and without OS.
Contents
Embedded systems: features and requirements. The structure of embedded systems: micro-controllers, DSP, FPGA, memories and their organization, communication systems. Peripherals, sensors and actuators. Real-time scheduling theory. Software architectures and libraries for real-time, fail-safe and safety-critical programming. Real-time operating systems. Laboratory activity with micro-controller programming in C. Laboratory activity with PC-like machines in C under Linux with scheduling classes RT and deadline.
Detailed program
- 
Embedded systems: features and requirements
- General features of embedded systems; application domains; market value and diffusion.
 - Basic requirements: timing, reliability, efficiency.
 - Design choices vs requirements.
 
 - 
The structure of embedded systems
- Small recap of digital and analog electronics.
 - Scale levels: IC, PCB, network.
 - Processing units: CPU, microcontrollers, DSP, GPU, ASIC. Programmable logic: FPGA.
 - Memories: SRAM and DRAM, non-volatile memories; interactions between processor and memory: Von Neumann and Harvard architectures, memory hierarchies.
 - Communication systems: GPIO, Pulse Width Modulation, RS-232, USB, I2C, SPI, CAN bus, JTAG.
 - Systems with a high degree of integration: SoC e NoC.
 - Examples of micro-controllers.
 
 - 
Peripherals, sensors and actuators
- Timers.
 - DMA.
 - Fundamentals of sampling theory: Nyquist theorem, aliasing, quantization noise; Comparators and A/D and D/A converters.
 - Models of sensors and actuators: Affine models, saturation, harmonic distortion, dynamic range.
 - Sensors: Accelerometers and gyroscopes.
 - Actuators: Linear solenoids and DC motors.
 
 - 
Real-time scheduling theory
- Basic definitions: periodic, aperiodic e sporadic tasks, utilization, valid and feasible schedules, optimality.
 - Cyclic schedule.
 - Static priority scheduling: rate-monotonic and deadline-monotonic schedule, schedulability analysis.
 - Dynamic priority scheduling: earliest-deadline-first and least-slack-time-first schedule.
 - Scheduling for aperiodic and sporadic jobs.
 - Blocking time analysis.
 - Critical sections, scheduling anomalies (priority inversion and deadlock), priority inheritance and priority ceiling protocols.
 
 - 
Software architectures and libraries
- Main architectures: Round-robin, round-robin with interrupts, function-queue-scheduling.
 - (hints) POSIX.4, Ada Real-Time and Ravenscar, Real-Time and High-Integrity Java.
 - (hints) real-time operating systems.
 
 - 
Laboratory activity on micro-controllers programming.
- Software development toolchain and IDE.
 - Assembly programming and development of some basic programs.
 - C programming.
 - Team project development.
 
 
Prerequisites
- Basic knowledge of computer architecture.
 - Basic skills in C programming.
 - Basic knowledge of operating systems and concurrent programming.
 
Teaching form
- erogative classes;
 - laboratory interactive practices, with development of projects in small groups; such activities will base on HW STM from the Nucleo family as well as compatible shields, and on the small robot Coderbot (Raspberry Pi).
 
Textbook and teaching resource
relevant
- G. C. Buttazzo. Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications, 3rd Edition. Springer, 2011
 
less relevant
- J. W. S. Liu. Real-Time Systems. Prentice-Hall, 2000.
 - E. A. Lee, S.A. Seshia. Introduction to Embedded Systems: A Cyber-Physical Approach. Second Edition, MIT Press, 2017.
 - D. E. Simon. An Embedded Software Primer. Addison Wesley, 1999.
 - C. Brandolese, W. Fornaciari. Sistemi Embedded: Sviluppo Hardware e Software per Sistemi Dedicati. Pearson, 2007.
 
Semester
Second semester
Assessment method
- Written examination with exercises and/or open questions on topics not covered by the laboratory activities;
 - written report on the laboratory activities;
 - possible oral examination about the laboratory report.
 
Office hours
Send email for an appointment.