1 / 41

Introduzione

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.

osmond
Download Presentation

Introduzione

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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/

  2. Funzioni implementabili con 8254 • Generazione di un ritardo • Generazione di un’onda generica • Generazione del “real time clock” • Contatore di eventi

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

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

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

  6. Modo 0 (Caso a: gate sempre alto) fronte clk che inizia il conteggio fronte clk che imposta il modo imposto il valore iniziale

  7. Modo 0 (caso b: gate abbassato ) mentre il gate è basso il conteggio è sospeso

  8. Modo 0 (caso c:conteggio reinizializzato) restart del counter quando arriverà a zero

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

  10. Modo 1 (caso a) impulsi di trigger del conteggio

  11. Modo 1 (caso b) impulsi di triggerdel conteggio, il conteggio continua poiché il trigger è giunto prima di terminare il conteggio

  12. impulsi di trigger del conteggio Modifica del valore Modo 1(caso c: modificazione del valore di inizio dopo il retrigger)

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

  14. Modo 2 (Caso a)

  15. Modo 2 (caso b)

  16. Modo 2 (caso c)

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

  18. Modo 3 (caso a)

  19. Modo 3 (caso b)

  20. Modo 3 (caso c)

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

  22. Modo 4 (caso a)

  23. Modo 4 (caso b)

  24. Modo 4 (caso c)

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

  26. Modo 5 (caso a)

  27. Modo 5 (caso b)

  28. Modo 5 (caso c)

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

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

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

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

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

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

  35. Inizializzazione di un contatore • Nel caso in cui il contatore sia stato programmato per un solo byte, l’altro byte verrà posto a zero.

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

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

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

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

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

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

More Related