Vai al contenuto principale
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
e-Learning - UNIMIB
  • Home
  • My Media
  • Altro
Ascolta questa pagina con ReadSpeaker
Italiano ‎(it)‎
English ‎(en)‎ Italiano ‎(it)‎
 Login
e-Learning - UNIMIB
Home My Media
Percorso della pagina
  1. Area di Scienze
  2. Corso di Laurea Triennale
  3. Informatica [E3102Q - E3101Q]
  4. Insegnamenti
  5. A.A. 2023-2024
  6. 3° anno
  1. Sistemi Embedded
  2. Introduzione
Insegnamento Titolo del corso
Sistemi Embedded
Codice identificativo del corso
2324-3-E3101Q124
Descrizione del corso SYLLABUS

Syllabus del corso

  • Italiano ‎(it)‎
  • English ‎(en)‎
Esporta

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.

Programma esteso

  1. Sistemi embedded: caratteristiche e requisiti

    1. Caratteristiche generali e domini applicativi; valore del mercato e diffusione.
    2. Requisiti temporali, di affidabilità, di efficienza.
    3. Dimensioni progettuali.
  2. La struttura dei sistemi embedded

    1. Cenni di elettronica digitale e analogica.
    2. Livelli di scala: IC, PCB, network.
    3. Unità di elaborazione: CPU, micro-controllori, DSP, GPU, ASIC. Logiche programmabili: FPGA.
    4. Memorie: SRAM e DRAM, memorie non volatili; interazioni tra processore e memoria: architetture di Von Neumann e Harvard, gerarchie di memoria.
    5. Sistemi di comunicazione: GPIO, Pulse Width Modulation, RS-232, USB, I2C, SPI, CAN bus, JTAG.
    6. Sistemi ad elevata integrazione: SoC e NoC.
    7. Esempi di micro-controllori.
  3. Periferiche, sensori e attuatori

    1. Timer.
    2. DMA.
    3. Cenni di teoria del campionamento: Teorema di Nyquist, aliasing, rumore di quantizzazione; Comparatori e convertitori A/D e D/A.
    4. Modelli di sensori e attuatori: modelli affini, saturazione, distorsione armonica, range dinamico.
    5. Sensori: Accelerometri e giroscopi.
    6. Attuatori: Solenoidi lineari e motori DC.
  4. Teoria dello scheduling real-time

    1. Definizioni di base: task periodici, aperiodici e sporadici, utilizzazione, schedule validi e feasible, ottimalità.
    2. Schedule ciclico.
    3. Schedule a priorità statica: schedule rate-monotonic e deadline monotonic, analisi di schedulabilità.
    4. Schedule a priorità dinamica: schedule earliest-deadline-first e least-slack-time-first.
    5. Scheduling per job aperiodici e sporadici.
    6. Analisi blocking time.
    7. Sezioni critiche, anomalie di scheduling (inversione di priorità e deadlock), protocolli di priority inheritance e priority ceiling.
  5. Architetture software e librerie

    1. Architetture round-robin, round-robin con interrupts, function-queue-scheduling.
    2. (cenni) Librerie POSIX.4, Ada Real-Time e profilo Ravenscar, Real-Time e High-Integrity Java.
    3. (cenni) Sistemi operativi real-time.
  6. Laboratorio di programmazione di micro-controllori.

    1. Catena programmativa ed IDE.
    2. Programmazione assembly e sviluppo di semplici programmi.
    3. Programmazione C.
    4. Attività progettuale di gruppo.

Prerequisiti

  1. Conoscenze di architettura degli elaboratori e di cosa sia la programmazione assembly.
  2. Conoscenze di base di programmazione in C.
  3. Concetti base di sistemi operativi e programmazione concorrente.
  4. Principi di progettazione software con uso di UML.

Modalità didattica

  • lezioni interattive;
  • attività di laboratorio, con sviluppo di progetti in piccoli gruppi.

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 orale sulla relazione sulla attività di laboratorio.

Orario di ricevimento

Inviare email per un appuntamento.

