Grazie alle straordinarie innovazioni introdotte negli ultimi decenni nell’ambito delle tecnologie utilizzate per la fabbricazione dei circuiti integrati, oggi è possibile raggiungere un livello di miniaturizzazione un tempo impensabile e quindi realizzare sistemi di elaborazione molto potenti e, allo stesso tempo piccoli e pervasivi, ovvero che possono essere integrati praticamente ovunque: negli accessori indossabili, nei gadget ed in generale in tutti gli “oggetti”. Questo risultato ha fatto da propulsore per la grande diffusione, attualmente in atto, di oggetti connessi e dell’Internet of Things (IoT), di cui abbiamo già avuto modo di parlare nell’articolo Smart home, domotica e oggetti connessi. Indubbiamente siamo ormai circondati da sistemi in grado di elaborare e trattare le informazioni. Questi possono essere PC, tablet, smartphone o più in generale sistemi embedded. In questo articolo spieghiamo in maniera semplice cosa si intende per sistema di elaborazione embedded, ed in particolare quali sono i meccanismi che consentono l’interazione tra il sistema e l’ambiente circostante, entrando nel merito delle tecniche di conversione analogico-digitale utilizzate per acquisire i segnali di natura analogica rappresentativi di tutte le grandezze fisiche che è possibile misurare attraverso l’impiego di specifici sensori.

Indice:

Importanza di acquisire le informazioni digitali

Abbiamo già parlato di come i sistemi di numerazione permettono di codificare e trattare le informazioni digitali: Conversione esadecimale, codici ASCII e UNICODE. Nell’articolo Processori e aritmetica binaria abbiamo invece visto che le informazioni digitali sono elaborate dai processori, ed in generale da tutti i circuiti elettronici digitali, utilizzando la codifica e l’aritmetica binaria. La domanda successiva che vale la pena di porsi è relativa a come possono essere generate le informazioni digitali. Esistono infatti due principali possibilità:

  1. L’informazione nasce all’interno di un sistema di elaborazione, dove successivamente viene opportunamente gestita per produrre un qualche tipo di risultato;
  2. L’informazione digitale è una rappresentazione di una qualsiasi grandezza fisica del mondo reale, e quindi è acquisita dall’esterno.

Appare evidente che la seconda possibilità riveste un ruolo particolarmente importante per la realizzazione di sistemi e dispositivi in grado di monitorare parametri ambientali o interagire con le persone e l’ambiente per esempio attraverso voce, gesti, suoni o immagini.

Segnale Analogico

Segnale continuo nel tempo e nell’ampiezza: è definito per qualsiasi istante di tempo e può assumere tutti gli infiniti valori compresi tra un minimo e un massimo.

Segnale Digitale

Segnale discreto nel tempo e nell’ampiezza: può cambiare valore solo in determinati istanti di tempo e può assumere solo determinati valori generalmente rappresentati da codici binari.

Il carattere analogico del mondo reale

E’ importante osserva che il mondo reale è intrinsecamente analogico. Tutte le grandezze fisiche, come per esempio intensità luminosa, intensità acustica, velocità e temperatura, sono continue nel tempo e nell’ampiezza. D’altra parte si tratta di un’osservazione piuttosto ovvia.

Affinché una qualsiasi grandezza fisica possa essere acquisita ed elaborata, ovviamente serve un dispositivo che si occupi di convertire tale grandezza in un segnale elettrico. Un simile dispositivo è detto sensore o trasduttore, ed il processo di conversione della grandezza fisica in segnale elettrico è detto trasduzione. Generalmente i sensori consento quindi di legare l’intensità della grandezza fisica al valore di tensione generato dal sensore come risultato della trasduzione.

I Sistemi di Elaborazione Embedded

In generale un sistema di elaborazione embedded, nel caso più semplice costituito da un processore, per esempio integrato all’interno di dispositivo indossabile (in inglese wearable), acquisisce informazioni dal mondo reale e produce un risultato da restituire ancora una volta al mondo reale. Questo consente di fatto l’interazione tra dispositivo e ambiente circostante.

sistema embedded

Sensori e Attuatori

In questa generica schematizzazione, le informazioni in ingresso provengono da uno o più sensori, che possono essere per esempio acustici (microfoni), di movimento, temperatura, pressione, ecc. Analogamente le informazioni prodotte vengono fornite in uscita per attivare un qualche tipo di azione, attraverso l’impiego di specifici attuatori. Giusto per fare qualche esempio, questi possono essere acustici (speaker), visivi, idraulici, elettromagnetici, ecc.

Sistema di Elaborazione

I sistemi di elaborazione embedded del tipo mostrato sono tipicamente realizzati attraverso l’impiego di microcontrollori o application processor. Entrambe queste categorie di dispositivi in genere includono all’interno dello stesso circuito integrato almeno una CPU, circuiti specializzati e diversi componenti periferici, detti appunto periferiche. Per questa ragione si dice che tali dispositivi sono dei System on Chip (SoC), ovvero dei veri e propri sistemi realizzati all’interno dello stesso circuito integrato. I microcontrollori trovano applicazione in svariati contesti e, per questa ed altre ragioni, spesso si ci si riferisce a questi con l’aggettivo inglese general purpose (ovvero con scopo generale). Gli application processor sono invece dispositivi specializzati, ovvero progettati per implementare in maniera ottimizzata specifiche applicazioni. Per esempio, gli application processor sono largamente utilizzati negli smartphone, dove consentono di implementare funzionalità avanzate come l’accelerazione grafica, la codifica e la decodifica audio/video, la gestione del display, ecc.

