410 likes | 511 Views
Introduzione. L’ 8254 è un interval timer event/counter , progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. E’ costituito da da 3 contatori indipendenti da 16 bit, che possono essere programmati dal sistema software in 6 modi di operare.
E N D
Introduzione • L’8254 è un interval timer event/counter, progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. • E’ costituito da da 3 contatori indipendenti da 16 bit, che possono essere programmati dal sistema software in 6 modi di operare. • Il data sheet completo è reperibile al • http://www.intel.com/design/periphrl/datashts/
Funzioni implementabili con 8254 • Generazione di un ritardo • Generazione di un’onda generica • Generazione del “real time clock” • Contatore di eventi
Pinout D7 Vcc D6 WR D5 RD D4 CS A0 D3 A1 D2 8254 CLK 2 D1 D0 OUT 2 CLK 0 GATE 2 CLK 1 OUT 0 GATE 0 OUT 1 GND GATE1
Modalità • I tre contatori di 16 bit dell’8254 possono essere programmati tramite la Control Word in 5 modi di operare. Diamo ora una breve rassegna di tali modalità. • Per il modo 0 e 1 verrà dettagliato il modo di interpretarne il timing, per gli altri modi si invita lo studente a derivarli analizzando il timing
Modo 0 • Il Modo 0 è usato in ogni tipologia di conteggio, ma in particolare per contare eventi. • Dopo che la Control Word è stata scritta il segnale di OUT è posto basso e rimarrà basso fino alla fine del conteggio.
Modo 0 (Caso a: gate sempre alto) fronte clk che inizia il conteggio fronte clk che imposta il modo imposto il valore iniziale
Modo 0 (caso b: gate abbassato ) mentre il gate è basso il conteggio è sospeso
Modo 0 (caso c:conteggio reinizializzato) restart del counter quando arriverà a zero
Modo 1 • Il Modo 1 è usato per generare il one_shot_pulse. • OUT è inizializzato alto. • OUT andrà basso al verificarsi di un Trigger; al termine del conteggio OUT ritornerà alto.
Modo 1 (caso a) impulsi di trigger del conteggio
Modo 1 (caso b) impulsi di triggerdel conteggio, il conteggio continua poiché il trigger è giunto prima di terminare il conteggio
impulsi di trigger del conteggio Modifica del valore Modo 1(caso c: modificazione del valore di inizio dopo il retrigger)
Modo 2 • Il modo 2 fa si che il contatore funzioni come un divisore. • Tale modo è utilizzato per generare l’interrupt per tempo reale di clock (orologio del sistema).
Modo 3 • Il modo 3 è tipicamente usato per la generazione di onde quadre. E’ simile al modo 2 eccetto per il ciclo dell’OUT. • OUT viene inizializzato alto. • Quando il conteggio del contatore è giunto alla metà del valore iniziale, OUT viene posto basso per tutta la successiva metà del conteggio.
Modo 4 • OUT è inizializzato alto • Quando il conteggio el contatore raggiunge lo zero, OUT va basso per un impulso di CLK e poi ritorna subito alto.
Modo 5 • OUT è inizializzato alto. • Il conteggio è attivato da un Trigger. • Quando il conteggio è terminato OUT va basso per la durata di un Impulso di CLK per poi tornare subito di nuovo alto.
Data Bus Buffer Counter 0 CLK 0 D7- D0 GATE 0 8 OUT 0 RD Read Write Logic Counter 1 CLK 1 WR GATE 1 A0 A1 OUT 1 CS Control Word Register Counter 2 CLK 2 GATE 2 OUT 2 Block Diagram
Bus interno CRL Control Word Register CRM Status Register CE Control Logic OLL OLM CLK n OUT n GATE n La Control Word Register non appartiene a un contatore, ma ne definisce il modo Struttura di un contatore
Bus interno CRL Control Word Register CRM Status Register CE Control Logic OLL OLM CLK n OUT n GATE n Status Register • Lo status register, quando è stato caricato, contiene: • Il contenuto corrente della Control Word Register. • Lo stato dell’ouput del Contatore. • Lo stato del Null Counter Flag.
Bus interno CRL Control Word Register CRM Status Register CE Control Logic OLL OLM CLK n OUT n GATE n CE - Down Conter • Nella figura il contatore è indicato con l’etichetta CE(Counting Element). Si tratta di un down counter presettabile sincrono di 16 bit.
Bus interno CRL Control Word Register CRM Status Register CE Control Logic OLL OLM CLK n OUT n GATE n Output Latch (OL) • OLM e OLL sono due latch di 8 bit di Output • Contengono il valore corrente del conteggio del contatore a cui appartengono.
Bus interno CRL Control Word Register CRM Status Register CE Control Logic OLL OLM CLK n OUT n GATE n Counter Register CRM e CRL (counter register) sono due registri di 8 bit. • Normalmente sono, entrambi, referenziati con una unica chiamata. • Quando un nuovo valore deve essere scritto sul contatore, il valore è caricato in CR e successivamente trasferito in CE.
Inizializzazione di un contatore • Nel caso in cui il contatore sia stato programmato per un solo byte, l’altro byte verrà posto a zero.
Control Word • Tutte le Control Word sono scritte nella Control Word Register, la quale è selezionata quando A1, A0 = 11. Nella Control Word viene specificato quale contatore sarà programmato.
SC1 SC1 SC0 SC0 RW1 RW0 M2 M1 M0 BCD D7 D6 D5 D4 D3 D2 D1 D0 0 0 Seleziona il Contatore 0 0 1 Seleziona il Contatore 1 1 0 Seleziona il Contatore 2 1 1 Read-Back Command Control Word Format SC-Select Counter Il Read Back Command attiva uno dei diversi modi per latchare, leggere i contatori...
SC1 SC0 RW1 RW1 RW0 RW0 M2 M1 M0 BCD D7 D6 D5 D4 D3 D2 D1 D0 Counter Latch Command 0 0 0 1 Read/Write solo il byte meno significativo Read/Write solo il byte più significativo 1 0 Read/Write il byte meno significativo prima, poi il byte più significativo 1 1 Control Word Format RW - Read/Write
SC1 SC0 RW1 RW0 M2 M2 M1 M1 M0 M0 BCD D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 Modo 0 0 0 1 Modo 1 X 1 0 Modo 2 X 1 1 Modo 3 1 0 0 Modo 4 1 0 1 Modo 5 Control Word Format M - Mode
SC1 SC0 RW1 RW0 M2 M1 M0 BCD D7 D6 D5 D4 D3 D2 D1 D0 0 Contatore binario a 16 bit 1 Contatore Decimale BCD (Binary Coded Decimal) a 4 decimali Control Word Format BCD BCD
Programmazione delle procedure • La programmazione delle procedure per l’8254 è molto flessibile. Solo due convenzioni devono essere ricordate: • Per ciascun contatore la Control Word deve essere scritta prima del suo valore di inizializzazione. • Il valore iniziale del contatore deve rispettare il formato specificato dalla Control Word.