Salta al contenuto
Note per Studenti Ciclo di acquisizione, memoria e visualizzazione

Ciclo di acquisizione, memoria e visualizzazione

In questa pagina 5

L'oscilloscopio non guarda il segnale in modo continuo: ogni volta acquisisce una finestra, la elabora, la mostra e ricomincia. Capire il ciclo spiega perché si possono perdere eventi brevi, che cosa significa "profondità di memoria" e come una traccia di 10610^6 campioni diventi un disegno da 10001000 punti.

Il ciclo di funzionamento

Un ciclo comprende tre fasi (Trigger e sincronizzazioneIl trigger fa partire l'acquisizione sempre dallo stesso punto di un segnale periodico, per avere una traccia stabile. Si imposta con sorgente, livello, pendenza (fronte di salita o discesa), modo (auto, normal, single), hold-off e posizione ($t=0$ = istante di trigger). Il livello deve cadere dentro l'escursione del segnale, $V_{min}<V_{trig}<V_{max}$ (meglio dove la pendenza è massima); con accoppiamento AC cambia l'escursione. Segnali con più passaggi per il livello in un periodo si risolvono con un livello tra le ampiezze degli impulsi o con un hold-off poco più corto del periodo. Per segnali a bassissima frequenza si disattiva l'auto.Trigger e sincronizzazione →):

fase simbolo durata chi la decide
acquisizione TAT_A =Tw=10 ΔTh=T_w=10\,\Delta T_h operatore (scala orizzontale)
ripristino (re-arm) TBT_B tempo morto in cui non si acquisisce nulla; deterministico hardware (e hold-off)
attesa del trigger TCT_C tempo tra fine ripristino e prossimo evento di trigger; aleatorio segnale

Tcycle=TA+TB+TC.T_{cycle}=T_A+T_B+T_C. Se il segnale è periodico, TcycleT_{cycle} è un multiplo del periodo del segnale (l'acquisizione parte sempre allo stesso punto).

  • Velocità di aggiornamento della traccia: 1Tcycle\dfrac1{T_{cycle}}, al massimo (con TC=0T_C=0) fagg,max=1TA+TB.f_{agg,max}=\frac1{T_A+T_B}.
  • duty cycle dell'oscilloscopiofrazione del tempo in cui lo strumento acquisisce davvero: tempo di acquisizione diviso durata del ciclo: d=TATcycle=TATA+TB+TCd=\dfrac{T_A}{T_{cycle}}=\dfrac{T_A}{T_A+T_B+T_C}.

Per esempio con Tw=2T_w=2 ms e TB=1T_B=1 ms: fagg,max=333f_{agg,max}=333 aggiornamenti al secondo e il duty cycle massimo è 2/3=67%2/3=67\%. Durante TBT_B lo strumento è "cieco": un evento breve (un glitchimpulso breve e isolato, spesso indesiderato) che cada lì viene perso. Una memoria più profonda allunga il tempo che si può acquisire in una volta, quindi si ripristina meno spesso. L'hold-offintervallo dopo un trigger valido in cui gli altri eventi vengono ignorati allunga di proposito la fase di ripristino per evitare eventi di trigger indesiderati (Trigger e sincronizzazioneIl trigger fa partire l'acquisizione sempre dallo stesso punto di un segnale periodico, per avere una traccia stabile. Si imposta con sorgente, livello, pendenza (fronte di salita o discesa), modo (auto, normal, single), hold-off e posizione ($t=0$ = istante di trigger). Il livello deve cadere dentro l'escursione del segnale, $V_{min}<V_{trig}<V_{max}$ (meglio dove la pendenza è massima); con accoppiamento AC cambia l'escursione. Segnali con più passaggi per il livello in un periodo si risolvono con un livello tra le ampiezze degli impulsi o con un hold-off poco più corto del periodo. Per segnali a bassissima frequenza si disattiva l'auto.Trigger e sincronizzazione →); implica un sottocampionamento temporale del segnale.

Memoria di acquisizione e memoria grafica

La memoria di acquisizionememoria circolare di N campioni dell'ADC; il campione più recente sostituisce il più vecchio ha profondità NN (per esempio 10610^6) e riceve i campioni al passo Ts=1/FsT_s=1/F_s (11 ns a 11 GS/s). La durata massima acquisibile alla frequenza piena è Tacq,max=N Ts=NFs,(106⋅1 ns=1 ms).T_{acq,max}=N\,T_s=\frac N{F_s},\qquad(10^6\cdot1\ \text{ns}=1\ \text{ms}). Dalla memoria si ricava la memoria graficamemoria che contiene i punti da mostrare sullo schermo, uno per pixel, con NV=1000N_V=1000 pixel in orizzontale: ogni pixel ha durata ΔT=TwNV\Delta T=\frac{T_w}{N_V} (la frequenza di campionamento "del segnale visualizzato" è 1/ΔT1/\Delta T: 11 MS/s a 100 μ100\ \mus/div, dove ΔT=1 μ\Delta T=1\ \mus, ma solo 500500 Hz per una finestra di 22 s, ΔT=2\Delta T=2 ms). La frequenza di campionamento stampata sul pannello è quella dell'ADC; quella del segnale visualizzato dipende dalla scala.

Si distinguono tre casi, in funzione di ΔT\Delta T rispetto a TsT_s.

Caso 1: ΔT=Ts\Delta T=T_s (cioè Tw=NVTsT_w=N_VT_s). Non serve alcuna elaborazione: la memoria grafica contiene i primi NVN_V campioni con un tracciamento 1:11:1. Con NV=1000N_V=1000, Ts=1T_s=1 ns: Tw=1T_w=1 ms, 100 μ100\ \mus/div. I restanti N−NVN-N_V campioni non sono visualizzati, a meno di non fermare l'acquisizione e traslare l'asse orizzontale.

Caso 2: ΔT>Ts\Delta T>T_s (un pixel dura più di un campione). Ogni pixel rappresenta M=ΔT/TsM=\Delta T/T_s campioni e se ne deve mostrare uno solo.

  • 2a: Tw<NTsT_w<NT_s. La finestra sta nella memoria: si decima in uscita dalla memoria (si scelgono i valori per pixel). Quattro modalità:
modalità che cosa mostra per ciascun pixel quando serve limite
uniform (normal) uno degli MM campioni (preso sempre il primo darebbe aliasing, uno a caso lo evita) caso generale può perdere impulsi brevi
high resolution la media degli MM campioni: la varianza si riduce di MM segnali rumorosi la media cancella i picchi
peak detect il campione più lontano dalla media unica modalità che mostra i glitch enfatizza il rumore
envelope minimo e massimo di ogni gruppo di MM: disegna l'inviluppo segnali che variano nel tempo pesa di più sul display
  • 2b: Tw>NTsT_w>NT_s. La finestra è più lunga di quanto la memoria possa contenere alla frequenza piena: bisogna decimare prima di scrivere in memoria, abbassando la frequenza di campionamento effettiva a Fs′=N/TwF_s'=N/T_w (Ts′=Tw/NT_s'=T_w/N). Esempio: N=106N=10^6 e Tw=10T_w=10 s: Ts′=10 μT_s'=10\ \mus, Fs′=100F_s'=100 kHz.

