Embedded Systems

Ingegneria Informatica Embedded Systems

0622700026
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF7
COMPUTER ENGINEERING
2022/2023



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2022
SPRING SEMESTER
CFUHOURSACTIVITY
432LESSONS
216LAB


Objectives
L’INSEGNAMENTO MIRA A FORNIRE LE CONOSCENZE FONDAMENTALI PER LA PROGETTAZIONE E LA REALIZZAZIONE DI FIRMWARE PER SISTEMI EMBEDDED BASATI SU MICROCONTROLLORI ARM. IL CORSO PRESENTA SIA DETTAGLI SULLE PRINCIPALI ARCHITETTURE SOFTWARE CHE SULL’ARCHITETTURA HARDWARE DEI MICROCONTROLLORI ARM CON RIFERIMENTO AD ORGANIZZAZIONE DELLA MEMORIA, BUS, STRUTTURA DEL GPI/O, PRINCIPALI PERIFERICHE ED INTERFACCE DI COMUNICAZIONE.
PER QUANTO RIGUARDA L’INTERFACCIAMENTO CON PERIFERICHE E SISTEMI ESTERNE, DURANTE IL CORSO SONO PRESENTATE LE PIÙ COMUNI INTERFACCE E PROTOCOLLI SERIALI SINCRONI ED ASINCRONI. L’INSEGNAMENTO FORNISCE, QUINDI, UNA PANORAMICA DEI PRINCIPALI SENSORI ED ATTUATORI CON ENFASI SU QUELLI INTELLIGENTI CHE FORNISCONO UN INTERFACCIAMENTO SERIALE VERSO IL MICROCONTROLLORE. INOLTRE, SONO PRESENTANTI ANCHE ESEMPI DI INTERFACCIAMENTO CON MOTORI PASSO-PASSO ED ENCODER ROTATIVI.
INFINE, IL CORSO DISCUTE LE PRINCIPALI PROBLEMATICHE LEGATE ALLA REALIZZAZIONE DI SISTEMI EMBEDDED REAL-TIME CON RIFERIMENTO ALLA REALIZZAZIONE DI FIRMWARE BASATI SU SISTEMI OPERATIVI REAL-TIME.
Prerequisites
PER IL PROFICUO RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI SONO RICHIESTE LA CONOSCENZA DEL LINGUAGGIO DI PROGRAMMAZIONE C, CONOSCENZA DEI PRINCIPALI APPROCCI PROGETTUALI E REALIZZATIVI DEL SOFTWARE, UNA CONOSCENZA DI BASE DELL’ARCHITETTURA DEL PROCESSORE E DEL LINGUAGGIO MACCHINA, CONOSCENZE DI BASE DI ELETTROTECNICA E DEI CIRCUITI DIGITALI INTEGRATI.
Contents
UNITA' DIDATTICA 1 - Introduzione ai sistemi embedded ed ai microcontrollori ARM
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/2/0)
1 (2 ORE lezione): Introduzione ai sistemi embedded
2 (4 ORE lezione): Archiettura e programmazione di microcontrollori ARM con riferimento a quelli prodotti da ST Microelectronics
3 (2 ORE esercitazione): Introduzione all'ambiente di sviluppo e configurazione di un progetto per il microcontrollore

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Conoscenza delle principali architetture hardware e software utilizzate per la realizzazione di sistemi embedded.
Approfondimento sulle caratteristiche archietturali dei microcontrollori ARM. Approfondimento della struttura dei bus di sistema di un processore che adotta il memory mapped I/O.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Capacità di realizzare un primo semplice firmware per l'accensione di LED su microcontrollore ARM utilizzando l'ambiente di sviluppo integrato distribuito da ST Microelectronics

UNITA' DIDATTICA 2 - I/O su Microcontrollori e Periferiche di Base
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/4/0)
4 (2 ORE lezione): Richiami di elettrotecnica e sui componenti elettronici di base (Diodi, Transistor). Attuatori allo stato solido (relè e LED)
5 (2 ORE esercitazione): Utilizzo della breadboard: dal circuito disegnato a quello reale ed utilizzo del multimetro
6 (2 ORE lezione): Struttura del GPI/O, Intefacciamento OpenDrain ed Push-Pull, Pull-Up e Pull-Down
7 (2 ORE lezione): Gestione dell'I/O tramite Polling, Interruzioni e DMA
8 (2 ORE esercitazione): Hardware Abstraction Layer. Interfacciamento con LED, Pulsanti e relè

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Conoscenza delle principali interfacce hardware dei microcontrollori adottate per la comunicazione verso dispositivi esterni entrando nel dettaglio della struttura che consente ai PIN del GPI/O di fornire funzionalità definiti a tempo di programmazione. Comprensione delle principali modalità di interfacciamento tra la CPU e le periferiche.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Capacità di realizzare un firmware che si interfaccia con periferiche esterne di base come LED, pulsanti e relè. Approfondimento della struttura della libreria Hardware Abstraction Layer fornita da ST Microelectronics e utilizzo della stessa per la strutturazione del firmware.

