Insegnamento RETI LOGICHE E MICROCONTROLLORI CON LABORATORIO
Nome del corso | Ingegneria informatica ed elettronica |
---|---|
Codice insegnamento | 70A00078 |
Curriculum | Comune a tutti i curricula |
Docente responsabile | Federico Alimenti |
Docenti |
|
Ore |
|
CFU | 9 |
Regolamento | Coorte 2021 |
Erogato | Erogato nel 2023/24 |
Erogato altro regolamento | |
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. |
Obiettivi Agenda 2030 per lo sviluppo sostenibile | *) Industria, innovazione e infrastrutture *) Istruzione di qualità |