PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza...

15
PERIFERICHE DI TIMING

Transcript of PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza...

Page 1: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

PERIFERICHE DI TIMING

Page 2: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Periferiche di timing

• I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si distribuiscono altri dispositivi quali memorie e periferiche.

• Le periferiche rappresentano una serie di componenti collegati al processore che adempiono a compiti precisi e specifici in modo ottimale.

• Fra le periferiche di maggior interesse spiccano quelle di “timing”, che possono presentarsi sia come dispositivi “stand alone” (“off-the-shelf”), sia come dispositivi embedded, integrate su silicio assieme al processore (”on-chip”).

• Fra le periferiche di timing si analizzeranno: - timers - contatori - altri timer (interval timers, cascaded counters, timer con prescaler, watchdog

timers).

Page 3: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Timers

• Sono dispositivi che misurano lo scorrere del tempo o intervalli di tempo.

• Possono essere utilizzati per generare eventi ad intervalli di tempo specifici o per determinare l’intervallo di tempo che intercorre fra due eventi esterni, contando gli impulsi di un segnale di clock, avente periodo noto, in ingresso.

• Esempio di timer elementare realizzato da un contatore a 16 bit di tipo ‘up’.

• Il contatore quindi viene incrementato ad ogni impulso di clock (Clk).

• Cnt rappresenta il numero di impulsi di Clk contati dall’ultimo reset.

• I parametri caratteristici di un timer sono: – il range, cioè il massimo intervallo di tempo che il timer è in grado di

misurare; – la risoluzione, cioè il minimo intervallo che può misurare.

• Top indica il raggiungimento del massimo valore del contatore (va a 1 quando il contatore viene resettato).

Page 4: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Counters

• Si tratta di dispositivi che contano il numero di impulsi che si presentano in ingresso. A differenza dei timer non contano impulsi di clock ma eventi esterni.

• Contatore asincrono binario (uscita in forma binaria) a 4 bit (conta fino a ‘1111’).

• Realizzato utilizzando 4 stadi di flip-flop JK connessi in cascata.

• Gli ingressi J e K sono forzati a ‘1’: i flip-flop possano commutare lo stato ogni volta che un evento (impulso) si verifica.

• Asincrono, poiché i suoi flip-flop non ricevono l’impulso di temporizzazione simultaneamente (limitazione in velocità).

• Contatore sincrono binario a 4 bit.• Tale struttura permette la

temporizzazione contemporanea dei 4 flip-flop.

• Per questa regione prende il nome di contatore sincrono.

Page 5: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Timer/Counter

• Timer e contatori circuitalmente sono sinonimi.• E’ possibile concepire quindi un circuito che possa fungere da timer o da

contatore, aggiungendo ad un contatore a 16 bit un registro ad 1 bit ed un multiplexer .

• Clk è un impulso di clock.

• Cnt_in è un impulso esterno.

• Mode seleziona tramite il multiplexer l’input del contatore.

• Tramite il registro Mode tale dispositivo può essere programmato dall’utente.

• Clk_counter=Clk: il dispositivo funziona da timer, e conta gli impulsi di clock;• Clk_counter=Cnt_in: il dispositivo funziona da contatore, e conta gli impulsi su

Cnt_in.

Page 6: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Intel 8253 - 1

• L’Intel 8253 è un dispositivo programmabile “stand-alone”, progettato per essere utilizzato come periferica di timing per microcomputer Intel.

• Utilizza la tecnologia nMOS.• Package DIP a 24 pin.• Consta di tre contatori/timer

indipendenti da 16 bit di tipo ‘down’, ciascuno con una frequenza di conteggio superiore a 2Mhz.

• Sei modalità timer programmabili.• Data bus buffer: contiene la logica per il

trasferimento dei dati con il processore (bus a 8 bit) e con i registri interni (attraverso il bus interno).

• Read/Write logic: gestisce la lettura e scrittura dei registri di conteggio (A1 e A0 indicano quale dei 3 contatori leggere o scrivere).

• Control word register: contiene la parola di controllo (bit [D7…D0]) che il microprocessore invia al dispositivo per la sua programmazione.

Page 7: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Intel 8253 - 2• I bit [D7-D0] definiscono la parola di controllo con cui il processore programma l’8253.