UNITA' DIDATTICA 3 - Clock e Timers
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/0)

9 (2 ORE lezione): Distribuzione del clock su un microcontrollore: architettura dei bus e clock tree, pll e prescaler, selezione di sorgenti di clock interne ed esterne. Architettura di base dei timer hardware
10 (2 ORE lezione): Timer hardware: Utilizzo come timebase generators, gestione dell'I/O di un timer e generazione di forme d'onda periodiche tramite PWM
11 (2 ORE esercitazione): Configurazione del clock di sistema ed utilizzo dei timer hardware per la generazione di interruzioni periodiche. Utilizzo dei timer per controllare l'intensità di luminosità di un led tramite PWM.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Comprensione di come avviene e come si può configurare la distribuzione del segnale di clock alla CPU ed alle periferiche. Archiettura generale di un timer hardware general purpose ed utilizzo dei canali di I/O del timer.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Capacità di determinare il clock in ingresso ad una periferica. Realizzazione di un firmware che utilizza i timer hardware per la generazione di eventi periodici gestiti tramite interruzioni. Controllo diretto di un LED tramite il timer.
Controllo diretto dell'intensità di luminosità di un LED tramite timer.

UNITA' DIDATTICA 4 - Interfacce seriali
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/6/0)

12 (2 ORE lezione): Introduzione alla comunicazione seriale sincrona ed asincrona. Protocollo RS-232 over TTL, UART
13 (2 ORE lezione): Iterfaccie SPI, I2C
14 (2 ORE esercitazione): Utilizzo dell'interfaccia UART per la comunicazione board-to-board e board-to-pc
15 (2 ORE esercitazione): Interfacciamento con sensori su I2C dotati di memoria: studio del datasheet e realizzazione del driver
16 (2 ORE lezione): CAN BUS
17 (2 ORE esercitazione): Interfacciamento board-to-board tramite SPI ed esempio di utilizzo del CAN BUS

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Approfondimento sui principali protocolli ed interfaccie per comunicazione seriale sincrona ed asincrona presenti sui microcontrollori. Conoscenza delle caratteristiche delle interfacce I2C, SPI, UART/USART e del loro utilizzo per l'interfacciamento con sensori intelligenti. Conoscenza del CAN BUS.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progetto e realizzazione di firmware che utilizzano la comunicazione seriale per la comunicazione: board-to-board, board-to-pc e board-to-sensor.

UNITA' DIDATTICA 5 - Motori Passo-Passo, Encoder e Servo Motori
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 2/2/0)

18 (2 ORE lezione): Struttura e principio di funzionamento di un motore passo-passo. Encoder rotativi incrementali ed assoluti. Servo motori
19 (2 ORE lezione): Controllo di un motore passo-passo. Controllo di un servo motore. Lettura di un encoder a 2 canali tramite timer.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Principi sul funzionamento e sul controllo di motori passo-passo e servo motori. Approfondimento sull'archiettura e sull'utilizzo degli encoder rotativi incrementali ed assoluti.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Capacità di progettare e realizzare un firmware per il controllo di motori passo-passo e servo motori. Capacità di realizzare un firmware per la lettura di un encoder, tramite l'utilizzo di timer hardware.

UNITA' DIDATTICA 6 - Sistemi Operativi Real-Time per Microcontrollori
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/0)

20 (2 ORE lezione): Introduzione ai sistemi real-time e sistemi operativi real-time con riferimento a FreeRTOS
21 (2 ORE lezione): Schedulazione di task real-time
22 (2 ORE esercitazione): Realizzazione di un firmware real-time tramite FreeRTOS

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Concetti di base sui sistemi real-time. Approfondimento sui sistemi operativi real-time e sulle problematiche di scheduling di task real-time periodici ed asincroni. Approfondimento sul sistema operativo FreeRTOS
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Capacità di progettare e realizzare un firmware basato su sistema operativo FreeRTOS e strutturazione di una soluzione multitask.

UNITA' DIDATTICA 7 - Project Work
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 0/0/4)

23 (2 ORE esercitazione): Presentazione dei progetti ed inizio project work in aula
24 (2 ORE esercitazione): Project work in aula

TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO 26/18/4
Teaching Methods
L'INSEGNAMENTO PREVEDE LEZIONI FRONTALI ED ESERCITAZIONI IN AULA E LABORATORIO. UNA PARTE DELLE ORE DI ESERCITAZIONE SARÀ USATA PER LO SVOLGIMENTO DI UN PROGETTO DI GRUPPO.
Verification of learning
L'ESAME PREVEDE LA REALIZZAZIONE DI UN PROGETTO DI GRUPPO E LA STESURA DELLA RELATIVA RELAZIONE. LA VALUTAZIONE DEL RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI AVVERRÀ MEDIANTE UN COLLOQUIO ORALE CON VOTAZIONE IN TRENTESIMI BASATO SUL PROGETTO PRESENTATO.
Texts
MASTERING STM32 - CARMINE NOVIELLO
More Information
L'INSEGNAMENTO È EROGATO IN ITALIANO
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-09-16]