domingo, 15 de julio de 2007

Puerto USB


A pesar de que han persistido desde los inicios del PC, y de su conveniencia para multitud de aplicaciones, los puertos serie y paralelo presentan claras limitaciones en cuanto a capacidad de expansión y rendimiento se refiere. A mediados de los 90, un consorcio formado por multitud de empresas -incluyendo Compaq, IBM, Microsoft, NEC, etc.- desarrolló una nueva interfaz estándar para la conexión de dispositivos externos al PC.

Dicha interfaz, bautizada como USB (Universal Serial Bus, Bus Serie Universal), tenía como objetivo conectar periféricos relativamente lentos (ratones, impresoras, cámaras digitales, unidades ZIP, etc.) de una forma realmente sencilla, rápida y basada en comunicaciones serie. El éxito de la interfaz USB ha sido tal que, actualmente, resulta difícil imaginar un PC que no disponga de al menos un puerto USB. Como prueba adicional de dicho éxito, cabe destacar que actualmente la gran mayoría de periféricos existentes en el mundo del PC están disponibles también en versión USB (por ejemplo, en www.usbgear.com están disponibles una infinidad de dispositivos USB).

Una importante característica de los puertos USB es la sencillez con la que se instala un dispositivo. Tan sólo hay que conectar un extremo del cable USB al periférico, y el extremo opuesto se inserta directamente sobre un conector USB, situado en la parte exterior del PC. No es necesario instalar ninguna tarjeta adaptadora ISA o PCI, lo que ahorra multitud de esfuerzo y problemas.

El bus USB ha sido concebido teniendo en mente la filosofía Plug & Play. Por tanto, tras conectar el dispositivo al bus USB, el sistema operativo se encarga del resto: si el software controlador se encuentra instalado, lo emplea directamente, y en caso contrario lo solicita. El bus USB admite la conexión de hasta 127 dispositivos, algo impensable usando puertos serie o paralelo. Cada dispositivo puede trabajar con un ancho de banda de hasta 6 Mbps, velocidad más que suficiente para la mayoría de periféricos. El ancho de banda total soportado por el bus es de 12 Mbps, a repartir entre todos los dispositivos conectados (incluyendo al propio PC, que actúa como dispositivo anfitrión). De ahí se deduce que si se trabaja a 6 Mbps, tan sólo se podrá conectar un dispositivo al bus.

Otra importante característica es que los dispositivos se pueden conectar y desconectar sin necesidad de apagar el PC (hot-swapping).

El estándar USB define dos tipos de conectores, denominados en nuestro gráfico “A” y “B”. En cuanto a terminales se refiere, las características de ambos son totalmente análogas. La diferencia radica en que los conectores tipo “A” llevan la información desde los dispositivos hacia la computadora, y los conectores tipo “B” llevan la información en sentido opuesto. Esta diferenciación evita toda confusión al efectuar conexiones: los conectores tipo “A” irán a parar a receptáculos tipo “A”, y lo equivalente para los conectores tipo “B”, sin miedo alguno a realizar conexiones incorrectas.

El bus USB permite el flujo de información en ambos sentidos (del PC a los dispositivos o de los dispositivos hacia el PC), lo que abre un gran abanico de posibilidades de expansión. Entre otras, es posible conectar altavoces compatibles USB para escuchar audio procedente del PC (sin necesidad de emplear una tarjeta de sonido) o recibir información del mundo físico que rodea al PC mediante una tarjeta de adquisición de datos USB.

Expandiendo el Bus USB

La mayoría de los PC actuales incorporan “de serie” una o dos ranuras USB, lo que permite la conexión de uno o dos dispositivos. Considerando la elevada oferta de dispositivos USB existente en el mercado, es fácil que en muy poco tiempo ya se hayan agotado las ranuras disponibles. Entonces, ¿cómo se puede ampliar el número de ranuras, siendo posible llegar hasta 127?

La respuesta la proporciona un dispositivo económico, que forma parte del estándar USB y se denomina comúnmente hub USB. Éste contiene un terminal que se conecta al PC (o a otro hub), y varios terminales (normalmente 4, aunque pueden ser más) que permiten conectar dispositivos USB adicionales. Cualquiera de estos últimos dispositivos puede ser otro hub, creando una jerarquía multicapa que incrementa el número de conectores disponibles.