Decimazione in acquisizione: quando serve e che cosa comporta. È necessaria quando la finestra scelta è più lunga di quanto la memoria possa contenere alla frequenza di campionamento piena (Tw>NTsT_w>NT_s): per mantenere nella memoria tutta la finestra si abbassa la frequenza di campionamento effettiva a Fs′=N/TwF_s'=N/T_w. In termini di prestazioni: (i) la banda utile dei segnali che si possono rappresentare scende a Fs′/2F_s'/2 (un segnale più veloce subisce aliasing, a meno di un filtro o della modalità peak detect); (ii) gli eventi brevi (glitch, impulsi più stretti di Ts′T_s') possono essere persi; (iii) il tempo di salita e la risoluzione temporale visualizzati peggiorano. Il vantaggio è osservare finestre lunghe con una memoria finita.

Caso 3: ΔT<Ts\Delta T<T_s (pixel più breve del passo di campionamento): non ci sono campioni per ogni pixel e si interpolasi calcolano valori intermedi tra campioni noti: tra i campioni con la formula ideale con il sinc\mathrm{sinc} (se il segnale è limitato in bandaintervallo di frequenze trattato dallo strumento e campionato oltre Nyquist, Teorema del campionamento, interpolazione e aliasingTeorema di Shannon: un segnale a banda limitata $\omega_M$ si ricostruisce esattamente dai campioni se $T_c<\pi/\omega_M$ (frequenza di campionamento maggiore di quella di Nyquist $2f_{\max}$), con la formula di interpolazione ideale $x(t)=\sum_nx(nT_c)\operatorname{sinc}\left(\frac{t-nT_c}{T_c}\right)$. Sotto Nyquist c'è aliasing: le frequenze alte si confondono con quelle basse e l'informazione è persa.Teorema del campionamento, interpolazione e aliasing →) oppure in modo lineare.

Fattore di decimazioneriduzione del numero di campioni scartandone o combinandone alcuni complessivo (dall'ADC al display): ΔTTs=Tw FsNV\dfrac{\Delta T}{T_s}=\dfrac{T_w\,F_s}{N_V}.

Esempio

DSO con Fs=1F_s=1 GS/s, N=106N=10^6, NV=1000N_V=1000, scala 100100 ms/div (Tw=1T_w=1 s). Poiché NTs=1NT_s=1 ms <1<1 s siamo nel caso 2b: la memoria riceve campioni a Fs′=N/Tw=1F_s'=N/T_w=1 MS/s (Ts′=1 μT_s'=1\ \mus), cioè un campione ogni 10001000 dell'ADC; poi ogni pixel (ΔT=1\Delta T=1 ms) raccoglie M=1000M=1000 campioni. Il fattore di decimazione totale è 1000⋅1000=1061000\cdot1000=10^6 (anche TwFs/NV=1⋅109/1000=106T_wF_s/N_V=1\cdot10^9/1000=10^6). Un impulso positivo largo 0,50{,}5 ms (duty cycle 0,1%0{,}1\% su T0=500T_0=500 ms) dura meno di un pixel: in modalità uniform può non comparire, mentre la modalità peak detect lo mostra senza cambiare la scala (Esercizio 5 · impulso stretto, decimazione e peak detect (tema d'esame gennaio 2020)).

