Universit degli studi di Enna Facolt di Ingegneria

  • Slides: 60
Download presentation
Università degli studi di Enna Facoltà di Ingegneria Informatica Laboratorio di Elettronica Sistemi Elettronici

Università degli studi di Enna Facoltà di Ingegneria Informatica Laboratorio di Elettronica Sistemi Elettronici integrati salvatore. tirrito@unikore. it

Motivazioni 2 q Elettronica dilagante • Crescita di esigenze computazionali; • Intelligenza diffusa; •

Motivazioni 2 q Elettronica dilagante • Crescita di esigenze computazionali; • Intelligenza diffusa; • Elaborazione e processamento di dati in larga scala. q. Basic Technologies: • Sistemi Embedded • Tecnologie di comunicazione

Definizione 3 q Sistema Embedded: qualsiasi dispositivo che include una logica programmabile, ma che

Definizione 3 q Sistema Embedded: qualsiasi dispositivo che include una logica programmabile, ma che non risulti un general purpose computer; q Un sistema embedded è costituito da una parte Software ed una Hardware; q Risponde, monitora e controlla l’ambiente esterno usando sensori ed attuatori.

Definizione (cont’d. ) 4 q Da Wikipedia: An embedded system is a computer system

Definizione (cont’d. ) 4 q Da Wikipedia: An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today.

CPU integrata 5 q Central Processing Unit integrata nel dispositivo; q L’embedded computer non

CPU integrata 5 q Central Processing Unit integrata nel dispositivo; q L’embedded computer non è utilizzato per computazioni general purpose; q Il sistema integrato si interfaccia con l’ambiente esterno, necessita di un interfacciamento analogico.

Sistemi Embedded – Dove? 6 q Trasporti • Automotive; • Avionica; • Treni.

Sistemi Embedded – Dove? 6 q Trasporti • Automotive; • Avionica; • Treni.

Sistemi Embedded – Dove? 7 q Consumer • Mobile • Home

Sistemi Embedded – Dove? 7 q Consumer • Mobile • Home

Sistemi Embedded – Dove? 8 q Industrial Automation q Home Automation

Sistemi Embedded – Dove? 8 q Industrial Automation q Home Automation

Sistemi Embedded – Esempi 9 Prodotto: Spazzolino Elettronico q Microprocessore: 8 bit q Velocità

Sistemi Embedded – Esempi 9 Prodotto: Spazzolino Elettronico q Microprocessore: 8 bit q Velocità programmabile, timer e circuito di rica

Sistemi Embedded – Esempi 10 Qualsiasi PC, Mouse tastiera o dispositivo USB q Solitamente

Sistemi Embedded – Esempi 10 Qualsiasi PC, Mouse tastiera o dispositivo USB q Solitamente microprocessore: 8 bit

Sistemi Embedded – Esempi 11 Qualsiasi Stampante q Solitamente microprocessore: Intel Motorola o ARM

Sistemi Embedded – Esempi 11 Qualsiasi Stampante q Solitamente microprocessore: Intel Motorola o ARM a 32 bit RISC

Sistemi Embedded – Esempi 12 Oscilloscopio Agilent q Microprocessore a 64 bit q OS

Sistemi Embedded – Esempi 12 Oscilloscopio Agilent q Microprocessore a 64 bit q OS Windows XP

Sistemi Embedded – Esempi 13 BMW 745 i q Windows CE OS q 53

Sistemi Embedded – Esempi 13 BMW 745 i q Windows CE OS q 53 – 8 bit u. P q 11 – 32 bit u. P q 7 – 16 bit u. P q Reti Multiple

Sistemi Embedded – Esempi 14 q Wireless Sensor Networks Solitamente sono caratterizzate da una

Sistemi Embedded – Esempi 14 q Wireless Sensor Networks Solitamente sono caratterizzate da una collezione più o meno numerosa di dispositivi elettronici costituiti da: • Sensori; • Radio transiver; • CPU/Memory; • Power source.

Caratteristiche Sistemi Embedded 15 q Potrebbero prevedere funzionalità sofisticate q Operazioni Real-Time; q Basso

Caratteristiche Sistemi Embedded 15 q Potrebbero prevedere funzionalità sofisticate q Operazioni Real-Time; q Basso costo di produzione; q Basso consumo; q Basso Time To Market.

Funzionalità complesse 16 q Spesso devono eseguire algoritmi sofisticati o multipli. • Fast Fourier

