EMBEDDED SYSTEMS DESIGN FOR INDUSTRIAL ELECTRONICS
cod. 1008614

Anno accademico 2019/20
2° anno di corso - Secondo semestre
Docente
Alessandro SOLDATI
Settore scientifico disciplinare
Convertitori, macchine e azionamenti elettrici (ING-IND/32)
Ambito
"altre conoscenze utili per l'inserimento nel mondo del lavoro"
Tipologia attività formativa
Altro
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in INGLESE

Obiettivi formativi


L’obiettivo del corso è la formazione dello studente al fine di affrontare le problematiche relative allo sviluppo di sistemi embedded ad uso industriale. L’attenzione sarà focalizzata principalmente sulla parte firmware, dando allo studente capacità di:
* individuare i requisiti richiesti dall’ambito industriale;
* progettare e verificare codice di controllo per sistemi elettronici industriali;
* conoscere a livello avanzato le architetture usate nell’implementazione;
* utilizzare strumenti di supporto alla verifica e sintesi automatica del codice.

Prerequisiti


Power Circuits and Systems, Elettronica dei Sistemi Embedded, Architettura dei Sistemi Digitali, Laboratorio Matlab per l’elettronica.

Contenuti dell'insegnamento


Metodologie di analisi, progetto e sviluppo di sistemi embedded in ambiente industriale prevalentemente dal punto di vista software.

Programma esteso


• Programmazione embedded: contesto, problemi, soluzioni. (3 ore)
o Introduzione su motivazione, applicazioni, uso sistemi embedded in ambiente industriale.
• Elementi di ingegneria del software. (6 ore)
o Il sistema di building: preprocessore, compilatore, linker. Ottimizzazione e makefiles.
o V model e partizionamento di sistema su livelli di astrazione.
o Unit testing, analisi statica del codice e code coverage.
o Documentazione inline.
• Sistemi di controllo versione. (3 ore)
• Standards for the embedded world: coding standards, standard di sicurezza e automotive, protocolli di comunicazione. (6 ore)
o Coding standards: Embedded C (Barr), MISRA C, CERT C, linee guida (anche altri linguaggi: ADA, Python PEP8, Java, .). Supporto da parte degli ambienti di generazione automatica del codice sorgente (MATLAB).
o Standard AUTOSAR, SIL, ASIL.
o Revisione del modello ISO/OSI.
o Protocolli di comunicazione: ModBus, USB, CANopen, J1939, EtherCAT.
• Real-Time Tasks: RTOS, drivers, middleware, interrupt management. (3 ore)
o Esempi di RTOS, task, schedulers, memorie condivise.
o Driver di periferica, driver di sistema, l’esempio di ARM CMSIS.
o Middleware commerciali e interfacce con i driver.
o Gestori di interrupt e annidamento.
• Real-Time computation: analisi numerica, esecuzione ricorrente, benchmarking. (9 ore)
o Breve richiamo a quanto di analisi numerica già affrontato in altri corsi (metodo di Newton, soluzione numerica di equazioni non lineari e differenziali).
o Esecuzione ricorrente: discretizzazione, stato di una funzione, race conditions, reentrancy. Modifiche ai tradizionali algoritmi per essere eseguiti in diversi slot temporali e/o in modo iterativo.
o Benchmarking: misura delle prestazioni di un’architettura e del tempo e delle risorse necessarie per l’esecuzione. Valutazione delle soluzioni sulla base dell’hardware disponibile.
• MATLAB a supporto della programmazione embedded. (9 ore)
o Fitting polinomiale, interpolazione ai minimi quadrati.
o Generazione di Look Up Tables e toolbox per ottimizzazione.
o Unit testing automatico e impostazione test-bench.
o Sviluppo e validazione model-based e attraverso paradigmi MIL/SIL/PIL/HIL.
• Elementi integrativi. (6 ore)
o Semafori e locks.
o Gestione memoria: MPU, MMU, allineamento.
o Watchdog: timer indipendenti, slot temporali, watchdog hardware.
o Gestione errori: codici di errore, eccezioni, trappole, checksum e CRC.
• Bootloader: motivazioni e implementazione, riscrittura del vettore degli interrupt. Esempio basato su OpenBLT e confronto con bootloader nativi. (3 ore)

Bibliografia


Dispense, standard, documentazione dei tool software utilizzati

Metodi didattici


Il corso si articola su 48 ore di didattica frontale (ogni lezione è di 3 ore), supportata da slide (pubblicate su Elly prima di ogni lezione) e vertente sia su elementi teorici che su alcuni casi di studio di interesse pratico.

Modalità verifica apprendimento


Esame orale volto a verificare l'apprendimento dei concetti relativi al Model-based design e alle altre tecniche per lo sviluppo di sistemi embedded per applicazioni industriali.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -