Trabajo 5.1

Anuncio
INTERFACES DE ENTRADA/SALIDA
II–PEI 09/10
______________________________________________________________________
5.1 – INTERFACES DE ENTRADA/SALIDA
Borja Brisson Vega, Jonán Cruz Martín
Estudiaremos qué son las interfaces de entrada/salida y para qué
sirven. Veremos su importancia y algunos factores que determinan su
diseño. Revisaremos brevemente el USB y el IEEE 1394, y los puertos
paralelo y serie (hoy en día en desuso).
1. Introducción
Con la evolución de los computadores, se usa cada vez más dispositivos externos, y por
ello hay que diseñar formas de conectarlos. Existen dos tipos de conexiones, serie y paralelo (si
se transmite un bit o varios bits al mismo tiempo, respectivamente). Hay puertos que se
conocen por estos nombres, el puerto serie y el puerto paralelo, pero han caído en desuso. La
tendencia ha sido desarrollar interfaces seriales de altas prestaciones, que proporcionen alta
velocidad y características de Plug & Play. Las dos interfaces seriales de altas prestaciones más
extendidas son el USB y el IEEE 1394, cuyo funcionamiento se detallará más adelante.
El desarrollo de estas nuevas interfaces de altas prestaciones viene motivado por la
creciente necesidad de unificar los puertos existentes en los computadores, eliminando la gran
diversidad de puertos existente en el pasado; así como permitir la conexión de dispositivos en
caliente (hot-swapping), sin necesidad de apagar la máquina, y con capacidades Plug & Play.
Un último motivo es el deseo de mayores velocidades de transferencia, que son
proporcionadas gracias al diseño de interfaces seriales y al incremento de la frecuencia de sus
buses.
2. Generalidades sobre los puertos de entrada/salida
La mayoría de los computadores actuales hacen un uso intensivo de dispositivos
periféricos. Para poder conectar los periféricos, los computadores disponen de conexiones,
llamadas puertos, que conectan el periférico con la circuitería de la palaca base, permitiendo la
comunicación.
En este ámbito, por “interfaz de E/S1” se denomina al conjunto de puertos, buses y
protocolos de bus que permiten la conexión de periféricos al computador. Nótese que se hace
referencia a la conexión entre el periférico y el computador, y al bus que usa esta conexión,
pero no a los buses internos de la placa que conectan el puerto de E/S con otros chips de la
placa.
A este nivel, se distingue dos clases de interfaz: interfaces paralelas e interfaces en
2
serie . Las interfaces paralelas son aquéllas en las que varias líneas conectan el periférico al
computador, y se transmite información por todas las líneas simultáneamente, es decir, “en
paralelo”. Por contra, las interfaces en serie sólo disponen de una línea de transmisión de
datos, y los bits se transmiten de uno en uno. Por ejemplo, una interfaz paralela de 8 líneas
transmitiría 8 bits simultáneamente, mientras que una interfaz serie tendría que transmitir
cada bit individualmente.
3. Estándar de puertos serie y paralelo
A lo largo de la historia la mayoría de los puertos de comunicación de los PCs han sido
los puertos serie y paralelo, teniendo aún un papel importante en ellos aunque estén siendo
sustituidos por otros diseños recientes.
Los puertos seriales, también conocimos como puerto COM o communication, fueron
diseñados para permitir la comunicación bidireccional entre el computador y los dispositivos.
1
2
Entrada/salida.
A veces llamadas “interfaces seriales” a causa del anglicismo “serial interface”.
1
INTERFACES DE ENTRADA/SALIDA
II–PEI 09/10
______________________________________________________________________
Los nuevos estándar de os puertos paralelos permiten una comunicación bidireccional a alta
velocidad.
3.1. Puerto serie
Los puertos seriales están formados por una interfaz asíncrona diseñada
principalmente para la comunicación entre sistemas. La transmisión de los caracteres se realiza
mediante el estándar start-and-stop, en el cual los bytes son enmarcados entre bits de
comprobación. Toda transferencia comienza con un bit 0, llamado start bit, indicando el
comienzo de la misma. Una vez enviados los 8 bits del carácter, les sigue 1 ó 2 bits
confirmando el fin del carácter. Al tratarse de un método asíncrono necesita de estos bits extra
que proporcionan un incremento del 20%.
Para la realización de esta transmisión-codificación es necesario que se divida los bytes
a transmitir en los 8 bits que lo componen y una vez transmitidos los vuelva a formar el byte.
Este proceso lo realiza el UART (Universal Asynchronous Receiver/Transmitter) considerado el
núcleo de los puertos seriales. Otra de las funciones del UART es la de manejar las
interrupciones de los dispositivos.
Los puertos de alta velocidad se lograron con la incorporación al puerto de búferes.
Desde la mitad de 1990 la funcionalidad de los UART se encuentra en un único chip
situado en la placa base llamado Super I/O. Este componente contenía los UARTs de los
puertos series, como los controladores para los puerto paralelos multimodos, los
controladores del teclado, etc. Este chip emulaba como si todas sus funcionalidades se
encontrasen en tarjetas de expansión, como era hasta entonces, lo que permitía la
reutilización del software. Con el desarrollo de la capacidad de integración el chip Super I/O
formó parte del puerto Sur de la placa, lo que no implicó ningún cambio para el software del
sistema.
3.2. Puerto paralelo
Los puertos paralelos están formados por 8 líneas por las cuales se trasmiten 8 bits
simultáneamente. Aunque en un principio fueron diseñados para la conexión con impresoras,
a día de hoy pueden encontrarse en cualquier sistema de transmisión de datos, eso sí de corto
alcance.
Los puertos paralelos se rigen por el estándar IEEE 1284, publicado en 1994, el cual
define todo los aspectos físicos del puerto: especificación de los modos de transferencia y las
especificaciones físicas como eléctricas. Inicialmente este estándar únicamente trataba al
hardware y a las líneas de control de este, por lo que se tuvo que añadir una rama que
definiese la interfaz software del puerto. Esta interfaz fue construida por el comité 1284.3,
creado únicamente para este fin.
Además de todo ello, el estándar incluye la especificación de los conectores del puerto,
como la definición de cuatro tipos de puertos y cinco modos de funcionamiento.
Los tipos de puertos paralelos:
•
SPP (Standard Parallel Port): Se trata del primer tipo de Puerto el cual era
capaz de enviar 8 bits y de recibir únicamente 4 bits.
•
Bidireccional: Con este puerto se logró enviar y recibir 8 bits mediante la
definición de una nueva línea que marcaba el sentido de la transmisión.
•
EPP (Enhanced Parallel Port): fueron creados en 1991 por Intel, Xircom y
Zenith, y permiten la transferencia de muchos más datos por segundo. Fueron
diseñados específicamente para dispositivos que no fueran impresoras.
2
INTERFACES DE ENTRADA/SALIDA
II–PEI 09/10
______________________________________________________________________
•
ECP (Enhanced Capabilities Port): Creado por Microsoft y Hewlett está
orientado a mejorar la funcionalidad y velocidad de las impresoras mediante el
uso de canales de DMA.
Para la comunicación entre puertos ECP/EPP es necesario la utilización de cables
especiales para poder aprovechar el ratio máximo de transferencia.
4. Comparación entre paralelo y serie
A primera vista, un puerto paralelo puede parecer más rápido que un puerto serie, ya
que es capaz de transmitir más información en menos tiempo, gracias al uso de múltiples
líneas de datos. Y ciertamente una conexión paralela es más rápida que una conexión en serie
a igual frecuencia de reloj.
Las conexiones paralelas sufren de varios problemas, especialmente el sesgo de señal
(signal skew) y la fluctuación de la señal (signal jitter). El sesgo de señal consiste en que las
señales no llegan todas al mismo tiempo, y la fluctuación de la señal es la tendencia de la señal
a fluctuar arriba y abajo por un periodo corto de tiempo antes de estabilizarse en el voltaje
emitido. Por esto, los cables paralelos se restringen a cables cortos y no muy altas frecuencias,
mientras que la frecuencia de los seriales se puede incrementar más.
Además, a altas frecuencias de reloj, las señales en una conexión paralela interfieren
entre sí. Esto hace que las conexiones paralelas sean más caras, no sólo porque hacen falta
más cables, sino porque deben estar protegidos de interferencias. Por ello, tanto la aparición
de interferencias como el elevado coste hacen que sea más factible incrementar la frecuencia
de una interfaz serie que de una paralela.
5. Motivación para las interfaces IEEE 1394 y USB
Antiguamente, gran parte de los periféricos usaban una interfaz específica y diferente,
por lo que era necesario disponer de muchos tipos de puerto distintos en un computador.
Además, la necesidad de Plug & Play para poder usar dispositivos sin tener que configurarlos
previamente era creciente.
Por estos motivos se desarrollaron interfaces seriales de altas prestaciones, como el
USB y el IEEE 1394, que proporcionaran altas velocidades y Plug & Play en una interfaz
universal3. Estas interfaces son seriales por la necesidad de alta velocidad.
6. Conceptos y funcionamiento de la interfaz USB
La interfaz USB (Universal Serial Bus) es una interfaz serial con 4 líneas de conexión, 2
para transmisión de datos y las otras 2 para alimentación y tierra. Hay dos especificaciones, la
1.x (con 1.0 y 1.1) y la 2.0. La 1.1 consiste en una revisión de la 1.0 en lo referente a los hubs4 y
algunos otros aspectos. La especificación 2.0 sí introduce grandes cambios respecto a la 1.1,
pero todavía permite retrocompatibilidad con dispositivos 1.x. La mayor diferencia entre 1.x y
2.0 es la velocidad de transferencia: de 12 Mbps a 480 Mbps, respectivamente. Además, la 1.x
requería un PC como intermediario en las transferencias, y la 2.0 elimina esa necesidad,
pudiendo transmitir de dispositivo a dispositivo.
La transmisión de datos se realiza mediante las líneas D+ y D-, las cuales implementan
la sincronización del dispositivo mediante la codificación NRZI, Non Return to Zero Inverted.
Esta codificación mantiene el nivel de voltaje cuando se transmite un 1 y cambia de polaridad
cuando transmitimos un 0. Unas de las imposibilidades que impone es la aparición de seis
3
Que es igual para todos los dispositivos y todos los computadores.
Un hub, o acumulador, es un aparato que permite conectar varios dispositivos USB a un único puerto.
Se pueden conectar hubs en cascada (conectar hubs a otros hubs).
4
3
INTERFACES DE ENTRADA/SALIDA
II–PEI 09/10
______________________________________________________________________
ceros seguidos, para evitar problemas de sincronización. En la transferencia se crean canales
de comunicación virtuales (pipes) creados por el host ocupando cada uno una parte del ancho
de banda disponible. Todos los pipes poseen un punto de final que puede encontrarse en un
mismo dispositivo.
El bus USB permite hasta 127 dispositivos USB conectados a un único puerto, para lo
cual se deberán usar hubs. Sin embargo, deberán compartir el ancho de banda y la potencia de
alimentación entre todos los dispositivos. En estos casos conviene usar hubs con adaptador de
corriente propio (si no, podría no tener corriente suficiente para todos los dispositivos, lo que
causaría un mal funcionamiento). La conexión de dispositvos sigue un esquema encadenado,
que establece la prioridad entre ellos. El hub proporciona la interfaz con el exterior y además
se encarga de distribuir/controlar el tráfico entre el host y los dispositivos. Todo hub, al igual
que los dispositivos, ha de ser configurados y poseer una dirección propia.
El USB identifica automáticamente el tipo de dispositivo y es hot-swappable. Para el
soporte Plug & Play se definen clases de dispositivos que permiten identificarlo y elegir un
controlador genérico para el dispositivo. También se puede cargar un driver específico del
fabricante para disponer de más funciones, pero siempre se tiene un driver genérico.
También hay diferentes tipos de conectores, aunque todos poseen 4 líneas: Series-A,
Series-B, Mini-A y Mini-B. Normalmente, el tipo A es el conector usado para la conexión con el
ordenador y el tipo B se utiliza para la conexión con el dispositivo. Los conectores mini son
iguales, pero se distinguen en el color del conector y del socket, y la máquina los distingue por
una señal de ID.
7. Conceptos y funcionamiento de la interfaz IEEE 1394
El estándar IEEE 13945 es otra interfaz de alta velocidad, con 3 revisiones: 1394
(original), 1394a y 1394b. El 1394a resuelve problemas de compatibilidad e interoperabilidad,
pero mantiene la velocidad de hasta 400 Mbps. El 1394a usa 6 pines: 4 para datos y 2 para
alimentación. Por su parte, el 1394b usa 9 pines y alcanza a lo sumo 800 Mbps. Usa cables de
cobre, pero también permite fibra óptica y añade otras mejoras respecto al 1394a. Para 1394b
hay dos tipos de conectores: beta (sólo 1394b) y conectores bilingües (soporte para
dispositivos 1394a y 1394b).
El FireWire especifica un conjunto de protocolos formado por tres capas para
estandarizar la comunicación entre el computador y los periféricos conectados.
•
Capa física: Define los medios de transmisión permitidos al igual que las señales y las
características eléctricas de cada. Esta capa se encarga de todo el aspecto físico,
transformar las señales binarias en eléctricas, la velocidad de transmisión, conectores,
arbitraje, etc.
El arbitraje del FireWire está basado en la estructura tipo árbol con la que están
organizados los distintos adaptadores. Esta capa determinará a un nodo como nodo raíz del
árbol el cual actuará como árbitro central, procesando las distintas solicitudes de acceso al
bus. Este arbitraje persigue una política equitativa evitando el monopolio de los dispositivos de
mayor prioridad, para ello divide el tiempo de bus en intervalos. Al comienzo de un intervalo,
cada nodo activa un bit de autorización de arbitraje, siendo los dispositivos que tengan
activado este bit los que competirán por el bus. Cuando un nodo gana el acceso al bus el bit de
este se desactivará y no volverá a activarse hasta que acabe el intervalo, evitando así
acaparamiento del bus. Para completa el arbitraje, el 1394 implementa un arbitraje urgente
que permite a un nodo acceder más de una vez en un mismo intervalo de forma limitada, es
decir, como máximo podrá hacer uso del 75% del tiempo de intervalo.
5
También se le llama comercialmente i.LINK (acuñado por Sony) o FireWire (acuñado por Apple).
4
INTERFACES DE ENTRADA/SALIDA
II–PEI 09/10
______________________________________________________________________
•
Capa de enlace: describe la transmisión de datos por medio de paquetes. El estándar
1394 estipula dos tipos de transmisión, asíncrona e isócrona.
Asíncrono: se utiliza para datos que no necesitan una velocidad de
transferencia fija.
Isócrono: se utiliza con los dispositivos que generan datos de manera regular
para garantizar cierta velocidad.
•
Capa de transacción: define un protocolo solicitud-respuesta que oculta los detalles de
las capas inferiores.
El 1394 permite hasta 63 dispositivos. Además, es Plug & Play y hot-swappable. Desde
la primera versión, el 1394 no requiere un PC como intermediario para las transferencias. El
1394 es usado en dispositivos de alto ancho de banda, especialmente en aplicaciones de vídeo,
sonido e imagen. Sin embargo, sigue sin estar tan extendido como el USB. Aun así, se
encuentra gran variedad de dispositivos con 1394, especialmente discos duros.
8. Conclusiones
La conexión de dispositivos externos a un computador se realiza mediante interfaces
de E/S externas. Antiguamente existía gran variedad de puertos, pero la tendencia ha sido
crear interfaces universales que sean usadas por todos los dispositivos. Esto elimina la
necesidad de tener un tipo de interfaz para cada dispositivo distinto que se conecte. Además,
el uso de interfaces seriales ha perdido incrementar la frecuencia de los buses drásticamente,
ya que las interfaces seriales no presentan los problemas de las paralelas (deterioro de la
señal).
USB y IEEE 1394 son interfaces universales para dispositivos, y hoy en día todos los
dispositivos se pueden conectar mediante alguna de estas dos interfaces. Ambas interfaces
proporcionan velocidades de transferencia similares (en torno a los 400 Mbps), aunque nuevos
estándares están en desarrollo. Tanto USB como IEEE 1394 proporcionan Plug & Play y hotswapping, de manera que se pueden conectar y desconectar dispositivos sin apagar la
máquina, y el dispositivo será detectado automáticamente.
USB tiene dos especificaciones, la 1.x, que es más antigua y lenta, y la 2.0. Hoy en día la
mayor parte de los dispositivos, excepto algunos ratones y teclados, se conectan por 2.0.
Además, los puertos USB 2.0 son compatibles con 1.x, sólo que no podrán alcanzar la velocidad
del 1.x.
De manera similar, IEEE 1394 tiene dos especificaciones, la 1394a y la 1394b. Aunque
ambas usan puertos diferentes, existe un tipo de puerto para la revisión 1394b que permite la
conexión de dispositivos 1394a (socket bilingüe).
Bibliografía
[1] William Stallings. Organización y arquitectura de computadores. Pearson Educación, 2005 (7ª ed.).
5
Descargar