PERIFERICHE DI TIMING.

Slides:



Advertisements
Presentazioni simili
Differenza tra comunicazione seriale e parallela
Advertisements

MULTIVIBRATORI BISTABILI
Capitolo 4 Logica sequenziale
Descrizione generale Il timer HC11 è basato su un contatore free-running a 16 bit con un prescaler programmabile a 4 stati La funzione di overflow permette.
La struttura fisica e logica di un elaboratore
IL MICROCONTROLLORE ST6
Circuiti sequenziali Capitolo 5.
Università degli Studi di Trieste
Progetto di un circuito a microcontrollore per la gestione del ricetrasmettitore impiegato nel satellite Atmocube Laureando: Stefano Punis Relatore: Prof.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Tipologie di Controlli in Ambito Industriale
PLC PCD1 della SAIA-Burgess
MICROCONTROLLORI Di Tiziano Ragazzi.
Introduzione ai circuiti sequenziali
Circuiti di memorizzazione elementari: i Flip Flop
CONVERSIONE ANALOGICO-DIGITALE, A/D
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Local Trigger Control Unit prototipo
PSPICE – Circuiti sequenziali principali
Flip-flop e Registri.
Gerarchie di priorità per la gestione delle interruzioni
Macchina a stati finiti DMAC 1.I/O dalla memoria al disco in modalità Burst 2.I/O dalla memoria al disco in modalità Burst Stealing 3.I/O dal disco alla.
Introduzione ai PLC.
Il livello Microarchitetturale
Il livello analogico digitale Lezione 3_3 Memorie.
Conversione Analogico/Digitale
Come aumentare le linee di I/O?
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Convertitore A/D e circuito S/H
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
ARCHITETTURA DEL CALCOLATORE
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Cos’è una sequenza? Una sequenza è una successione finita di valori, dove ogni valore ha una durata prefissata e costante (T). I valori della sequenza.
Rete Sincrona Una rete sequenziale sincrona, è dotata di un ingresso E, di un segnale di Clock e uno di reset. Ad ogni fronte del Clock, deve essere campionato.
Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
I Flip-Flop sono dei particolari Letch, la differenza stà che nel Flip-Flop abbiamo l’impulso di clock. Infatti ad ogni impulso il Flip-Flop cambia il.
ELETTRONICA DIGITALE (II Parte)
SISTEMA DI CONTROLLO Circuito di controllo trasduttori attuatori NOTA:
Architettura del calcolatore
TC 8253 TIMER COUNTER Prof. Marco Solarino.
Introduzione al linguaggio assembly del microprocessore a parte
Unità centrale di processo
INSEGUITORE SOLARE CON ARDUINO
Architettura di una CPU
Traformazioni fra Bistabili e Registri
MULTIVIBRATORI I multivibratori sono dispositivi che forniscono in uscita tensioni a due livelli diversi qualsiasi. Possono essere positivo e negativo.
WATCHDOG TIMER E’ un oscillatore interno al  C, ma indipendente dal resto dei circuiti, il cui scopo è quello di rilevare eventuali blocchi della CPU.
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
ADC – SCHEMA GENERALE I convertitori AD sono disponibili come circuiti integrati in diversi modelli, che differiscono fra loro per prezzo, prestazioni.
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
LATCH. Circuiti Sequenziali I circuiti sequenziali sono circuiti in cui lo stato di uscita del sistema dipende non soltanto dallo stato di ingresso presente.
8253 (temporizzatore di intervalli)
OSCILLATORE E’ un circuito elettronico che genera forme d'onda senza avere un segnale di ingresso. Nel Microcontrollore gli impulsi generati dall'oscillatore.
Circuiti di memorizzazione elementari: i Flip Flop
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
DAC A RESISTORI PESATI.
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Conversione Analogico/Digitale Le grandezze fisiche che vogliamo misurare variano con continuità in un dato intervallo ed in funzione del tempo: sono descrivibili.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Flip flop sincronizzati Spesso l’eventuale cambiamento di stato di un flip-flop non si fa coincidere con l’istante in cui si modificano i valori dei bit.
Comunicazione Seriale Prof. Antonino Mazzeo Corso di Laurea Specialistica in Ingegneria Informatica.
Transcript della presentazione:

PERIFERICHE DI TIMING

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

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. Top indica il raggiungimento del massimo valore del contatore (va a 1 quando il contatore viene resettato). 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.

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.

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.

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.

Intel 8253 - 2 I bit [D7-D0] definiscono la parola di controllo con cui il processore programma l’8253. 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 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. 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.

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

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.

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.

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.

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.

Altri timers - Watchdog timer - 1 Watchdog timer: nella sua forma più semplice è un contatore. 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.

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”.

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.