Obiettivi formativi
1. Conoscenza e comprensione.
Il corso offre un’ampia conoscenza sul tema dei Sistemi Embedded e IoT che rappresentano il settore applicativo più diffuso per i moderni dispositivi elettronici.
Durante il corso, se ne studieranno le principali caratteristiche, le architetture, i componenti HW più utilizzati.
In particolare, si offriranno contenuti su:
- Contesto dei SE
- Suddivisione in sotto-sistemi
- Flusso di progettazione
- Partizionamento Hw/Sw, ovvero la ripartizione delle funzioni principali fra circuiti dedicati e firmware per microprocessore
- Conoscenza dei principali protocolli di comunicazione usati nei SE.
2. Capacità di applicare conoscenza e comprensione.
Scopo del corso è quello di fornire gli strumenti per la progettazione dei Sistemi Embedded e IoT. Per questo motivo, ampio spazio verrà dedicato ad attività di progettazione.
Inoltre, parte fondamentale dell’esame finale di verifica consiste nel progetto di un sistema e della sua implementazione mediante l’utilizzo di una scheda per prototipi basata su logica programmabile FPGA.
In particolare lo studente dovrà acquisire sono le seguenti capacità:
- definire le specifiche tecniche necessarie alla realizzazione di un progetto (segnali di I/O, elementi di elaborazione, partizionamento HW/SW)
- implementare in Verilog la parte circuitale necessaria allo sviluppo del progetto
- programmare in linguaggio C il firmware necessario allo svolgimento del progetto
- simulare, implementare e collaudare un sistema mediante l’utilizzo di schede elettronica basate su FPGA
3. Capacità trasversali.
Durante le attività di progettazione, gli studenti sono invitati a lavorare in piccoli gruppi.
Questo facilita lo sviluppo da parte degli studenti di competenze trasversali.
Essi devono imparare a confrontarsi, a risolvere problemi collaborando, ad aiutarsi reciprocamente nelle complesse attività di debug.
Inoltre devono cooperare per la scrittura della relazione descrittiva del progetto finale.
Prerequisiti
- - -
Contenuti dell'insegnamento
- Introduzione ai Sistemi Embedded (SE)
- Caratteristiche di un SE: vincoli di progetto, mercato e architettura
- Nozioni sulla progettazione dei SE: Partizionamento Hw/Sw, Co-Progettazione Hw/Sw, Flusso di progetto
- Tipici componenti elettronici usati nei SE: uP, uC, DSP, ASIC, FPGA
- Caratteristiche dei sistemi IoT
- Esempi di protocolli di comunicazione usati nei SE: RS232/RS485, SPI, I2C, JTAG, CANbus, Ethernet, TCP/IP, MQTT
- Introduzione al Linguaggio di Descrizione Hardware Verilog: costrutti e circuiti di base, circuiti aritmetici, macchine a stati finiti.
- Introduzione alle logiche programmabili FPGA e SoC
- Introduzione al processore ARM
- Metodi di programmazione (in linguaggio C) orientata allo sviluppo di SE misti Hw/Sw
- Attività di progettazione: ideazione di un SE Hw e Hw/Sw mediante schede di prototipizzazione veloce.
Programma esteso
TEORIA (40h):
- Introduzione al corso, ai SE e alle attività di progettazione (2h)
- Principali componenti HW dei SE (2h)
- Il tema del partizionamento HW e SW (2h)
- Circuiti per I/O ed introduzione al JTAG (2h)
- Introduzione ai SoC e ai SoC BUS (2h)
- I protocolli di comunicazione SPI e I2C (2h)
- La porta seriale UART - protocolli RS232, RS422, RS485 (2h)
- I Bus di campo: il protocollo CANBus (2h)
- Introduzione alle rete e protocolli IP (2h)
- Introduzione alle FPGA e al Flusso di Progettazione Digitale (2h)
- La Logica Programmabile FPGA Cyclone5 di Altera: analisi delle caratteristiche (2h)
- Architettura mista FPGA-Micro (2h)
- Il linguaggio di descrizione Hardware Verilog (2h)
- Esempi di circuiti realizzati in Verilog: FFD, Registri, Contatori, SHR, FSM. (10h)
- Metodologia di programmazione orientate ai SE misti Hw/Sw (4h)
PROGETTAZIONE (32):
- Descrizione della scheda ALTERA DEMO DE1 SoC (2h)
- Il flusso di progetto di Quartus2 (2h)
- Progetto e implementazione di un Contatore-Esadecimale che visualizza l'uscita su un display a 7 segmenti (4h)
- Progetto e implementazione di una Interfaccia VGA (6h)
- Descrizione Verilog dei principali circuiti aritmetici (2h)
- Introduzione al processore ARM (2h)
- Esercitazioni basate su ARM (10h)
- Attività di progettazione relative allo sviluppo del progetto d’esame (14h)
PS: se a causa delle limitazioni imposte dal Covid fosse impossibile distribuire ed utilizzare la scheda ALTERA, saranno prese in considerazioni soluzioni alternative da valutare insieme agli studenti.
Bibliografia
- Designing Embedded Hardware, 2nd edition; John Catsoulis; O'Reilly Media
- Progetto di sistemi elettronici digitali basati su dispositivi FPGA; Ettore Napoli; Progetto Leonardo; Esculapio Bologna
- Embedded System Design: A Unified Hardware/Software Approach; Frank Vahid and Tony Givargis;
Metodi didattici
Il corso è diviso in lezioni teoriche frontali e attività di progettazione.
Nelle lezioni si affronteranno i temi legati alla conoscenza teorica dei sistemi embedded.
Nelle attività di progettazione si svilupperanno conoscenze relative a:
- sviluppo di circuiti digitali dedicati descritti mediante linguaggio Verilog
- alla scrittura di codice firmware per microprocessore in linguaggio C
Modalità di lavoro:
- le attività di progettazione sono finalizzate alla realizzazione di un progetto pratico
- gli studenti possono lavorare al progetto assegnato in modo individuale o in piccoli gruppi
- ogni progetto deve essere descritto da una relazione scritta
Modalità verifica apprendimento
- Durante il corso saranno assegnate alcune esercitazioni da svolgere in ore di studio individuale.
- Al termine del corso si sosterrà una prova orala in cui verranno discussi e valutati in modo approfondito la conoscenza degli argomenti teorici studiati a lezione.
- L’esame sarà completato da un’attività di progetto e implementazione di un vero e proprio SE realizzato da solo o con un piccolo gruppo di lavoro. Il progetto sarà discusso con il docente a valle della presentazione di una relazione tecnica.
Il voto finale sarà dato da una valutazione ponderata di tutte le prove sopra-elencate.
Altre informazioni
Materiale didattico e ulteriori informazioni sono reperibili sul portale di ateneo dedicato alla didattica: ELLY
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -