Periféricos de ordenador

Estructura Hardware. Puertos. Protocolos. Interfaces. Interrupciones. Registros. Transmisión serie y paralelo

  • Enviado por: Brujeria & Lulu
  • Idioma: castellano
  • País: España España
  • 12 páginas
publicidad

RESUMEN 2º PARCIAL DE PERIFERICOS DE ORDENADOR).

COPYRIGHT DE RESUMEN.. MAYO DE 1998.

I - ESTRUCTURA HARDWARE DE UNA INTERFACE DE E/S GENERALIZADA.

PUERTO: Registro que ocupa una posición del mapa de memoria.

  • PUERTO DE ENTRADA.

Contenido escrito desde el exterior y el microprocesador recoge el dato mediante una operación de lectura similar a la de una posición de memoria.

  • PUERTO DE SALIDA.

El microprocesador escribe en él. Similar a mapas de memoria RAM. Contenido es accesible desde el exterior a través de conexiones Hardware.

Interface Dividido ----------- Zona en comunicación directa con el sistema microprocesador.

----------- “” “” “” con el periférico.

RDS, RDE, RCD, RDS.

  • RDS => (REGISTROS DE DATOS DE SALIDA): Tantos bits como la palabra que maneja el

microprocesador. Es un puerto de sálida sobre el que la CPU escribirá el dato que envía al periférico.

  • RDE => (REGISTRO DE DATOS DE ENTRADA): Puerto de Entrada, el periférico depositará

el dato que quiere transmitir a la CPU. Lo recogerá por una operación de lectura efectuada por la CPU en el momento conveniente.

  • RCD => (REGISTRO DE COMANDOS DEL DISPOSITIVOS): Registro cuyo nº de bits

Puede ser muy variable con objeto de coordinar la comunicación.

  • RSD => (REGISTRO DE STATUS DEL DISPOSITIVO): Registro leído por la CPU para

recabar información sobre el Status en que se encuentra bien la Interface, o bien el periférico a ella conectado, su longitud variable dependiendo del tipo de periférico.

II - PROTOCOLO.

Comandos y Status => Establecimiento del Protocolo.

III - DIRECCIONAMIENTO DEL INTERFACE.

  • A cada dispositivo => Una única dirección; y el micro cuenta con 4 instrucciones diferentes:

    • Instrucción A para leer datos de la RDE.

    • “” B para escribir datos en la RDS.

    • “” C para leer la RSD.

    • “ “ D para escribir en la RCD.

  • Usando 2 direcciones => -- Registros relacionados con datos ( RDE y RDS)

  • -- RCD y RSD.

    Hay 2 instrucciones: - Leer y Escribir.

  • Usar 4 direcciones, una para cada registro. Hay dos instrucciones: - Leer y escribir.

  • Las 2 alternativas usadas por los micros para el tratamiento de E/S:

    • E/S conectada en el mapa de memoria.

    • E/S separadas de memoria. Usan un bus separado para direccionar dispositivos de E/S:

    * Instrucción Leer Memoria.

    * “” Escribir Memoria.

    * “” Leer en E/S.

    * “” Escribir en E/S.

    IV - METODOS DE E/S:

    • Por Programa.

    • Por Interrupciones.

    • Por DMA.

    Lo que las diferencia es la toma de iniciativa al realizar la transferencia:

    • Por Programa => Iniciativa del Microprocesador. Síncronas a la ejecución del programa.

    • Por Interrupción => Iniciativa del periférico o dispositivo exterior. Asíncronas a la ejecución del programa.

    Factores a tener en cuenta al seleccionar uno de los dos:

    • Tiempo disponible de la CPU.

    • Urgencia para tratar las peticiones de atención.

    • La velocidad de transferencia de datos.

    V - E/S CONTROLADA POR PROGRAMA.

    El programa toma la iniciativa de la realización de una E/S. El programador a previsto los momentos en que se puede llevar a cabo. Realización inmediata.

    Requiere una adecuada secuencia de instrucción:

  • Envio de un comando a la interface del periférico y el programa escribirá en el registro de comando de la interface el valor adecuado.

  • Lectura de Status.

  • Realización de la transferencia.

  • Inconvenientes:

    • Pérdida de Tiempo: Preguntando al periférico si desea realizar la operación. Esta situación es más grave si son muchos los posibles periféricos a consultar.

    • Lentitud: Si un periférico requiere atención urgente deberá esperar a que el programa llegue a la secuencia de instrucción necesaria para atenderle.

    VI - E/S CONTROLADAS POR INTERRUPCION.

    Conexión directa entre CPU y periférico, y éste avisa cuando requiere atención. Se trata de una conexión hardware. Todas las pastillas de CPU disponen de una o varias entradas de petición de interrupción.

    Cuando se detecta, la CPU desencadena lo siguiente:

  • Finaliza la ejecución de la instrucción que en ese momento estaba ejecutando.

  • Almacena en la pila el valor del PC (Contador del programa) que tenía en ese momento. También el contenido de Status para poder reanudar la taréa en el mismo punto.

  • Coloca en el Pc un valor previsto de antemano, que es el valor de la posición de comienzo de la rutina de atención a la interrupción.

  • Ejecuta la rutina hasta que se encuentra un RETI.

  • Recupera de la pila los valores del Pc y Status.

  • Rutina de Atención a la Interrupción: Se atiende cuando se activa la petición de { interrupción. Asíncrona.

    Subrutina: Se atiende solo en momentos previstos por el programador. Síncrona.

    • ORIGEN DE LAS INTERRUPCIONES.

    • Externas: Se activa desde el exterior un terminal de la CPU.

    • Internas: Cuando hay alguna situación problemática interna de la CPU.

    • Simuladas(Interrupciones Soft): Síncronas. Pueden simular interrupciones externas hasta simplemente sustituir la llamada a subrutinas.

    • INTERRUPCIONES MULTIPLES.

    • Externas mediante conexiones hardware.

  • Si el microprocesador tiene varias entradas de interrupción. Cada periférico puede conectarse a un terminal diferente y el microprocesador reconoce a través del cual le han pedido la interrupción. Nº de entradas de interrupción limitado.

  • Cuando el nº de periféricos es superior al de entradas disponibles se recurren las peticiones de interrupción en un terminal de entrada de la CPU común para todas. Problemas:

    • Que la CPU sea capaz de discriminar que periférico ha solicitado la interrupción para atenderle de un modo específico.

    • Si 2 o más periféricos piden atención habrá que establecer un régimen de prioridad.

    • RECONOCIMIENTO DE LA FUENTE DE INTERRUPCION.

    Métodos software:

    Se basan en la consulta sucesiva de los registros de Status a cada uno de los periféricos hasta que queda reflejado aquel que tiene activado el bit que refleja la petición. Reconocimiento por sondeo (Polling).

    Tiene el inconveniente de la lentitud.

    Métodos Hardware:

    Hay que construír otro circuito adicional que soporta como un periférico al que le transferirán las funciones de identificación. Con este método conseguimos mayor velocidad que el anterior. Esto lo reunimos en el controlador de interrupciones:

  • En el controlador de interrupciones conectamos las líneas de petición de interrupción, así sabemos que periférico ha pedido atención.

  • El C.I debe ser capaz de establecer prioridades y prohibir o permitir las peticiones de interrupción que recibe.

  • El C.I informa a la CPU que periférico debe ser atendido. Manda el vector de interrupciones ( código representativo del periférico a atender).

  • Vector de Interrupción

  • Dirección de memoria donde comienza la RET al periférico.

  • “” “” “” “” Se encuentra la dirección de comienzo de la rutina.

  • Código con suficiente información como para que la CPU conozca en que lugar comienza la RET. Es la más general.

  • El CI gestiona los criterios de prioridad. Otras más simples son los basados en el programa. Cuanto más complejo es el procedimiento ideado más lenta será la atención al periférico.

    Los métodos basados en hardware resuelven las prioridades sin retraso adicional.

    • Enmascaramiento por Niveles:

    Las entradas de interrupción se han ordenado atendiendo a un criterio de prioridad. El Micro fija un nivel que puede ser alterado, las interrupciones con nivel superior al establecido serán atendidas, mientras que los inferiores o iguales quedan prohibidas.

    • Enmascaramiento individual:

    Enmascaramiento selectivo de interrupción. Cada entrada de interrupción es controlada por una AND de dos entradas y la otra entrada conectada a un puerto de salida REGISTRO DE MASCARA.

    Las entradas de interrupción que coincidan con el registro de máscara son permitidas y las que coincida con 0 son prohibidas.

    Registro de Status: 8 biestables que almacenan las peticiones de interrupción autorizadas por la máscara.

    Este registro ( que es un puerto) puede ser leído por la CPU con el fin de identificar el origen de la interrupción.

  • EL ACCESO DIRECTO A MEMORIA (DMA).

  • Transferencia rápida de bloques de datos entre memoria y periférico en ambos sentidos. Si los bloques a transferir se almacenan o están almacenados en posiciones de memoria consecutivas, el control de la transferencia podría ser llevado a cabo por un dispositivo diferente de la CPU y sin que cada uno de los datos tuviera que pasar por ella.

    El controlador de DMA es un subsistema digital que se responsabiliza de las funciones que se han considerado de la CPU. Se encargará de direcciones de memoria durante la transferencia como el acceso a memorias en posiciones consecutivas, se puede realizar de forma mecánica sin necesidad de una inteligencia adicional.

    Para que no haya problemas, la CPU tiene que quedar aislada durante el proceso de DMA; que la CPU se desconecte del Microprocesador que se trate. Para esto, el bus de direcciones y la R/W en estado de alta impedancia (salidas triestado).

    Una vez aislada la CPU, el controlador de DMA es quien toma el control del bus de direcciones y quien determina las posiciones de memoria en las que se van a ir escribiendo o leyendo los datos.

    Para que esto vaya bien se tiene que cumplir:

  • La CPU da al controlador de DMA las posiciones inicial y final del bloque a transferir o a la posición inicial y el tamaño del bloque.

  • Protocolo entre CPU y controlador de DMA, para coordinar comienzo y fin de la transferencia.

  • Protocolo entre C-DMA y periférico para armonizar velocidades para que no haya pérdida de datos.

  • Durante las transferencias por DMA el bus de Direcciones, Datos y R/W estarán aislados del Microprocesador; éste no podrá realizar operaciones que impliquen el uso de estos.

    • REPARTICION DE DERECHOS DE USO DEL BUS.

    • Parada del Procesador: Durante el DMA, el procesador queda parado ( sin realizar operaciones internas o externas). Es el método más usado, aprovecha al máximo la velocidad de las transferencias DMA. Muchos microprocesadores entran en un estado de parada donde no hay actividad y los buses en estado de alta impedancia.

    • Robo de un ciclo: la CPU trabaja pero cuando finaliza la ejecución de una instrucción cede los buses al DMA durante uno o varios ciclos. Se realizan a la vez, pero más lentas.

    Modo de funcionamiento: Cuando el periférico desea realizar una transferencia de datos, envía a través de la unidad de E/S una petición de acceso (DMA request) a la CPU. Esta señal genera una orden de inhibición del bus colocando a este en alta impedancia y suprimiendo uno o dos ciclos de reloj, durante los cuales el DMA coloca sobre el bus de direcciones y datos la información correspondiente. Después de esto se restablece el funcionamiento normal.

    • Bus compartido: Durante la ejecución del programa, se alternan ciclos de reloj

    en los que la CPU hace uso de los buses y ciclos de trabajo interno. Se

    aprovechan estos ciclos para que sea el C- DMA el que use los buses. No se

    logra la muy alta velocidad de transferencia propia del DMA.

    EL CONTROLADOR DE DMA:

    Se encarga de direccionar la memoria en posiciones consecutivas, sustituyendo en esta labor a la CPU. Bajo el punto de vista de ésta, el C-DMA va a ser un periférico provisto de diversos registros de datos, control y estado que pueden ser accedidos a través del bus de datos.

    La CPU deberá escribir en ellos la información previa a la transferencia DMA

    Que sea necesaria. Parte fundamental de esta información será la direcciones de memoria inicial y final en las que sustituirá el bloque sobre el que va a actuar el controlador.

    C-DMA 8237 DE INTEL, usando dos de estos integrados para implementar el sistema de 8 canales de DMA de un Pc. Cada canal dispone de una capacidad de direccionamiento de 64 Kbytes y de un contador de palabras transferidas.

    Las operaciones de comparación o de búsqueda de bloques pueden ser finalizadas con una señal externa de fin de proceso (EOP) para evitar servicios erróneos.

    Está compuesto por:

    • Bloque de control y tiempos: Genera señales de sincronización interna y de control exterior.

    • Bloque de control de comandos: Decodifica los comandos enviados por el microprocesador antes de la petición de DMA.

    • Bloque codificador de DMA: Determina que canal va a ser servido primero cuando se reciben varias peticiones simultáneas.

    FUNCIONAMIENTO DEL 8237:

    Trabaja con dos ciclos :

    1 - Ciclo activo.

    2 - Ciclo pasivo.

    Cada con un nº determinado de estados.

    El Estado I (S.I) es el inactivo. Se entra en este estado cuando el controlador no tiene pendiente ninguna petición válida.

    El Estado 0 (S.O) es el primer estado de un servicio DMA. Una señal de reconocimiento de la CPU indicará que la transferencia puede iniciarse.

    • MODOS DE TRABAJO DEL 8237.

    Transferencia Simple:

    • Acceso

    • Petición de Control del Bus a la CPU(HRQ).

    • Activar señal de reconocimiento (HLDA).

    • Transferencia del Dato.

    Transferencia en Bloque.

    • Transferencias sin interrupción hasta:

    • Señal externa de fin de proceso (EOP).

    • Controlador Palabra llega a FFFFH.

    Demanda de Transferencia.

    Pide acceso y una vez comenzada la transferencia, se puede desactivar por una orden del periférico.

    En cascada.

    Se conectan HRQ y HLDA con DRQ y DACK y así se propaga la señal DMA a través del circuito de prioridad.

    • DESCRIPCION DE LOS REGISTROS.

    1 - Registro de Dirección Actual: Tiene 16 bits para cada canal que retiene la dirección de utilización durante la transferencia de DMA.

    Se incrementa o decrementa automáticamente después de cada transferencia.

    2 - Registro de Palabra Actual: 16 bits para cada canal cuyo contenido determina el número de transferencias a realizar y se decrementa después de cada transferencia. Cuando pasa de 0000 a FFFFH genera una señal por la salida EOP.

    3 - Registro contador de Palabra y Dirección Base: Cada canal dispone de una pareja de estos registros de 16 bits usado para almacenar los valores originales de los registros actuales asociados.

    4 - Registro de Comandos: 8 bits, usado para controlar el funcionamiento del 8237.

    5 - Registro de Modo: Cada canal tiene un registro de modo de 6 bits. La escritura de los bits 0 y 1 determina a que registro de modo de cada canal se está escribiendo.

    6 - Registro de Petición: El 8237 puede responder a peticiones de servicio de DMA iniciadas por software o por DREQ. Cada canal dispone de un bit de petición asociado con este en el registro de petición de 4 bits.

    Cada bit es no enmascarable y sujeto a la prioridad determinada en el bloque codificador de prioridad.

    7 - Registro de Máscara: Asociado con cada canal que dispone de un bit para invalidar peticiones indeseadas.

    8 - Registro de Estado: Registro de lectura que contiene información sobre el estado de los dispositivos en ese momento.

    9 - Registro Temporal: Usado para retener datos durante la transferencia de memoria a Memoria.

    • CONEXION DEL 8237 A UN SISTEMA MICROPROCESADOR.

    El controlador pide acceso mediante HRQ y cuando la CPU responde con HLDA, el 8237 toma el control de los 3 buses.

    La dirección para la primera operación de transferencia se expresa en dos bytes:

    • El primero contiene los 8 bits menos significativos y circula a través de las 8 líneas de dirección.

    • El segundo contiene los 8 bits más significativos que circulan a través del bus de datos.

    El contenido del bus de datos es retenido en el circuito de retención 8282 hasta obtener la dirección de 16 bits.

    VIII - TRANSMISION SERIE Y PARALELO.

    Transmisión Paralelo: Cada palabra o dato que se intercambia con el exterior se transmite de una sola vez.

    Transmisión Serie: Se utiliza un único circuito o conexión y trasmite a través de él de forma consecutiva cada uno de los bits. Este resulta ventajoso cuando la distancia física que separa ambos extremos es grande porque no requiere tantas conexiones como bits tiene la palabra que se transmite.

    Velocidad de transmisión: Baudio = 1bit /seg.

    La velocidad de transmisión es mayor en paralelo porque se mandan varios bits a la vez, cada uno por un conductor distinto.

    La velocidad de transmisión serie es más barata porque usa un único circuito físico.

    La transmisión serie es adecuada para cubrir distancias grandes y cuando intervienen en canales de telecomunicación ya instalados como líneas telefónicas o telegráficas.

    • Transmisión ASÍNCRONA.

    Los datos pueden ser transmitidos en cualquier momento pero el dispositivo transmisor debe enviar al receptor un señal auxiliar que indique

    “ Ahora los datos son válidos “.

    Deben existir señales auxiliares denominadas “ SEÑALES DE PROTOCOLO “.

    Se caracteriza por :

    • Se empieza por el bit de menor peso.

    • La transmisión se realiza carácter a carácter.

    • A cada bit corresponde un tiempo preciso.

    • El tiempo que separa cada carácter puede ser cualquiera (ASINCRONA).

    • Si no se está transmitiendo la línea permanece a “1”.

    • Cada carácter va precedido por un tiempo de duración igual a uno de los bits en el que el nivel lógico de la señal es 0. A este tiempo se le llama “Bit de arranque “.

    • Al final de cada carácter y antes de que se transmita el siguiente la línea debe quedar a uno durante el tiempo equivalente a 1,1 y ½ o dos bits como mínimo. Este bit se denomina “bit de parada”

    • El nº de bits que componen el carácter es pequeño.

    • El último bit que se transmite es el bit de mayor peso o el bit de paridad si es que se usa.

    Hay que definir:

    1 - Velocidad de transmisión: Tiempo por bit.

    2 - Nº de bits: De cada carácter, siendo frecuente el de 7 bits.

    3 - Si se utilizar bit de paridad y criterio para formarlo:

    * Bit de Paridad ---------------------- NO

    ---------------------- SI - Bit de Paridad Fijo a 0.

    - Bit de Paridad Fijo a 1.

    - Paridad Par.

    -Paridad Impar.

    4 - Nº de Bits de parada o Stop que se van a usar: Normalmente 1,1´5 o 2 en velocidades altas de un bit.

    5 - Niveles lógicos usados: Niveles lógicos TTL (0-5V).

    La recepción de la señal asíncrona puede resultar algo más complicada. La señal que llega al receptor puede estar distorsionada por los efectos de la línea de transmisión. Los flancos de subida y bajada se habrán deteriorado por las capacidades e inductancias asociadas con la línea. Además puede introducirse ruido.

    • TRANSMISION SINCRONA.

    Sometida a una rígida temporización que permite que el elemento receptor sea capaz de conocer en que instante la señal que le llega tiene plena validez.

    Transmisor y receptor funcionan a la misma velocidad. Los datos se envían formando bloques de gran longitud. Al comienzo de cada bloque se transmiten uno o dos caracteres de sincronismo con el fin de que el receptor resuelva el transitorio de recuperación de l a señal de reloj que va a permitir la identificación de los restantes bits que componen el bloque.

    La exactitud de la frecuencia del receptor es ahora un requisito de mucha mayor importancia que en la asíncrona. Al ser grande el nº de bit de los bloques, el error de tiempos acumulado que se deriva de un desajuste entre las frecuencias de reloj de transmisor y receptor puede hacer irreconocible la señal recibida.

    IX - NORMA RS - 232. PUERTO SERIE.

    El RS-232-C define un camino con 25 conductores que conforman 18 circuitos con retorno a través de tierra. Así no se produce daño físico en el equipo como resultado de un cortocircuito entre los cables.

    Por ser 25 líneas porque fue el estándar definido para satisfacer las necesidades de un amplio sector de la industria.

    Para asíncrona usa como mucho 9 señales y a menudo trabaja solo con 3.

    La norma RS-232 recoge nuevos niveles de voltaje con mayor inmunidad al ruido y cuya característica más notable es que los valores de tensión positivos corresponden al cero lógico y los negativos al uno lógico.

    Las funciones de transmisión serie del Pc son gestionadas por el adaptador de comunicaciones asíncronas(es una placa de circuito impreso que puede introducirse en uno de los slots de expansión de la placa base).

    El ACA de IBM, permite la transferencia de datos según la norma RS-232-C aunque usa 4 pins adicionales para soportar un interface por lazo de corriente empleado por algunas impresoras IBM y por máquinas de teletipo. Se basa en asociar a los niveles lógicos un sentido de corriente en vez de un margen de voltaje, permitiendo transmisión de datos a distancias más largas.

    La placa contiene un jumper para seleccionar entre uno de los dos tipos de operaciones. El adaptador es programable y solo puede realizar comunicaciones asíncronas.

    Además, se dispone de un sistema completo de interrupciones priorizadas para el control de la transmisión, la recepción, el estado de las líneas y la detección de errores.

    Aunque el RS-232-C comprende 25 pines, solo 9 de ellos son usados por el ordenador para controlar las comunicaciones asíncronas.

    Los AT suelen llevar conector de 9 pines.

    • REGISTROS DE LA UART 8250 ( Periférico Local).

    Cuando se va a iniciar una transmisión de datos, lo primero es decidir los parámetros de la comunicación ( velocidad, paridad, bits de parada, etc..) y programar los equipos interconectados con los mismos. El gestor de la tarjeta es la UART 8250 que dispone de unos registros ( posiciones de memoria) con los que fija las características de la transmisión.

    Direcciones de los puertos.

    COM1 ---------------------------- 3F8H-3FFH.

    COM2 ---------------------------- 2F8H-2FFH.

    Se comentó que los datos eran transmitidos y recibidos con una lógica que hacía corresponder el uno lógico con tensiones negativas y el cero con tensiones positivas.

    Lo mismo ocurre a las líneas de control tanto de entrada ( CD,RI,DSR,CTS) como de salida de (DTS,RTS), todas se invierten en el interface y a efectos de programación a bajo nivel, la lógica debe estar invertida.

    • REGISTROS INTERNOS DE LA UART.

    Registro de control de línea: (LCR) 3FBH: Lectura y escritura. Controla el formato del carácter y el acceso a otros registros.

    X - EL PUERTO PARALELO. LA NORMA CENTRONICS.

    El puerto paralelo presenta numerosas ventajas frente al serie, para la comunicación y control de dispositivos cercanos al ordenador, como son la facilidad de conexión y programación.

    Al habilitarse una línea por bit de datos se permite un mayor nº de entradas y sálidas y un fácil intercambio de bits entre el ordenador y los dispositivos periféricos.

    El problema de la transferencia de datos en paralelo es la pérdida de sincronismos entre las 8 líneas de datos causada por una diferente velocidad de propagación de las señales por cada uno de los canales. En ambientes no muy ruidosos (usar cable apantallado si es necesario) y para distancias cortas (pocos metros) el uso del interface paralelo es muy cómodo y eficaz.

    La norma para comunicación en paralelo en ordendadores está basada en la Centronics Parallel Interface Adapter con niveles lógicos TTL. El adaptador de impresora que incluyen los compatibles IBM está específicamente diseñado para la conexión de impresoras pero puede ser empleado como un puerto de E/S de propósito general para cualquier aplicación, siempre que se respete la compatibilidad de niveles.

    Disponemos de 12 líneas de E/S protegidas por un buffer TTL y con un latch para manterner su estado y 5 líneas de entrada para tiempo real. Todos estos puertos son accesibles mediante programación.

    Una de las entradas puede ser empleada para generar interrupciones en el micoprocesador. Es necesario ya que permite alterar el flujo de un programa para atender un servicio prioritario que puede darse en cualquier momento y debe atenderse de inmediato.

    Estas funciones están contenidas en una tarjeta que puede conectarse a uno de los slots de expansión de la placa base.

    El sistema operativo DOS, permite direccionar hasta 3 adaptadores, que son LPT1, LPT2, LPT3. Rara vez se usan más de dos. Las tarjetas comerciales suelen llevar unos microinterruptores o jumpers para su configuración como LPT1 o LPT2.