PUERTOS Y PERIFERICOS DE ENTRADA: PUERTO USB

Este es otro de los libros electrónicos que nos ofrece la empresa Krismar Computación, ya hemos publicado algunos artículos acerca de otros libros de la misma empresa, como ser de microprocesadores, memorias, la memoria RAM, etc. A partir de ahora publicaremos una serie de artículos destinados, como su título lo anuncia, a "Puertos y Periféricos de Entrada". En esta edición comenzamos con el puerto USB.

ARQUITECTURA

Diseñado para reemplazar a los dos puertos tradicionales, serial y paralelo, el puerto USB (Universal Serial Bus) se creó pensando en la eliminación de los problemas de cableado, espacio y confusión de conectores. El diseño permite a un sólo puerto manejar hasta 127 dispositivos conectados en él, en adición se construyó el llamado soporte Plug-and-Play (P&P) con lo que cada conexión podría ser configurada de manera automática, incluso conectando el dispositivo en caliente (cuando el equipo está prendido y reconocido de inmediato sin tener que reiniciar la computadora). El diseño incluye una función opcional de alimentación del dispositivo desde la computadora, a través del cable de conexión. El diseño USB divide el hardware en dos clases, hubs y funciones. Un hub USB provee conectores en los cuales se pueden conectar funciones. Una función USB es un dispositivo que se puede conectar a la computadora y hace algo (escáner, impresora, webcam, teclado, mouse, etc.). Más que un puerto punto a punto el USB es un bus que permite la conexión de múltiples periféricos a un solo conector, los cuales comparten el mismo canal de señales. La información es transmitida por el bus en forma de paquetes, los cuales son recibidos por cada función conectada al puerto. Para que una función acepte el paquete que le corresponde, se utiliza un esquema de direccionamiento. Comúnmente una computadora comercial cuenta con dos puertos USB, cada uno de ellos es capaz de manejar hasta 127 funciones, limitado solamente por el número de direcciones. Para conectar varios dispositivos a un solo puerto se utiliza un hub, el cual ofrece múltiples conectores para conectar una función en cada uno de ellos o incluso otro hub. Esto crea un sistema jerárquico o de árbol, como se muestra en la figura. Esta jerarquía de conexiones forma una topología de estrella, la cual permite monitorear la energía de los dispositivos conectados e incluso apagar alguno si existe una condición de sobrecorriente sin afectar a los demás dispositivos conectados. USB soporta la tecnología Plug-&-Play con carga y descarga dinámica de controladores. Al momento en que se conecta cualquier dispositivo (función) al bus, el host (computadora) lo detectará, interrogará y cargará los controladores necesarios, en este caso no hay que preocuparse de IRQ's, dirección de puertos o reiniciar el equipo. De la misma forma, cualquier dispositivo puede ser desconectado en cualquier instante, el host detectará su ausencia y no lo considerará más. La detección automática del controlador adecuado es llevado a cabo usando una combinación de PID/VID (Identificador de Producto / Identificador de Vendedor). El VID es proveído por el foro de implementaciones USB. Otra organización provee un extra VID para actividades no lucrativas. Como parte del proceso P&P, el controlador USB busca los dispositivos conectados al puerto cada vez que la computadora es encendida, interrogando a cada dispositivo para identificar qué es y asignándole una dirección de puerto, la cual formará parte de la dirección de cada paquete enviado. Otro de los beneficios del USB es la alimentación de energía a los dispositivos a través del cable de conexión, lo cual permite evitar, en algunos casos, la existencia de un cable que va del dispositivo a la corriente eléctrica; sin embargo, para esto hay que tomar en cuenta ciertas condiciones. La versión 1.1 soporta dos velocidades, velocidad baja (low-speed) de 1.5 Mbits/s y velocidad completa (full-speed) de 12 Mbits/s. La versión 2.0 considera una tercera velocidad, velocidad alta (highspeed) de 480 Mbits/s la cual fue desarrollada para competir con el puerto FireWire. En una conexión las tres velocidades existentes son soportadas a la vez. En la tabla se muestra una comparación entre las velocidades del puerto USB y las de los puerto serial y paralelo. Con respecto a la alimentación de energía a través del cable, existen tres clases de funciones USB:

  • Funciones con poca energía alimentadas por bus
  • Funciones con alta energía alimentadas por bus
  • Funciones auto alimentadas

