Sie sind auf Seite 1von 25

Baudon-Larrea-Pedernera-Reitano-Rallo-VillegasMarset

Ingeniera en Sistemas de Informacin


Universidad Tecnolgica Nacional
Sistemas Operativos
Facultad Regional Mendoza
Ciclo Lectivo 2017

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

Los puertos serie de qu chip dependen?


Los puertos seriales dependen de un chip especial como controlador, el Universal
Asynchronous Receiver/Transmitter (UART), para funcionar correctamente. El UART toma
la salida paralela del bus del sistema de la computadora y lo transforma en forma serial, para
transmitirse a travs del puerto serie. Con la finalidad de que funcione ms rpido, la
mayora de los chip UART tienen un buffer integrado que vara de 16 bytes a 16kB de
capacidad. Este buffer permite almacenar datos que vienen del bus del sistema, mientras
procesa los datos de salida (por el puerto serie). Mientras la mayora de los puertos serie
tienen una velocidad de transferencia de 115Kbps (kilobits por segundo), los puertos seriales
de alta velocidad tales como el Enhanced Serial Port (ESP) y el Super Enhanced Serial Port
(Super ESP), pueden alcanzar velocidades de transferencia de 460Kbps.

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

Port Address Interrupt


-----------------------------
COM1 3F8 IRQ4
COM2 2F8 IRQ3
COM3 3E8 IRQ4*
COM4 2E8 IRQ3*

Registros de la UART.

offset name Function Use


--------------------------------------------------------------------------
0* DATA Data Read/Write Reg. Line I/O
1* IER Interrupt Enable Reg. Enable Tx, Rx, RxError, Modem int.
2 IID Interrupt ID Reg. ID of highest interrupt source.
3 LCR Line Control Reg. Line control parameters and Break.
4 MCR Modem Control Reg. DTR, RTS, OUT1, OUT2 and loopback.
5 LSR Line Status Reg. Tx and Rx status (PE, FE, OE)
6 MSR Modem Status Reg. CTS, DSR, RI, RLSD & changes.

0* DLL Divisor Latch LOW LSB of Baudrate divisor

2 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

1* DLH Divisor Latch HIGHMSB ...


(*) Note: Bit 7 of the LCR controls access to the DATA/IER (=0) or Divisor latches (=1)

A continuacin se listan las tablas ms utilizadas en la programacin de los puertos serie:

a. Tabla de Velocidades (BPS) bits por segundo


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

b. Tabla de Parmetros de Transmisin. Registro LCR (registro de control de lnea)


Bit Purpose

7 DLA, Divisor Latch Access Bit:


1 = Access DLL and DLH at offsets zero and one,
respectively;
0 = Access DAT and IER instead
6 Send Break -- Sends SPACE until this bit is reset again

5-3 Parity Control:


XX0 = No Parity,
001 = Odd Parity,
011 = Even Parity,
101 = Stick Parity bit TRUE,
111 = Stick Parity bit FALSE
2 Number of stop bits sent with each character:
0 = one stop bit;
1 = 1.5 stop bits if the word length is five bits,
else two stop bits for other word lengths

3 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

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

c. MCR Registro Control de Modem

Bit Signal
4 Set loopback mode (allows the UART to test itself)
3 OUT2
2 OUT1
1 RTS
0 DTR

d. IER Registro que habilita interrupciones


Bit Purpose Reason for Interrupt
0 Rx Data Ready A character is received

1 THRE There is room for another char to be sent

2 Rx status PE, FE, overrun and/or BREAK

3 Modem status Change in state of CTS, DSR, RI or DCD

4-7 0 (These bits are not used.)

e. LSR Registro de Estado de Lnea

Bit Name Purpose


--------------------------------------------------------------------
6 Tx Shift Register Empty (TSE) Indicates that a character
has been sent
5 Tx Holding Register Empty (THRE) Indicates that a character
can be written into the
Tx holding register (and
will eventually be sent)
4 Break received BREAK was received
3 Framing Error (FE) Wrong number of data bits
received
2 Parity Error (PE) Incorrect parity

4 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

1 Overrun Error (OE) Data received before RBR


was read from a previous
character (the software is
not keeping up with the
serial data)
0 Rx Data ready A character has been read
and is available to the
software in the RBR

5 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

Resolver

Ejercicio N1. Investigue para que se utilizan:

a) Los registros de la UART

Los registros de la UART se ubican en direcciones de memoria con offset 0 a 7 en


relacin con la direccin base del puerto correspondiente, por ejemplo para el puerto
COM3 la direccin base es la 3E8h. Toda la comunicacin entre el procesador y la
UARTR se controla por medio de 12 registros de 8 bits de longitud, sobre los cuales se
pueden realizar operaciones de lectura y/o escritura. La funcin de estos registros es
modificar el comportamiento de la UART. Por otra parte el bit DLAB, del registro LCR,
determina para los offset 0 y 1, cul es el registro al que se accede, y en qu modo de
operacin (lectura o escritura).

La funcin de cada registro es:

RBR: Receiver buffer register (RO): Contiene el byte recibido durante la


comunicacin, si no se usa FIFO, el ltimo byte no ledo
THR: Transmitter holding register (WO): El registro THR no se usa para
transferir los datos en forma directa, sino que la informacin almacenada en
THR se transfiere a un shift register, desde el cual se transmiten los bits uno
por uno.
IER: Interrupt enable register (R/W): En una PC las comunicaciones seriales
se llevan a cabo utilizando rutinas de atencin de interrupcin. La UART es la
encargada de generar las interrupciones cada vez que se produce un cambio
en su estado. Esta interrupcin es la que dispara la rutina de atencin de
interrupcin adecuada a cada cambo de estado. Sin embargo, la UART no
genera interrupciones a menos que se configure adecuadamente. En la Tabla
se muestran los registros para los cuales es posible controlar el cambio de
estado por medio de una interrupcin. Un 1 en el bit correspondiente indica

6 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

que cuando hay cambio de estado en ese registro se producir una


interrupcin.

IIR :Interrupt identification register (RO): El registro IIR se utiliza para


identificar cules son los cambios que se han producido. Mayor detalle queda
fuera del objetivo de este documento.
DLL and DLM: Divisor latch registers (R/W): La UART genera informacin de
timing dividiendo por 16 la frecuencia del oscilador interno, l cual es de
aproximadamente 1,8432 MHz. Debido a esto la velocidad mxima de
comunicacin posible es 115200 bps. Para cambiar o programar la velocidad
de transmisin se cambiar el valor de los divisores de los registros latch DLM y
DLL, los cuales contienen los bytes ms significativos y menos significativos
del divisor, respectivamente.
LCR: Line control register (R/W): La funcin del registro LCR es la de setear los
parmetros de comunicacin, entre los que se pueden mencionar la paridad y
la cantidad de bits a transmitir por cada smbolo. Adicionalmente, el bit DLAB
de este registro controla la accesibilidad a los registros DLL, DLM RBR, THR e
IER.
MCR: Modem control register (R/W): El registro MCR se utiliza para realizar
operaciones de handshaking (sincronizacin) con el dispositivo conectado al
puerto serie. En la tabla se muestran los bits utilizados en la UART 8250, y la
seal de handshaking sobre la que actan.

7 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

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.

b) Tabla de Velocidades (BPS) bits por segundo

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

8 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

c) Tabla de Parmetros de Transmisin. Registro LCR (registro de control de lnea)

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

7 DLA, Divisor Latch Access Bit:


1 = Access DLL and DLH at offsets zero and one,
respectively;
0 = Access DAT and IER instead
6 Send Break -- Sends SPACE until this bit is reset again

5-3 Parity Control:


XX0 = No Parity,
001 = Odd Parity,
011 = Even Parity,
101 = Stick Parity bit TRUE,
111 = Stick Parity bit FALSE
2 Number of stop bits sent with each character:
0 = one stop bit;
1 = 1.5 stop bits if the word length is five bits,
else two stop bits for other word lengths

9 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

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

d) MCR Registro Control de Mdem

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.

e) IER Registro que habilita interrupciones

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.

BIT 0 : Interrupcin por dato recibido disponible.


BIT 1 : Interrupcin por registro de transmisin disponible.
BIT 2 :Interrupcin por cambio en el estado de lnea.
BIT 3 : Interrupcin por cambio en el estado del modem.

10 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

f) LSR Registro de Estado de Lnea:

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.

Bit 0: Informa si hay dato o no en el buffer.


Bit 1: Informa sobre una sobre escritura de un dato en el buffer o RBR. Lo lee
antes de recibir el dato, por eso informa el error de sobre escritura.
Bit 2: Error de paridad
Bit 3: Cuando el nmero de bits de stock no corresponde con el esperado.

g) Tabla de Velocidades (BPS) bits por segundo

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.

Ejercicio N2. Responda las siguientes preguntas:

a) Cules son los tipos de entrada salida? Explique.

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.

11 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

E/S por asignacin de memoria


