- Sistemi Embedded
- Introduzione
Syllabus del corso
Obiettivi
Comprensione delle principali aspetti dei sistemi embedded in tempo reale. Capacità di progettare semplici applicazioni embedded in tempo reale su micro-controllori in assembly e 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 assembly e C. Attività di laboratorio su macchine PC-like in C in Linux con classi di scheduling RT - 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 e di cosa sia l'assembly.
- Conoscenze di base di programmazione in C.
- Concetti base di sistemi operativi e programmazione concorrente.
- Principi di progettazione software con uso di UML.
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 in assembly and 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 assembly and C. Laboratory activity with PC-like machines in C under Linux with scheduling classes RT - 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 and what is assembly.
- Basic skills in C programming.
- Basic knowledge of operating systems and concurrent programming.
- Software design principles with UML.
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.