Funzionalità complesse 16 q Spesso devono eseguire algoritmi sofisticati o multipli. • Fast Fourier Trasform; • Encoder/Decoder Audio-Video q. Spesso forniscono complesse interfacce utenti

Operazioni Real-time 17 La computazione deve essere effettuata prima della deadline. • Hard real-Time:

Operazioni Real-time 17 La computazione deve essere effettuata prima della deadline. • Hard real-Time: Missing deadline = Failure • Soft Real Time: Missing deadline = degradation Alcuni sistemi sono multi-rate: affrontano requisiti differenti in tempi differenti

Specifiche non funzionali 18 q Molti sistemi embedded sono dispostivi di massa che devono

Specifiche non funzionali 18 q Molti sistemi embedded sono dispostivi di massa che devono avere un basso costo di produzione. • Memoria limitata, potenza CPU, etc. q Il consumo di potenza è un fattore critico in dispositivi alimentati a batteria. • Consumo eccessivo –> Crescita costo dell’intero sistema anche in sistemi non alimentati a batteria

Team di sviluppo 19 • Solitamente progettati da un ristretto Team di sviluppatori; •

Team di sviluppo 19 • Solitamente progettati da un ristretto Team di sviluppatori; • Spesso occorre soddisfare stringenti deadline di sviluppo.

Team di sviluppo 20 P. M. Architetti SW/HW Reference SW/HW developer

Team di sviluppo 20 P. M. Architetti SW/HW Reference SW/HW developer

Sistema Embedded: Cosa usa? 21 v Che tipo di CPU? v. Che sistema operativo?

Sistema Embedded: Cosa usa? 21 v Che tipo di CPU? v. Che sistema operativo? v. Che linguaggio di Programmazione? Indagine di mercato di sviluppatori ingegneri appartenenti ad EETimes e Embedded System Design Magazine

CPU bit- size 22

CPU bit- size 22

Numero di CPU 23

Numero di CPU 23

Perché un sistema operativo 24 v Supporto per multitasking, scheduling e sincronizzazione; v. Supporto

Perché un sistema operativo 24 v Supporto per multitasking, scheduling e sincronizzazione; v. Supporto per un ampio range di dispositivi di I/O; v. Supporto per il networking; v. Supporto per la gestione della memoria; v. Supporto per display grafico; v. Sicurezza (accesso alle risorse) e gestione della potenza.

Perché un sistema operativo (2) 25 v Solitamente la licenza per OS sono di

Perché un sistema operativo (2) 25 v Solitamente la licenza per OS sono di qualche dollaro per dispositivo. v. Sistemi Embedded semplici non necessitano di un Sistema Operativo. Ma i nuovi dispositivi diventano sempre più complessi.

Uso di un sistema operativo 26

Uso di un sistema operativo 26

Sistemi operativi commerciali 27

Sistemi operativi commerciali 27

Linguaggi di programmazione utilizzati 28

Linguaggi di programmazione utilizzati 28

Memoria in SE 29 v Occorre sia memoria non volatile che volatile; v Il

Memoria in SE 29 v Occorre sia memoria non volatile che volatile; v Il Sistema Operativo e l’applicativo memorizzati in FLASH v Boot dalla Flash all’accensione; v Flash molto più lento della RAM. • codice copiato nella ram interna

Quindi … 30 v SE si possono trovare ovunque ed in qualsiasi numero; v

