Beruflich Dokumente
Kultur Dokumente
TRABAJO PRCTICO N 4
Entrada /Salida
Objetivo General
Analizar y conocer las caractersticas de los dispositivos de entrada/ salida.
Objetivos particulares
Conocer la estructura y el software de un sistema de entrada/salida.
Conocer los mtodos de entrada/ salida.
1 Rev. 30_07_17
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17
INTRODUCCIN
El UART 8250
La unidad que realiza la transmisin en serie de la informacin desde la computadora y que
convierte a bytes la serie de bits que llegan a ella recibe el nombre de UART (sigla que
resume la descripcin en ingls que significa: Receptor Transmisor Asincrnico Universal). El
chip original se nombr como 8250 actualmente la unidad en uso es el 16450 o el 16550, las
diferencias son mnimas de manera que usaremos las tablas descriptivas del 8250.
Puertos Disponibles
Registros de la UART.
1,0 word length (bits per character, not including start bit, stop bits
and parity bit, if any):
11 = eight,
10 = seven,
01 = six
00 = five bits per character
Bit Signal
4 Set loopback mode (allows the UART to test itself)
3 OUT2
2 OUT1
1 RTS
0 DTR
Resolver
LSR: Line status register (RO): los bits del registro LSR indican el estado de la
comunicacin de datos. Los errores en la misma y el estado de los buffers de
transmisin y recepcin pueden determinarse inspeccionando el contenido
de este registro.
MSR: Modem status register (RO): informa sobre el estado de las 4 lneas de
control de modem. Los 4 bits ms significativos indican el estado actual de
estas lneas de control, en tanto que los 4 bits menos significativos indican si
ha cambiado el estado de las lneas de control. Cada vez que el registro es
ledo se resetean los 4 bits menos significativos.
Speed (BPS) Divisor (Dec) Divisor Latch High Byte Divisor Latch Low Byte
50 2304 09h 00h
300 384 01h 80h
600 192 00h C0h
1200 96 00h 60h
2400 48 00h 30h
4800 24 00h 18h
9600 12 00h 0Ch
19200 6 00h 06h
38400 3 00h 03h
57600 2 00h 02h
115200 1 00h 01h
LCR: es el registro encargado de controlar el formato del caracter de datos. Permite indicar:
WLS1, WLS0: el tamao del dato empleado
STB: el nmero de bits de stop
PEN: habilitar o no la generacin del bit de paridad
EPS (Even Parity Select): selecciona paridad par si est a 1 (o impar en caso
contrario)
Stick Parity: permite forzar el bit de paridad a un estado conocido segn el valor de
EPS
Break Control: es puesto a 1, la salida SOUT se pone en estado espacio (a 0), slo
afecta a SOUT y no a la lgica de transmisin.
DLAB (Divisor Latch Access Bit): bit que puesto a 1 permite acceder a los Latches
divisores DLL y DLM del BRG en lectura y escritura. Para acceder al RBR, THR y al IER
debe ser puesto a 0.
Bit Purpose
1,0 word length (bits per character, not including start bit, stop bits
and parity bit, if any):
11 = eight,
10 = seven,
01 = six
00 = five bits per character
Permite controlar la interfaz con un modem o un dispositivo que emule un modem, las lneas
de salidas (DTR, RTS, OUT1, OUT2) se controlan de forma directa por los bits de este registro.
Posibilita la auto diagnosticacin del circuito.
Permite no solo habilitar e inhabilitar las interrupciones sino que conocer el estado, si hubo
error o no. Se utiliza comnmente como escritura y se indica en los 4 bits de menor peso
cuales van a ser los eventos que disparan una interrupcin.
A travs de los distintos bits del registro permite conocer el estado del proceso de
entrada/salida que se est llevando a cabo; si se puede escribir, leer; si hubo error;
etc. Informa al procesador el estado de la comunicacin.
Esta tabla es til para cuando se programar una transferencia de datos entre el CPU
y un puerto serie, ya que es importante saber la velocidad del proceso. Sirve para
indicar cmo se van a transmitir los datos.
Entrada salida programada: Tambin llamada espera ocupada, el CPU espera a que
el dispositivo finalice su tarea, por esta razn el mismo se encuentra ocupado.
Entrada salida por interrupciones: para poder realizar este tipo de entrada salida se
debe contar con un controlador de interrupciones (PIC), el cual se encarga de
comunicar y administrar las interrupciones generadas por los distintos dispositivos.
Las interrupciones son generadas al finalizar una tarea asignada por el CPU a un
dispositivo. Con esto se soluciona el problema de que la CPU est ociosa esperando a
que el dispositivo finalice.
b) Cules son las instrucciones especiales que permiten acceder al espacio de e/s
propio? Explique.
Mediante el uso de una instruccin especial de E/S tal como IN REG,PUERTO la CPU puede
leer el registro de control PUERTO y almacenar el resultado en el registro de la CPU llamado
REG.
De manera similar, mediante el uso de OUT PUERTO, REG la CPU puede escribir el contenido
de REG en un registro de control. La mayora de las primeras computadoras, incluyendo a
casi todas las mainframes.
c) Explique los tres mtodos para realizar e/s: polling, interrupciones, dma.
Polling: Es un mtodo en el que la CPU controla peridicamente los puertos E/S para
chequear si alguno quiere realizar una operacin. Por lo tanto la CPU hace una encuesta
peridica de todos los puertos (va puerto por puerto chequeando si alguno requiere
atencin). Este mtodo no es muy efectivo ya que los dispositivos no son atendidos hasta
que la CPU haga la encuesta.
Interrupciones: Este mtodo consiste en que el dispositivo enva una seal de interrupcin a
la CPU. Una vez que la CPU termina de ejecutar la instruccin actual, interrumpe la ejecucin
del proceso actual y luego lee del buffer del controlador una referencia a la tabla de
interrupciones. En ella se encuentra el vector con la direccin de la primera instruccin de la
rutina de servicio al dispositivo, una vez que se termine de ejecutar se retorna a la ejecucin
del proceso anterior. De esta forma se logra atender a los dispositivos mucho ms rpido.
Ejercicio N3. En las siguientes afirmaciones tenga en cuenta que solo una opcin es la
correcta:
3.3. Para la gestin del espacio libre en disco se utiliza el siguiente mtodo:
a) Se gestiona mediante llamadas al sistema operativo.
b) La regla del cincuenta por ciento.
c) El mapa de bits.
d) El mapa de words.
3.4. El tiempo que tarda el cabezal del disco en situarse sobre la pista solicitada es el:
a) Tiempo de posicionamiento.
b) Tiempo de latencia.
c) Tiempo de transferencia.
d) La suma de los tiempos anteriores.
1) Qu se puede decir de los archivos especiales en linux? Cules son las categoras?
Al igual que todas las computadoras, las que ejecutan Linux tienen dispositivos de E/S
como discos, impresoras y redes conectados a ellas. Se requiere alguna forma de
permitir que los programas accedan a esos dispositivos. Aunque hay varias soluciones
Se implementa mediante una coleccin de drivers de dispositivos, uno por cada tipo
de dispositivo. La funcin de los drivers es aislar el resto del sistema de las
idiosincrasias del hardware. Al proveer interfaces estndar entre los drivers y el resto
del sistema operativo, la mayor parte del sistema de E/S de puede colocar en la parte
del kernel independiente de la mquina.
Los UARTs sin buffer fueron diseados cuando los mdem ms rpidos transmitan a 1200 bps. No
tienen buffer de carcter extra en el UART, por lo que dependen del procesador para borrar cada
carcter enviado por el mdem antes de que el siguiente carcter sea enviado.
Los UARTs sin buffer comprenden las series 8250, el 16450 y el original 16550.
Los UARTs con buffer han sido diseados como apoyo a los mdem rpidos de la actualidad. El UART
original con buffer es el 16550A, que puede acumular 16 caracteres en un buffer antes de que el
procesador lea el dato. Esto hace que el software del PC tenga una mayor facilidad para comunicarse
con el mdem, crendose menos errores y una mayor velocidad de transmisin.
8) Las siguientes lneas de cdigo son para programar el puerto serie para enviar texto
escrito por teclado.
.MODEL TINY
.CODE
org 100
; Procedimiento principal:
; -----------------------------------
MAIN PROC NEAR
.STARTUP
MOV DX, 3FBH ;direccin LCR
MOV AL, 80H ; poner uno en el bit 7 del LCR
OUT DX, AL
MOV DX, 3F8H ; DIVISOR LATCH
MOV AL, 60H ;programamos a 1200 baudios
OUT DX,AL
MOV DX,3F9H ;divisor latch
MOV AL,00H
OUT DX,AL
MOV DX,3FBH ; LCR
MOV AL,0AH ;programo 7 bits de datos, 1 de parada y paridad
impar
OUT DX,AL
MOV DX,3FCH ; direccin MCR
MOV AL,13H ;Habilita terminales Ready To Send y Data
Terminal Ready
OUT DX,AL ;y loopback
MOV DX,3F9H ;habilita IER
MOV AL,00H
OUT DX,AL
POR SIEMPRE:
MOV DX,3FDH ;registro de estado de lnea LSR
IN AL,DX
TEST AL,1EH ;verificamos si hay error
JNZ ERROR
TEST AL,01H
JNZ RECIBIR
TEST AL,20H ;el registro est vaco
JZ PORSIEMPRE
MOV AH,1
INT 16H ;verifica si hay caracteres en el buffer de teclado
JZ PORSIEMPRE
MOV AH,0
INT 16H ;lee carcter desde teclado y lo almacena en el buffer
CMP AH,01 ; es escape salimos
JZ FIN
MOV DX,3F8H ;carcter enviado al registro data
OUT DX,AL
JMP PORSIEMPRE
RECIBIR: MOV DX, 3F8H
IN AL,DX
AND AL,7FH ;recibimos 7 bits
PUSH AX
MOV BX,0
MOV AH,0EH
INT 10H ;escribe el carcter almacenado en AL
POP AX
CMP AL,0DH
JNZ PORSIEMPRE
MOV AL,0AH
MOV BX,00
MOV AH,0EH
INT 10H ;escribe una nueva lnea
JMP PORSIEMPRE
ERROR: MOV DX,3F8H
IN AL,DX
MOV AL,0A8H
MOV BX,0
MOV AH,0EH
INT 10H ;escribe
JMP PORSIEMPRE
FIN: .EXIT
MAIN ENDP
END
El error es que el JZ que est luego del test, debera ser JNZ, ya que si hay algo en el
buffer de teclado no debera saltar, y debera imprimirlo en pantalla. Adems, la
cadena de Bienvenido al chat serial debe finalizarse con $.
b) interprete el cdigo
MOV AL,0
MOV DX,03F9H
OUT DX,AL ;Set Baud rate - Divisor Latch High Byte. COM1+1
MOV AL,03
MOV DX,03FBH
OUT DX,AL ;8 Bits, No Parity, 1 Stop Bit. COM1+3
MOV AL,0C7H
MOV DX,03FAH
OUT DX,AL ;FIFO Control Register. COM1+2
MOV AL,0BH
MOV DX,03FCH
OUT DX,AL ;Turn on DTR, RTS, and OUT2. COM1+4
;
CALL WRITE2
otra: MOV DX,03FDH ;COM1+5
IN AL,DX ;Check to see if char has been received.
TEST AL,1
JNZ mandar
MOV DX,03F8H
IN AL,DX ;Si se recibi carcter, lo tomo en AL
MOV DX,03F8H
OUT DX,AL
JMP OTRA
FIN: MOV AH,4CH
INT 21H
;
PUTC PROC
PUSH AX
MOV AH, 0Eh
INT 10h
POP AX
RET
PUTC ENDP
;
WRITE2 PROC
PUSH AX
PUSH DX
LEA DX,CADENA
MOV AH,09
INT 21H
POP DX
POP AX
RET
WRITE2 ENDP
CODIGO ENDS
END START
Servicios:
Ejercicios Propuestos
Se pide:
Suponiendo que:
Que cada operacin de E/S emplea una media de 50.000 instrucciones de sistema
operativo.
Y que las lecturas siempre se pueden realizar en un disco inactivo, si es que existe (es decir,
se deben ignorar los conflictos en los discos)
4) Realizar un programa en ensamblador que produzca sonido desde la bocina, para llamar la
atencin del usuario. Tenga en cuenta que esto depender del hardware del que se
dispone.
b) Interprete el cdigo.
OUT DX,AL
RET
INI_PUERTO ENDP