Los hub USB pueden ser alimentados o no alimentados. Los dispositivos conectados a estos últimos toman la alimentación del propio bus USB, lo que simplifica el diseño. Estos dispositivos se caracterizan por consumir poca energía (por ejemplo, ratones o cámaras digitales). Los dispositivos con mayores requerimientos de energía (impresoras, escáneres, etc.) incorporan su propia fuente de alimentación, ya que la energía que puede proporcionar el bus USB no es suficiente. Si se conecta un número elevado de dispositivos alimentados directamente del bus, es probable que sea necesario proporcionar energía externa para lograr una correcta alimentación. En ese caso, será preciso emplear los hub alimentados, que vienen acompañados de una fuente de alimentación externa.

Funcionamiento del Bus USB

Un buen punto de partida para abordar este tema es el cableado del bus. Cada cable USB contiene, a su vez, 4 cables en su interior. Dos de ellos están dedicados a la alimentación (5 voltios) y la referencia de tensión (masa). La corriente máxima que el bus puede proporcionar es de 500 mA a 5 voltios de tensión.

Los dos cables restantes forman un par trenzado, que transporta la información intercambiada entre dispositivos, en formato serie. Tras su encendido, el dispositivo anfitrión -el PC- se comunica con todos los dispositivos conectados al bus USB, asignando una dirección única a cada uno de ellos (este proceso recibe el nombre de “enumeración”). Además, el PC consulta qué modo de transferencia desea emplear cada dispositivo: por interrupciones, por bloques o en modo isócrono.

La transferencia por interrupciones la emplean los dispositivos más lentos, que envían información con poca frecuencia (por ejemplo teclados, ratones, etc.). La transferencia por bloques se utiliza con dispositivos que mueven grandes paquetes de información en cada transferencia. Un ejemplo son las impresoras.

Finalmente, la transferencia isócrona se emplea cuando se requiere un flujo de datos constante y en tiempo real, sin aplicar detección ni corrección de errores. Un ejemplo es el envío de sonido a altavoces USB. Como se puede intuir, el modo isócrono consume un ancho de banda significativo. Por ello el PC impide este tipo de transferencia cuando el ancho de banda consumido supera el 90% del ancho de banda disponible.

Para la temporización, el bus USB divide el ancho de banda en porciones, controladas por el PC. Cada porción mueve 1.500 bytes, y se inicia cada milisegundo. Ante todo, el PC asigna ancho de banda a los dispositivos que emplean transferencias isócronas y por interrupciones, garantizando el ancho de banda necesario. Las transferencias por bloques emplean el espacio restante, quedando en última prioridad.

La Versión 2.0 de USB

Todo lo comentado en los anteriores apartados corresponde a la versión 1.1 del bus USB. La versión actual del estándar USB es la 2.0. En primer lugar, esta nueva versión es totalmente compatible con la versión 1.1. Por tanto, desde el punto de vista del usuario no hay cambios: los dispositivos para la versión 1.1 seguirán funcionando sin problemas.

Se puede, por tanto, combinar periféricos para ambas versiones, pero hay que tener en cuenta que, en caso de emplear dispositivos USB 2.0, será necesario introducir hubs USB 2.0, además de los USB 1.1. La ventaja para el usuario aparece al utilizar dispositivos diseñados para la versión 2.0: el ancho de banda aumenta hasta un factor 40 (lo que implica alcanzar 480 Mbps). Esto hace posible ampliar el abanico de periféricos USB disponibles, siendo posible conectar dispositivos con elevados requerimientos de ancho de banda, como discos duros, grabadoras de CD, lectores DVD, etc. De hecho, ahora es posible trabajar con periféricos de alto rendimiento sin necesidad de emplear interfaces como SCSI, aprovechando así todas las ventajas de USB y reduciendo costes.Otra ventaja interesante se centra en la concepción de los dispositivos USB 2.0: no requieren esfuerzo de diseño adicional respecto a la versión 1.1. Todas estas características anticipan -cada vez más- que el PC del futuro tan sólo necesitará conectores externos USB. A corto plazo, la tendencia apunta a que USB 2.0 reemplazará completamente a USB 1.1 en todo PC.

No hay comentarios: