Nuova ricerca

Alessandro BERTACCHINI

Ricercatore Universitario
Dipartimento di Scienze e Metodi dell'Ingegneria

Insegnamento: Sistemi Embedded

Ingegneria meccatronica (Offerta formativa 2022)

Obiettivi formativi

Per gli obiettivi formativi si rimanda alla sezione relativa ai risultati di apprendimento attesi.

Prerequisiti

Conoscenze di base di elettronica analogica e digitale, fondamenti di progettazione analogica (es. condizionamento di un segnale), conoscenze di base di informatica con particolare riferimento alle basi della programmazione in linguaggio C, conoscenze di base di controlli automatici, convertitori statici di energia ed azionamenti elettrici.

Programma del corso

1. Introduzione sui Sistemi Embedded: Definizioni e principali caratteristiche dei sistemi embedded, esempi reali in diversi scenari applicativi (0.5 CFU)
2. Hardware/Software Co-design: Problematiche e metodologia di HW/SW co-design. Concetti di Platform-based design. Definizione dell'architettura di sistema e valutazione di alternative progettuali. Criteri di HW/SW partitioning (1 CFU)
3. Definizione delle Specifiche di Progetto e Model Based Design: Metodologie di progettazione, flusso di progettazione, modelli, metriche. Requisiti di dependability. (1 CFU)
4. Cenni di Progettazione Hardware: Esempi di sensori ed attuatori tradizionali e MEMS, calibrazione, condizionamento del segnale, principi base di Convertitori A/D e D/A. stadi di alimentazione, concetti di progettazione “energy aware” (2 CFU)
5. Cenni sulle comunicazioni in Sistemi Embedded: trasmissione seriale RS232, I2C, SPI, Loop 4-20mA, Caratteristiche generali del protocollo CAN (struttura base di una rete e di un nodo CAN, CAN-FD, J1939) (2 CFU)
6. Aspetti di Progettazione Fault Tolerant (1 CFU)
7. Cenni su Architettura Generale di Microcontrollori e fondamenti di sviluppo firmware (4.5 CFU)

In base al feedback degli studenti e/o eventuali attività integrative (es. seminari di approfondimento) potrebbero esserci variazioni sul tempo dedicato ai singoli contenuti, ma non sugli argomenti.

E' possibile svolgere attività di tirocinio/tesi su tematiche relative al corso.

Metodi didattici

Il corso prevede sia lezioni teoriche di didattica frontale in aula che esercitazioni pratiche in laboratorio dedicate alla progettazione e realizzazione di un sistema embedded completo sia dal punto di vista hardware che software.
Durante il corso verranno utilizzate sia tecniche analitiche che software specifici come simulatori e CAD circuitali per la progettazione di sistemi elettronici ed ambienti di sviluppo ad hoc per la programmazione software/firmware di microcontrollori.
L’insegnamento è erogato in lingua italiana.
Il materiale didattico (lucidi delle lezioni, datasheet dei componenti, application note delle schede elettroniche, libri di testo consigliati) sono tutti il lingua inglese.
Le lezioni saranno in presenza.
La frequenza non è obbligatoria ma è consigliata.

Testi di riferimento

ITA: Oltre alle dispense del corso, ai manuali di riferimento e alle schede tecniche dei microcontrollori e di ogni altro strumento di progettazione utilizzato durante le attività di laboratorio, vengono suggeriti i seguenti libri di testo per l’approfondimento dei vari argomenti.
Dispense del corso, materiale di approfondimento e il codice sorgente degli esercizi mostrati e svolti durante le esercitazioni di laboratorio corso saranno disponibili su Moddle nella pagina riservata al corso.

ENG: The following textbooks are suggested in addition to the course handouts, reference manuals and datasheets of the microcontrollers and any other design tool used during the lab activities.
Course handouts, in-depth material and the source code of the exercises shown during the laboratory activities will be available on the course’s page on Moodle.

• Embedded System Design; Peter Marwedel, Ed. Springer, 2011, ISBN-10: 9400702566, ISBN-13: 978-9400702561.
• R. Aarenstrup, «Managing Model Based Designs», Published by The MathWorks, Inc.,
ISBN-13: 978-1512036138, ISBN-10: 1512036137, FREE DOWNLOAD
• P. Schaumont, «A Practical Introduction to Hardware/Software Codesign» , Springer, 2013, ISBN 978-1-4614-3736-9 ISBN 978-1-4614-3737-6
• J. Fraden, «Handbook of Modern Sensors – Physics, Design and Applications» 4th Ed., Springer, 2010,
ISBN 978-1-4419-6465-6 e-ISBN 978-1-4419-6466-3
• G. Meijer, M. Pertijs, K. Makinwa, «SMART SENSOR SYSTEMS: EMERGING TECHNOLOGIES AND APPLICATIONS», John Wiley & Sons Ltd, 2014, ISBN 978-0-470-68600-3
• W. Bolton, «Mechatronics: Electronic control systems in mechanical and electrical engineering», 6th ed., Pearson, 2015, ISBN 978-1-292-07668-3
• R. Isermann, «Fault-Diagnosis Applications», Springer, 2011, ISBN 978-3-642-12766-3
• E. Dubrova, «Fault-Tolerant Design», Springer, 2013, ISBN 978-1-4614-2112-2
• J. Beningo, «Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers», APress, 2017, ISBN 978-1-4842-3296-5
• W. Voss « A Comprehensible Guide to Controller Area Network », ISBN-10: 0976511606 ISBN-13: 978-0976511601 ed. Copperhill Technologies Corp.
• W. Voss « A Comprehensible Guide to J1939», ISBN: 978-0-9765116-3-2, ed. Copperhill Technologies Corp.

