Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini

Pagina creata da Giacomo Carboni
 
CONTINUA A LEGGERE
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
Sistemi di Elettronica
    Digitale, Sez.5
              Alessandra Flammini
          alessandra.flammini@unibs.it
  Ufficio 24 Dip. Ingegneria dell’Informazione
       030-3715627 Lunedì 16:30-18:30

  Sistemi di elettronica digitale, A. Flammini, AA2021-2022
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
Elaborazione di
segnali, sistemi
   embedded
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
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                            2
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
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                        3
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
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 Low
   Energy), 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                                        4
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
Sistemi embedded, il microcontrollore (MCU)
• 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
   Sistemi di Elettronica Digitale, A. Flammini                                       5
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
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
            n0(t)                                     n1(t)               n2(t)                n3(t)               n4(t)

                                                 Analogico                                    Digitale
e(t)              -                    v(t                         x(n)     Digital    y(n)                 w(t)     -     u(t)
                  +                    )                                    Signal                                   +
                                                        Digitale          Processing            Analogico
                      t0                                 t1                   t2                   t3                 t4

                                                                           Sistema

       Sistemi di Elettronica Digitale, A. Flammini                                                                               6
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
Elaborazione di segnali
• Elaborazione analogica
• Stadio di condizionamento tipico:
 –eventuale stadio a guadagno G           e’(t) = G1e(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. fch10f2, fs100f2)              maggiori costi

              n0(t)                                      n0A(t)           n0B(t)

  e(t)                                    v(t)    e(t)       -    e'(t)                  v(t)
                    -
                    +                                        +G
                                                                            fcl    fch

   Sistemi di Elettronica Digitale, A. Flammini                                                 7
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
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)

• xx, tt Rappresentazione implicita del tempo (tn-tn-1=Ts=1/fs)
 – x(n) = v(nTs)

• Il rumore associato all’ADC dipende da:                  x
 – tempo di apertura, linearità, Vref,...
 – Rumore di quantizzazione associato a B                2B-1

 Nota: S/H può non essere utile (es. approx. succ.)
                                                                        2B livelli
            v(t)
                              S/H                 ADC
                                                          2
                                                          1             Δ
           x(n)                                           0
                             Logic                Vref          Vrefl                Vrefh v
   Sistemi di Elettronica Digitale, A. Flammini                                                8
Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
Elaborazione di segnali
• Convertitore analogico/digitale, rumore di quantizzazione
• Errore di quantizzazione qT (qT
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 range
d’ingresso
•A≤(Vrefh-Vrefl)/2            ma =2-B(Vrefh-Vrefl) per cui A=2B-1

- Potenza del rumore          2(qT)=PqT(x-E(qT))2dx=2/12
- SNR = (22B-22/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.76
Nel dominio delle frequenze si avrebbe (FFT a M punti)
                                                                                                                              1
                                                                                                      M 1              
                                                                         
                                                                                                                                  2

  SNR 
                Arms
                                     Arms 
                                            1
                                                  X avg ni  X avg M  ni
                                                         2                  2
                                                                                
                                                                                          1
                                                                                                                  
                                                                                                             X avnfh m 2 
                                           M                                        M M  N d  1  m 1             

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                                                                                       10
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
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”                                      FS/2              MS
 –ad approssimazioni successive parallele (a residui Ai)      v(t)                             B
 –più veloce di quello ad approx. perchè D/A a 1 bit                         +-
                                                                                         D/A
                                                                         +
 –con un S/H dopo il G=2 può operare in pipeline                     A
                                                                     1   2    FS/2             MSB-
                                                                                               1
•Tipi di convertitori A/D per usi speciali                                   +-
                                                                                         D/A
 –convertitori A/D non lineari (es. voce, legge A e μ)               A
                                                                         +

 –A/D lavora spesso nel campo a minor precisione                     2   2        FS/2         MSB-
 –Conv. lineare: D=v+q Conv. logaritmica: D=logv+q                         +-
                                                                                               2

 –Imponendo q=logkq si ha D=log(kqv)               qrel=cost.          +               D/A
                                                                     A
                                                                     3
   Sistemi di Elettronica Digitale, A. Flammini                                                     12
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)
     ln(1  x/FS)
y                                     =255 (si approssima la legge continua con 8 segmenti lineari)
        ln( 1   )
• Legge A (Europa): raccordo con tratto lineare y=lnx per x>1/A e
y=kx per x
Elaborazione di segnali
• Convertitore A/D Sigma/Delta
                                                                                        v(t)
• Invece di convertire il valore assoluto di v(t) converte                                     +
                                                                                               -
                                                                                                           D

le differenze nel tempo                                                                   v’
                                                                                               D/A         Q U/DCk
- L’uscita D è una sequenza di bit                                                                           Res
- Esempio di convertitore a inseguimento (Q=risultato ADC)
- A inseguimento finito (DC) ho una sequenza 010101...+-+-+
- Integrando tale sequenza ottengo 0 (variazione nulla)                                v(t)
                                                                                               +           Ck        L’
- Aumentando Ck aumento la risoluzione                                                         -           D
- La frequenza di lavoro (Ck) è >> della dinamica di v(t)                                v’                Q
                                                                                               
• Convertitore delta a integratore:
- Caratteristiche simili allo schema sopra
- Maggiore semplicità implementativa
                                                                                                                     v’
                                                                                                                      v(t)
• Convertitore Sigma-delta (prima integro e poi )
- Decimazione mediante filtri numerici

       v(t)
                                     +            Ck   L’   v(t)
                                                                                      A/D         Decimatore
                                      -            D                     +
                                                                    +-
                           v’                      Q
                                                                                D/A

    Sistemi di Elettronica Digitale, A. Flammini                                                                             14
Elaborazione di segnali                                                                                    v(t)
                                                                                                                   +
                                                                                                                   -
                                                                                                                             D

• Convertitore A/D Sigma/Delta                                                                               v’
                                                                                                                   D/A      Q U/DCk
                                                                                                                              Res

• 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
           X ( s)  Y ( s)                          Y ( s)   1                                  Y ( s)                  Y ( s)   s
Y ( s)                                                                            Y ( s)              N ( s)                
                  s                                 X ( s) s  1                                  s                      N ( s) s  1
                                                                                +qT(s)
     Segnale                                       x(s)                                                                    Rumore
                                                                +            A/D        Decimatore
                                                           +-

                                                          y(s)          D/A

    Sistemi di Elettronica Digitale, A. Flammini                                                                                        15
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                                     16
Elaborazione di segnali
• Convertitori D/A
• Architettura a correnti pesate
       – Come realizzo le correnti?

                                                     corrente di riferimento   Stato dello switch (parola binaria)
                                                          (Max IOUT)

                                                     • Architettura a resistenze pesate
Correnti “pesate”                                           – Come realizzo le resistenze?

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

                                 N=16
      Sistemi di Elettronica Digitale, A. Flammini                                                                   17
Elaborazione di segnali
• Convertitori D/A
                                                   N=16
• 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
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 con
    frequenza 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 la
    tabella 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                                   19
Sistemi embedded, GPIO                                        CONTROL
                                                                      OUT
                                                                                GPIO
                                                                       IN

• GPIO, General Purpose Input/Output:
                                                         Periferica

 – 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)

   Sistemi di Elettronica Digitale, A. Flammini                                        20
