Temporizador 8253 U 8254

Temporizador 8253 U 8254
Información sobre la plantilla
Temporizador 8253.jpg
Concepto:chip temporizador que puede ser empleado como reloj de tiempo real

Temporizador 8253/8254, es un chip temporizador que puede ser empleado como reloj de tiempo real, contador de sucesos, generador de ritmo programable, generador de onda cuadrada.

Descripción del Integrado

Circuito Integrado

Este circuito integrado posee 3 contadores totalmente independientes, que pueden ser programados de 6 formas diferentes.

  • D7..D0: BUS de datos bidireccional de 3 estados.
  • CLK 0: CLOCK 0, entrada de reloj al contador 0.
  • OUT 0: Salida del contador 0.
  • GATE 0: Puerta de entrada al contador 0.
  • CLK 1: CLOCK 1, entrada de reloj al contador 1.
  • OUT 1: Salida del contador 1.
  • GATE 1: Puerta de entrada al contador 1.
  • CLK 2: CLOCK 2, entrada de reloj al contador 2.
  • OUT 2: Salida del contador 2.
  • GATE 2: Puerta de entrada al contador 2.
  • A0..A1: Líneas de dirección para seleccionar uno de los tres contadores o el registro de la palabra de control.
  • CS: Habilita la comunicación con la CPU.
  • WR: Permite al 8254 aceptar datos de la CPU.
  • RD: Permite al 8254 enviar datos a la CPU.

Descripción Funcional

Diagrama de los bloques internos de un contador:

El buffer del bus de datos, de 8 bits y tres estados, comunica el 8254 con la CPU. La lógica de lectura y escritura acepta entradas del bus y genera señales de control para las partes funcionales del 8254. Las líneas A0..A2 seleccionan uno de los tres contadores o el registro de la palabra de control, para poder leerlos o escribirlos. El registro de la palabra de control es seleccionado cuando A0=A1=1.. Los contadores 1, 2 y 3 son idénticos en su funcionamiento, por lo que sólo se describirá uno; son totalmente independientes y cada uno de ellos puede ser programado en una modalidad diferente. El registro de estado, cuando es transferido al correspondiente latch, contiene el valor en curso del registro de la palabra de control y alguna información adicional. El contador propiamente dicho está representado en la figura por CE (Counting Element) y es un contador descendente síncrono de 16 bits que puede ser inicializado. OLM y OLL son dos latch de 8 bits (OL significa Output Latch; los subíndices M y L están relacionados con el más y el menos significativo byte, respectivamente); ambos son referenciados normalmente como un conjunto denominado OL a secas. Estos latches siguen normalmente la cuenta descendente de CE, pero la CPU puede enviar un comando para congelarlos y poder leerlos; tras la lectura continuarán siguiendo a CE. La lógica de control del contador se encarga de que un sólo latch esté activo a un tiempo, ya que el bus interno del 8254 es de 8 bits. CE no puede ser nunca leído directamente (lo que se lee es OL). De manera análoga, existen un par de registros CRM y CRL (CR significa Count Register) que almacenan la cuenta del contador y se la transmiten convenientemente a CE. Los valores de cuenta se escriben siempre sobre CR (y no directamente sobre CE). La lógica de control gestiona la conexión con el exterior a través de las líneas CLK, GATE y OUT.

Descripción Operacional

Tras el encendido del ordenador, el 8254 está en un estado indefinido; con un modo, valor de cuenta y estado de salida aleatorios. Es entonces cuando hay que programar los contadores que se vayan a emplear; el resto, no importa dejarlos de cualquier manera.

Programación del 8254.

Para programar un contador del 8254 hay que enviar primero una palabra de control y, después, un valor de cuenta inicial. Los contadores se seleccionan con las líneas A0 y A1; el valor A0=A1=1 selecciona la escritura de la palabra de control (en la que se identifica el contador implicado). Por tanto, el 8254 ocupa normalmente 4 direcciones de E/S consecutivas ligadas a los contadores 0, 1, 2 y al registro de la palabra de control. Para enviar la cuenta inicial se utiliza simplemente el puerto E/S ligado al contador que se trate. El formato de la palabra de control es:

Formato de la palabra de control

Operaciones de escritura.

El 8254 es muy flexible a la hora de ser programado por lo que se debe tener en cuenta dos cosas:

  • Primero: escribir siempre la palabra de control, antes de enviar la cuenta inicial al contador.
  • Segundo: dicha cuenta inicial debe seguir exactamente el formato seleccionado en la palabra de control (enviar sólo byte bajo, enviar sólo byte alto, o bien enviar ambos consecutivamente).

Teniendo en cuenta que cada contador tiene su propio puerto y que la palabra de control indica el contador al que está asociada, no hay que seguir un orden especial a la hora de programar los contadores. Esto significa que, por ejemplo, se puede enviar la palabra de control de cada contador seguida de su cuenta inicial, o bien enviar todas las palabras de control para los 3 contadores y después las 3 cuentas iniciales; también es válida cualquier combinación intermedia de estas secuencias (por ejemplo: enviar la palabra de control para el contador 0, después la palabra de control para el contador 1, después la parte baja de la cuenta para el contador 0, luego la parte baja de la cuenta para el contador 1, la parte alta de la cuenta para el contador 0).

Operaciones de lectura.

Existen tres posibles métodos para leer el valor de un contador en el 8254.

  • El primero es: el comando Read-Back, sólo disponible en el 8254 (y no en el 8253) * El segundo: consiste en leer simplemente el contador accediendo a su puerto correspondiente: este método requiere inhibir la entrada CLK al contador (por ejemplo, a través de la línea GATE o utilizando circuitería exterior de apoyo) con objeto de evitar leer la cuenta en medio de un proceso de actualización de la misma, lo que daría un resultado incorrecto.
  • El tercer método consiste en el comando de enclavamiento.

Véase también

Fuentes

  • CD, Carrera de Informática. MINED. Materiales Bibliográficos para los ISP, Versión 4 y 5