Verifica dell'apprendimento

Durante il corso, gli studenti si dividono autonomamente in gruppi di lavoro (4-5 studenti massimo per gruppo) con lo scopo di progettare e realizzare un prototipo funzionante di sistema embedded per un'applicazione a propria scelta o eventualmente assegnata dal docente.

La valutazione dell'apprendimento si basa sulla somma di 3 componenti:

Parte1: Valutazione di una relazione tecnica prodotta dal gruppo per valutare le abilità degli studenti di lavorare in gruppo, formulare giudizi e scelte informate e comunicare conoscenza e comprensione. I criteri di valutazione dell’elaborato riguardano: struttura e chiarezza del report (es. approccio top-down con descrizione generale del sistema e successiva descrizione della progettazione di dettaglio dei vari blocchi funzionali); correttezza (anche formale) di rappresentazione dei diagrammi di flusso e macchine a stati a corredo dei relativi firmware realizzati; motivazione delle scelte progettuali effettuate; struttura del codice C; implementazione di meccanismi di gestione errori relativi ad eventuali malfunzionamenti del sistema progettato, chiarezza nella definizione del protocollo di comunicazione, correttezza degli schemi elettrici.

Parte 2: Una presentazione orale per gruppo con una discussione tecnica del progetto proposto e una dimostrazione dal vivo del corretto funzionamento del prototipo realizzato. Durante la presentazione ogni membro del gruppo presenta una parte dell'intero progetto allo scopo di valutare le sue capacità nel formulare giudizi e scelte consapevoli, nel comunicare conoscenza e comprensione (Durata totale 25-30 min).

Parte 3: Prova orale individuale riguardante gli aspetti più teorici del corso (Durata massima 20 min per studente)
Per ogni studente, il voto finale risulta dalla somma del voto comune ottenuto dal proprio gruppo nella parte 1 (fino a 25/30), voto individuale ottenuto nella parte 2 (± 1/30) e voto individuale ottenuto nella parte 3 (fino a ± 4/30).

Esempio di calcolo del voto finale per lo Studente 1 del Gruppo A.
Parte 1=> Progetto Gruppo A (report + verifica corretto funzionamento prototipo)=> voto +23/30; (comune a tutti i membri del gruppo)
Parte 2 => Presentazione/esposizione parte di progetto e discussione tecnica => voto -1/30; (individuale)
Parte 3 => Orale => voto +3/30 (individuale)
Voto finale per lo Studente 1 del Gruppo A = 23-1 + 3 = 25/30

Non sono previste prove intermedie e gli esami si terranno solo nelle date fissate, comunicate con largo anticipo attraverso i canali abituali. In base al numero di iscritti potranno eventualmente essere definiti per un appello dei turni d’esame
Presentazione e discussione tecnica del progetto, live demo del prototipo funzionante ed orale si terranno lo stesso giorno per tutti i membri del gruppo.
Il report e i relativi file di progetto (es. Codice C, schematici, ecc..) devono essere consegnati una settimana prima della data d’esame scelta, in coincidenza con il termine ultimo di iscrizione all’appello scelto.
L'esame può essere sostenuto in lingua inglese previo accordo coi docenti.

Risultati attesi

Il corso si pone l’obiettivo di fornire gli strumenti necessari ad affrontare tutte le fasi di progettazione e sviluppo di un sistema embedded, dalla definizione delle specifiche dell'applicazione da realizzare fino alla realizzazione e al test del prototipo.
Con riferimento ai descrittori di Dublino, i risultati di apprendimento attesi possono essere così riassunti:

Conoscenza e capacità di comprensione: comprendere e applicare i concetti base di HW/SW Co-design; comprendere e applicare metodologie di progettazione e definizione delle specifiche di un sistema embedded; comprendere e analizzare i principali componenti hardware e i principali metodi di comunicazione utilizzati in un sitema embedded reale; comprendere e applicare fondamenti di progettazione fault-tolerant.

Capacità di conoscenza e comprensione applicate: analizzare, valutare e definire le specifiche funzionali di un sistema embedded tramite l’utilizzo di tecniche analitiche e opportune metodologie di progettazione; progettare e realizzare circuiti elettronici analogici e digitali, sistemi di comunicazione, sistemi fault-tolerant, e firmware per microcontrollori utilizzando simulatori, CAD circuitali ed ambienti di sviluppo specifici (IDE).

Autonomia di Giudizio: analizzare e valutare alternative progettuali anche in caso di specifiche di progetto incomplete. Organizzare coerentemente con le valutazioni fatte le varie fasi di sviluppo di un progetto, anche complesso.

Abilità Comunicative: Comunicare in modo chiaro le conoscenze e le capacità di comprensione acquisite. Utilizzare in maniera corretta e appropriata linguaggio, concetti e modelli acquisiti per discutere efficacemente delle soluzioni relative a tutti gli aspetti di un progetto di sistema embedded (anche complesso) sia ad interlocutori specialisti che non specialisti. Essere in grado di lavorare in gruppo.

Capacità di apprendimento: Applicare una metodologia efficace di studio sia individuale che di gruppo che permetta di affrontare e risolvere problemi anche complessi. Aggiornare in autonomia le conoscenze e le capacità di comprensione relative ad aspetti specifici di un progetto o in risposta a cambiamenti legati all’evoluzione tecnologica.