Sistemi embedded, interfacce seriali
• 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)

  Sistemi di Elettronica Digitale, A. Flammini                                      21
Sistemi embedded, interfacce seriali
• 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
   Sistemi di Elettronica Digitale, A. Flammini                                      22
Sistemi embedded, interfacce seriali
• SPI (Serial Peripheral Interface):
    – Interfaccia che i uC supportano             SDA
    come Master e come Slave
• I2C (Inter-Integrate Circuit):
                                                  SCL
    – Due sole linee (dati e clock)

   Sistemi di Elettronica Digitale, A. Flammini         23
Sistemi embedded, Timing Processing Unit
• 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-

• Input Capture (IC)
      – cattura del valore del Counter
      in 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

 PRS Peripheral Reflex System (periferiche
 che comunicano senza passare dall’MCU
  Sistemi di Elettronica Digitale, A. Flammini                                     24
Sistemi embedded, MCU (Es. Atmega 32u4)

 Sistemi di Elettronica Digitale, A. Flammini   25
Sistemi embedded, MCU (Es. Atmega 32u4)
-   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)

    Sistemi di Elettronica Digitale, A. Flammini                      26
Sistemi embedded, Port (Es. Atmega 32u4, portB)

18
19
20
21

22
23

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

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
     Sistemi di Elettronica Digitale, A. Flammini                                                     27
Sistemi embedded: USB
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)
  Sistemi di Elettronica Digitale, A. Flammini                                      28
Sistemi embedded: Ethernet

  Sistemi di Elettronica Digitale, A. Flammini   29
Sistemi embedded: Ethernet, internet

  Sistemi di Elettronica Digitale, A. Flammini   30
Sistemi embedded, lo Smartphone (Galaxy S5)

  Sistemi di Elettronica Digitale, A. Flammini   31
Sistemi embedded, lo Smartphone

 Sistemi di Elettronica Digitale, A. Flammini   32
Sistemi embedded: lo Smartphone lo è o no?
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
  Sistemi di Elettronica Digitale, A. Flammini                                         33
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), uSD
e 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                          34
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                                      35
Sistemi embedded: Raspi 2 (40 pin connector)

  Sistemi di Elettronica Digitale, A. Flammini   36
Sistemi embedded: Competitors del Raspi 3
• 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/

   Sistemi di Elettronica Digitale, A. Flammini                 37
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 Bootloader
    residente 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                                     38
Sistemi embedded: ARDUINO UNO

 Sistemi di Elettronica Digitale, A. Flammini   39
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                                 40
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                                 41
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             www.youtube.com/watch?v=SaPbuy5WL_s

  Sistemi di Elettronica Digitale, A. Flammini                                           42
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                                  43
IL PROGETTO ARDUINO, IDE

 Sistemi di Elettronica Digitale, A. Flammini   44
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() legge 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                                               45
Puoi anche leggere