El puerto serie: UART 8250. |
Parte 5: Registros del 8250 (9-12)
|
|
9) SCR (Scratchpad Register).
Este registro no es empleado
por el 8250, y de hecho no existía en las primeras versiones del
integrado. Puede ser empleado por el programador como una celdilla
de memoria.
10) IIR (Interrupt Identification Register).
Existen 4 niveles de prioridad
en las interrupciones generables por el 8250, por este orden:
1) Estado de la línea
de recepción.
2) Dato recibido disponible.
3) Registro de retención de transmisión
vacío.
4) Estado del modem.
La información que indica que hay una interrupción
pendiente y el tipo de la misma es almacenada en el IIR. El IIR indica
la interrupción de mayor prioridad pendiente. No serán reconocidas otras
interrupciones hasta que la CPU envíe la señal de reconocimiento apropiada.
En el registro IIR, el bit 0 indica si hay una interrupción pendiente
(bit 0=0) o si no la hay (bit 0=1), esto permite tratar las interrupciones
en modo polled consultando este bit. Los bits 1 y 2 indican el
tipo de interrupción. Los restantes están a 0 en el 8250, pero el 16550
utiliza alguno más.
|
|

11) IER (Interrupt Enable Register).
Este
registro de escritura se utiliza para seleccionar qué interrupciones activan
INTRPT y, por consiguiente, van a ser solicitadas a la CPU. Deshabilitar
el sistema de interrupciones inhibe el IIR y desactiva la salida INTRPT.

El 16550 genera también
una interrupción de TIMEOUT (prioridad 1) si hay datos en la cola FIFO
y no son leídos dentro del tiempo que dura la recepción de 4 bytes o si
no se reciben datos durante el tiempo que tomaría recibir 4 bytes.
12) FCR (FIFO Control Register). Sólo disponible en el 16550,
no en el 8250.

El bit 0 debe estar a 1
para escribir los bits 1 ó 2. Cuando el bit 1 ó el 2 son activados,
la cola afectada es borrada y el bit es devuelto a 0. Los registros de
desplazamiento de la transmisión y la recepción, en cada caso, no resultan
afectados.
|