Cada controlador tiene unos cuantos registros que se utilizan para comunicarse con
la CPU. Al escribir en ellos, el sistema operativo puede hacer que el dispositivo enve
o acepte datos, se encienda o se apague, o realice cualquier otra accin. Al leer de
estos registros, el sistema operativo puede conocer el estado del dispositivo, si est
preparado o no para aceptar un nuevo comando, y sigue procediendo de esa
manera. Adems de los registros de control, muchos dispositivos tienen un bfer de
datos que el sistema operativo puede leer y escribir. Por ejemplo, una manera comn
para que las computadoras muestren pxeles en la pantalla es tener una RAM de
video, la cual es bsicamente slo un bfer de datos disponible para que los
programas o el sistema operativo escriban en l.
Entrada salida por DMA: en este mtodo la CPU se desentiende totalmente cuando
ocurre una llamada a un dispositivo, ya que, a travs del DMAC el dispositivo de E/S
puede acceder a memoria en forma directa.

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

12 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

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.

DMA: La CPU delega las operaciones de leer y escribir en disco a un controlador


independiente que maneja esas operaciones. Una transferencia DMA consiste
principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la
CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un
ejemplo tpico es mover un bloque de memoria desde una memoria externa a una interna
ms rpida. Tal operacin no ocupa al procesador y, por ende, ste puede efectuar otras
tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones
que requieran muchos recursos.

Ejercicio N3. En las siguientes afirmaciones tenga en cuenta que solo una opcin es la
correcta:

3.1. Un sistema operativo independiente de dispositivo:


a) Indica que el sistema operativo est liberado de realizar la gestin de E/S.
b) La gestin de E/S no es capaz de distinguir entre los diferentes perifricos.
c) Designa de manera uniforme a cada uno de los dispositivos, por ejemplo, en Unix se
referencian como archivos.
d) No utiliza manejadores de dispositivo, slo de interrupciones.

3.2. El mapa de bits para mantener el espacio libre en el disco ocupar:


a) Tantos bits como bloques tenga el disco.

13 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

b) Tantos bits como bloques libres tenga el disco.


c) Tantos bits como bloques tenga el disco multiplicado por el nmero de registros que
tenga cada bloque.
d) El mapa de bits slo se usa para la gestin de la memoria principal.

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.

3.5. La entrada especial a un directorio "." (punto) representa:


a) Una entrada para el propio directorio.
b) Una entrada para el directorio "padre".
c) Una entrada para el directorio raz.
d) No es ninguna entrada.

3.6. El controlador de E/S y la memoria intercambian datos directamente, sin la


intervencin de la CPU, cuando se tiene:
a) E/S controlada por programa.
b) E/S por interrupciones.
c) DMA.
d) Ninguna de las anteriores.

14 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

3.7. En el mtodo de asignacin contigua del espacio de disco:


a) Slo es necesario la direccin del primer bloque y la longitud del archivo.
b) Unos pocos bytes del comienzo de los bloques se usan como puntero al siguiente
bloque, el resto contiene datos.
c) Es necesario colocar los ndices a los bloques de los archivos en una tabla de
ndices.
d) No existe tal mtodo de asignacin

3.8. El tiempo de bsqueda corresponde a:


a) El tiempo que tarda el algoritmo de sustitucin en seleccionar una pgina
cuando se
produce un fallo de pgina.
b) El tiempo que se tarda en la transferir los datos en un disco.
c) El tiempo medio que tarda el sector en estar debajo de la cabeza de
lectura/escritura
del disco.
d) El tiempo necesario para que las cabezas del disco se desplacen al cilindro
adecuado.
3.9. En Linux el planificador de entrada salida:
a) Agrupa las peticiones de E/S
b) Reordena las peticiones de lectura/ escritura para los dispositivos de bloques
c) Maneja los drivers
d) Administra el pdflush

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

15 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

posibles, la que utiliza Linux es integrar los dispositivos en el sistema de archivos,


como lo que se conoce por archivos especiales. A cada dispositivo de E/S se le asigna
un nombre de ruta, por lo general en /dev.

Se pueden utilizar de la misma forma que cualquier otro archivo. No se requieren


comandos o llamadas al sistema especiales. Basta con utilizar las llamadas al sistema
usuales como open, read y write.

Los archivos especiales se dividen en dos categoras: de bloques y de caracteres


(utilizados por lo comn para dispositivos que reciben o envan un flujo de
caracteres).

Por bloques: Consiste en una secuencia de bloques enumerados, se puede


direccionar y utilizar cada bloque por separado.

De caracteres: se utilizan por lo comn para dispositivos que reciben o envan un


flujo de caracteres. Los teclados, las impresoras, redes, ratones, plotters y la mayora
de los otros dispositivos de E/S que aceptan o producen datos para las personas,
utilizan archivos especiales de caracteres.