Misura di un fronte

Per misurare bene un tempo di salita TsT_s il fronte deve occupare più divisioni, perciò si sceglie una scala orizzontale più veloce di quella che mostrerebbe tutto il periodo. Con fronte di 15 μ15\ \mus e le opzioni 11, 1010, 100 μ100\ \mus/div: a 10 μ10\ \mus/div la finestra è 100 μ100\ \mus e il fronte copre 1,51{,}5 divisioni; a 1 μ1\ \mus/div (Tw=10 μT_w=10\ \mus) il fronte non entra. Il tempo di salita visualizzato è Tv=Ts2+Tr2T_v=\sqrt{T_s^2+T_r^2}, dove Tr=0,35/B=3,5T_r=0{,}35/B=3{,}5 ns è il tempo di salita dello strumento (B=100B=100 MHz): per Ts=15 μT_s=15\ \mus l'effetto è trascurabile (Banda, tempo di salita e accoppiamento AC-DC dell'ingressoLo stadio d'ingresso dell'oscilloscopio è un doppio bipolo con impedenza $Z_i=R_i\parallel C_i$ ($1\ \mathrm{M}\Omega$, decine di pF) e risposta $G(f)$ in banda $B$. Senza distorsione: $|G|$ costante e fase lineare. Tempo di salita dello strumento $T_r=0{,}35/B$; un fronte di durata $T_s$ si vede lungo $T_v=\sqrt{T_s^2+T_r^2}$, con errore $\simeq\frac12(T_r/T_s)^2$. Accoppiamento AC: capacità $C_{ac}$ in serie, filtro passa-alto $H(s)=\frac{sR_iC_{ac}}{1+sR_iC_{ac}}$, $f_T=\frac1{2\pi R_iC_{ac}}$ ($7{,}96$ Hz per $20$ nF); alla frequenza $f$: $|H|=\frac{f/f_T}{\sqrt{1+(f/f_T)^2}}$. Toglie la componente continua ma attenua e deforma le componenti lente.Banda, tempo di salita e accoppiamento AC-DC dell'ingresso →).

Differenza con le schede di acquisizione

Le schede di acquisizione invece sono progettate per non perdere campioni (acquisizione continua, analisi non in tempo reale), mentre l'oscilloscopio punta alla visualizzazione in tempo reale e ha tempi morti (Schede di acquisizione datiUna scheda di acquisizione dati (DAQ) campiona e quantizza segnali di tensione e li salva in un buffer FIFO senza perdere campioni, per un'analisi offline; l'oscilloscopio invece visualizza in tempo reale e ha tempi morti. Blocchi: ingressi con multiplexer, amplificatore a guadagno programmabile (PGA) o per strumentazione, ADC (risoluzione fissa), buffer, uscite DAC per generare segnali di test. Ingressi single-ended (riferiti a massa, $V_{mis}=V_i-V_{GND}$) o differenziali ($V_{mis}=V_+-V_-$, reiezione del modo comune); sorgenti grounded o floating; anello di massa: $V_{HL}=V_x+E_C$. Campionamento simultaneo (un clock per tutti) o sequenziale (sfasamento $\Delta t$ tra canali).Schede di acquisizione dati →).

Errori comuni

  • Dimenticare il tempo mortointervallo in cui lo strumento non acquisisce TBT_B e il tempo di attesa TCT_C nel calcolo della velocità di aggiornamento.
  • Pensare che la frequenza di campionamento sul pannello sia quella con cui si vede la traccia: dipende dalla scala orizzontale.
  • Usare high resolution per cercare un glitch: la media lo cancella (serve peak detect).
  • Confondere TwT_w con la durata massima della memoria NTsNT_s: se Tw>NTsT_w>NT_s si decima in ingresso e si perde banda.

Versione ripasso

Esercizi su questo argomento

Teoria collegata