Sistemi di Elettronica Digitale, Sez · 4 Sistemi embedded •I sistemi embedded tipicamente...

46
Sistemi di Elettronica Digitale, Sez.5 Alessandra Flammini [email protected] Ufficio 24 Dip. Ingegneria dell’Informazione 030-3715627 Lunedì 16:30-18:30 Sistemi di elettronica digitale, A. Flammini, AA2020-2021

Transcript of Sistemi di Elettronica Digitale, Sez · 4 Sistemi embedded •I sistemi embedded tipicamente...

  • Sistemi di Elettronica Digitale, Sez.5

    Alessandra [email protected]

    Ufficio 24 Dip. Ingegneria dell’Informazione030-3715627 Lunedì 16:30-18:30

    Sistemi di elettronica digitale, A. Flammini, AA2020-2021

  • Elaborazione di segnali, sistemi

    embedded

  • 2

    Elaborazione di segnali• Acquisisco ingressi e informazioni, elaboro, genero uscite

    • Ingressi (da acquisire) e uscite (da generare)– Segnali digitali "statici" (informazione binaria)– Segnali digitali "time-coded" (l'informazione è codificata nel tempo)

    – durata di un impulso (Ton)– periodo di un'onda quadra o rettangolare (T=Ton+Toff) – duty cycle di un onda rettangolare (Ton/T)– sfasamento tra due segnali– …

    – Segnali "codificati" (informazioni)– interfacce seriali dirette (UART, SPI, I2C,…)– interfacce seriali indirette (verso moduli di comunicazione)

    – USB, Ethernet,…– Bluetooth, WiFi,…

    – Segnali analogici (informazione numerica 0…N=2n)

    • I segnali sono normalmente gestiti mediante dispositivi periferici– Periferiche per gestione di vari tipi di segnali

    • Esistono processori che integrano periferiche (microcontrollori)Sistemi di Elettronica Digitale, A. Flammini

  • 3

    Sistemi embedded• I sistemi embedded sono sistemi hardware + software residente

    (firmware –FW-) + segnali di ingresso e uscita per lo svolgimento di

    compiti precisi

    • I sistemi embedded sono basati su dispositivi/processori speciali che integrano periferiche

    – Dispositivi integrati (es. lab-on-chip, auricolari BLE,…)– Sistemi integrati (es. Arduino, Raspberry,…)

    Sistemi di Elettronica Digitale, A. Flammini

  • 4

    Sistemi embedded

    • I sistemi embedded tipicamente comprendono:– Un processore, tip. un microcontrollore, destinato alla gestione di Ingressi e Uscite (I/O) digitali e/o analogici– Un sistema di alimentazione tipicamente a batteria o comunque a basso consumo (es. USB)– Un sistema di comunicazione, cablato (USB) o wireless (Bluetooth LowEnergy), sul quale il sistema è slave

    • I sistemi embedded possono anche comprendere:– Un sistema di comunicazione, cablato (Ethernet, USB OTG) o wireless (Bluetooth Low Energy, WiFi), sul quale il sistema può gestire altri slave– Sensori

    Sistemi di Elettronica Digitale, A. Flammini

  • 5

    Sistemi embedded, il microcontrollore (MCU)

    Sistemi di Elettronica Digitale, A. Flammini

    • Processore:– 8-16-32 bit, aritmetica intera, sommatori HW, moltiplicatori firmware– No sistema operativo, compilatore C

    • Memorie:– Flash per codice, SRAM per dati, Serial Flash o EEPROM per configurazione

    • Periferiche e pin di I/O:– Porti di I/O logico. Normalmente configurati come ingressi, possono essere programmati come uscite. Sono costituiti da un buffer 3-state (inizialmente a Z) con un ricevitore in antiparallelo– Unità di temporizzazione. Timer free-running (contatori) con registri che memorizzano istanti di eventi (es. fronte di salita di un ingresso o istante di commutazione di un’uscita). Uscite PWM – Interfacce Seriali (UART, I2C, SPI) verso dispositivi periferici seriali (es. sensori, moduli Bluetooth, ecc.) o per comunicazione tra MCU– Convertitori Analogico/Digitale che gestiscono in MUX più ingressi (tip. ad approssimazioni successive, 10 bit, max 100kSa/s per 8 bit)– Interfacce USB, il microcontrollore è normalmente un device e il sistema embedded può essere connesso ad un PC come una periferica

    NOTA: Ciascun pin può essere configurato in uno dei modi sopra elencati

  • 6

    Elaborazione di segnali• Segnali analogici

    • Applicazioni – Controllo e regolazione di sistemi (genero u(t) per ottenere un desiderato e(t))– Misura o stima o trasferimento di informazione (e(t))– Generazione di stimoli (u(t))

    • Ogni blocco introduce rumore (ni(t)=rumore) e impiega un tempo ti

    -

    +

    Analogico

    Digitale

    Digitale

    Analogico

    Digital

    Signal

    Processing

    -

    +

    e(t) v(t

    )

    x(n) y(n) w(t) u(t)

    n0(t) n4(t)

    Sistema

    n1(t) n2(t) n3(t)

    t0 t1 t2 t3 t4

    Sistemi di Elettronica Digitale, A. Flammini

  • 7

    Elaborazione di segnali• Elaborazione analogica

    • Stadio di condizionamento tipico:–eventuale stadio a guadagno G e’(t) = G1e(t)+ G0–filtro passa-basso (o passa-banda) con frequenza di taglio fch < fs/2 e ordine m

    •Possibili problemi: –Il filtro, di ordine limitato, non attenua sufficientemente oltre fs/2–G non è costante in tutta la banda di interesse (OA, filtro)–v(t) risulta in ritardo rispetto a e(t)

    •Possibili soluzioni: –Sovracampionamento rispetto alla banda utile del segnale–e(t) ={f1, f2} fs>>f2, fch>>f2 (tip. fch10f2, fs100f2) maggiori costi

    -

    +

    e(t) v(t)

    n0(t)

    -

    +

    e(t)G

    fcl fch

    n0B(t)n0A(t)

    v(t)e'(t)

    Sistemi di Elettronica Digitale, A. Flammini

  • 8

    Elaborazione di segnali• Convertitore analogico/digitale

    • Lo stadio di conversione è caratterizzato da 3 parametri:– Frequenza di campionamento fs (Tempo di conversione Ts = 1/fs)– Numero B di bit del convertitore – Stabilità delle tensioni di riferimento Vrefh, Vrefl– Legge di conversione x=2B(v-Vrefl)/(Vrefh-Vrefl)

    • xx, tt Rappresentazione implicita del tempo (tn-tn-1=Ts=1/fs)– x(n) = v(nTs)

    • Il rumore associato all’ADC dipende da: – tempo di apertura, linearità, Vref,...– Rumore di quantizzazione associato a B Nota: S/H può non essere utile (es. approx. succ.)

    ADCS/H

    VrefLogic

    v(t)

    x(n)v

    x

    Vrefl Vrefh012

    2B-1

    Δ

    2B livelli

    Sistemi di Elettronica Digitale, A. Flammini

  • 9

    Elaborazione di segnali• Convertitore analogico/digitale, rumore di quantizzazione

    • Errore di quantizzazione qT (qT

  • 10

    Elaborazione di segnali• Convertitore analogico/digitale, rumore di quantizzazione

    • Segnale sinusoidale v=Asin(wt)- Potenza del segnale 2(v)=(1/2)(Asin(wt))2d(wt)=A2/2- Il valore di A deve essere massimo possibile ma compreso nel ranged’ingresso•A≤(Vrefh-Vrefl)/2 ma =2-B(Vrefh-Vrefl) per cui A=2

    B-1

    - Potenza del rumore 2(qT)=PqT(x-E(qT))2dx=2/12

    - SNR = (22B-22/2)/(2/12) = 3·22·22B-3 = (3/2)22B

    - SNR[dB]= 20B·log2 + 10log(3/2) = 6B+1.76- SNR=(3/2)22B SNR[dB]= 20Blog2 + 10log(3/2) = 6B+1.76Nel dominio delle frequenze si avrebbe (FFT a M punti)

    rmsASNR 221 iavgiavgrms nMXnX

    MA

    21

    1

    1

    2

    1

    1

    M

    m

    avnfh

    d

    mXNMM

    NOTA: dal rumore viene spesso cancellata la componente continua e le

    armoniche, Nd è il numero delle componenti cancellate +2 (le fondamentali)

    Sistemi di Elettronica Digitale, A. Flammini

  • 11

    Elaborazione di segnali• Convertitore analogico/digitale, ENOB

    • Effective Number of Bits– Misuro SNR totale, conosco 2(v), calcolo 2(qT) e stimo ENOB– Se sinusoide, in base a SNR=6B+1.76, stimo ENOB (Numero di Bit effettivi)

    • Filtro anti-aliasing– Per evitare che le repliche spettrali alle frequenze superiori a fs/2 possano riflettersi in banda a causa dell’aliasing, si mette un filtro passa-basso a fch

  • 12

    Elaborazione di segnali• Convertitori analogico/digitale

    • Tipi di convertitori A/D tradizionali• Applicazioni ad elevata velocità (fb > MHz) convertitori flash

    – banco di 2B–1 comparatori a soglie differenti (Ts=Tcomp+Tlogic)

    • Applicazioni a bassa velocità (fb LSB (1 compar., Ts=N(Tcomp+Tlogic+TassD/A)

    • Tipi di convertitori A/D “modificati”–ad approssimazioni successive parallele (a residui Ai)–più veloce di quello ad approx. perchè D/A a 1 bit–con un S/H dopo il G=2 può operare in pipeline

    •Tipi di convertitori A/D per usi speciali–convertitori A/D non lineari (es. voce, legge A e μ)–A/D lavora spesso nel campo a minor precisione–Conv. lineare: D=v+q Conv. logaritmica: D=logv+q–Imponendo q=logkq si ha D=log(kqv) qrel=cost.

    FS/2

    D/A+-+

    v(t)MS

    B

    2 FS/2

    D/A+-+

    MSB-

    1

    2 FS/2

    D/A+-+

    MSB-

    2

    A

    1

    A

    2

    A

    3

    Sistemi di Elettronica Digitale, A. Flammini

  • 13

    Elaborazione di segnali• Convertitori analogico/digitale

    • Conversione logaritmica per trasmissione del segnale telefonico (problema per x = 0 –> y = lnx = ln0 = - )

    • Legge (Stati Uniti): traslazione tipo y=ln(1+kx)

    =255 (si approssima la legge continua con 8 segmenti lineari)

    • Legge A (Europa): raccordo con tratto lineare y=lnx per x>1/A e y=kx per x

  • 14

    Elaborazione di segnali• Convertitore A/D Sigma/Delta

    • Invece di convertire il valore assoluto di v(t) converte le differenze nel tempo- L’uscita D è una sequenza di bit- Esempio di convertitore a inseguimento (Q=risultato ADC)- A inseguimento finito (DC) ho una sequenza 010101...+-+-+- Integrando tale sequenza ottengo 0 (variazione nulla)- Aumentando Ck aumento la risoluzione- La frequenza di lavoro (Ck) è >> della dinamica di v(t)

    • Convertitore delta a integratore:- Caratteristiche simili allo schema sopra- Maggiore semplicità implementativa

    • Convertitore Sigma-delta (prima integro e poi )- Decimazione mediante filtri numerici

    v(t)

    D/A

    -+

    v’

    D

    U/DQ

    ResCk

    v(t)

    -+

    v’

    L’Ck

    D

    Q

    v(t)v’

    v(t) A/D+

    -+

    D/A

    Decimatorev(t)

    -+

    v’

    L’Ck

    D

    Q

    Sistemi di Elettronica Digitale, A. Flammini

  • 15

    Elaborazione di segnali• Convertitore A/D Sigma/Delta

    • Il convertitore differenziale a inseguimento, per assestare il valore di Q (v(t) a bassa dinamica) deve attendere 2N colpi di clock (N=dim. contatore)

    Uscita Q a N bit dopo 2N colpi di clock Decimazione: rapporto di riduzione = 2N/N In realtà i decimatori sono filtri

    • Il sovracampionamento migliora SNRa (filtro anti-alias meno critico) e SNRq(sparpaglio meglio la densità spettrale del rumore di quantizzazione qT=

    2/12fs) Ipotesi: rumore quantizzazione additivo bianco (uniformemente distribuito in f) Non vale per v(t) = costante (rumore di quantizzazione “coloratissimo”)

    • Noise shaping (ulteriore riduzione della densità spettrale di qT in banda) Convertitore Sigma-Delta nel dominio delle frequenze

    v(t)

    D/A

    -+

    v’

    D

    U/DQRes

    Ck

    x(s) A/D+

    -+

    D/A

    Decimatore

    y(s)

    +qT(s)

    1)(

    )()(

    )()(

    s

    s

    sN

    sYsN

    s

    sYsY

    1

    1

    )(

    )()()()(

    ssX

    sY

    s

    sYsXsY

    Segnale Rumore

    Sistemi di Elettronica Digitale, A. Flammini

  • 16

    Elaborazione di segnali• Convertitori A/D integrati nei microcontrollori

    • Tipicamente i convertitori integrati nei microcontrollori a basso costo sono ad approssimazioni successive

    • Es. ATmega32u4 12 canali multiplexati (uno alla volta) 10/8 bit (+/-2LSB Accuracy) tempo di conversione a 10 bit da 65us = 13 ADC Clocks @ 200kHz (fino a 15kSps –Samples per second-), ma Arduino non supera tipicamente 9kSps.Amplificazione programmabile (1x, 10x, 40x, 200x) Riferimento interno di tensione a 2,56V (oppure riferimento a Vcc) Interrupt che stimolano la conversione (End-of-Conversion Interrupt) Comparatori analogici (confrontano le tensioni tra 2 pin)

    • Nota: alcune funzionalità non sono pienamente supportate da Arduino

    Sistemi di Elettronica Digitale, A. Flammini

  • 17

    Elaborazione di segnali• Convertitori D/A

    • Architettura a correnti pesate– Come realizzo le correnti?

    corrente di riferimento

    (Max IOUT)

    Stato dello switch (parola binaria)

    Correnti “pesate”

    • Architettura a resistenze pesate– Come realizzo le resistenze?

    • La soluzione a rete R/2R• La soluzione PWM

    N=16

    Sistemi di Elettronica Digitale, A. Flammini

  • 18

    Elaborazione di segnali• Convertitori D/A

    • PWM, Pulse Width Modulation

    • I segnali PWM sono caratterizzati da una frequenza portante fo=1/To, per cui i fronti di salita del segnale sono equidistanti To

    • Il periodo To viene suddiviso in N=2n intervalli di durata To/N

    • Il fronte di discesa viene programmato dopo k intervalli, ossia a distanza k·To/N dal fronte di salita con k programmabile tra 0 e N-1

    • Il segnale PWM codifica nel tempo Ton = k·To/N (tempo in cui il segnale è a "1") l'informazione (Ton+Toff=To)

    • Il segnale varia tra Vol e Voh e, in CMOS, circa tra massa e alimentazione; se filtrato passa-basso (RC) con frequenza di taglio fc

  • 20

    Elaborazione di segnali• Convertitori D/A integrati nei microcontrollori

    • Tipicamente i microcontrollori a basso costo non integrano convertitori D/A ma solo uscite PWM

    •Es. ATmega32u4 4 canali PWM a 8 bit 4 canali PWM con risoluzione programmabile da 2 a 16 bit 6 canali fast-PWM con risoluzione programmabile da 2 a 11 bit e confrequenza portante pari a Fclk_I/O/(N*256) con N = 1, 8, 64, 256, 1024 Arduino ha frequenza portante pari a 488Hz(/976Hz) (es. analogWrite (11,63) genera un'onda rettangolare a 488Hz con duty cycle D=25% (=63/255)

    NOTA: E' sempre possibile programmare a basso livello, modificando latabella dei registri dell'MCU (da vedere/capire poi)

    Oltre al PWM, i timer permettono di generare baud rate per le seriali,realizzare funzioni basate su timer di sistema (es. millis(), micros(), delay(),ecc.), acquisire/generare commutazioni con timestamp

    Sistemi di Elettronica Digitale, A. Flammini

  • 21

    Sistemi embedded, GPIO

    Sistemi di Elettronica Digitale, A. Flammini

    • GPIO, General Purpose Input/Output:– Punti di Ingresso Uscita digitale– Possono essere connessi a periferiche anche diverse tra loro. Le periferiche sono sempre connesse al pin mediante transceiver– inizialmente (al reset) i GPIO sono configurati come ingressi e tutti i trasmettitori 3-state e i transceiver sono disabilitati (uno solo abilitato alla volta)

    IN

    GPIOOUT

    CONTROL

    Periferica

  • 22

    Sistemi embedded, interfacce seriali

    Sistemi di Elettronica Digitale, A. Flammini

    • UART (Universal Asynchronous Receiver-Transmitter):– shift register con clock locale in sovracampionamento– autodetect del clock mediante trasmissione di pattern speciali (es. 55hex) o misura distanza tra start bit e stop bit– storicamente nata per l'RS232 (COM, oggi virtualizzata dai PC su USB), oggi ancora presente in bus master-slave multipoint (RS485)

  • 23

    Sistemi embedded, interfacce seriali

    Sistemi di Elettronica Digitale, A. Flammini

    • SPI (Serial Peripheral Interface):– MOSI (Master Output Slave Input)– MISO (Master Input Slave Output)

    • HW device selection:– lo slave si attiva solo sul traffico di sua pertinenza

    • SW device selection:– lo slave si attiva sempre e legge un indirizzo nel pacchetto

  • 24

    Sistemi embedded, interfacce seriali

    Sistemi di Elettronica Digitale, A. Flammini

    • SPI (Serial Peripheral Interface):– Interfaccia che i uC supportano come Master e come Slave

    • I2C (Inter-Integrate Circuit):– Due sole linee (dati e clock)

    SCL

    SDA

  • 25

    Sistemi embedded, Timing Processing Unit

    Sistemi di Elettronica Digitale, A. Flammini

    • Timer/Counter– i timer nei microcontrollori sono dei contatori alimentati da un clock legato al clock di funzionamento della ALU (più timer/counter in un MCU)– permettono la gestione del tempo relativo –tempo trascorso tra un evento e un altro-, ma non del tempo assoluto –giorno, ora, minuti, secondi-

    PRS Peripheral Reflex System (periferiche

    che comunicano senza passare dall’MCU

    • Input Capture (IC)– cattura del valore del Counterin corrispondenza di un fronte di un segnale

    • Output Compare (OC)– generazione di evento quando il Counter ha un valore specificato– l’evento può essere relativo ad un segnale di uscita o ad altre periferiche– il PWM è un caso di OC

  • 26

    Sistemi embedded, MCU (Es. Atmega 32u4)

    Sistemi di Elettronica Digitale, A. Flammini

  • 27

    Sistemi embedded, MCU (Es. Atmega 32u4)

    Sistemi di Elettronica Digitale, A. Flammini

    - Gli MCU non hanno bus dati e bus indirizzi, ma porti

    - I porti sono gruppi di 8 GPIO connessi a una o più perifieriche

    - La personalizzazione dei porti dipende dalla programmazione di

    alcuni registri

    - Esiste anche una tabella degli interrupt (vettori)

  • 28

    Sistemi embedded, Port (Es. Atmega 32u4, portB)

    Sistemi di Elettronica Digitale, A. Flammini

    18

    19

    20

    23

    Bluefruit LE PIN Registro DDRF, ind.31hex, Data Direction Port F

    21

    22

    NOTA: è possibile utilizzare le funzioni Arduino o agire direttamente a livello di registri

    del microcontrollore (MCU). Esempi:

    pinMode (22, INPUT) equivale a DDRF &= 0xFD; // AND maschera x resettare un bit

    pinMode (23, OUTPUT) equivale a DDRF |= 0x01; // OR maschera x settare un bit

  • 29

    Sistemi embedded: USB

    Sistemi di Elettronica Digitale, A. Flammini

    Sistema di connessione punto-a-punto

    USB 1.0 (1996->1999)

    • interfaccia lenta, rimpiazza la RS232 (UART) per mouse, tastiere, e la

    parallela Centronics per le stampanti (1,5Mbit/s -> 12Mbit/s). USB è anche

    una sorgente di potenza (5V, 5A)

    USB 2.0 (2000)

    • aumento di velocità (480Mbit/s). Usato per trasferimento file e immagini

    (USB memory stick, cameras, etc). Non usato per segnali video (HDMI)

    USB 3.0 (2008)

    • interfaccia veloce (4,8Gbit/s -> 10Gbit/s), più potenza, più tipi di connettori

    USB è la connessione ideale tra PC e dispositivi mobili (ricarica)

    • il connettore microUSB è uno standard di alimentazione

    USB è una connessione master (host) - slave (peripheral)

    • 1 host e fino a 127 periferici; i periferici non possono comunicare tra di loro

    • HUB (port multiplier): utilizzato per connettere più periferici (cavo < 5m)

    • USB On-the-Go (USB OTG) permette ad un dispositivo (es. Smartphone)

    di essere sia host che peripheral

    Plug-and-play (no driver)

  • 30

    Sistemi embedded: Ethernet

    Sistemi di Elettronica Digitale, A. Flammini

  • 31

    Sistemi embedded: Ethernet, internet

    Sistemi di Elettronica Digitale, A. Flammini

  • 32

    Sistemi embedded, lo Smartphone (Galaxy S5)

    Sistemi di Elettronica Digitale, A. Flammini

  • 33

    Sistemi embedded, lo Smartphone

    Sistemi di Elettronica Digitale, A. Flammini

  • 34

    Sistemi embedded: lo Smartphone lo è o no?

    Sistemi di Elettronica Digitale, A. Flammini

    Processori (CPU, Central Processing Unit)

    • Digital Baseband Processor: interfacce radio (WiFi, Bluetooth) e sistema operativo (OS). E’ un sistema, con CPU, memorie e firmware

    • Application processor: per OS e applicazioni. Normalmente a 32 o 64 bit (floating

    points), orientato al basso consumo

    Memorie

    • DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory), veloce trasferisce 64bits 2 volte ad ogni periodo di clock

    • SRAM per codice e dati

    • Serial FLASH per dati di configurazione

    Molti dispositivi inerenti l’alimentazione

    • La vita della batteria è uno dei principali problemi

    Human interface e periferiche

    • Touchscreen, display, audio, fotocamera (possono essere considerati come sensori)

    Sensors• GPS, accelerometri, giroscopi, sensori di temperatura, altro

    Lo SMARTPHONE non è un sistema embedded ma può esserne la base

  • 35

    Sistemi embedded: il progetto RASPBERRY Pi

    • Computer compatti compatibili Linux (Great Britain 2012)

    • Basato su un System-on-Chip BCM2836 che integra un ARM (900 MHz 32-bit quad-core ARM Cortex-A7), memoria (1GB RAM), uSDe interfacce USB, Ethernet, Monitor e I/O digitale e porte seriali

    • https://www.sparkfun.com/products/13297 https://www.raspberrypi.org/Sistemi di Elettronica Digitale, A. Flammini

    https://www.sparkfun.com/products/13297https://www.raspberrypi.org/

  • 36

    Sistemi embedded: il progetto RASPBERRY Pi

    • Raspberry pi Model A (2012)– BCM2835 (ARM1176JZ 32bit, Low-power a 700MHz, single CPU, GPU dual-core, Video out HDMI, Video in MIPI camera interface, Audio, 1 USB, 17 GPIO), 256M SDRAM, Sdcard, 300mA (1,5W), 86mmx57mm, 31g, 25$

    •Raspberry pi Model A+ (2014)– 512MB SDRAM, HDMI, MicroSD, 200mA (1W), 65mmx57mm, 23g, 20$

    • Raspberry pi Model B (2012)– 512MB SDRAM, HDMI, 2 USB, Ethernet, 21 GPIO, 700mA (3,5W), 86mmx57mm, 31g, 35$– Raspberry pi Model B+ (2014), 4 USB, MicroSD, 25$

    • Raspberry pi Model B2 (2015) Raspi 2 – BCM2836 (ARMCortex A7 quadcore 900MHz 32bit, GPU dual-core, Video out HDMI, Video in MIPI camera interface, Audio, 4 USB, Ethernet10/100, 17GPIO), 1G SDRAM, uSDcard, 800mA (4W), 86mmx57mm, 31g, 25$– 512MB SDRAM, HDMI, MicroSD, 200mA (1W), 86mmx57mm, 45g, 35$

    • Raspberry pi Model B3 (2016)– BCM2837 (ARMCortex A53 quadcore 1,2GHz 64 bit, WiFi, BLE4.1,…)

    • Raspberry pi Model B4 (2019)– BCM2711 (4xCortex-A72 1,5GHz 64 bit, fino a 8G SDRAM, WiFi, BLE5.0, uHDMI,…)

    Sistemi di Elettronica Digitale, A. Flammini

  • 37

    Sistemi embedded: Raspi 2 (40 pin connector)

    Sistemi di Elettronica Digitale, A. Flammini

  • 38

    Sistemi embedded: Competitors del Raspi 3

    Sistemi di Elettronica Digitale, A. Flammini

    • Beaglebone Black (Debian, Android, Ubuntu)–AM335x 1GHz ARM Cortex A8–SGX530 Graphics Accelerator–NEON Floating-point Accelerator–USB–Micro HDMI–512MB DDR3 800MHz–4GB Embedded Flash and Micro SD Card slot– See https://beagleboard.org/

    • Raspi 4 ($35-45-55) vs Raspi 3B+4 ($35)–Better CPU (4xCortex-A72 vs A53) but more power–Faster and scalable Memory (1/2/4GB vs 1BG)–Dual 4k monitor support (2xμHDMI, VideoCore VI GPU)–USB 3.0 (vs 2.0), more ports (BT5 vs BLE4.2) but no full size HDMI– https://www.raspberrypi.org/

    • Onion– All inclusive IoT board– Omega2s– see https://onion.io/

    https://onion.io/

  • 39

    Sistemi embedded: il progetto ARDUINO

    • Il Progetto open source ARDUINO è nato nel 2005 a Ivrea

    • Consta di Ambiente di programmazione, Schede Processore, Shield

    • Ambiente di programmazione (IDE, Integrated Development Environment)– Linguaggio di programmazione C/C++ per realizzare «sketch»– Libreria software per il supporto semplice dell’accesso a I/O– Il programma è articolato in una parte di inizializzazione setup() e una parte loop() che viene eseguita ciclicamente– Il programma viene caricato nell’Hardware (CPU) da un Bootloaderresidente nell’HW stesso

    • Schede Processore (CPU), es. UNO https://www.arduino.cc/en/Main/ArduinoBoardUno– Microcontrollore ATMega (ATMega328), 32k Flash (5k Bootloader), 2k RAM, 1k EEPROM, Connettore con I/O e porte seriali predefinito per connessione con schede Shield

    • Schede Shield– Schede che si connettono alla scheda Processore per sensori, attuatori o sistemi di comunicazione

    Sistemi di Elettronica Digitale, A. Flammini

  • 40

    Sistemi embedded: ARDUINO UNO

    Sistemi di Elettronica Digitale, A. Flammini

  • 41

    ARDUINO UNO, MCU ATMega328

    • CPU e Memorie– Arch. RISC a 131 istruzioni (tante a ciclo singolo, MUL8 a 2 cicli)– Clock a 20MHz, clock interno a 32kHz– 32 registri a 8 bit, 32k Flash (5k Bootloader), 2k RAM, 1k EEPROM

    • Periferiche– 2 8bit Timer/Counter, 1 16bit Timer/Counter con eventi I/O correlati (Input Capture, Output Compare), 6 canali PWM– Convertitore A/D a 10 bit con 6 canali, 260us di tempo di conversione (30us a bassa risoluzione)– Interfacce seriali USART, SPI, I2C– Comparatori analogici on-chip– Interrupt e wake-up su cambi di stato di pin– 23 pin programmabili

    • Alimentazione– Alimentazione tra 1,8V e 5V– Basso consumo (0,2mA-9mA in modo attivo, 0,1uA in Power-down mode,…6 modi di funzionamento a bassa potenza)

    Sistemi di Elettronica Digitale, A. Flammini

  • 42

    ARDUINO LEONARDO, MCU ATMega32u4

    • CPU e Memorie– Arch. RISC a 135 istruzioni (tante a ciclo singolo, MUL8 a 2 cicli)– Clock a 48MHz, clock interno a 32kHz, 16MIPS@16MHz (max freq.)– 32 registri a 8 bit, 32k Flash (5k Bootloader), 2.5k RAM, 1k EEPROM

    • Periferiche– un 8bit Timer/Counter, due 16bit Timer/Counter con eventi I/O correlati (Input Capture, Output Compare), 8 canali PWM– Convertitore A/D a 10 bit con 12 canali, 260us di tempo di conversione (65us a bassa risoluzione). – Interfacce seriali USART, SPI, I2C, USB 2.0– Comparatori analogici on-chip– Interrupt e wake-up su cambi di stato di pin– 26 pin programmabili

    • Alimentazione– Alimentazione tra 2,7V e 5V– Basso consumo (0,2mA-10mA in modo attivo, 0,1uA in Power-down mode,…6 modi di funzionamento a bassa potenza)

    Sistemi di Elettronica Digitale, A. Flammini

  • 43

    IL PROGETTO ARDUINO

    • ARDUINO è una piattaforma open source di Physical Computing– open source = libero di usare e modificare– physical computing = sistemi hardware e software che interagiscono con i segnali del mondo fisico

    • ARDUINO significa 3 cose:– un oggetto fisico (scheda a microcontrollore)– un ambiente di sviluppo per la programmazione e il debug (IDE)– una comunità ed una filosofia di sviluppo ( www. arduino.cc )

    • Con ARDUINO si realizzano sistemi embedded

    Sistemi di Elettronica Digitale, A. Flammini

    www.youtube.com/watch?v=SaPbuy5WL_s

  • 44

    IL PROGETTO ARDUINO, IDE

    • Terminologia– IDE = Integrated Develpment Environment– sketch = programma scritto da utente che si compone di:

    –inizializzazione setup() che va in esecuzione una sola volta al reset –parte principale loop() che viene eseguita ciclicamente in modo continuo e asincrono

    – pin = i piedini di ingresso (input) o uscita (output)– board = scheda con MCU– shield = scheda di espansione (es. controllo motori, sensori, comunicazione)– upload o "flashing" = operazione di programmazione della scheda

    • Sul sito ARDUINO trovo tutto:– l'ambiente di sviluppo da scaricare (Software -> download)– tutorials e getting started (Resources -> Tutorial o getting started)– manuale tecnico del linguaggio (Resources -> Reference), ripartito in Functions, Variables, Structure https://www.arduino.cc/reference/en/

    • Per fare esperienze di programmazione ho bisogno di una scheda supportata (e di eventuali shield supportati) e collegata su USB:

    – Es. noi a laboratorio usiamo ADAFRUIT Bluefruit Feather32u4 e i relativi shield si chiamano FeatherWing

    Sistemi di Elettronica Digitale, A. Flammini

  • 45

    IL PROGETTO ARDUINO, IDE

    Sistemi di Elettronica Digitale, A. Flammini

  • 46

    IL PROGETTO ARDUINO, IDE

    • Struttura del programma semplice– include di eventuali librerie (esempio #include "Boards.h")– dichiarazione di costanti (esempio #define ANALOG 0x02)– dichiarazione variabili (esempio int numeromio = 5);– programma di inizializzazione (void setup() { } )

    – dichiarazione variabili (esempio int numeromio = 5;– dichiarazione di sottoprogrammi (es. void reportPinDigitalData(byte pin) )

    – programma in esecuzione continua (void loop() { } )– le istruzioni sono delimitate da ;

    • Principali funzioni:– pinMode() usata in genere in setup(), permette di definire se un pin è INPUT o OUTPUT– digitalWrite() permette di impostare un pin di output come HIGH o LOW– digitalRead() permette di leggere lo stato di un pin– analogRead() permette di leggere un pin analogico– analogWrite() permette di impostare un pin analogico– delay() mette in attesa il programma per il numero di ms impostato– millis() plegge il numero di millisecondi trascorsi dall'accensione della scheda

    • Per ulteriori informazioni guarda https://www.arduino.cc/reference/en/

    Sistemi di Elettronica Digitale, A. Flammini