Conversione analogico digitale (A/D)

Per quanto detto, l’informazione proveniente dal mondo reale avrà forma di un segnale analogico. Questo significa che, nel caso più semplice, sarà rappresentata da una tensione continua nel tempo e nell’ampiezza. Attenzione che quando si dice che la tensione è continua nel tempo, si intende che è definita in qualsiasi istante, e non che rimane costante. Il processo che consente di trasformare tale informazione in segnale digitale è detto conversione analogico-digitale. Il dispositivo che realizza questo processo è detto Analog to Digital Converter (ADC)

Conversione digitale analogica (D/A)

Analogamente, affinché il risultato dell’elaborazione possa essere “fruito” nel mondo reale, tipicamente è necessario che questa sia convertita in segnale analogico. Tale conversione è detta digitale-analogica ed è realizzata attraverso dispositivi noti con il nome di Digital to Analog Converter (DAC).

Elaborazione delle informazioni

Come detto, la conversione A/D permette di trasferire nel mondo digitale le informazione proveniente dal mondo reale e rappresentative di grandezze fisiche. In questo modo è possibile realizzare direttamente in software qualsiasi tipo di elaborazione sull’informazione acquisita. In altre parole, è possibile sviluppare programmi che verranno eseguiti dal processore del sistema per realizzare qualsiasi tipo di elaborazione sull’informazione acquisita. Sono davvero tantissime le possibili applicazioni. Per esempio, grazie a questo approccio è possibile realizzare i dispositivi citati nel nostro precedente articolo Smart home, domotica e oggetti connessi, sfruttando la straordinaria capacità di calcolo dei processori per implementare in software sofisticate tecniche di filtraggio e di elaborazioni altrimenti impossibili da realizzare nel dominio analogico.

Processo di conversione analogico digitale

Il processo di conversione A/D si suddivide in due principali operazioni: campionamento e quantizzazione. La schematizzazione del processo è riportata di seguito.

conversione analogico digitale

Il prodotto di un convertitore A/D è quindi rappresentato da una sequenza di campioni digitali, dove ogni campione è a sua volta costituito da N bit. Quanto maggiore è il numero di bit per campione, tanto migliore sarà la risoluzione del convertitore.

Campionamento

Il di campionamento consiste nella discretizzazione nel tempo del segnale analogico d’ingresso ed è realizzato da un circuito noto come campionatore. Questo dispositivo produce quindi un segnale tempo-discreto che però di fatto, essendo continuo nell’ampiezza, è ancora di fatto un segnale analogico.

Un parametro fondamentale di questo processo è il tempo di campionamento, ovvero l’intervallo di tempo che intercorre tra due campioni successivi prelevati dal segnale d’ingresso. A volte tale parametro è identificato attraverso la frequenza di campionamento, ovvero l’inverso del tempo: Fc = 1/TC.

Un esempio di campionamento è quello riportato nella figura seguente, dove la curva nera rappresenta il segnale analogico, le frecce rosse gli istanti di campionamento e la curva blu il segnale campionato.

campionamento

La scelta della frequenza di campionamento è fatta applicando il teorema del campionamento o di Shannon, secondo il quale un segnale a banda limitata può essere ricostruito correttamente a partire dai suoi campioni solo se questi sono stati prelevati con una frequenza almeno doppia rispetto alla banda del segnale stesso. A questo proposito serve precisare che, poiché nella realtà non esistono segnali a banda limitata, prima del campionatore è richiesto l’utilizzo di un filtro antialiasing atto a limitare la banda del segnale analogico di ingresso:

campionatore

Inoltre, per operare correttamente la conversione, è necessario che ogni singolo campione generato dal campionatore rimanga disponibile in uscita per un tempo pari al periodo di campionamento. Questo risultato può essere ottenuto attraverso l’impiego di un dispositivo noto come mantenitore. Questa operazione è generalmente nota in inglese con il termine sample and hold (S&H). Lo schema di campionamento richiede quindi l’aggiunta di questo componente e si modifica come mostra nella seguente figura:

S&H nella conversione analogico-digitale

Quantizzazione

La quantizzazione è il processo attraverso il quale si assegna un codice binario ad ognuno dei campioni, ovvero si discretizza l’ampiezza del segnale tempo-discreto prodotto dal campionatore.

La figura seguente mostra due esempi di caratteristica di quantizzazione. Sulle ordinate sono riportati i codici binari assegnati in funzione del valori del segnale d’ingresso Vin.

quantizzatore

L’errore di quantizzazione rappresenta l’errore intrinseco al processo di quantizzazione stesso e può essere immaginato come un contributo di rumore, detto appunto rumore di quantizzazione. Questo è definito come il massimo scostamento dell’uscita Vuc da Vin (con Vin interno alla dinamica di ingresso del convertitore):

Si fa in modo che l’ampiezza degli intervalli sia costante ad eccezione del primo, per il quale si sceglie un’ampiezza dimezzata. Questo permette di garantire che l’errore dovuto alla quantizzazione non assuma mai un valore superiore a ½LSB (ε= ½LSB).

La risoluzione del convertitore dipende dal numero di bit che compongono l’uscita digitale. Si tratta di una misura della minima variazione dell’ingresso (riferita al valore di fondo scala) che il convertitore è in grado di rilevare:

Poiché tutti i segnali analogici sono rumorosi, appare evidente che, nel caso in cui il rumore sia superiore alla risoluzione, oltre al contenuto informativo verrà convertito anche il rumore.

Per rimanere aggiornato su questo e altri argomenti iscriviti alla Newsletter.