Las primeras, obtienen toda su energía del cable (VBus) y no pueden obtener más de una carga, definida como 100mA. Estas funciones están diseñadas para trabajar con un voltaje mínimo de 4.4V y máximo de 5.25V, ejemplo de estas funciones son algunas cámaras digitales pequeñas. Las segundas, igualmente toman toda su energía del VBus y no pueden tomar más de una carga hasta que se hayan configurado, entonces pueden tomar un máximo de 5 cargas (500mA); estas unidades deben poder ser detectadas con voltajes mínimos de 4.4V y cuando operan con cargas máximas, se especifica que trabajen con voltaje mínimo de 4.75V y máximo de 5.25V. Los límites de voltaje son considerados en el conector de la función. Las funciones auto alimentadas, pueden tomar sólo una carga del VBus y obtener el resto de su energía de una fuente externa. En este caso la única carga obtenida del host es suficiente para que el dispositivo sea detectado y enumerado sin fuentes secundarias de energía, ejemplo de estas funciones pueden ser unidades de CDROM externas. Una de las limitaciones de este puerto podría ser la longitud de los cables, la cual permite una longitud máxima de 5 metros, lo cual podría resolverse utilizando hubs en forma de cascada, ya que éstos regeneran las señales recibidas. Gracias a esta posibilidad, los límites en la distancia se hacen de 126 hubs más 1 función por 5 metros, cada uno, resultando una distancia total de 635 metros.

 
ELECTRONICA
En lo que respecta a la electrónica, cada puerto en la computadora cuenta como un host. El circuito de cada puerto controla de manera integral el sistema USB, el cual es llamado controlador de bus. Cada sistema USB tiene uno y sólo uno de estos controladores de bus. La transmisión en el esquema USB se hace en forma diferencial, utilizando un par de cables. La transmisión es hecha utilizando un protocolo NRZI (No retorno a 0 invertido) e inserción de bits (bit stuffed) para asegurar una adecuada transmisión. En dispositivos de velocidad baja (low-speed) y completa (full speed), un diferencial de '1' es transmitido colocando un voltaje mayor a 2.8V en la línea D+ y un voltaje menor a 0.3V en la línea D- ambos con un resistor entre 14.75 K a 28.80K colocado a tierra. Mientras tanto, un diferencial de '0' se logra colocando un voltaje mayor a 2.8V en la línea D- y un voltaje menor de 0.3V en la línea D+ con los mismos resistores (ver tabla). El receptor define un diferencial de '1' como D+ 200mV mayor que D- y un diferencial de '0 ' como D+ 200mV menor que D-. La polaridad de las señales es invertida dependiendo de la velocidad del bus. Es por eso que los términos de estado 'J' y 'K' son usados para dar un significado a los niveles lógicos. En velocidad baja, un estado 'J' es un diferencial de '0'. En velocidad alta (high-speed), un estado 'J' es diferencial de '1'. Del lado de las funciones, existe un resistor llamado pull-up (ver diagrama) el cual permite identificar la velocidad para la que están diseñadas. Este resistor tiene un valor nominal de 1.5 K y está conectado a un voltaje de 3.3V a 3.6V desde la línea D+ en el caso de dispositivos full-speed y desde la línea D- para los dispositivos low-speed (ver diagrama). En el caso de dispositivos que trabajan con high-speed, se utiliza el diseño full-speed, pues es con esta velocidad que se conecta y una vez lograda la identificación, el dispositivo trabajará a velocidad alta (high-speed). Un dispositivo USB estará suspendido, cuando no haya actividad en el bus, por un periódo mayor a 3ms. Entonces el dispositivo tendrá otros 7ms para suspenderse y no utilizar más que la designada corriente de suspensión (500A) del bus, 10ms después la actividad del bus se detendrá. Para mantenerse conectado a un hub o host suspendido, cualquier dispositivo debe tener la energía necesaria para mantener activo su resistor de identificación de velocidad durante el estado de suspensión. El USB envía paquetes del tipo SOF o envíos periódicos para evitar que un estado de ocio caiga en un estado de suspensión.
 
NORMAS Y ESTANDARES
El diseño del USB es el resultado del interés de Compaq, Digital, IBM, Intel, Microsoft, NEC y Northern Telecom, de contar con una mejor interfaz que las existentes. Así en 1995 comenzaron su trabajo, un año después, la interfaz ya estaba a la venta. A pesar de que el puerto no había tenido gran popularidad, el trabajo sobre el diseño siguió creciendo, surgiendo en 1999 el estándar USB 2.0. Desde el principio de la historia de este puerto se ha logrado una mejora de 12 mbits/s (velocidad inicial) a 240 mbits/s (velocidad en 2002). El sistema definido en versiones recientes es siempre compatible hacia atrás, además, los dispositivos siempre negocian trabajar a la mayor velocidad posible para ellos. Los conectores han permanecido sin cambios desde el inicio.
 