2) Cmo se implementa la entrada/salida en Linux?

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.

3) Calcular el tiempo medio de lectura o escritura de un sector de 1024 bytes en un


disco duro que gira a 3.600 r.p.m. suponiendo que:

El tiempo medio de posicionado es de 12 ms.


La v elocidad de transferencia es de 10 MB/sg.

16 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

La sobrecarga debida al controlador es de 2 ms.


No e xiste tiempo de espera porque el disco est desocupado

Para obtener el tiempo medio de lectura/escritura se suman los siguientes valores:


Tiempo medio de posicionado: 12ms.
Retardo medio de rotacin: 0,5/3600 rpm = 0,5/3600rpm/60s/1min = 0,008359 s =
8,3 ms.
Tiempo de transferencia: 1KB / 10MB/s = 0.0001s = 0.1ms.
Tiempo de sobrecarga del controlador = 2ms.
Tiempo L/E = Tiempo de posicionamiento + Retardo medio de rotacin + Tiempo de
transferencia + Tiempo de sobrecarga= 12ms + 8.3 ms + 0,1 ms + 2 ms = 22.4 ms

4) Defina Puerto serie. Listelos. Coloque algunas imgenes.

Es una interfaz de comunicacin entre ordenadores y perifricos en donde la


informacin es transmitida bit a bit, enviando solo un bit a la vez, a comparacin de puerto
paralelo que se enva varios bits a la vez.

UART's sin buffer:

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.

UART's con buffer:

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.

5) En qu intervalo se encuentran los puertos?

Entre la posicin 100h y la 3FFh.

6) Qu hacen las instrucciones IN y OUT?

17 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

IN: carga desde un puerto origen un byte en AL o un Word AX.

OUT: escribe el contenido de AL o AX en el puerto destino (direccionamiento


inmediato o DX).

7) Con que INT se direccionan los puertos series?

Hay dos maneras de direccionar el puerto serie, a travs de la interrupcin 14H de la


BIOS y a travs de la interrupcin 21H del DOS.

8) Las siguientes lneas de cdigo son para programar el puerto serie para enviar texto
escrito por teclado.

a) Ensamble el cdigo. Y Comente adecuadamente el programa.

b) El Programa entra en un ciclo infinito, Por qu se produce este ciclo?


Interprete la utilizacin de registros de los puertos.

Se produce ya que en el MAIN se setea a 1 el bit 7, por lo tanto no se puede acceder


al registro IER que nos permitir habilitar las interrupciones generadas por la UART.
Al no poder recibir interrupciones de la UARC no habra nada disponible en el buffer.

18 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

c) Por qu se utiliza .Model Tiny

El modelo de programa va a ser distinto porque es distinto el modelo de memoria


para direccionar. El Tiny es el ms usado, ya que utiliza el modo de direccionamiento
ms rpido, pero a la vez ms limitado. Esto se debe a que el segmento de cdigo y el
de datos se ven unificados en un solo segmento, donde tienen la misma direccin
fsica y el mismo tamao compartido. Es por eso que el tamao del programa
completo no puede ocupar ms de 64K.

.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

19 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

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

20 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

9) El siguiente programa manda y recibe caracteres va serial, manipula directamente


el uart (no usa interrupciones) y usa mtodo polling.

a) Ensamble y corrija el error.

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

CODIGO SEGMENT 'CODE'


ORG 100h
ASSUME CS:CODIGO,DS:CODIGO,ES:CODIGO,SS:CODIGO
;
START: JMP INICIO
CADENA DB 'BIENVENIDO AL CHAT SERIAL$',0AH,0DH,24
;
;Inicializa el puerto serie
INICIO: MOV AL,0
MOV DX,03F9H
OUT DX,AL ;Turn off interrupts - Port1. COM1+1
;
;PORT 1 - Communication Settings
MOV AL,80H
MOV DX,03FBH
OUT DX,AL ;SET DLAB ON. COM1+3
MOV AL,0CH ;Divisor para 9600 BPS
MOV DX,03F8H
OUT DX,AL ;COM1

;Default 0x03 = 38,400 BPS */


;01 = 115,200 BPS */
;02 = 56,700 BPS */
;06 = 19,200 BPS */
;0CH = 9,600 BPS */
;18H = 4,800 BPS */
;30H = 2,400 BPS */

MOV AL,0

21 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

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

CALL PUTC ;y lo imprimo en pantalla


mandar: MOV AH,01
INT 16H
JZ otra ;Si no se pulsa tecla, salta a otra
MOV AH,00
INT 16H ;Si se puls tecla la guarda en AL
CMP AL,1BH ;Si se puls ESC
JE FIN

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