Quindi … 30 v SE si possono trovare ovunque ed in qualsiasi numero; v La maggior parte dei nuovi dispositivi utilizza processori a 32 bit; v Dispositivi con sistema operativo, usano un commercial OS. v La famiglie di linguaggio C (C, C++, C#) è la più utilizzata per la programmazione di SE.

Esigenze tecniche e di mercato 31 Le richieste di flessibilità ed integrazione hanno generato

Esigenze tecniche e di mercato 31 Le richieste di flessibilità ed integrazione hanno generato la necessità di raggruppare: • Parallelismo delle operazioni; • Numero delle variabili di controllo; • Modularità del sistema; • Affidabilità del controllo; • Flessibilità dei componenti. • Reti Logiche • Logiche programmabili • Controlli digitali e analogici RIDUZIONE DIMENSIONI, COSTI, FLESSIBILITA’, PROGRAMMABILITA’

Microprocessore 32 Il microprocessore diventa indispensabile quando il numero delle variabili da controllare diventa

Microprocessore 32 Il microprocessore diventa indispensabile quando il numero delle variabili da controllare diventa elevato. ØComunica con l’esterno; ØEsegue esclusivamente operazioni logiche, aritmetiche e di controllo ØElabora sia dati prodotti internamente che provenienti da dispositivi esterni; ØTotalmente dipendenti da elementi periferici; ØNon presenta elementi per la memorizzazione non volatile dei dati.

Microcontrollore 33 Il microcontrollore racchiude tutte le caratteristiche del microprocessore aggiungendo le possibilità di:

Microcontrollore 33 Il microcontrollore racchiude tutte le caratteristiche del microprocessore aggiungendo le possibilità di: • Comunicazione diretta con dispositivi esterni integrando periferiche interne; • Memorizzazione di dati o programmi; • Effettuare operazioni di controllo, ricezione ed elaborazione segnali; In generale non necessitano ulteriori aggiunte di memoria RAM oltre a quella integrata. Eseguono esclusivamente le operazioni legate al firmware con il quale sono stati programmati

Microcontrollore vs Microprocessore 34 Microcontrollore: Microprocessore: q Microprocessore; q Unità di calcolo q Linee

Microcontrollore vs Microprocessore 34 Microcontrollore: Microprocessore: q Microprocessore; q Unità di calcolo q Linee I/O; q Unità di controllo q Memoria Flash; q Memoria istruzioni e q Convertitore A/D; calcolo q Timer; q USART; q SPI; q PWM; q I 2 C; q. . .

Microcontrollore vs Microprocessore 35

Microcontrollore vs Microprocessore 35

Microcontrollore vantaggi 36 L'integrazione delle periferiche su un singolo chip porta vantaggi legati a:

Microcontrollore vantaggi 36 L'integrazione delle periferiche su un singolo chip porta vantaggi legati a: • Minor numero di dispositivi discreti per la realizzazione di un sistema • Dimensioni ridotte del sistema • Costi inferiori • Sistema nel complesso più affidabile • Protezione dalle copiature • Risparmio energetico • Ri-programmabilità del sistema • Comunicazione diretta con altri sistemi

Microcontrollore MCU 37 I sistemi embedded a microcontrollore realizzano una logica di ottimizzazione del

Microcontrollore MCU 37 I sistemi embedded a microcontrollore realizzano una logica di ottimizzazione del rapporto prezzo/prestazioni. Hanno un elevato campo di impiego che può spaziare dai più semplici oggetti di utilizzo quotidiano a complesse architetture in ambito medicale e industriale. Ha una capacità di calcolo relativamente limitata ed esegue esclusivamente il set di istruzioni definiti nel firmware.

Architettura del Microcontrollore 38 I microcontrollori si distinguono tra loro per: ü Set di

Architettura del Microcontrollore 38 I microcontrollori si distinguono tra loro per: ü Set di istruzioni: CISC/RISC ü Organizzazione della memoria: Van Neumann/Harvard ü Frequenza di clock ü Numero di dispositivi di I/O e di periferiche intergrate ü Consumo ü Numero di bit: 4/8/16/32

Prestazioni CPU 39 TCPU= Nistr * CPI * T Dove: N istr è il

Prestazioni CPU 39 TCPU= Nistr * CPI * T Dove: N istr è il numero di istruzioni del programma; CPI è il numero medio di cicli di clock per istruzioni macchina; T= 1/fck è il periodo di clock.

Prestazioni CPU 40 • NISTR dipende dal set di istruzioni resi disponibili dal MCU.

Prestazioni CPU 40 • NISTR dipende dal set di istruzioni resi disponibili dal MCU. Una CPU RISC riduce il Nistr; • CPI dipende dall’architettura. Un set di istruzioni semplici permette di eseguire istruzioni in pochi cicli di clock e di sfruttare un elevato pipeline (RISC) riducendo CPI • T = 1/f. CK dipende dalla tecnologia elettronica e dall’architettura. Istruzioni complesse richiedo frequenze di clock più basse.

CPU CISC 41 CISC = Complex Instruction Set Computer q L’insieme di istruzioni macchina

CPU CISC 41 CISC = Complex Instruction Set Computer q L’insieme di istruzioni macchina è molto vasto, e quindi si riduce il gap tra linguaggio ad alto livello e linguaggio macchina; q. In alcuni casi è possibile avere istruzioni ad hoc, più potenti di quelli esprimibili in linguaggio ad alto livello. Ciò aumenta la complessità del compilatore; q. Sono necessari più cicli di clock per completare un’istruzione; q. Numero di registri ridotto numero elevato di scritture in memoria;

CPU RISC 42 RISC = Reduced Instruction Set Computer q L’insieme di istruzioni macchina

CPU RISC 42 RISC = Reduced Instruction Set Computer q L’insieme di istruzioni macchina è molto piccolo, e quindi aumenta il gap tra linguaggio ad alto livello e linguaggio macchina; q. Le istruzioni hanno tutte lo stesso formato e la stessa lunghezza e molte son eseguite in un solo colpo di clock; q. Unità di controllo semplice e bassa latenza; q. Elevato numero di registri interni; q. Avere un formato unico di istruzioni agevola l’utilizzo di stadi di pipe q. Frequenze di clock più elevate; q. Numero di registri elevato numero ridotto di scritture in memoria, utilizzo registri interni

PIPELINE 43 Operazioni: Instruction Fetch; Instruction decode; Data Fetch; Instruction execution

PIPELINE 43 Operazioni: Instruction Fetch; Instruction decode; Data Fetch; Instruction execution

Esecuzione senza pipeline 44

Esecuzione senza pipeline 44

Esecuzione con pipeline 45

Esecuzione con pipeline 45

Memoria 46 Van Neumann • Adottata in microcontrollori di fascia bassa; • Svantaggi legati

Memoria 46 Van Neumann • Adottata in microcontrollori di fascia bassa; • Svantaggi legati all’utilizzo di un’unica memoria sia per le variabili volatili che per il codice del programma; Harvard • Separazione dei bus per i dati e gli indirizzi; • Vantaggi legati all’accesso contemporaneo a codice e dati, diminuendo i tempi di esecuzione

Harvard vs Van Neumann 47 Harvard Van Neumann

Harvard vs Van Neumann 47 Harvard Van Neumann

PIC 24 FJ 256 GB 108 48

PIC 24 FJ 256 GB 108 48

PIC 24 FJ 256 GB 108 49 PIC è una famiglia di circuiti integrati

PIC 24 FJ 256 GB 108 49 PIC è una famiglia di circuiti integrati a semiconduttore con funzione di microcontrollore. Microchip technology non usa il termine PIC come acronimo; Il suo nome aziendale è PICmicro. Il PIC 24 F è un microcontrollore a 16 bit e ha a disposizione una settantina di istruzioni; L’esecuzione delle istruzioni è scandita da un segnale di clock, cioè un onda quadra a frequenza costante.

PIC 24 FJ 256 GB 108 50 PIN: 80; CPU: RISC; Memoria: Harvard; Program

PIC 24 FJ 256 GB 108 50 PIN: 80; CPU: RISC; Memoria: Harvard; Program Memory: 128 k. Bytes; Data Memory: 16 k. Bytes; Timer a 16 bit: 5; Uscite PWM: 9; UART: 4; SPI: 3; I 2 C: 3; 10 -BIT ADC: 16

PIC 24 FJ 256 GB 108 periferiche 51 v Porte: Periferiche di base per

PIC 24 FJ 256 GB 108 periferiche 51 v Porte: Periferiche di base per la comunicazione verso il mondo esterno, possono essere configurate come ingresso o uscite digitali. Alcune come ingressi analogici (Porta B); v Memoria: FLASH e RAM; v ADC: 16 Ingressi, risoluzione a 10 bit; v Timer: usati per generare ritardi o per chiamare routine periodicamente; v PWM: permette di generare un onda quadra con duty cycle variabile; v Comunicazioni: permette interfacciamento per mezzo di protocolli standard, quali (I 2 C, UART, CAN, …) con altri dispostivi. v 66 Sorgenti di interrupt;

52

52

Interrupt 53 Un meccanismo molto potente nella programmazione dei microcontrollori è la gestione delle

Interrupt 53 Un meccanismo molto potente nella programmazione dei microcontrollori è la gestione delle interruzioni (interrupt). • In risposta ad eventi esterni, il micro sospende l’esecuzione del programma principale, esegue apposite routine di servizio, e poi ritorna all’esecuzione principale • Es. Posso programmare una periferica Timer (contatori) per generare un interrupt ogni secondo. Il micro può ad es. avere un programma principale in cui legge dati continuamente da un sensore con l’ADC e, ogni secondo grazie all’interrupt, aggiornare un display con l’indicazione dell’ora.

Interrupt 54 • Al RESET il micro esegue l’istruzione contenuta alla locazione 0000 H

Interrupt 54 • Al RESET il micro esegue l’istruzione contenuta alla locazione 0000 H (detta reset vector); • Il RESET vector causa un salto all’entry point main 0020 H, il programma inizia ad essere eseguito; • Se durante l’esecuzione si verifica un interrupt a bassa priorità il micro automaticamente salta all’indirizzo 0018 H ed esegue l’istruzione ivi contenuta; • Un nuovo salto ci porta all’indirizzo 0040 H dove risiede la procedura di gestione degli interrupt; • Verificando i FLAG è possibile capire quale periferica ha fatto scattare l’interruzione, per poi eseguire la routine corrispondente; • Terminata la routine di gestione il micro ritorna al punto del programma in cui era stato interrotto.

Compilazione 55 Nel momento in cui si progetta un'applicazione per tali sistemi, si utilizza

Compilazione 55 Nel momento in cui si progetta un'applicazione per tali sistemi, si utilizza un ambiente di sviluppo che permette di farli comunicare con il PC, detto Host. Il Target identica la piattaforma su cui verrà eseguita l'applicazione; mentre l'host e la macchina su cui si sviluppa il programma. In generale e possibile programmare tutti i processori in un linguaggio a basso livello come l'Assembler, permettendo la massima efficienza a scapito, però, della portabilità. Infatti, ogni famiglia di processori prevede delle proprie “istruzioni macchina", cosicché il codice scritto per una famiglia di processori non può essere valido per un'altra. Il linguaggio utilizzato più versatile e il C. Fermo restando che e importante conoscere l'assembler perche delle volte occorre implementare delle funzioni obbligatoriamente in tale linguaggio.

Compilazione 56 Un progetto software solitamente e costituito da uno o piu file. c

Compilazione 56 Un progetto software solitamente e costituito da uno o piu file. c e file. h; i primi sono i file sorgenti, mentre gli altri sono gli header file, vale a dire i file di intestazione. Ai fini dei processi di compilazione, queste due tipologie di file risultano identici mentre, dal punto di vista della buona pratica di programmazione, occorre usarli diversamente. Il criterio da utilizzare è quello di non inserire costrutti C che generino codice negli header file ma solo delle dichiarazioni, al contrario di quanto accade nei source file. Costruite le due tipologie di file si passa alla generazione del codice eseguendo tre principali operazioni: 1. Pre-processing Si tratta di un'operazione testuale consistente in una sostituzione letterale del codice; ad esempio la stringa #include xxx. h fa sì che il file in questione venga sostituito così com'è in quella porzione di codice; 2. Compilazione Si ha la conversione dei file xxx. c in codice macchina producendo dei file oggetto (. o); 3. Linking Partendo dai differenti file oggetto generati, li si “linka" tra di essi.

Cross-Compilazione 57 Con il termine cross-compiling ci si riferisce ai flussi di processo che

Cross-Compilazione 57 Con il termine cross-compiling ci si riferisce ai flussi di processo che permettono di ottenere un eseguibile, per mezzo dei tre passi descritti precedentemente, in grado di “girare" su di un target differente dalla piattaforma in cui e stato sviluppato. Si fa uso di questo al fine di garantire la portabilità delle applicazioni sviluppate su le più svariate piattaforme, lavorando sempre con lo stesso ambiente di programmazione. Il compilatore, quindi, e abile, a partire da una serie di source file, a generare i file oggetto che, opportunamente linkati, permettano di ottenere un eseguibile.

Programmazione 58 JTAG: protocollo standard di test funzionale che permette di effettuare debug sul

Programmazione 58 JTAG: protocollo standard di test funzionale che permette di effettuare debug sul firmware. Il programma viene memorizzato in una specifica area di memoria del microcontrollore definita bootloader. Il microcontrollore all'avvio esegue le istruzioni contenute in questa area di memoria

Ambiente di sviluppo 59 Ambiente multi-piattaforma MPLAB X IDE v 2. 00 o superiori.

Ambiente di sviluppo 59 Ambiente multi-piattaforma MPLAB X IDE v 2. 00 o superiori. Compilatore x. C 16. Scaricabili da: http: //www. microchip. com/pagehandler/en-us/family/mplabx/

Ambiente di sviluppo 60

Ambiente di sviluppo 60