Insegnamento RETI LOGICHE E MICROCONTROLLORI CON LABORATORIO
- Corso
- Ingegneria informatica ed elettronica
- Codice insegnamento
- 70A00077
- Curriculum
- Ingegneria elettronica
- Docente
- Federico Alimenti
- Docenti
-
- Federico Alimenti
- Pisana Placidi (Codocenza)
- Ore
- 69 ore - Federico Alimenti
- 45 ore (Codocenza) - Pisana Placidi
- CFU
- 12
- Regolamento
- Coorte 2020
- Erogato
- 2022/23
- Attività
- Caratterizzante
- Ambito
- Ingegneria elettronica
- Settore
- ING-INF/01
- Tipo insegnamento
- Tipo attività
- Attività formativa monodisciplinare
- Lingua insegnamento
- ITALIANO
- Contenuti
- Insegnamento da 9 CFU.
Unità #1 (6 CFU). Reti Logiche: parametri di merito dei circuiti logici, sistemi numerici, codici, algebra di Boole, analisi e sintesi di reti combinatorie, funzioni aritmetiche, analisi e sintesi di reti sequenziali. Introduzione ai microcontrollori.
Unità #2 (3 CFU). Elementi di elettronica digitale.
Insegnamento da 12 CFU.
Unità #1 (6CFU): come descritta sopra.
Unità #2 (3CFU): come descritta sopra.
Unità #3 (3 CFU): Laboratorio di elettronica digitale basato su microcontrollore ATmega328 e piattaforma ArduinoUno. - Testi di riferimento
- TESTI CONSIGLIATI:
Per tutte le unità didattiche: Slides e dispense a cura del docente (vedi unistudium, con password da richiedere al docente).
U.D. #1: M.Morris Mano, C.R. Kime, Reti Logiche (4a o 5a ed.), Pearson-Prentice Hall.
UNITA’ #1: M.Morris Mano, C.R. Kime, Reti Logiche (2a ed.), Pearson-Prentice Hall (in alternativa).
UNITA’ #2: Angelo Geraci, Principi di elettronica dei sistemi digitali, McGraw-Hill http://www.ilovebooks.it/principi-elettronica-p-1652.html (stampa su ordinazione).
UNITA’ #3: https://www.microchip.com/en-us/product/ATmega328
https://www.arduino.cc/reference/en/
TESTI INTEGRATIVI:
UNITA’ #1: J.F. Wakerly, Digital design: principles and practices, Prentice-Hall International Editions.
UNITA’ #1: R. Laschi, Reti Logiche, Progetto Leonardo (Bologna).
UNITA’ #1: F. Fummi, M.G.Sami, C. Silvano, Progettazione digitale 2° ed., Mc Graw Hill Italia.
UNITA’ #3: B. Stroustrup, C++ Guida essenziale per programmatori, Pearson e Hoepli.it, Italia 2014.
UNITA’ #3: B. Stroustrup, Linguaggio, libreria standard, principi di programmazione, Pearson Italia.
UNITA’ #3: B.W. Kernighan, D.M. Ritchie, Il linguaggio C (2a ed.), Pearson-Prentice Hall.
APPROFONDIMENTI:
R. C. Jaeger, Elettronica Digitale (ex Microelettronica), Mc Graw-Hill.
B Riccò, F. Fantini, P. Brambilla, Introduzione ai circuiti integrati digitali, Zanichelli-Telettra.
E. Taub, D. Schilling, Elettronica integrata digitale, Gruppo Editoriale Jackson.
J. Rabaey, A. Chandrakasan, B. Nicolic, Circuiti integrati digitali - L'ottica del progettista, 2a ed., Pearson-Prentice Hall.
P. Spirito, Elettronica Digitale 3/ed, Mc Graw-Hill Italia.
Zappa, Elettronica Digitale, Esculapio, 2014.
M. Olivieri, Elementi di progettazione dei sistemi VLSI, Vol.1, EdiSES Napoli.
D.A. Hodges, H.G. Jackson, Analysis and design of digital integrated circuits, McGraw-Hill International Editions.
P. Cappelletti, C. Golla, P. Olivo, E. Zanoni, Flash Memories, Kluver Academic Publishers. - Obiettivi formativi
- Insegnamento da 9 CFU.
Conoscenze metodologiche: conoscenza di circuiti logici combinatori e sequenziali elementari, del flusso di progettazione dei circuiti digitali, del microcontrollore e di alcuni circuiti logici programmabili; Uso degli strumenti cognitivi di base acquisiti in questo insegnamento per l'aggiornamento continuo delle proprie conoscenze nel campo dei circuiti elettronici digitali.
Capacità professionali: capacità di progettazione a livello logico di semplici circuiti e sistemi digitali; capacità di utilizzo di semplici strumenti di progettazione di sistemi digitali, analisi delle specifiche.
Insegnamento da 12 CFU. Si considerino anche:
Capacità professionali: conoscenza di elementi di microcontrollori, interfaccia di progettazione (IDE) e linguaggio C++ applicato alla piattaforma ArduinoUno - Prerequisiti
- L’insegnamento NON ha propedeuticità dichiarate. Lo studente deve però considerare che per apprendere in pieno i contenuti di questo insegnamento risultano necessarie le competenze fornite in “Fondamenti di informatica e laboratorio”, “Teoria dei circuiti” e “Architetture dei calcolatori e sistemi operativi”.
Per frequentare il laboratorio bisogna aver concluso il corso sulla sicurezza nei luoghi di lavoro. - Metodi didattici
- L’insegnamento è organizzato come segue:
- lezioni frontali in aula su tutti gli argomenti dell’insegnamento;
- esercizi in aula per la preparazione della prova scritta.
Insegnamento da 12 CFU. Si considerino anche:
- esercitazioni presso il Laboratorio Multidisciplinare sulla programmazione di un microcontrollore in linguaggio C++. Si prevede che in ogni esercitazione gli studenti vengono distribuiti su 10 postazioni di lavoro dotate di computer e di strumenti da laboratorio. Gli studenti seguiranno circa 16 laboratori di 2 ore ciascuno. La maggior parte dei laboratori in classe verranno conclusi da una relazione di gruppo: a ciascun team verrà richiesto di preparare in classe una relazione descrittiva del lavoro svolto, sia in forma di testo che grafica. - Altre informazioni
- Ogni variazione delle informazioni riportate nel Syllabus di questo insegnamento verrà comunicata agli studenti e riportata nelle pagine web dedicate all’insegnamento nel sito https://www.unistudium.unipg.it/ .
- Modalità di verifica dell'apprendimento
- Insegnamento da 9 CFU
L’esame prevede solo una prova scritta, punteggio massimo 32/30, tempo a disposizione 120 minuti. La prova scritta è di norma costituita da n. 2 sezioni sul programma dell’Unità #1 (Reti logiche) e da n. 1 sezione sul programma dell’Unità #2 (Elementi di elettronica digitale).
1) Il primo esercizio (punteggio massimo =10) richiede di progettare il circuito logico combinatorio come, per esempio, la rete di selezione (o decodifica) di un sistema di memoria.
2) Il secondo esercizio (punteggio massimo = 11) propone il progetto di una semplice macchina a stati finiti di tipo sincrono. È diviso in due parti, la prima di progetto del diagramma degli stati, la seconda dedicata a ricavare le equazioni delle reti logiche da impiegare nella macchina.
3) Segue una singola domanda a risposta aperta (punteggio massimo = 11) relativa ai concetti fondamentali dell’elettronica digitale.
Insegnamento da 12 CFU
* Il superamento della prova di laboratorio richiede la partecipazione ad almeno il 75% dei laboratori e la stesura delle relative relazioni di gruppo. Il punteggio verbalizzato è pari a quello ottenuto nella parte di insegnamento da 9 CFU, la verbalizzazione è possibile solo dopo aver partecipato al laboratorio.
La verbalizzazione dell’esame può avvenire solo se si supera anche la verifica di laboratorio. - Programma esteso
- Insegnamento da 9 CFU.
Unità #1 (6 CFU, 54 h). Reti Logiche e introduzione ai microcontrollori.
- Introduzione ai sistemi elettronici digitali: principi operativi e campi d’applicazione. Modelli per lo studio di sistemi digitali: le Reti Logiche.
- Richiami su rappresentazione posizionale dei numeri (sistema numerico decimale e binario). Sistemi numerici ottale ed esadecimale. Conversione tra sistemi numerici. Operazioni aritmetiche su numeri interi. Codici binari e alfanumerici (BCD, Excess 3, Gray, ASCII, 7-segments).
- Esercizi di verifica del profitto sui sistemi numerici.
- Postulati e teoremi dell’algebra di commutazione. Classificazione delle reti logiche. Insiemi funzionalmente completi di reti logiche elementari. Criteri di costo. Semplificazioni a due livelli con l’uso di mappe di Karnaugh, minimizzazione del costo tramite manipolazione algebrica di espressioni (circuiti multi-livello). OR esclusivo e parità. Metodologia classica di progetto di reti logiche combinatori. Progettazione gerarchica. Convertitori di codice. Decoder, encoder, multiplexer. Limiti della metodologia classica di progetto di reti combinatorie: metodologia di progetto con componenti standard MSI e LSI: sintesi con decoder e OR e tramite multiplexer. Funzioni Aritmetiche. Richiami su rappresentazioni in complemento a 1 e in complemento a 2. Sommatori e sottrattori binari. Overflow. Cenni sui linguaggi di descrizione hardware (VHDL).
- Esercizi di verifica del profitto su reti logiche combinatorie.
- Circuiti Sequenziali. Latch SR e D, flip-flop master-slave SR e JK, flip flop edge triggered D, JK e T. Classificazione secondo Mealy e Moore. Cenni sulle reti sequenziali asincrone e problema delle alee statiche (glitch). Metodologia di progetto di reti sequenziali sincrone. diagramma degli stati e tabella di flusso, codifica degli stati e tabella delle transizioni, mappa delle variabili di stato e di uscita, espressioni, schema logico. Reti sincrone con ingressi sincroni e asincroni. Moduli elementari di elaborazione sequenziale: registri e contatori. Cenni sull'interfaccia SPI.
- Esercizi di verifica del profitto sulle reti sequenziali sincrone.
- Memorie a semiconduttore. Architettura, Classificazione (RAM, ROM, EPROM, E2PROM, Flash), ROM e loro architettura. Metodologie di indirizzamento (decodifica degli indirizzi).
Esercizi di verifica del profitto sulla decodifica degli indirizzi delle memorie.
- Introduzione ai microcontrollori. Il microcontrollore ATmega328 e la piattaforma ArduinoUno.
Unità #2 (3 CFU, 27 h). Elementi di elettronica digitale.
- Cifre di merito dei sistemi digitali: livelli logici basati su transcaratteristica statica, caratteristiche statiche di ingresso e di uscita, margini di rumore, caratterizzazione dinamica - tempo di propagazione e transizione - consumo di potenza statico e dinamico, condensatore di bypass, diodi di protezione.
Insegnamento da 12 CFU.
Unità #1 (6 CFU, 54 h). Reti Logiche e introduzione ai microcontrollori. Come sopra.
Unità #2 (3 CFU, 27 h). Elementi di elettronica digitale. Come sopra.
Unità #3 (3CFU, 33 h, laboratorio). Introduzione all’uso di dispositivi elettronici di base e del microcontrollore.
Hardware della scheda ArduinoUno. Integrated Development Environment (IDE) e struttura del firmware. Funzioni setup() e loop(). Uscite e Ingressi digitali. Reti di pull-up; funzioni ArduinoUno per il controllo dei pin digitali: digitalRead(); digitalWrite(). Pulse Width Modulation (PWM); impiego di transistori esterni (MOSFET, BJT) per il controllo di carichi di potenza. Funzionamanto dell' ADC, circuito ad approssimazioni successive, pin AREF. Funzioni ArduinoUno per il controllo delle uscite PWM e per la lettura dell'ADC. Protocolli di comunicazione seriali (SPI e I2C). Prime esercitazioni di laboratorio: generazione di PWM e misura della forma d'onda con oscilloscopio digitale. Acquisizione di un segnale analogico (tensione DC) e confronto con il valore letto dal multimetro digitale. Fattore di conversione tra intero resitituito dall'ADC e tensione; medie nel tempo. Transitorio di carica di un condensatore e rappresentazione grafica mediante plotter seriale. Caratteristica del diodo pn ottenuta sfruttando il generatore di PWM (tensione variabile) e 2 input analogici, uno per la tensione e uno per la corrente. Determinazione della risposta impulsiva: caso del circuito RC; confronto con la teoria. Utilizzo dei transistori per la gestione di correnti elevate; MOSFET e BJT con PWM su un carico resistivo. Pilotaggio di carichi induttivi e diodo di ricircolo: caso del relé. Il problema del rimbalzo negli switch meccanici: metodi di debouncing. Interruzioni interne ed esterne. Interruzione associate ai pin esterni; interrupt mode: LOW, HIGH, CHANGE, RISING, FALLING. Routine di servizio delle interruzioni (ISR). Il timer/counter a 8-bit TC0: impiego del timer, prescaler e registri di controllo. Interrupt Mask e Interrupt Flag registers. Misure accurate di tempo; esempio: generazione di un'interruzione ogni ms.