22 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

PUSH AX
PUSH DX
LEA DX,CADENA
MOV AH,09
INT 21H
POP DX
POP AX
RET
WRITE2 ENDP
CODIGO ENDS
END START

10) Explique en detalle la INT 14 y sus servicios.

En lenguaje ensamblador, se puede acudir a la interrupcin 14H para


configurar, leer, escribir o simplemente para conocer el estado del puerto;
cada una de estas cuatro opciones es un servicio de la interrupcin, y se
seleccionan a travs del registro AH. La figura 1 muestra los valores que debe
contener el registro AH para invocar cada uno de los servicios. En todos los
casos, el registro DX debe contener el nmero del puerto serie; el primero de
ellos, COM1 se especifica como 00h.

Servicios:

00h Inicializar puerto serie


01h Enviar un dato
02h Recibir un dato
03h Obtener estado del puerto

Para inicializar el puerto serie, bastar con utilizar el servicio 00 de la


interrupcin, colocando en el registro AL los valores equivalentes a los
parmetros. Para enviar un dato por el puerto serial, bastar con colocar en el
registro AH el valor 01 correspondiente a este servicio y en el registro AL el
dato a ser enviado, invocando de nuevo la interrupcin 14H. La lectura de un
dato que ha llegado al puerto se logra con el servicio 02, el cual devuelve en el
registro AL el dato. La lectura del estado del puerto se consigue a travs del
servicio 03 de esta misma interrupcin, y retorna en el registro AX el estado
del puerto.

23 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

Ejercicios Propuestos

1) Se desea controlar con un i8086 un sistema de control de 2.000 sensores, tipo


abierto-cerrado, de una fbrica de motores para lavadora. Si cada sensor tiene asociado un
biestable cuya informacin es la que se desea leer.

Se pide:

Disear la estructura de E / S del sistema, tanto el mapa de E / S como las posibles


conexiones. Emplee para ello los elementos que crea necesarios.

2) Se tiene un sistema computador con las caractersticas siguientes:

Una CPU que ejecuta 300 millones de instrucciones por segundo.

Un bus de memoria con una velocidad de transferencia de 100 MB/sg.

Controladores SCSI-2 con velocidad de transferencia de 20 Mb/sg que permiten la


conexin de hasta siete discos

Unidades de disco con ancho de banda de lectura/escritura de 5 Mb/sg.

Suponiendo que:

La carga de trabajo consiste en lecturas de bloques de 64Kb y que un programa de usuario


necesita 100.000 instrucciones por cada operacin de E/S.

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)

Determinar para la CPU y el Bus la mxima velocidad de entrada salida

3) Identifique las direcciones de los grupos de puertos.

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.

5) El siguiente cdigo Inicializar Puerto. Este procedimiento intenta inicializar el puerto de


comunicaciones para permitir su uso posterior. El puerto es configurado para que
transmita y reciba a 9600 baudio, 8 bits de datos, sin paridad y un bit de stop (9600,8,N,1).

24 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi
Trabajo Prctico N 4
Entrada / Salida
Rev. 30_07_17

a) Ensamble y corrija el error.

b) Interprete el cdigo.

INI_PUERTO PROC NEAR USES AX DX

MOV AL,83H ; (REG LCR)

MOV DX,COM1+3 ; DLAB = 1 -> ACCESO A REGISTRO DE VELOCIDAD

OUT DX,AL ; WLS1,WLS0 = 11 -> 8 BITS DE DATOS

; BIT 5-3 = 000 -> SIN PARIDAD

; STB = 0 -> UN BIT DE STOP

MOV AL,12 ; (REG DLL)

MOV DX,COM1 ; DLL = 12 -> 9600 BITS POR SEGUNDO

OUT DX,AL

XOR AL,AL ; PONER A CERO AL

MOV DX,COM1+1 ; (REG DLM)

OUT DX,AL ; DLM = 0 -> 9600 BIT POR SEGUNDO

MOV AL,3 ; (REG LCR)

MOV DX,COM1+3 ; DLAB = 0 -> ACCESO A BUFFER DE COMUNIC

OUT DX,AL ; WLS1,WLS0 = 11 -> 8 BITS DE DATOS

; BIT 5-3 = 000 -> SIN PARIDAD

; STB = 0 -> UN BIT DE STOP

RET

INI_PUERTO ENDP

6) Escriba cdigo para leer del puerto y escribir en l.

25 Ing. Daniel Marquez - Ing. Sergio Faccio


Ing Italo A. Ortiz Esp. Ing. Carolina V. Pennisi

Das könnte Ihnen auch gefallen