Sustainable Development Goals

IMPRESE, INNOVAZIONE E INFRASTRUTTURE
Esporta

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.

Detailed program

  1. Embedded systems: features and requirements

    1. General features of embedded systems; application domains; market value and diffusion.
    2. Basic requirements: timing, reliability, efficiency.
    3. Design choices vs requirements.
  2. The structure of embedded systems

    1. Small recap of digital and analog electronics.
    2. Scale levels: IC, PCB, network.
    3. Processing units: CPU, microcontrollers, DSP, GPU, ASIC. Programmable logic: FPGA.
    4. Memories: SRAM and DRAM, non-volatile memories; interactions between processor and memory: Von Neumann and Harvard architectures, memory hierarchies.
    5. Communication systems: GPIO, Pulse Width Modulation, RS-232, USB, I2C, SPI, CAN bus, JTAG.
    6. Systems with a high degree of integration: SoC e NoC.
    7. Examples of micro-controllers.
  3. Peripherals, sensors and actuators

    1. Timers.
    2. DMA.
    3. Fundamentals of sampling theory: Nyquist theorem, aliasing, quantization noise; Comparators and A/D and D/A converters.
    4. Models of sensors and actuators: Affine models, saturation, harmonic distortion, dynamic range.
    5. Sensors: Accelerometers and gyroscopes.
    6. Actuators: Linear solenoids and DC motors.
  4. Real-time scheduling theory

    1. Basic definitions: periodic, aperiodic e sporadic tasks, utilization, valid and feasible schedules, optimality.
    2. Cyclic schedule.
    3. Static priority scheduling: rate-monotonic and deadline-monotonic schedule, schedulability analysis.
    4. Dynamic priority scheduling: earliest-deadline-first and least-slack-time-first schedule.
    5. Scheduling for aperiodic and sporadic jobs.
    6. Blocking time analysis.
    7. Critical sections, scheduling anomalies (priority inversion and deadlock), priority inheritance and priority ceiling protocols.
  5. Software architectures and libraries

    1. Main architectures: Round-robin, round-robin with interrupts, function-queue-scheduling.
    2. (hints) POSIX.4, Ada Real-Time and Ravenscar, Real-Time and High-Integrity Java.
    3. (hints) real-time operating systems.
  6. Laboratory activity on micro-controllers programming.

    1. Software development toolchain and IDE.
    2. Assembly programming and development of some basic programs.
    3. C programming.
    4. Team project development.

Prerequisites

  1. Basic knowledge of computer architecture and what is assembly programming.
  2. Basic skills in C programming.
  3. Basic knowledge of operating systems and concurrent programming.
  4. Software design principles with UML.

Teaching form

  • interactive classes;
  • laboratory practices, with development of projects in small groups.

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.

Sustainable Development Goals

INDUSTRY, INNOVATION AND INFRASTRUCTURE
Entra

Scheda del corso

Settore disciplinare
INF/01
CFU
8
Periodo
Secondo Semestre
Tipo di attività
Obbligatorio a scelta
Ore
80
Tipologia CdS
Laurea Triennale
Lingua
Italiano

Staff

    Docente

  • Pietro Braione
    Pietro Braione
  • Domenico Giorgio Sorrenti
    Domenico Giorgio Sorrenti
  • Esercitatore

  • Jacopo Maltagliati
    Jacopo Maltagliati

Opinione studenti

Vedi valutazione del precedente anno accademico

Bibliografia

Trova i libri per questo corso nella Biblioteca di Ateneo

Metodi di iscrizione

Iscrizione manuale
Iscrizione spontanea (Studente)

Obiettivi di sviluppo sostenibile

IMPRESE, INNOVAZIONE E INFRASTRUTTURE - Costruire una infrastruttura resiliente e promuovere l'innovazione ed una industrializzazione equa, responsabile e sostenibile
IMPRESE, INNOVAZIONE E INFRASTRUTTURE

Non sei collegato. (Login)
Politiche
Ottieni l'app mobile
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy
  • Accessibilità
  • Statistiche