CABLES Y CONECTORES
En un principio, el diseño del USB consideraba cuatro tipos de conectores, dos para el chasis de la computadora o dispositivo y dos para el cable. A cada par se le conoce como conector A o conector B. El conector ubicado en un hub o computadora, es del tipo A; mientras que los dispositivos cuentan con un conector tipo B, los conectores son totalmente distintos y fueron diseñados así para que no existiera confusión al momento de conectarlos. Posteriormente surgió un nuevo tipo de conector, el conector “Mini B”, el cual cuenta con similares características que el conector B pero es más pequeño (ver figura). En este nuevo diseño de conector se agregó un pin, el cual sirve de identificación aunque no está conectado al otro extremo del cable (en el conector A). Debido a que el conector del dispositivo es completamente diferente al conector del hub o la computadora, existe un solo tipo de cable, con un tipo de conector a cada extremo del mismo. No existen cables cruzados ni adaptadores en el esquema USB. Físicamente el cable USB cuenta con 4 cables. Dos conducen datos y los otros dos sirven para proveer una corriente directa de 5V con retorno a tierra hacia el dispositivo. Los dos cables de datos son un par trenzado, mientras que los dos restantes pueden o no estar trenzados. Los datos que son transmitidos se transmiten bajo un esquema de señal digital diferencial, esto es, el voltaje en ambos cables es el mismo pero su polaridad es inversa, así al hacer la diferencia cancela el ruido existente. Debido a las características de una transmisión USB, es necesario considerar ciertos parámetros para que las señales no se vean afectadas. Los cables deben contar con ciertas características físicas que deben ser controladas cuidadosamente. Debido a que transporta energía hacia el dispositivo, se deben cuidar la resistencia de los alambres, su calibre y longitud. La resistencia es proporcional al calibre del alambre, por lo cual mientras más largo sea el cable, menor debe ser el calibre de los alambres. En el caso de la longitud máxima especificada, 5 metros, se requieren alambres de calibre 20 AWG. Los alambres dentro de un cable USB cuentan con un código de colores que especifica de manera sencilla su uso y posición en el conector (ver tabla). Los alambres para señales de datos son de color verde y blanco, mientras que los alambres para energía son rojo para el positivo y negro para la tierra. Normalmente no se pueden conectar dos computadoras utilizando un cable USB, debido a que ambos puertos tratarán de controlar la transmisión ocasionando conflictos en la transmisión. Esto se evita gracias al diseño del cable, pero en ocasiones podría encontrarse un cable con conectores del tipo A en ambos extremos, esto está prohibido pero existe una excepción, el llamado LapLink o cable púrpura el cual cuenta con un circuito a mitad del cable, el cual se encarga de permitir el control de la conexión a un solo equipo en los extremos, pero para realizar esto se requiere de software adicional.
 
PROTOCOLOS Y TIEMPOS
Para asegurar la transmisión correcta de información el esquema USB utiliza el protocolo de señalización NRZI (no retorno a cero invertido) e inserción de bits (bit stuffed), lo cual insertará un 0 lógico después de una serie de seis 1's lógicos. Los bits en el bus de comunicaciones son movidos e interpretados en un orden little-endian, es decir, primero se envía el bit menos significativo y al último el más significativo. Durante la comunicación entre el host y cualquier función, se establecen lazos entre éstos, así mismo en cada función pueden existir varias entradas o destinos para los datos de un lazo, éstos son llamados puntos finales (endpoint). Un endpoint es una porción identificable de manera única en una función. Cada dispositivo está compuesto por una serie de endpoints independientes. Así como cada dispositivo tiene una dirección única asignada por el sistema en el momento en que se conecta, cada endpoint tiene dirección, determinada por el dispositivo en el momento mismo de su diseño, para el flujo de datos. Cada endpoint formará una conexión que soportará el flujo de datos hacia cualquier dirección. Todo dispositivo USB requiere la implementación de un endpoint cero, el cual es utilizado para iniciar el dispositivo. En el esquema de comunicación, gracias a la identificación de endpoints, existen los llamados tubos (pipe) que son una asociación entre un endpoint en un dispositivo y el software en el host. Un pipe representa la capacidad de mover datos entre el host, por medio de un buffer de memoria, y un endpoint en un dispositivo. Existen dos modos de comunicación mutuamente exclusivos: de flujo (stream), sin una estructura definida, y por mensaje (message), con una estructura definida. El esquema USB define un frame como una base de 1ms en un bus full-speed o low-speed y un microframe como una base de 25s en high-speed. En un (micro) frame pueden llevarse a cabo varias transacciones. Cada tipo de transferencia define que transacciones son permitidas en un (micro)frame para un endpoint. El esquema USB cuenta con diferentes tipos de transferencia de los cuales se selecciona el que mejor se adapte a los requerimientos de comunicación entre el software del host y el dispositivo involucrado. El esquema USB utiliza un protocolo basado en paquetes. Todo el intercambio de mensajes requiere de tres paquetes, comenzando por un paquete token, el cual contiene la dirección de la función buscada y la naturaleza del intercambio. Un paquete de datos (data) contiene la información. El intercambio de información termina con un paquete handshake, el cual confirmará el arribo correcto de la información. Existe un cuarto tipo de paquete, llamado especial, el cual se encarga de manejar funciones adicionales. Todo los paquetes comienzan con los mismos dos componentes, un campo de sincronización (sync) y uno de identificación (PID), ambos de un byte de longitud.
 
Sobre un producto de Krismar Computación
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
FIGURA 5
 
FIGURA 6
 
FIGURA 7
 
FIGURA 8
 
FIGURA 9
 
FIGURA 2
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES