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.

© 2007
Todos los derechos reservados