• Mode 0: il contatore viene programmato ad un valore iniziale da cui inizia a contare fino a 0: quindi il relativo pin OUT va a 1 fino a nuovo conteggio o parola di controllo.

• Mode 1: come mode 1, ma il conteggio inizia al fronte di salita del segnale GATE. Durante il conteggio il segnale GATE è ignorato.

• Mode 2: dopo l’attivazione del conteggio, OUT resta alto finché il contatore non raggiunge 1, e quindi va a 0 per un solo impulso di clock.

• I bit D7 e D6 definiscono quale dei 4 contatori selezionare e programmare.

• I bit D5 e D4 indicano se, nel contatore selezionato, viene letto o caricato il byte più o meno significativo o entrambi.

• I bit D3, D2 e D1 settano la modalità di funzionamento dei contatori.

• Mode 3: come mode 2, ma OUT è alto per metà del periodo e bassa per l’altra metà.• Mode 4: all’attivazione del conteggio OUT resta alto finché il contatore non raggiunge 0,

quindi OUT va a 0 per un solo periodo di clock dopo di che ritorna alto.• Mode 5: come mode 4, ma il conteggio inizia quando GATE viene triggerato.

• Il bit D0 definisce se il conteggio è binario o decimale.

Page 8: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Microcontrollore ADuC836 - 1• Esempio di periferiche di timing “on chip”: microcontrollore ADuC836 di

Analog Devices.

• Basato su un core 8052 (Intel).• Tre timer/contatori a 16 bit. • Un watch-dog timer. • Un wake-up/RTC timer. • Ogni timer/contatore è

costituito da 2 registri ad 8 bit (THx e TLx, x=0,1,2) e può operare in quattro differenti modi (codificati da 2 “timer mode select” bit).

• In funzionamento timer, TLx viene incrementato ad ogni ciclo macchina.

• In funzionamento counter, vengono campionati i pin T0, T1, T2 (in base al timer).

Page 9: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Microcontrollore ADuC836 - 2• Modi del Timer 0: sono codificati dai bit 0 e 1 del registro TMOD.

• Mode 00: TH0 timer/counter ad 8 bit, TL0 prescaler (divisore del clock) a 5 bit.

• T0: input per il timer in modalità Counter.• INT0: utilizzato per attivare il Timer.• C/T: (bit 2 di TMOD) seleziona se counter o timer.• TR0: attiva il timer/counter (control). • GATE=0: si attiva il conteggio settando TR0.• GATE=1: si attiva il conteggio se TR0=1 e P3.2=1.• TF0: bit 5 di TCON, viene settato dall’hardware

quando si ha overflow, quindi genera un interrupt.

• Mode 01: funzionamento e schema analoghi al mode 00, con la differenza che il timer/counter è a 16 bit (TH0 e TL0 in cascata entrambi a 8 bit).

• Mode 10: TL0 è un timer/counter ad 8 bit con reload.

• Il valore di reload è programmato in TH0 e caricato in TL0 ad ogni overflow.

• L’overflow di TL0 setta TF0 (interrupt).• TH0 viene settato via software ed il suo contenuto non

viene modificato dall’overflow.

Page 10: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Microcontrollore ADuC836 - 3

• Mode 11: TL0 è un timer/counter ad 8 bit pilotato da TR0, TH0 è un timer ad 8 bit pilotato dai bit di controllo del Timer 1, quindi da TR1.

• Con Timer 0 in mode 3 si hanno 3 timer/contatori: timer TH0, timer/counter TL0 e il timer/contatore del Timer 1, che può funzionare a sua volta in mode 0, 1, 2.

• Modi del Timer 1: coincidono con quelli del Timer 0. Sono codificati dai bit 4 e 5 del registro TMOD. In mode 3, timer 1 mantiene il valore del registro, ma è disabilitato. Gli altri bit di Timer 1 servono per pilotare Timer 0.

• Modi del Timer 2:

• Timer/counter a 16 bit con “autoreload”: un segnale esterno può attivare il reload. • Timer/Counter a 16 bit con Capture: un segnale esterno provvede a trasferire il valore del

counter in due registri ad 8 bit. • Baud Rate generator per UART: può essere configurato per temporizzare i segnali di Rx e/o

Tx della UART.

Page 11: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Altri timers - 1• Interval timer: misura un intervallo di tempo.

• Si azzera e genera il segnale Top quando il timer raggiunge un valore assegnato.

• Se il valore del contatore è uguale a Terminal count, si resetta il timer generando un segnale su Top.

• Comparatore a 16 bit e registro programmabile (Terminal count) a 16 bit.

• Realizzazione alternativa: si utilizza un NOR a 16 bit (rileva tutti 0 sui 16 bit) in luogo del comparatore, e un contatore down.

• Number of clock cycles=Desired time interval/Clock period.

• Cascaded counters: connettendo in cascata più contatori si ottiene un modulo con capacità di conteggio maggiore.

• La struttura risulta quindi nel complesso seriale, quindi asincrona.

Page 12: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Altri timers - 2• Timer con prescaler: il prescaler è un circuito divisore di clock configurabile, in

grado quindi di abbassarne opportunamente la frequenza.

• Si utilizza quando si vuole campionare un segnale di clock ad una frequenza estremamente alta (più alta di quella che il timer può sopportare).

• Genera un impulso di clock ogni n impulsi ricevuti dal clock d’ingresso (“divide-by-n”).

• Il valore del registro Mode determina il valore della divisione: - Mode=0, Freq_out=Freq_in; - Mode=1, Freq_out=½Freq_in; - Mode=2, Freq_out=¼Freq_in; - Mode=3, Freq_out=1/8Freq_in.• Esempio: il timer è a 16 bit, la frequenza di clock è di 100MHz (10ns), quindi il

timer ha risoluzione di 10ns e range di 655.35μs. Se si attiva il prescaler con Mode=3 il timer ha risoluzione di 80ns, il range è 65535*80ns=5.24ms.

Page 13: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

• Watchdog timer: nella sua forma più semplice è un contatore.

Altri timers - Watchdog timer - 1

• Quando tale contatore va in overflow, allora il watchdog porta alto il segnale di RESET del sistema e quindi il controllore si resetta.

• In condizioni di funzionamento normale, il codice che il controllore elabora azzera periodicamente il contatore del watchdog, quindi quest’ultimo non va in overflow (“watchdog hit”).

• Quando il controllore entra in un loop infinito, o commette errori nell’elaborazione di sequenze di istruzioni, il controllore fallisce la hit: quindi il watchdog va in overflow resettando di conseguenza il controllore.

• Il controllore grazie al reset può quindi tornare a funzionare correttamente, elaborando il codice.

Page 14: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Altri timers - Watchdog timer - 2

• Un watchdog timer può essere implementato utilizzando elementi discreti.

• Timer LMC555, che fa da oscillatore.• Contatore 74HC161. • Il blocco “Edge Detector” è utile affinché la linea di reset del watchdog sia

sensibile solo alle transizioni. • Soluzione costosa e che richiede molto spazio “on-board”.

Page 15: PERIFERICHE DI TIMING. Periferiche di timing I sistemi digitali sono caratterizzati dalla presenza di un elaboratore, il processore, attorno a cui si.

Altri timers - Watchdog timer - 3

• Una implementazione più integrata è il “dedicated supervisor chip”: composto da - blocco monitoraggio della potenza; - blocco di generazione del reset; - blocco watchdog; - batteria di ripristino per lo spegnimento e SRAM.

• Un esempio di tale chip è l’ ADM691 di Analog Devices.

• Due periodi di timeout, uno lungo e l’altro corto (la differenza fra i due periodi è di un fattore pari a 3).

• L’iniziale timeout lungo sul watchdog garantisce al controllore o processore di teminare le necessarie inizializzazioni (variabili, stack, frame) e far partire le applicazioni.

• Quando il codice è ormai in esecuzione, azzererà periodicamente (hit), in condizioni di funzionamento corretto, il contatore prima di un suo overflow.

• Quando ciò avviene il watchdog si accorge che il codice sta girando correttamente e quindi passa ad un periodo di timeout corto.

• In generale i watchdog timer sono utilizzati nei sistemi embedded per garantire affidabilità riguardo errori software e hardware.